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

  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.3k

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

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

(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.
  • 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
                                      • rantanplanR Offline
                                        rantanplanR Offline
                                        rantanplan
                                        schrieb am zuletzt editiert von
                                        #21

                                        @Gringo:

                                        [Das wusste ich nicht! Warum findet man dann im Forum Blockly's die darauf aufgebaut sind? `
                                        "Normales" lesen/schreiben geht ja auch.

                                        Und man lernt auch dazu. Früher habe ich es genau wie Du gemacht.

                                        @Gringo:

                                        Mal davon abgesehen, wie realisiert man sonst einen Timer der mittels Vis gesteuert werden soll? `
                                        Den Wert des Datenpunktes in eine lokale Variable übergeben und dann mit der Lokalen arbeiten.

                                        Falls benötigt, den Wert der Lokalen am Ende der Operationen in den Datenpunkt zurückschreiben.

                                        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
                                          #22

                                          @rantanplan:

                                          "Normales" lesen/schreiben geht ja auch.

                                          Und man lernt auch dazu. Früher habe ich es genau wie Du gemacht. `
                                          Ist einleuchtend, aber als Anfänger sucht man sich funktionierende Beispiele und geht davon aus das alles richtig ist. Im speziellen meine ich das Beispiel <url url="http://forum.iobroker.net/viewtopic.php?f=23&amp;t=737&amp;p=77920&amp;hilit=countdown#p63514">[http://forum.iobroker.net/viewtopic.php?f=23&t=737&p=77920&hilit=countdown#p63514 " target="_blank">](</s><LINK_TEXT text=)[<link_text text="http://forum.iobroker.net/viewtopic.php … wn#p63514
                                          ">http://forum.iobroker.net/viewtopic.php?f=23&t=737&p=77920&hilit=countdown#p63514</link_text>](</s><LINK_TEXT text=)</url> .@rantanplan:

                                          Den Wert des Datenpunktes in eine lokale Variable übergeben und dann mit der Lokalen arbeiten.

                                          Falls benötigt, den Wert der Lokalen am Ende der Operationen in den Datenpunkt zurückschreiben. ` Also doch die umständliche Variante, habe es so ähnlich nur das ich jede Änderung (Sekunde) der lokalen in die globale Varibale schreibe (Anzeige verbleibende Zeit). Bislang fand ich keine bessere Lösung und die funktioniert ganz gut.

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          483

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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