Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. GELÖST: Hat Blockly einen eigenen "internen" Timer, Skripte laufen zeitlich unsauber

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    886

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.4k

GELÖST: Hat Blockly einen eigenen "internen" Timer, Skripte laufen zeitlich unsauber

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
13 Beiträge 5 Kommentatoren 1.3k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D Offline
    D Offline
    den21
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich verzweifel langsam. Ich habe ein Skript um meine Waschmaschine mittels Homematic Steckdose "SMART" zu machen.

    Bin noch am Anfang und wollte erstmal testen, dass dieses für mich einfache Skript sauber läuft. Es soll alle 60 Sekunden geschaut werden, ob an der Steckdose weniger als 10 Watt verbraucht werden, wenn das so ist soll die Steckdose ausgehen.
    3331_2.jpg
    Gemäß meinem Verständnis startet das Skript mit der Erkennung, dass sich der Stromverbrauch an der Dose aktualisiert hat. Bedeutet wenn ich die Steckdose mittels angeschaltetem Fön anmache und dann den Fön synchron mit dem Start einer Stoppuhr ausmache, sollte die Steckdose ab diesem Moment frühestens in 60 Sekunden ausgehen.

    Das Problem ist, dass die Dose immer unterschiedlich ausgeht, mal nach 35 Sekunden, mal nach der eingestellten Minute.

    1 Antwort Letzte Antwort
    0
    • Jeeper.atJ Offline
      Jeeper.atJ Offline
      Jeeper.at
      schrieb am zuletzt editiert von
      #2

      Warum nicht so?

      Trigger: Wert der Steckdose hat sich geändert.

      Falls Abfrage: Wert kleiner 10W dann steuere Dose aus.

      Das Intervall kannst du dir sparen.

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        den21
        schrieb am zuletzt editiert von
        #3

        Hi und danke. Ja das mit dem Zustand der Steckdose macht mehr Sinn. Das Intervall ist für den weiteren Verlauf wichtig. Ohne das Intervall würde die Steckdose sonst sofort ausgehen, sofern kein Stromverbraucher aktiv ist.

        Ich möchte dieses Skript erweitern, um damit eine Waschmaschine "SMART" zu machen. Und wenn die fertig ist, soll die Steckdose nach einer bestimmten Zeit ausgehen.

        1 Antwort Letzte Antwort
        0
        • K Online
          K Online
          Kueppert
          schrieb am zuletzt editiert von
          #4

          Hm… Ich erinnere mich, dass es so ein Thema schon gibt. Homoran hat da auch rumgemacht bei dem Thema...

          Schon Mal Waschmaschine gesucht hier im Forum? ;)

          Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

          UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            den21
            schrieb am zuletzt editiert von
            #5

            Ja habe ich, deswegen wollte ich zu beginn auch nicht von dem eigentlich Hintergrund schreiben, denn dieser "Fehler" ist ja unabhängig der eigentlich AUfgabe mit der Waschmaschine. Wenn ich dort einstelle "starte das script in 60 Sekunden" kann/darf es nicht schon nach 35 Sekunden ausgehen, also die Steckdose oder wie siehst du das?

            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              den21
              schrieb am zuletzt editiert von
              #6

              3331_3.jpg

              Hier sollte es doch eigentlich so sein, dass alles 20 Sekunden die Variable um +1 erhöht wird. Fakt ist aber, dass die Steckdose bereits nach knapp 40 sekunden ausgeht….. verstehe das nicht.

              Die Zeiten sollen später übrigens erhöht werden. Statt der 20 sekunden, soll das ganze alle 2 minuten durchlaufen und dann auch immer über alexa eine Info ausgeben. Nur zu testen habe ich halt deutlich kürzere Zeiten gewählt, nur zur Info.

               <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="+!|Z#=/kIF6;1Q^J7Vgf" x="-1913" y="-313"><mutation items="1"></mutation>
                  <field name="CONDITION">true</field>
              
                  <value name="OID0"><shadow type="field_oid" id="oC(]-VHJ!v,ga16gj99i"><field name="oid">hm-rpc.0.LTK0122793.1.STATE</field></shadow></value> 
                  <statement name="STATEMENT"><block type="update" id="H;u@B,|;U`K4]V9b`Suo"><mutation delay_input="false"></mutation>
                      <field name="OID">Meine.Geräte.Waschmaschine_Info_</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE"><block type="logic_boolean" id="mnW.p3QWb*DxC;h!YhJH"><field name="BOOL">FALSE</field></block></value> 
                      <next><block type="update" id="MBv~*~rur2|gsSmRtumQ"><mutation delay_input="false"></mutation>
                          <field name="OID">Meine.Geräte.Waschmaschine_Timer_</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE"><block type="math_number" id="4qcKGhW?ZZZf@4PS*D*k"><field name="NUM">1</field></block></value> 
                          <next><block type="timeouts_setinterval" id="W1^upAga%Px`nE[8uy{*"><field name="NAME">intervall</field>
                              <field name="INTERVAL">15</field>
                              <field name="UNIT">sec</field>
                              <statement name="STATEMENT"><block type="controls_if" id="y26Ytf1v87=67G`DyLDq"><value name="IF0"><block type="logic_compare" id="?kQ]LXf0E7ELud+g0RJs"><field name="OP">LT</field>
                                      <value name="A"><block type="get_value" id="0,Pi)_jH?hScf}4+K4og"><field name="ATTR">val</field>
                                          <field name="OID">hm-rpc.0.LTK0122793.2.POWER</field></block></value> 
                                      <value name="B"><block type="math_number" id="qzu8R;-lqmq(ve,G2EOv"><field name="NUM">10</field></block></value></block></value> 
                                  <statement name="DO0"><block type="update" id="P@)jNNMW;5Q`@g*?zjr6"><mutation delay_input="false"></mutation>
                                      <field name="OID">Meine.Geräte.Waschmaschine_Info_</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="logic_boolean" id=")#.7--9(~~J;El5lS*pg"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></next></block></next></block></statement> 
                  <next><block type="on" id="|.*0TYk.^wt{Sgyypc)l"><field name="OID">Meine.Geräte.Waschmaschine_Info_</field>
                      <field name="CONDITION">any</field>
                      <field name="ACK_CONDITION">true</field>
                      <statement name="STATEMENT"><block type="timeouts_setinterval" id="r~S4=UDY5^IET9%?7q#M"><field name="NAME">Intervall2</field>
                          <field name="INTERVAL">20</field>
                          <field name="UNIT">sec</field>
                          <statement name="STATEMENT"><block type="controls_if" id="f5.~|i64/8-|B_BDP=RP"><value name="IF0"><block type="logic_operation" id="R+0=ydlkTOn?;=VdBwv!"><field name="OP">AND</field>
                                  <value name="A"><block type="logic_compare" id="FR*bI/1w4MeMQ]X-vP6]"><field name="OP">EQ</field>
                                      <value name="A"><block type="get_value" id="=.;su`B=*%||gZ)2GD)2"><field name="ATTR">val</field>
                                          <field name="OID">Meine.Geräte.Waschmaschine_Info_</field></block></value> 
                                      <value name="B"><block type="logic_boolean" id="[)-wPK1?1T9JNeG-BA!}"><field name="BOOL">TRUE</field></block></value></block></value> 
                                  <value name="B"><block type="logic_compare" id="Z%AUk6!8G0b/F=BtLe0]"><field name="OP">EQ</field>
                                      <value name="A"><block type="get_value" id="N_pep`2{g7NcNg8;lr:%"><field name="ATTR">val</field>
                                          <field name="OID">hm-rpc.0.LTK0122793.1.STATE</field></block></value> 
                                      <value name="B"><block type="logic_boolean" id=",6/CPoKF9,~[P[L(ja^|"><field name="BOOL">TRUE</field></block></value></block></value></block></value> 
                              <statement name="DO0"><block type="update" id="Ro2}?3Y[H86Xf=[Txu2W"><mutation delay_input="false"></mutation>
                                  <field name="OID">Meine.Geräte.Waschmaschine_Timer_</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE"><block type="math_arithmetic" id="|ibM%OaC0^d:(~@a`U[P"><field name="OP">ADD</field>
                                      <value name="A"><shadow type="math_number" id="35vnqY_;fJQYA)Vfk1!^"><field name="NUM">1</field></shadow> 
                                        <block type="get_value" id="1MXYZHfe`RV9LnI;,Il0"><field name="ATTR">val</field>
                                          <field name="OID">Meine.Geräte.Waschmaschine_Timer_</field></block></value> 
                                      <value name="B"><shadow type="math_number" id="@rnbRGrLMmH(=:*M3Rm7"><field name="NUM">1</field></shadow></value></block></value></block></statement></block></statement></block></statement> 
                      <next><block type="on" id="W=5sfW@[Q5HlSqgAD7]^"><field name="OID">Meine.Geräte.Waschmaschine_Timer_</field>
                          <field name="CONDITION">gt</field>
                          <field name="ACK_CONDITION">true</field>
                          <statement name="STATEMENT"><block type="controls_if" id="#C@cN)p#[^)^,[zH7|]R"><value name="IF0"><block type="logic_compare" id="FQ%%}e*T^.-,589gLO9l"><field name="OP">GT</field>
                                  <value name="A"><block type="get_value" id="`,[A9pHcEftIA@K.4ocR"><field name="ATTR">val</field>
                                      <field name="OID">Meine.Geräte.Waschmaschine_Timer_</field></block></value> 
                                  <value name="B"><block type="math_number" id="sU!m%F,woLNX!%Fxs?7V"><field name="NUM">4</field></block></value></block></value> 
                              <statement name="DO0"><block type="control" id="CvU{NGwD~Mn%1pQk8S@F"><mutation delay_input="false"></mutation>
                                  <field name="OID">hm-rpc.0.LTK0122793.1.STATE</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE"><block type="logic_boolean" id="4FZ}^kP2yqZw=q5Y`da,"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement></block></next></block></next></block></xml> 
              
              1 Antwort Letzte Antwort
              0
              • K Online
                K Online
                Kueppert
                schrieb am zuletzt editiert von
                #7

                Ich bin mir nicht sicher, aber ich glaube, wenn mehrmals innerhalb deines Intervall getriggert wird, laufen mehrere Intervalle parallel. Gibt es den Block "Stop Intervall"? Den würde ich vor deinen Intervall Block setzen um das zu verhindern…

                Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                1 Antwort Letzte Antwort
                0
                • umbmU Offline
                  umbmU Offline
                  umbm
                  schrieb am zuletzt editiert von
                  #8

                  @den21:

                  Das Problem ist, dass die Dose immer unterschiedlich ausgeht, mal nach 35 Sekunden, mal nach der eingestellten Minute. `

                  Das mit dem fehlenden Stop für den 60-Sekunden-Intervall sehe ich auch so

                  Bedeutet:

                  Jedesmal, wenn sich der Trigger auslöst, startet ein NEUER ZUSÄTZLICHER Intervall unter gleichem Namen und der vorherige bleibt aktiv, so dass du letztendlich x Intervalle endlos zu laufen hast, die sich überlagern.

                  Also bevor du einen Intervall startest, setze einen Stop-Block für den Intervall mit dem gleichen Namen des darauffolgenden Interval-Blocks.

                  1 Antwort Letzte Antwort
                  0
                  • DutchmanD Offline
                    DutchmanD Offline
                    Dutchman
                    Developer Most Active Administrators
                    schrieb am zuletzt editiert von
                    #9

                    Du startest verschiedene Intervalle und stopst diese nie das wird so nicht klappen.

                    Schau dir doch Mal die Vorlage vom blockly Waschmaschinen Script an, was du vor hast macht man mit Timern die auch angehalten werden müssen.

                    Sent from my iPhone using Tapatalk

                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      den21
                      schrieb am zuletzt editiert von
                      #10

                      Macht absolut Sinn was ihr schreibt… habe es mal wie folgt angepasst. Es geht nun deutlich besser, wobei der Wert für den Timer nicht alle 20 Sekunden um +1 erhöht wird, sondern schneller.....

                      3331_4.jpg

                      1 Antwort Letzte Antwort
                      0
                      • D Offline
                        D Offline
                        den21
                        schrieb am zuletzt editiert von
                        #11

                        Problem ist gelöst! da ich das Intervall falsch beendet habe, ist der True Wert von der Variable Waschmaschine_Info_ alle paar Sekunden aktualisiert worden…. Dadurch passte es dann auch mit den weiteren Position nicht. Damit klappt es nun:

                        3331_5.jpg

                        Danke euch nochmal für die Hilfe/Impulse.

                        1 Antwort Letzte Antwort
                        0
                        • DutchmanD Offline
                          DutchmanD Offline
                          Dutchman
                          Developer Most Active Administrators
                          schrieb am zuletzt editiert von
                          #12

                          Ich finde den Aufbau persönlich noch sehr verwirrend und ich verstehe nicht warum du Intervalle benutzt und hochzählst

                          Sent from my iPhone using Tapatalk

                          1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            den21
                            schrieb am zuletzt editiert von
                            #13

                            Gerne bin ich für Vereinfachungen offen ;)

                            Oben schaut er alle 5 Minuten nach, ob der Verbrauch an der Dose unter 10 Watt ist. Irgendwann muss die Waschmaschine ja fertig sein.

                            In der Mitte möchte ich dann 4 x alle 5 Minuten an die fertige Waschmaschine erinnert werden.

                            Aktuell weiß ich mir da nicht anders zu helfen als mit 2 Intervallen.

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            798

                            Online

                            32.5k

                            Benutzer

                            81.6k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe