Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Einfaches Rollanden zu Script zu Uhrzeit X

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Einfaches Rollanden zu Script zu Uhrzeit X

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      FuXXz2 last edited by

      Hallo zusammen,

      ich möchte gerne ein ganz einfaches Script im Blockly haben und mit diesem Die Rolladen, abhängig von einem Datenpunkt zu einer Uhrzeit X schließen.
      Dazu habe ich nun einen Datenpunkt "Number" angelegt, der per VIS entweder den Zustand 7, 8 oder 9 hat. Die Zahlen stehen für die Uhrzeit, wann die Rollanden runter fahren sollen.
      Folgendes Script habe ich nun gebastelt, geht das so oder ist das nicht "State of the Art" ? 🙂
      Der Wert Uhrzeit, ist der Datenpunkt, der über die VIS per Button gesetzt wird.

      Screenshot 2022-12-17 132534.png

      DJMarc75 1 Reply Last reply Reply Quote 0
      • DJMarc75
        DJMarc75 @FuXXz2 last edited by

        @fuxxz2 für den Moment hab ich diese Lösung:

        Screenshot 2022-12-17 133649.png

        Geht vll auch noch besser aber so löse ich bei mir solche variablen Zeittrigger.

        F paul53 2 Replies Last reply Reply Quote 0
        • F
          FuXXz2 @DJMarc75 last edited by

          @djmarc75 Das sieht aufgeräumter aus, stimmt.
          Wenn die Lösung bei dir bereits läuft, versuche ich das mal.

          Welches Format hat denn der DP? Einfach Number? ODer benötigt dieser CRON Regel Baustein ein bestimmtes Format?

          DJMarc75 1 Reply Last reply Reply Quote 0
          • DJMarc75
            DJMarc75 @FuXXz2 last edited by DJMarc75

            @fuxxz2 number ist schon richtig.

            edit: bedenke aber das 24h-Prinzip ... 7=19, 8=20, usw.

            F 1 Reply Last reply Reply Quote 1
            • F
              FuXXz2 @DJMarc75 last edited by

              @djmarc75 Ok danke, ich versuche es mal

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @DJMarc75 last edited by

                @djmarc75 sagte: hab ich diese Lösung:

                So wird eine Änderung der Uhrzeit im Datenpunkt nur bei Skriptstart übernommen. Außerdem wird in der ausgewählten Stunde jede Minute getriggert.
                Besser so:

                Bild_2022-12-17_141416604.png

                F 1 Reply Last reply Reply Quote 1
                • F
                  FuXXz2 last edited by

                  Ich dachte eigentlich, es wäre das einfachste der Welt.
                  Auch wenn es hier nicht ganz hin passt, aber ich bekomme den Button gerade in iQontrol nicht hin.
                  Also mein Datenpunkt ist ja wie folgt:

                  {
                    "common": {
                      "name": "Uhrzeit",
                      "desc": "Manuell erzeugt",
                      "role": "text",
                      "type": "number",
                      "read": true,
                      "write": true,
                      "def": 0
                    },
                    "type": "state",
                    "native": {},
                    "_id": "0_userdata.0.Virtuelle_Geräte.Uhrzeit_Rolladen.Uhrzeit",
                    "acl": {
                      "object": 1636,
                      "state": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator"
                    },
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1671378385589
                  }
                  

                  Dazu habe ich einen Knopf mit additional Contrtols
                  Screenshot 2022-12-18 165232.png
                  Screenshot 2022-12-18 165337.png

                  Wenn ich nun aber etwas drücke, passiert nichts, der Datenpunkt ändert sich nicht

                  1 Reply Last reply Reply Quote 0
                  • F
                    FuXXz2 @paul53 last edited by

                    @paul53 Kannst du mir das Script bitte etwas erklären? Ich möchte es bitte verstehen, kenne mich aber ansonsten mit Blockly nicht gut aus.

                    Mein Skript oben sollte ja auch gehen oder? Das verstehe ich zumindest so. Das Skript wird zu jeder eingestellten Cron Zeit ausgeführt und er prüft dann einfach den Datenpunkt Uhrzeit. Ist dieser vorhanden bzw. entsprechend der Uhrzeit, springt er zu "mache" Trigger ist jeweils der Cron um 7, 8, 9 Uhr, ohne den Datenpunkt Uhrzeit auf Änderungen zu prüfen. Was ja auch nicht nötig ist.

                    Das Skript von DJMarc nimmt also immer nur den Wert aus dem Datenpunkt, den er zum Zeitpunkt des Skript Startes hat? Habe ich das richtig verstanden?

                    Bei deinem Skript startet er mit der Funktion sp1 und schreibt dort den aktuellen Wert von Uhrzeit rein. Zudem aktualisiert der "Falls block" jede Änderung am Uhrzeit Datenpunkt und schreibt diesen in die "h" Variable.

                    Ware das hier nicht genauso?
                    Screenshot 2022-12-18 173253.png

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @FuXXz2 last edited by paul53

                      @fuxxz2 sagte: Ware das hier nicht genauso?

                      Nein. Bei Änderung der Uhrzeit wird nur der laufende Zeitplan gestoppt aber kein neuer Zeitplan mit der geänderten Uhrzeit gestartet. Außerdem enthält die Variable Stunde bei Skriptstart undefined.

                      @fuxxz2 sagte in Einfaches Rollanden zu Script zu Uhrzeit X:

                      Mein Skript oben sollte ja auch gehen oder?

                      Ja. Verbraucht aber einige Ressourcen.

                      @fuxxz2 sagte in Einfaches Rollanden zu Script zu Uhrzeit X:

                      Kannst du mir das Script bitte etwas erklären?

                      Der Zeitplan muss bei Skriptstart mit dem Wert aus dem Datenpunkt "Uhrzeit" gestartet werden. Wenn sich die Uhrzeit ändert, muss der laufende Zeitplan gestoppt und einer neuer Zeitplan mit der geänderten Uhrzeit gestartet werden.
                      Da Blockly nur die einmalige Verwendung einer Schedule-Variablen erlaubt, muss der Zeitplan in einer Funktion ausgeführt werden.

                      1 Reply Last reply Reply Quote 1
                      • F
                        FuXXz2 last edited by

                        Wie kann ich denn am besten vorgehen, wenn ich Zeiten wie 7:30 benötige?

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @FuXXz2 last edited by

                          @fuxxz2 sagte: wenn ich Zeiten wie 7:30 benötige?

                          Bild_2022-12-19_231131486.png

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            FuXXz2 @paul53 last edited by

                            @paul53
                            Also den Datenpunkt Uhrzeit dann in dem Format 8:30 füllen?
                            Screenshot 2022-12-20 103354.png

                            debug Output sagt er dann

                            	2022-12-20 10:34:34.634	info	script.js.Aktiv.automatik.Rolladen1: ['8','30']
                            
                            N 1 Reply Last reply Reply Quote 0
                            • N
                              Nordischerjung @FuXXz2 last edited by

                              @fuxxz2 Ja und dann ist "in der Liste nimm das 1. Element die "8" und das 2. die "30"

                              mach mal so

                              2a732a27-0045-4c76-87d5-178037f77304-image.png

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                FuXXz2 @Nordischerjung last edited by

                                @nordischerjung ah ok, dann kommt

                                javascript.0 2022-12-20 10:56:07.507	info	script.js.Aktiv.automatik.Rolladen1: 30
                                javascript.0 2022-12-20 10:56:07.506	info	script.js.Aktiv.automatik.Rolladen1: 7
                                
                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                849
                                Online

                                32.0k
                                Users

                                80.5k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                380
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo