Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Cron aus DP

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Cron aus DP

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Mika 0 last edited by

      Hallo,
      trotz 2 existierenden Posts gleicher Problematik bekomme ich das einfach nicht bei mir hin.

      Ich möchte eine Aktion nach Zeit ausführen, welche in der Vis über ein Auswahl / Dropdown Feld gesetzt wird.

      Der Datenpunkt ist ein String:
      14ea149f-cfe0-4a33-8f8c-eb76fa15bb76-image.png

      Das Blockly schickt mir genau die richtige Uhrzeit aufgespalten in Stunde: Bsp. 10 und Minute: 55 wenn ich das über Telegram als Text generiert mir schicken lassen. Sobald ich das in Cron rein setze, geht es nicht.
      Weiß jemand wo mein Fehler liegt?

      d6f687e9-b7c6-489c-847f-952d424b12aa-image.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable type="cron" id="schedule1">schedule1</variable>
        </variables>
        <block type="schedule_create" id="$s!JE7be1S5it`4x#U%L" x="412" y="114">
          <field name="NAME">schedule1</field>
          <value name="SCHEDULE">
            <shadow type="field_cron" id="wH8?O_W*2B2fB9!w.OFS">
              <field name="CRON">* * * * *</field>
            </shadow>
            <block type="cron_builder" id="Mqa]zCGUg,[P:j|#U%Ua">
              <mutation xmlns="http://www.w3.org/1999/xhtml" seconds="false" as_line="false"></mutation>
              <field name="LINE">FALSE</field>
              <field name="WITH_SECONDS">FALSE</field>
              <value name="DOW">
                <shadow type="text" id=";kWM[|H(R^[ze)~sCF!e">
                  <field name="TEXT">*</field>
                </shadow>
              </value>
              <value name="MONTHS">
                <shadow type="text" id="1M!X[?k)[O0|;ZP~S=]/">
                  <field name="TEXT">*</field>
                </shadow>
              </value>
              <value name="DAYS">
                <shadow type="text" id="H}x~WwuKv~jUEhN;%i{k">
                  <field name="TEXT">*</field>
                </shadow>
              </value>
              <value name="HOURS">
                <shadow type="text" id="atq@AxM_.`Q=;}4OY0k7">
                  <field name="TEXT">*</field>
                </shadow>
                <block type="text_getSubstring" id="PI6}J:),@9H5%RvB]qI9">
                  <mutation at1="false" at2="true"></mutation>
                  <field name="WHERE1">FIRST</field>
                  <field name="WHERE2">FROM_END</field>
                  <value name="STRING">
                    <block type="get_value" id="]hZy/-%Bc|*B-pvC:;o#">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Klima_Zeitsteuerung.OG_WZ.Timerbereich_1.Mo.1_Abschnitt.Startzeit</field>
                    </block>
                  </value>
                  <value name="AT2">
                    <block type="math_number" id="z_OlR4a,#~%|Yx/W#t6X">
                      <field name="NUM">4</field>
                    </block>
                  </value>
                </block>
              </value>
              <value name="MINUTES">
                <shadow type="text" id=".p{d:/}-L/=|B=-4l}AU">
                  <field name="TEXT">*</field>
                </shadow>
                <block type="text_getSubstring" id="`P^4RiKc{lFjwrxv63|(">
                  <mutation at1="true" at2="true"></mutation>
                  <field name="WHERE1">FROM_START</field>
                  <field name="WHERE2">FROM_END</field>
                  <value name="STRING">
                    <block type="get_value" id="J{e6E^*yHhs_a!r,BPt[">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Klima_Zeitsteuerung.OG_WZ.Timerbereich_1.Mo.1_Abschnitt.Startzeit</field>
                    </block>
                  </value>
                  <value name="AT1">
                    <block type="math_number" id="%yhe$[7Z@=D^;cxk##$r">
                      <field name="NUM">4</field>
                    </block>
                  </value>
                  <value name="AT2">
                    <block type="math_number" id="lMcvwTV-(%aXd6qO{6JK">
                      <field name="NUM">0</field>
                    </block>
                  </value>
                </block>
              </value>
            </block>
          </value>
          <statement name="STATEMENT">
            <block type="comment" id="f*4RkI,piDEMCHWnqiy5">
              <field name="COMMENT">falls Timer 1</field>
              <next>
                <block type="telegram" id="?=c64kn_v:N){16e:T64">
                  <field name="INSTANCE"></field>
                  <field name="LOG"></field>
                  <field name="SILENT">FALSE</field>
                  <field name="PARSEMODE">default</field>
                  <field name="ESCAPING">FALSE</field>
                  <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                  <value name="MESSAGE">
                    <shadow type="text" id="ydUYy@/]Sy#M2qkt@io!">
                      <field name="TEXT">Start</field>
                    </shadow>
                    <block type="text_join" id="Z[r81%mGxAVMu(/cml6E">
                      <mutation items="3"></mutation>
                      <value name="ADD0">
                        <block type="text_getSubstring" id="=sC*@!])j1l}Ujg2(GSg">
                          <mutation at1="false" at2="true"></mutation>
                          <field name="WHERE1">FIRST</field>
                          <field name="WHERE2">FROM_END</field>
                          <value name="STRING">
                            <block type="get_value" id="Fa@=I4949EnC4r}0SE)G">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Klima_Zeitsteuerung.OG_WZ.Timerbereich_1.Mo.1_Abschnitt.Startzeit</field>
                            </block>
                          </value>
                          <value name="AT2">
                            <block type="math_number" id="@%EYfsax/p;A)q`)hC.4">
                              <field name="NUM">4</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="ADD1">
                        <block type="text_newline" id="lm^v[B.mK$Y8R%-RlkQM">
                          <field name="Type">\n</field>
                        </block>
                      </value>
                      <value name="ADD2">
                        <block type="text_getSubstring" id="]#e3|Hp3+cw!WD]-Xc(W">
                          <mutation at1="true" at2="true"></mutation>
                          <field name="WHERE1">FROM_START</field>
                          <field name="WHERE2">FROM_END</field>
                          <value name="STRING">
                            <block type="get_value" id="!]XNr@K=51ku7+3a*DsO">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Klima_Zeitsteuerung.OG_WZ.Timerbereich_1.Mo.1_Abschnitt.Startzeit</field>
                            </block>
                          </value>
                          <value name="AT1">
                            <block type="math_number" id="KiUd%}}~yH^%ID[Z-2(~">
                              <field name="NUM">4</field>
                            </block>
                          </value>
                          <value name="AT2">
                            <block type="math_number" id="j$gbYJcrz)!QV58{oUxw">
                              <field name="NUM">0</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      
      paul53 1 Reply Last reply Reply Quote 0
      • DJMarc75
        DJMarc75 last edited by

        @mika-0
        Prinzip:

        Screenshot 2023-12-22 111544.png

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

          @mika-0 sagte: richtige Uhrzeit aufgespalten in Stunde: Bsp. 10 und Minute: 55

          Stimmt die Zeitzone im OS, unter dem ioBroker läuft? Was ergibt rechts im Log?

          Blockly_Zeitzone.JPG

          @djmarc75 sagte in Cron aus DP:

          Prinzip:

          Bei diesem Prinzip muss vor 10 Uhr eine führende 0 eingegeben werden. Ich bevorzuge die Array-Version:

          Blockly_temp.JPG

          M 1 Reply Last reply Reply Quote 2
          • M
            Mika 0 @paul53 last edited by Mika 0

            @paul53 Hi Paul, Debug result akt. Zeit als SS:mm

            22.12.2023, 11:52:56.769	[info ]: javascript.0 (1603) Stop script script.js.Klimaanlagen.OG_WZ.Lösch
            22.12.2023, 11:53:01.404	[info ]: javascript.0 (1603) Start javascript script.js.Klimaanlagen.OG_WZ.Lösch
            22.12.2023, 11:53:01.436	[info ]: javascript.0 (1603) script.js.Klimaanlagen.OG_WZ.Lösch: 11:53
            22.12.2023, 11:53:01.436	[info ]: javascript.0 (1603) script.js.Klimaanlagen.OG_WZ.Lösch: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
            22.12.2023, 11:53:03.169	[info ]: javascript.0 (1603) Stop script script.js.Klimaanlagen.OG_WZ.Lösch
            

            Die Idee von @DJMarc75 hat leider nicht funktioniert. Null habe ich so vorne dran gesetzt, geht aber trotzdem nicht. Vielleicht habe ich das auch falsch kreiert.
            2408e3cb-a24e-4597-8e20-1331f1b218c0-image.png

            BTW: Händisch gehts:
            922da7d9-654d-442a-895e-1fd064f6e6b9-image.png

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

              @mika-0 sagte: akt. Zeit als SS:mm

              Dann stimmt schon mal die Zeitzone.

              @mika-0 sagte in Cron aus DP:

              Null habe ich so vorne dran gesetzt, geht aber trotzdem nicht.

              Mit "011" kann CRON sicherlich nichts anfangen.

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

                @paul53 aber mit 11 so wie es sich zeigt ja auch nichts.

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

                  @mika-0
                  Wenn es mit String-Zerlegung sein soll, dann versuche es mal so:

                  Blockly_temp.JPG

                  1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active last edited by haus-automatisierung

                    Da das Thema hier immer wieder aufkommt, wird es mal Zeit für eine Funktion in JS/Blockly:

                    scheduleById('0_userdata.0.myTime', async () => {
                      console.log('test');
                    });
                    

                    bzw.

                    Screenshot 2023-12-22 at 13.35.28.png

                    Unterstütze Formate für den Wert sind: HH:MM:SS und HH:MM. Der Zeitplan wird beim Start des Scripts registriert und entsprechend aktualisiert, falls sich der Wert ändert.

                    Mein größtes Problem aktuell: Ein toller Name für den Block 🙂 Vorschläge?

                    paul53 DJMarc75 3 Replies Last reply Reply Quote 0
                    • paul53
                      paul53 @haus-automatisierung last edited by paul53

                      @haus-automatisierung sagte: Unterstütze Formate für den Wert sind: HH:MM:SS und HH:MM.

                      Nicht auch "H:MM" und "H:MM:SS"?

                      haus-automatisierung 1 Reply Last reply Reply Quote 0
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @paul53 last edited by haus-automatisierung

                        @paul53 sagte in Cron aus DP:

                        Nicht auch "H:MM" und "H:MM:SS"?

                        Doch, klar, hab die Doku mal angepasst. Da schaut ja sicher jeder als erstes - haha...

                        https://github.com/ioBroker/ioBroker.javascript/blob/9af1aeb1c927a9f3a978f84a6eef78cbec0b9f6a/lib/sandbox.js#L1650-L1651

                        1 Reply Last reply Reply Quote 0
                        • DJMarc75
                          DJMarc75 @haus-automatisierung last edited by

                          @haus-automatisierung sagte in Cron aus DP:

                          Vorschläge?

                          Da ich eigentlich nur im Studio oder in der Küche kreativ bin gebe ich aber trotzdem mal meinen Senf dazu:
                          "Zeitplan aus Zustandswert" 😉

                          Frage:

                          Ich muss im Moment noch Datenpunkte mit Werten wie z.B.

                          2023-12-22T20:00:00+01:00
                          

                          für meine Crons "zerlegen".

                          Ob man solche Werte auch einbauen kann ?

                          haus-automatisierung 1 Reply Last reply Reply Quote 0
                          • haus-automatisierung
                            haus-automatisierung Developer Most Active @DJMarc75 last edited by haus-automatisierung

                            @djmarc75 sagte in Cron aus DP:

                            Ich muss im Moment noch Datenpunkte mit Werten wie z.B.

                            Naja, was soll das für eine Angabe sein? Einmaliger Trigger? Ist ja eine genaue Zeitangabe. Wenn Du soetwas machen willst, nimmt halt n Alias mit einer Lese-Funktion, welche das Datum in das Format umwandelt:

                            ((v) => { const d = new Date(v); return `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`; })(val)
                            

                            oder so ist vllt. eleganter:

                            ((d) => `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`)(new Date(val))
                            
                            1 Reply Last reply Reply Quote 1
                            • paul53
                              paul53 @haus-automatisierung last edited by

                              @haus-automatisierung sagte: Vorschläge?

                              Zeitplan aus Uhrzeit-DP

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

                                @paul53 Boa also erstmal danke, dass ihr euch meinem Leid annehmt. Das ist ne harte Nuss.
                                Stunde geht aus Datenpunkt oder aus Teil einer Uhrzeit Bsp: 17:10 (die ersten 2 Buchstaben nimmt der an)
                                Minute geht ums verrecken nicht. Bisher nur mit Blockly Textfeld mit den Minuten direkt eintragen. Anders bekomme ich keinen Trigger.

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

                                  @mika-0 sagte: Minute geht ums verrecken nicht.

                                  Hast du es mal so versucht wie hier vorgeschlagen?

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

                                    @paul53 Ja. Aber nicht zuverlässig. Manchmal Ja, manchmal nein. Wenn ich die Zeit im Datenpunkt setze und dann dieses Skript neu restarte, geht es. Aber nur dann.

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

                                      @mika-0 sagte: dieses Skript neu restarte, geht es. Aber nur dann.

                                      Das ist so, wenn man keinen Trigger auf den sich ändernden Datenpunkt hat. Damit man nur einen Zeitplan benötigt, muss man ihn in eine Funktion packen.

                                      Blockly_temp.JPG

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

                                        @paul53 Sorry, für Blockly habe ich leier keinen Doktor Titel 😊

                                        DANKE!!!!!!! Es funktioniert. Jetzt löst der Trigger.

                                        Ich hatte das leider nicht verstanden, dass dies eine Möglichkeit wäre und dachte, das hat was mit der führenden 0 zu tun.

                                        @haus-automatisierung Dann wäre ja @paul53 Variante für den Verbesserungsvorschlag die Lösung.

                                        haus-automatisierung 1 Reply Last reply Reply Quote 0
                                        • haus-automatisierung
                                          haus-automatisierung Developer Most Active @Mika 0 last edited by

                                          @mika-0 sagte in Cron aus DP:

                                          @haus-automatisierung Dann wäre ja @paul53 Variante für den Verbesserungsvorschlag die Lösung.

                                          Mh? Genau das macht die Funktion/der neue Baustein dann ja alles für Dich. Wie vor über 3 Jahren hier erklärt: https://youtu.be/Of2C8F_n11U?si=7fowoH9OxVocTJLf&t=990 🙂

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            Mika 0 @haus-automatisierung last edited by

                                            @haus-automatisierung Alles klar nochmals vielen Dank euch.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            826
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            20
                                            710
                                            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