Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. (ERLEDIGT) einfaches Blockly Skript zum neustarten über Sonoff POW und Basic

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

(ERLEDIGT) einfaches Blockly Skript zum neustarten über Sonoff POW und Basic

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
25 Beiträge 4 Kommentatoren 3.7k 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.
  • H Offline
    H Offline
    high_voltage
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich hätte gerne ein Funktionierendes Skript zum Neustarten von Geräten

    Folgendes soll passieren

    wenn der Wert von DVES_264875 ENERGY POWER unter 1200W fällt und dieser 3 min dort bleibt

    soll Adapter DVES_B4B3F7 POWER auf unwahr geschaltet werden und nach 40 sek wieder gestart werden.

    leider bekomme ich es nicht hin.

    könnte mir jemand helfen?

    Das hier ist mein nicht funktionierender Versuch
    3686_steuerung_sonoff.jpg

    1 Antwort Letzte Antwort
    0
    • H Offline
      H Offline
      high_voltage
      schrieb am zuletzt editiert von
      #2

      hat jemand für mich einen Tipp,

      oder ein ähnliches skript als Beispiel - an dem ich mich orientieren kann?

      besten Dank

      1 Antwort Letzte Antwort
      0
      • G Offline
        G Offline
        Gringo
        schrieb am zuletzt editiert von
        #3

        Hallo,

        das Blockly kann rein von der Logik nicht funktionieren.

        Du triggerst auf "POWER" somit bekommt das Blockly nur das schalten des Sonoff mit, in deinem Fall sollte zusätzlich auf "Power" getriggert werden. Davon abgesehen ergibt das Blockly für mich überhaupt keinen Sinn und wird auch durch das Austauschen des Datenpunktes nicht funktionieren.Viele Wege führen nach Rom, hier einer davon.

        Wenn Sonoff an und Watt kleiner 1200 Watt

        Starte Timer (3 min.)

        Timer Ende - Ist Watt immer noch kleiner als 1200 Watt

        Sonoff Ausschalten und Timer (40 sek.) starten

        Timer Ende - Sonoff einschalten

        Gruß

        HP G8 ProLiant MicroServer, Ubuntu 16.04, Docker, Dockercontainer (ioBroker, fhem, smartVisu, Asterisk, Unifi Controller)

        DoorPi, nanoCUL 868 (Eigenbau), JeeLink/LaCrosse (Eigenbau), HM Homebrew, Ultraschall Anemometer (Eigenbau)

        1 Antwort Letzte Antwort
        0
        • H Offline
          H Offline
          high_voltage
          schrieb am zuletzt editiert von
          #4

          @Gringo:

          Hallo,

          das Blockly kann rein von der Logik nicht funktionieren.

          Du triggerst auf "POWER" somit bekommt das Blockly nur das schalten des Sonoff mit, in deinem Fall sollte zusätzlich auf "Power" getriggert werden. Davon abgesehen ergibt das Blockly für mich überhaupt keinen Sinn und wird auch durch das Austauschen des Datenpunktes nicht funktionieren.Viele Wege führen nach Rom, hier einer davon.

          Wenn Sonoff an und Watt kleiner 1200 Watt

          Starte Timer (3 min.)

          Timer Ende - Ist Watt immer noch kleiner als 1200 Watt

          Sonoff Ausschalten und Timer (40 sek.) starten

          Timer Ende - Sonoff einschalten

          Gruß `

          Danke für den guten Hinweis,

          wie würde diese Passage im Blocky aussehen?

          Starte Timer (3 min.)

          Timer Ende - Ist Watt immer noch kleiner als 1200 Watt

          Sonoff Ausschalten und Timer (40 sek.) starten

          grüße
          3686_2steuerung_sonoff.jpg

          1 Antwort Letzte Antwort
          0
          • G Offline
            G Offline
            Gringo
            schrieb am zuletzt editiert von
            #5

            Ich denke du weißt noch nicht wie ein Timer funktioniert, unter folgenden Link findest du einen.

            http://forum.iobroker.net/viewtopic.php … own#p63514

            Versuche zu verstehen wie er funktioniert, bei Fragen nur fragen

            Gruß

            HP G8 ProLiant MicroServer, Ubuntu 16.04, Docker, Dockercontainer (ioBroker, fhem, smartVisu, Asterisk, Unifi Controller)

            DoorPi, nanoCUL 868 (Eigenbau), JeeLink/LaCrosse (Eigenbau), HM Homebrew, Ultraschall Anemometer (Eigenbau)

            1 Antwort Letzte Antwort
            0
            • H Offline
              H Offline
              high_voltage
              schrieb am zuletzt editiert von
              #6

              @Gringo:

              Ich denke du weißt noch nicht wie ein Timer funktioniert, unter folgenden Link findest du einen.

              http://forum.iobroker.net/viewtopic.php … own#p63514

              Versuche zu verstehen wie er funktioniert, bei Fragen nur fragen

              Gruß `

              Hi, irgenwie stehe ich da voll auf dem Schlauch,

              es ist wohl ziemlich unhöflich nach einen Beispiel zu fragen mit meinen timing Daten, so dass ich es verstehen und nachvollziehen kann,

              möchte es gerne lernen, brauche hier offenbar wohl mehr Unterstützung.

              Danke und viele Grüße

              Thomas

              1 Antwort Letzte Antwort
              0
              • MatzebhvM Offline
                MatzebhvM Offline
                Matzebhv
                schrieb am zuletzt editiert von
                #7

                Hi, wo denn?

                dein zuletzt gepostetes Blockly ist doch voll in Ordnung so.

                Gruß

                Matze

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  high_voltage
                  schrieb am zuletzt editiert von
                  #8

                  @Matzebhv:

                  Hi, wo denn?

                  dein zuletzt gepostetes Blockly ist doch voll in Ordnung so.

                  Gruß

                  Matze `

                  Hallo Matze,

                  leider nicht ganz,

                  weil abschalten läuft einwandfrei aber wieder neu starten funktioniert nicht.

                  Es scheint so als käme der Abschaltbefehl immer wieder und der Neustartbefehl wird blockiert.

                  Grüße

                  1 Antwort Letzte Antwort
                  0
                  • MatzebhvM Offline
                    MatzebhvM Offline
                    Matzebhv
                    schrieb am zuletzt editiert von
                    #9

                    Hi Thomas,

                    erzähl ein wenig mehr über das Konstrukt. Soll der Verbraucher dauerhaft an sein? Was steckt dahinter, bzw. was wiillst du errreichen.

                    Gruß

                    Matze

                    1 Antwort Letzte Antwort
                    0
                    • H Offline
                      H Offline
                      high_voltage
                      schrieb am zuletzt editiert von
                      #10

                      @Matzebhv:

                      Hi Thomas,

                      erzähl ein wenig mehr über das Konstrukt. Soll der Verbraucher dauerhaft an sein? Was steckt dahinter, bzw. was wiillst du errreichen.

                      Gruß

                      Matze `

                      Hallo Matze,

                      dahinter steckt ein Server, der dauerhaft ansein soll, nur leider hängt er sich von Zeit zu zeit auf.

                      Allerdings möcht ich diesen nicht immer im Auge behalten so wie jetzt – fast vollzeit Job.

                      daher dacht ich ich könnte einfach den Stromverbrauch nutzen um zu sehen wann der Server sich aufhängt - Strom uner 1000W.

                      Also war meine Logik Stom unter 1000W gleich , ausschalten und 40 sek warten und neustarten.

                      Aber es funktioniert leider nicht.

                      Brauche leider wirklich hilfe.

                      Danke und gruß

                      Thomas

                      1 Antwort Letzte Antwort
                      0
                      • MatzebhvM Offline
                        MatzebhvM Offline
                        Matzebhv
                        schrieb am zuletzt editiert von
                        #11

                        Hi,

                        Autsch. Du killst die Maschine dann über ausschalten? Das ist aber echt böse für das Dateisystem. Ganz davon ab, dass du den Server fixen solltest ( wir haben bei uns im RZ ca. 600 Stück die alle 24x7x365 laufen ) würde ich das ganz anders angehen wenn das schon so hart sein soll.

                        Vermutlich reagiert das System bei Crash nicht mehr auf Ping. Den würd ich überwachen und dann neu starten. Dabei das Timing beachten, je nachdem wie schnell der Server wieder oben ist. Aber nochmal, das sollte nicht die Lösung deines Problems sein.

                        Matze

                        1 Antwort Letzte Antwort
                        0
                        • G Offline
                          G Offline
                          Gringo
                          schrieb am zuletzt editiert von
                          #12

                          Ich hätte mir so einiges vorstellen können was du schalten willst. Aber einen Server?

                          Dieses Problem mit ioBroker zu lösen würde ich gleich streichen. Versuche den Fehler am Server zu finden.

                          Welchen Server bzw. welches Betriebssystem hast du darauf laufen?

                          Crash Logs oder ähnliches mal angesehen?

                          Irgendwelche Software oder Treiber zuvor installiert?

                          Gruß

                          HP G8 ProLiant MicroServer, Ubuntu 16.04, Docker, Dockercontainer (ioBroker, fhem, smartVisu, Asterisk, Unifi Controller)

                          DoorPi, nanoCUL 868 (Eigenbau), JeeLink/LaCrosse (Eigenbau), HM Homebrew, Ultraschall Anemometer (Eigenbau)

                          1 Antwort Letzte Antwort
                          0
                          • MatzebhvM Offline
                            MatzebhvM Offline
                            Matzebhv
                            schrieb am zuletzt editiert von
                            #13

                            Noch eine weitere Frage, was ist das denn für eine Hardware, ich habe die 1,2kW doch richtig gelesen, oder? Das ist kompletter Irrsinn für einen Server. Nochmal zum Vergleich: unsere beiden Rechenzentren verbraten ca. 30kW. Wir reden hier aber wieder über 600 virtuelle Server incl. der zugehörigen Storage-Systemen, Switche, usw. Die hälfte davon geht alleine für die Klimatisierung drauf. Rechne das mal auf einen Server runter.

                            Du solltest dir Gedanken um deine Hardware machen.

                            Matze

                            1 Antwort Letzte Antwort
                            0
                            • H Offline
                              H Offline
                              high_voltage
                              schrieb am zuletzt editiert von
                              #14

                              Ja ihr habt alle vollkommen RECHT,

                              p.s. es hängt noch eine Elektro Heizung mit an dem Sonoff POW.

                              genau dahin geht die Überlegung und wird auch sehr bald gewechselt.

                              Allerdings wird es noch ein wenig Zeit in Anspruch nehmen,

                              auf Ping´s reagiert er noch.

                              Eine bessere Lösung wäre warcheinlich an die Grundursache zu gehen….

                              übergangsweise würde ich es gerne so machen wie beschrieben,

                              auserdem möchte ich gerne dazulernen was das Blocky angeht,

                              ich möchte sehen das es eine Schaltung gibt die auch Funktioniert.

                              Grüße

                              P.S. danke für euer Interesse und Euer Mitdenken

                              1 Antwort Letzte Antwort
                              0
                              • G Offline
                                G Offline
                                Gringo
                                schrieb am zuletzt editiert von
                                #15

                                Na gut.

                                Der Sonoff soll abgeschaltet werden wenn die Watt Aufnahme 3 min. unter 1200 liegt. Als erstes muss geprüft werden ob der Sonoff überhaupt eingeschaltet ist, erst dann wird geprüft ob der Grenzwert von 1200 Watt unterschritten wurde und zusätzlich wird kontrolliert ob der Timer nicht schon läuft. Sonst würde bei jedem unterschrittenen Wert nachgetriggert werden.

                                Dann kommt der Timer Start, im ersten Teil werden einfach die Sekunden bis 1 runtergezählt. Im zweiten Teil wird der Timer gestoppt, die Variablen zurückgesetzt und noch mal geprüft ob der Wert unter 1200W liegt. Ist das der Fall wird der Server abgeschaltet. Wenn nicht beginnt das Spiel beim nächsten unterschreiten von vorne. Über die Objekt ID Ausschalt-Timer kann die Zeit verändert werden, stattdessen kannst auch eine lokale Variable nehmen.

                                Hier mal der erste Teil des Blockly.
                                4173_1.png
                                und der Export:

                                 <xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id="+rNs2_[WLtIK+J000;cy" x="438" y="-488"><field name="NAME">Ausschalt-Timer</field>
                                    <statement name="STATEMENT"><block type="control" id="TGFP23nmbX*PLiFLFUcc"><mutation delay_input="false"></mutation>
                                        <field name="OID">javascript.0.Ausschalt-Timer</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="math_number" id="zHDB0~1UkxBe6C#Ks]91"><field name="NUM">180</field></block></value></block></statement></block> 
                                  <block type="on_ext" id="d0[YYdZDI{r2(i+^H~6k" x="37" y="-387"><mutation items="2"></mutation>
                                    <field name="CONDITION">ne</field>
                                
                                    <value name="OID0"><shadow type="field_oid" id="11:L)kD)[Xz/sF5_V-8y"><field name="oid">javascript.0.POWER</field></shadow></value> 
                                    <value name="OID1"><shadow type="field_oid" id="Gk}XYRPCPj`O--0QOVPT"><field name="oid">javascript.0.Power</field></shadow></value> 
                                    <statement name="STATEMENT"><block type="controls_if" id="TIxyAkFg}uIhrY9iA-3q"><value name="IF0"><block type="logic_operation" id="SS`D8[tFc~.5lJ}pXrb+"><field name="OP">AND</field>
                                            <value name="A"><block type="logic_compare" id="`BP2G-CVuhmn_/M%)1mt"><field name="OP">EQ</field>
                                                <value name="A"><block type="get_value" id="(hK5:JxBE1_4C4B]@@n."><field name="ATTR">val</field>
                                                    <field name="OID">javascript.0.POWER</field></block></value> 
                                                <value name="B"><block type="text" id="2BIj0k2mGvNg1.w}Gnd/"><field name="TEXT">ON</field></block></value></block></value> 
                                            <value name="B"><block type="logic_operation" id="@;nN5Lfhr?mCTkq8:I_f"><field name="OP">AND</field>
                                                <value name="A"><block type="logic_compare" id="8kZq*60w-M-fT@%B{Y2N"><field name="OP">LT</field>
                                                    <value name="A"><block type="get_value" id="`kczcX0[4W#a2}O:/F7g"><field name="ATTR">val</field>
                                                        <field name="OID">javascript.0.Power</field></block></value> 
                                                    <value name="B"><block type="math_number" id="^Q=X6j3{eQChA2KG2@t5"><field name="NUM">1200</field></block></value></block></value> 
                                                <value name="B"><block type="logic_compare" id="5i/u:oMcC+*`+:0kz9j*"><field name="OP">EQ</field>
                                                    <value name="A"><block type="variables_get" id="u8PqlwOo=HTT7]S?-Kod"><field name="VAR">Ausschalt-Timer_Läuft</field></block></value> 
                                                    <value name="B"><block type="logic_boolean" id="{@4Q,[1+f]MHo:wy6DWw"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value> 
                                        <statement name="DO0"><block type="variables_set" id="G-wIq!.8wFM{V(g?3=:C"><field name="VAR">Ausschalttimer</field>
                                            <value name="VALUE"><block type="get_value" id="~X3G8?ulMw3j@W5WBjt@"><field name="ATTR">val</field>
                                                <field name="OID">javascript.0.Ausschalt-Timer</field></block></value> 
                                            <next><block type="variables_set" id="xtqQc]UnX~!rh8`e~y;C"><field name="VAR">Ausschalt-Timer_Läuft</field>
                                                <value name="VALUE"><block type="logic_boolean" id="`!1w687=kr(,y43C4=qo"><field name="BOOL">TRUE</field></block></value> 
                                                <next><block type="comment" id="~cY/H}o*lM.x]pK3-){W"><field name="COMMENT">Start des 3 min. Timer</field>
                                                    <next><block type="timeouts_setinterval" id="x8vKvTFOk4wOwp57~V[K"><field name="NAME">Intervall</field>
                                                        <field name="INTERVAL">1000</field>
                                                        <field name="UNIT">ms</field>
                                                        <statement name="STATEMENT"><block type="controls_if" id="9MSPE7t[bpiJ0Clb=W@,"><mutation else="1"></mutation>
                                                            <value name="IF0"><block type="logic_compare" id="j8;VC?t-vt!BBtoL}N:O"><field name="OP">GT</field>
                                                                <value name="A"><block type="get_value" id="vNkwE3z8MIx7.dX=Rb``"><field name="ATTR">val</field>
                                                                    <field name="OID">javascript.0.Ausschalt-Timer</field></block></value> 
                                                                <value name="B"><block type="math_number" id="v))PArIy=.QHZVGcd}=T"><field name="NUM">1</field></block></value></block></value> 
                                                            <statement name="DO0"><block type="control" id="X:K2WV333^[y~e7cZS7i"><mutation delay_input="false"></mutation>
                                                                <field name="OID">javascript.0.Ausschalt-Timer</field>
                                                                <field name="WITH_DELAY">FALSE</field>
                                                                <value name="VALUE"><block type="math_arithmetic" id="kA.`AU:X8ek/=S[q:+r@"><field name="OP">MINUS</field>
                                                                    <value name="A"><shadow type="math_number" id="},xq`9i{e+!SJ%k![}F2"><field name="NUM">1</field></shadow> 
                                                                      <block type="get_value" id="p_Yk[i%FB*nAq|^_qdcn"><field name="ATTR">val</field>
                                                                        <field name="OID">javascript.0.Ausschalt-Timer</field></block></value> 
                                                                    <value name="B"><shadow type="math_number" id="N?h1|44Fv}yGc%b9Iz9m"><field name="NUM">1</field></shadow></value></block></value></block></statement> 
                                                            <statement name="ELSE"><block type="timeouts_clearinterval" id="CX2crcEZrpPKyj(WaNn0"><field name="NAME">Intervall</field>
                                                                <next><block type="control" id="e?Tor89N-s8TigNbdQ{t"><mutation delay_input="false"></mutation>
                                                                    <field name="OID">javascript.0.Ausschalt-Timer</field>
                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                    <value name="VALUE"><block type="math_number" id="jV-HM?`LN6yqA?IPxU6y"><field name="NUM">0</field></block></value> 
                                                                    <next><block type="controls_if" id="i;U(LK,:3*AG]7Cs[B3y"><value name="IF0"><block type="logic_compare" id="0rBeEYYqKav|-`dqI[Ti"><field name="OP">LT</field>
                                                                            <value name="A"><block type="get_value" id="*@N~e9|AT.=U^]~f@#i_"><field name="ATTR">val</field>
                                                                                <field name="OID">javascript.0.Power</field></block></value> 
                                                                            <value name="B"><block type="math_number" id="c+cbZPZyjO8bb7xLzhf^"><field name="NUM">1200</field></block></value></block></value> 
                                                                        <statement name="DO0"><block type="control" id="Sk[S,4ag_O%9P-Gy(A*)"><mutation delay_input="false"></mutation>
                                                                            <field name="OID">javascript.0.POWER</field>
                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                            <value name="VALUE"><block type="text" id="rLa35BO{Uw9.V)A::#5K"><field name="TEXT">OFF</field></block></value></block></statement> 
                                                                        <next><block type="control" id="DS0(z6u.5R(wFW[G1n[2"><mutation delay_input="false"></mutation>
                                                                            <field name="OID">javascript.0.Ausschalt-Timer</field>
                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                            <value name="VALUE"><block type="variables_get" id="6QW1Z^b_=bkB75/]xfXU"><field name="VAR">Ausschalttimer</field></block></value> 
                                                                            <next><block type="variables_set" id="?Hv(m@,+f^[=T,3q6Zpa"><field name="VAR">Ausschalt-Timer_Läuft</field>
                                                                                <value name="VALUE"><block type="logic_boolean" id="Jrw+:tz{2=V2KZ)g)H8z"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></statement></block></statement></block></next></block></next></block></next></block></statement></block></statement></block></xml> 
                                

                                Schau mal ob der Teil funktioniert wie er soll, ist ungetestet.

                                Gruß

                                HP G8 ProLiant MicroServer, Ubuntu 16.04, Docker, Dockercontainer (ioBroker, fhem, smartVisu, Asterisk, Unifi Controller)

                                DoorPi, nanoCUL 868 (Eigenbau), JeeLink/LaCrosse (Eigenbau), HM Homebrew, Ultraschall Anemometer (Eigenbau)

                                1 Antwort Letzte Antwort
                                0
                                • rantanplanR Offline
                                  rantanplanR Offline
                                  rantanplan
                                  schrieb am zuletzt editiert von
                                  #16

                                  @Gringo:

                                  Schau mal ob der Teil funktioniert wie er soll, ist ungetestet. `
                                  So auf den ersten Blick würde ich es nicht testen.

                                  Exports von Blockly bitte immer in "spoiler" UND "code" Tags.

                                  @high_voltage

                                  Im Betreff einen Hinweis auf Blockly wenn es um Blockly geht hilft enorm gefunden zu werden.

                                  Grüße

                                  Rantanplan

                                  CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                  1 Antwort Letzte Antwort
                                  0
                                  • rantanplanR Offline
                                    rantanplanR Offline
                                    rantanplan
                                    schrieb am zuletzt editiert von
                                    #17

                                    Hallo high_voltage

                                    Wie schon andere geschrieben haben solltest für den Server schnellstens eine andere Lösung finden.

                                    Mein Vorschlag funktioniert nur, wenn der Server beim Einschaltvorgang nicht unter 1000 Watt geht.

                                    Wenn der Wert von Power sich komplizierter verhält, könntest Du das Waschmaschinen-Blockly "missbrauchen".

                                    Damit wird schon alles Mögliche geschaltet. Und Du würdest noch eine Meldung bekommen. 😉

                                    http://forum.iobroker.net/viewtopic.php … 34#p107896

                                    Mein Vorschlag sieht so aus (auch ungetestet)
                                    147_beispiel.png

                                    Export:

                                    ! ````
                                    <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="ASi0zzBLPExBQv(=r*~|" x="113" y="13"><field name="COMMENT">Bei Scriptstart initialisiern</field>
                                    <next><block type="variables_set" id="-5r|?q[dI^UP]K?/~LDE"><field name="VAR">TimerON</field>
                                    <value name="VALUE"><block type="logic_boolean" id="EzwRR_~P0sG#z[Hfasc"><field name="BOOL">FALSE</field></block></value>
                                    <next><block type="comment" id="7UJn[lNpU}jhM)A,Hp;{"><field name="COMMENT">Power triggern</field>
                                    <next><block type="on_ext" id="Dz:.K;Rfh
                                    Jq+/EiA:py"><mutation items="1"></mutation>
                                    <field name="CONDITION">any</field>

                                                <value name="OID0"><shadow type="field_oid" id="8hi`zwAOTB-.J3hYZ^oY"><field name="oid">default</field></shadow></value> 
                                                <statement name="STATEMENT"><block type="comment" id="AmXsjPK}{)7~v(JmWrWR"><field name="COMMENT">Wert und Timer prüfen</field>
                                                    <next><block type="controls_if" id="6hmccAUzx/j/S+[XOc(1"><value name="IF0"><block type="logic_operation" id="opEB+!t,3/J+./|Rkf=*" inline="false"><field name="OP">AND</field>
                                                            <value name="A"><block type="logic_compare" id="]om/OfjUh6h(ATbk!|}3"><field name="OP">LT</field>
                                                                <value name="A"><block type="get_value" id="g7Mzh,m-+_3(^cqS%M/L"><field name="ATTR">val</field>
                                                                    <field name="OID">ID auswählen</field></block></value> 
                                                                <value name="B"><block type="math_number" id="+xmh_jXB)@7exvc4~fNd"><field name="NUM">1000</field></block></value></block></value> 
                                                            <value name="B"><block type="logic_compare" id="A-A5F~V`_xMc.WNYAIJv"><field name="OP">EQ</field>
                                                                <value name="A"><block type="variables_get" id="N~]pw[QRA,!B]Os#RO,x"><field name="VAR">TimerON</field></block></value> 
                                                                <value name="B"><block type="logic_boolean" id="]^*l%/99rG7P5bL{IlH?"><field name="BOOL">FALSE</field></block></value></block></value></block></value> 
                                                        <statement name="DO0"><block type="variables_set" id="F~.ATj=7IaRkE~{f!4RC"><field name="VAR">TimerON</field>
                                                            <value name="VALUE"><block type="logic_boolean" id="SByHiwF-U{xN3?Ki/Ik/"><field name="BOOL">TRUE</field></block></value> 
                                                            <next><block type="comment" id="VOCx.rWL5CWcAEfD[T7k"><field name="COMMENT">nach Ablauf nochmals checken</field>
                                                                <next><block type="timeouts_settimeout" id="jr[f8CgQnI{2Vwf0,n^P"><field name="NAME">timeout</field>
                                                                    <field name="DELAY">3</field>
                                                                    <field name="UNIT">min</field>
                                                                    <statement name="STATEMENT"><block type="variables_set" id="Rx%CYOo4u#-,}J%H65/;"><field name="VAR">TimerON</field>
                                                                        <value name="VALUE"><block type="logic_boolean" id="P::(s,ev2K:+5H~}9!R2"><field name="BOOL">FALSE</field></block></value> 
                                                                        <next><block type="controls_if" id="a5F_QuD81.`2[)FKAlU6"><value name="IF0"><block type="logic_compare" id="8[iH6Q-9~;3iY{P0d:om"><field name="OP">LT</field>
                                                                                <value name="A"><block type="get_value" id="BAxA#Q?SI|IoLq36Qv-d"><field name="ATTR">val</field>
                                                                                    <field name="OID">ID auswählen</field></block></value> 
                                                                                <value name="B"><block type="math_number" id="N(B%?l!)SsoY71bX#2wG"><field name="NUM">1000</field></block></value></block></value> 
                                                                            <statement name="DO0"><block type="comment" id="RC-.(FUsx|e|+Biq.Q2~"><field name="COMMENT">ausschalten</field>
                                                                                <next><block type="control" id="V%.93q^uW[L]@],!,owi"><mutation delay_input="false"></mutation>
                                                                                    <field name="OID">Object ID</field>
                                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                                    <value name="VALUE"><block type="logic_boolean" id="-!t/2+/=75E]Ii5(Rm~)"><field name="BOOL">FALSE</field></block></value> 
                                                                                    <next><block type="comment" id="UA?AJ^M~k)CDh58h^CGj"><field name="COMMENT">mit Verzögerung einschalten</field>
                                                                                        <next><block type="control" id="MO!y!1?@!(K7KXEJ`MHu"><mutation delay_input="true"></mutation>
                                                                                            <field name="OID">Object ID</field>
                                                                                            <field name="WITH_DELAY">TRUE</field>
                                                                                            <field name="DELAY_MS">40</field>
                                                                                            <field name="UNIT">sec</field>
                                                                                            <field name="CLEAR_RUNNING">FALSE</field>
                                                                                            <value name="VALUE"><block type="logic_boolean" id=":r+S]tSlyBugQ(#A!Z[w"><field name="BOOL">TRUE</field></block></value></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></next></block></xml> 
                                    

                                    ! ````

                                    Grüße

                                    Rantanplan

                                    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                    1 Antwort Letzte Antwort
                                    0
                                    • rantanplanR Offline
                                      rantanplanR Offline
                                      rantanplan
                                      schrieb am zuletzt editiert von
                                      #18

                                      @Gringo:

                                      Der Sonoff soll abgeschaltet werden wenn die Watt Aufnahme 3 min. unter 1200 liegt. Als erstes muss geprüft werden ob der Sonoff überhaupt eingeschaltet ist, erst dann wird geprüft ob der Grenzwert von 1200 Watt unterschritten wurde und zusätzlich wird kontrolliert ob der Timer nicht schon läuft. Sonst würde bei jedem unterschrittenen Wert nachgetriggert werden.

                                      Dann kommt der Timer Start, im ersten Teil werden einfach die Sekunden bis 1 runtergezählt. Im zweiten Teil wird der Timer gestoppt, die Variablen zurückgesetzt und noch mal geprüft ob der Wert unter 1200W liegt. Ist das der Fall wird der Server abgeschaltet. Wenn nicht beginnt das Spiel beim nächsten unterschreiten von vorne. Über die Objekt ID Ausschalt-Timer kann die Zeit verändert werden, stattdessen kannst auch eine lokale Variable nehmen. `
                                      Hallo Gringo

                                      Ich möchte Deinen Versuch zu helfen nicht einfach nur abschmettern.

                                      Dein Script könnte funktionieren benutzt aber Sachen, die man nur sehr vorsichtig anwenden sollte.

                                      1. Intervall von 1000 und weniger ms

                                      Das kann das System enorm belasten, wenn viele Aktionen innerhalb des Intervalls ablaufen.

                                      2. Du benutzt globale Variablen (Datenpunkte) für den "Timer".

                                      Dies im Zusammenhang mit einem schnellen Intervall und der asynchronen Verarbeitung von JavaScript,

                                      kann die wildesten Dinge veranstalten.

                                      (Ich will schon lange mal einen Beitrag dazu schreiben.)

                                      Ich hoffe wir sind noch Freunde und Du versuchst auch weiterhin zu Helfen.

                                      Grüße

                                      Rantanplan

                                      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                      1 Antwort Letzte Antwort
                                      0
                                      • G Offline
                                        G Offline
                                        Gringo
                                        schrieb am zuletzt editiert von
                                        #19

                                        @rantanplan:

                                        @Gringo:

                                        Der Sonoff soll abgeschaltet werden wenn die Watt Aufnahme 3 min. unter 1200 liegt. Als erstes muss geprüft werden ob der Sonoff überhaupt eingeschaltet ist, erst dann wird geprüft ob der Grenzwert von 1200 Watt unterschritten wurde und zusätzlich wird kontrolliert ob der Timer nicht schon läuft. Sonst würde bei jedem unterschrittenen Wert nachgetriggert werden.

                                        Dann kommt der Timer Start, im ersten Teil werden einfach die Sekunden bis 1 runtergezählt. Im zweiten Teil wird der Timer gestoppt, die Variablen zurückgesetzt und noch mal geprüft ob der Wert unter 1200W liegt. Ist das der Fall wird der Server abgeschaltet. Wenn nicht beginnt das Spiel beim nächsten unterschreiten von vorne. Über die Objekt ID Ausschalt-Timer kann die Zeit verändert werden, stattdessen kannst auch eine lokale Variable nehmen. `
                                        Hallo Gringo

                                        Ich möchte Deinen Versuch zu helfen nicht einfach nur abschmettern.

                                        Dein Script könnte funktionieren benutzt aber Sachen, die man nur sehr vorsichtig anwenden sollte.
                                        > Hallo rantanplan! Ich musst kurz weg deshalb konnte ich das Blockly vorhin nicht fertig stellen. Habs mittlerweile getestet und diesbezüglich Probleme mit dem Sonoff festgestellt. Das Blockly funktioniert aber nicht gut genug.
                                        1. Intervall von 1000 und weniger ms

                                        Das kann das System enorm belasten, wenn viele Aktionen innerhalb des Intervalls ablaufen.
                                        > Das wusste ich.

                                        2. Du benutzt globale Variablen (Datenpunkte) für den "Timer".

                                        Dies im Zusammenhang mit einem schnellen Intervall und der asynchronen Verarbeitung von JavaScript,

                                        kann die wildesten Dinge veranstalten.
                                        ` > Das wusste ich nicht! Warum findet man dann im Forum Blockly's die darauf aufgebaut sind? Mal davon abgesehen, wie realisiert man sonst einen Timer der mittels Vis gesteuert werden soll? Ich kenne Javascript leider noch zuwenig was diese Dinge betrifft.

                                        Es ist auch nicht meine Absicht und auch nicht meine normale Vorgehensweise Intervalle zu benutzen bzw. globale Variablen.

                                        Ich habe als ich mit Blockly anfing sehr viel auf dieser Weise experimentiert, so sah ich zum Beispiel gleich wenn ein intervall oder was auch immer nicht funktionierte. Mache ich heute auch noch bei größeren Blockly's.

                                        Ein typisches Beispiel bei dem ich oft auf die Nase viel war eine Variable bei Scriptstart nicht definiert zu haben.

                                        Mit der globalen Variable und dem intervall sehe ich dann ob es bis zum intervall überhaupt funktioniert. Wo ich sonst Stundenlang suchte. Da high_voltage

                                        angemerkt hat Blockly lernen zu wollen dachte es sei eine gute möglichkeit für ihn, somit sieht er besser was passiert wenn am Blockly etwas geändert wird oder ab wann es nicht mehr funktioniert. Das mit den lokalen Variablen war für den Schluss gedacht, selber um zu stellen 😉 `
                                        (Ich will schon lange mal einen Beitrag dazu schreiben.)

                                        Ich hoffe wir sind noch Freunde und Du versuchst auch weiterhin zu Helfen.
                                        > Sicher doch, außerdem ist es gut darauf hingewiesen zu werden! Mann kann nicht alles von Anfang an wissen.
                                        Grüße `
                                        Gruß

                                        HP G8 ProLiant MicroServer, Ubuntu 16.04, Docker, Dockercontainer (ioBroker, fhem, smartVisu, Asterisk, Unifi Controller)

                                        DoorPi, nanoCUL 868 (Eigenbau), JeeLink/LaCrosse (Eigenbau), HM Homebrew, Ultraschall Anemometer (Eigenbau)

                                        1 Antwort Letzte Antwort
                                        0
                                        • H Offline
                                          H Offline
                                          high_voltage
                                          schrieb am zuletzt editiert von
                                          #20

                                          @rantanplan:

                                          Hallo high_voltage

                                          Wie schon andere geschrieben haben solltest für den Server schnellstens eine andere Lösung finden.

                                          Mein Vorschlag funktioniert nur, wenn der Server beim Einschaltvorgang nicht unter 1000 Watt geht.

                                          Wenn der Wert von Power sich komplizierter verhält, könntest Du das Waschmaschinen-Blockly "missbrauchen".

                                          Damit wird schon alles Mögliche geschaltet. Und Du würdest noch eine Meldung bekommen. 😉

                                          http://forum.iobroker.net/viewtopic.php … 34#p107896

                                          Mein Vorschlag sieht so aus (auch ungetestet)

                                          Beispiel.PNG

                                          Ich möchte mich bei Allen beteiligten Bedanken,

                                          ich habe mich für das Blockly von Rantanplan entschieden und dieses Umgesetzt.

                                          Es läuft P_E_R_F_E_K_T !!

                                          Vielen Vielen Dank!

                                          Tolles Forum super viel Wissen hier und extrem Hilfsbereit.

                                          Wenn ich die Möglichkeit bekomme revanchieren ich auf jeden Fall.

                                          Vielen Herzlichen DANK!!

                                          beste Grüße

                                          Thomas

                                          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

                                          403

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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