Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. (ERLEDIGT) einfaches Blockly Skript zum neustarten über Sonoff POW und Basic

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

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

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

      hat jemand für mich einen Tipp,

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

      besten Dank

      1 Reply Last reply Reply Quote 0
      • G
        Gringo last edited by

        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ß

        1 Reply Last reply Reply Quote 0
        • H
          high_voltage last edited by

          @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 Reply Last reply Reply Quote 0
          • G
            Gringo last edited by

            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ß

            1 Reply Last reply Reply Quote 0
            • H
              high_voltage last edited by

              @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 Reply Last reply Reply Quote 0
              • Matzebhv
                Matzebhv last edited by

                Hi, wo denn?

                dein zuletzt gepostetes Blockly ist doch voll in Ordnung so.

                Gruß

                Matze

                1 Reply Last reply Reply Quote 0
                • H
                  high_voltage last edited by

                  @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 Reply Last reply Reply Quote 0
                  • Matzebhv
                    Matzebhv last edited by

                    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 Reply Last reply Reply Quote 0
                    • H
                      high_voltage last edited by

                      @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 Reply Last reply Reply Quote 0
                      • Matzebhv
                        Matzebhv last edited by

                        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 Reply Last reply Reply Quote 0
                        • G
                          Gringo last edited by

                          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ß

                          1 Reply Last reply Reply Quote 0
                          • Matzebhv
                            Matzebhv last edited by

                            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 Reply Last reply Reply Quote 0
                            • H
                              high_voltage last edited by

                              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 Reply Last reply Reply Quote 0
                              • G
                                Gringo last edited by

                                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ß

                                1 Reply Last reply Reply Quote 0
                                • rantanplan
                                  rantanplan last edited by

                                  @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

                                  1 Reply Last reply Reply Quote 0
                                  • rantanplan
                                    rantanplan last edited by

                                    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

                                    1 Reply Last reply Reply Quote 0
                                    • rantanplan
                                      rantanplan last edited by

                                      @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

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        Gringo last edited by

                                        @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ß

                                        1 Reply Last reply Reply Quote 0
                                        • H
                                          high_voltage last edited by

                                          @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 Reply Last reply Reply Quote 0
                                          • rantanplan
                                            rantanplan last edited by

                                            @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 `

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            497
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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