NEWS
(ERLEDIGT) einfaches Blockly Skript zum neustarten über Sonoff POW und Basic
-
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 -
hat jemand für mich einen Tipp,
oder ein ähnliches skript als Beispiel - an dem ich mich orientieren kann?
besten Dank
-
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ß
-
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
-
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ß
-
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
-
Hi, wo denn?
dein zuletzt gepostetes Blockly ist doch voll in Ordnung so.
Gruß
Matze
-
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
-
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
-
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
-
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
-
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ß
-
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
-
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
-
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.
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ß
-
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.
Im Betreff einen Hinweis auf Blockly wenn es um Blockly geht hilft enorm gefunden zu werden.
Grüße
-
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)
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;RfhJq+/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
-
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 GringoIch 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
-
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 GringoIch 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 msDas 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ß -
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