NEWS
Hue Lampe blinkt
-
Hallo, habe ein Script das eine Hue Lampe auf Grün stellt, wenn ich keinen Strom verbruche, bzw. bezahlen muss, da ich ein Balkonkraftwerk habe.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="93WSSPkRR*Tf|J=#`KEb">Kugellampe Garten Zustand</variable> <variable id="4Th)/l^wJGo]4ij0ox_}">Zustand Nachrichtenleuchte</variable> </variables> <block type="on" id=";-Kgs.@y(q%C-?)+a}n~" x="-3162" y="-1537"> <field name="OID">sonoff.0.Stomzaehler.Power_Power_curr</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="YS*_n/I@{iX*15G9NSv~"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="}u[P^bFzMF8:{+[Lf:.E"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="MkA7;.taf|KI3%bJM}Wp"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Stomzaehler.Power_Power_curr</field> </block> </value> <value name="B"> <block type="math_number" id="pNr/Ud!7qMiS5`{z8[FV"> <field name="NUM">-20</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="xw8#_#tu)i|n1KS;kV]3"> <field name="VAR" id="93WSSPkRR*Tf|J=#`KEb">Kugellampe Garten Zustand</field> <value name="VALUE"> <block type="get_value" id="4:pl[Xd1r8Q^r#`ArTdg"> <field name="ATTR">val</field> <field name="OID">hue.0.LED_Kugellampe_Garten.xy</field> </block> </value> <next> <block type="variables_set" id="f?2|6U,2Eu=NgICCvlpW"> <field name="VAR" id="4Th)/l^wJGo]4ij0ox_}">Zustand Nachrichtenleuchte</field> <value name="VALUE"> <block type="get_value" id="`^iWpCT2FFQQ+da@E2O]"> <field name="ATTR">val</field> <field name="OID">hue.0.Nachrichtenlampe.xy</field> </block> </value> <next> <block type="control" id="iLbOBbpbgf/MMyW^m6d["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.0.LED_Kugellampe_Garten.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="IV_AQ~PIv%#KHU_NJ]3|"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="G]*AWo|{yHrEj%X[ew=C"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.0.Nachrichtenlampe.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="k_fRzH2*5v_*0`?__T?^"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="^4H5O#r(q_:8bLN-T/Pd"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.0.LED_Kugellampe_Garten.xy</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="C,HSiOpNcA9em@3QEE)X"> <field name="TEXT">0.1707,0.6769</field> </block> </value> <next> <block type="control" id="X^6Oh2+W*04NclV/Ay4#"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.0.Nachrichtenlampe.xy</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="vVPlgHVoEe^jFuNJ2hjn"> <field name="TEXT">0.1707,0.6769</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="(`y*IO6Cy$VzWeMOhGgm"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.0.LED_Kugellampe_Garten.xy</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="N%2AIn]8y9fAj/5)}w1u"> <field name="VAR" id="93WSSPkRR*Tf|J=#`KEb">Kugellampe Garten Zustand</field> </block> </value> <next> <block type="control" id=".IBJahf|D`:Qk3{rM=$H"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.0.LED_Kugellampe_Garten.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Zyn9D`8Fin=td=74c^,W"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="HQlAmFqD,`wzo;=Bs08,"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.0.Nachrichtenlampe.xy</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="%jk-]^eKTJ*_zuPoMk_2"> <field name="VAR" id="4Th)/l^wJGo]4ij0ox_}">Zustand Nachrichtenleuchte</field> </block> </value> <next> <block type="control" id="v33C?T-bEt)!GY(gJ+-8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.0.Nachrichtenlampe.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="uD/?Xe9O8MgW^Z:Bt^W9"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Leider blinkt die Lampe immer kurz grün. Es scheint an dem Wert für die Farbe zu liegen.
-
@gluecksmann
Bei Blockly immer auch den Screenshot mitliefern.
Kaum jemand hat Lust, das XML erst zu importieren um sich das anzusehen. -
-
@gluecksmann wie oft ändert dich der Trigger?
wie oft blinkt die Lampe grün?ich würde nicht jedesmal steuern, sondern nur, wenn sich der Wert über due Entscheidungsgrenze bewegt hat
-
Hallo der Trigger ändert sich ständig. Ich bin da für Ideen offen. Hab schon extra einen höheren Wert genommen, aber bislang ohne Erfolg.
-
@gluecksmann sagte in Hue Lampe blinkt:
Hab schon extra einen höheren Wert genommen,
was soll das bringen?
der Wert ändert sich auch bei -200 ggf. im Millivoltbereich ständig -
Ja, das stimmt. Aber die Lampe soll ja nur angehen wenn es -50 ist.
-
@gluecksmann
Versuch's mal in der Art:Innerhalb eines Triggers muss man den triggernden DP nicht nochmal lesen.
Der "Wert" ist hier bereits bekannt. Netterweise auch der "Vorherige Wert". -
@gluecksmann sagte in Hue Lampe blinkt:
Ja, das stimmt. Aber die Lampe soll ja nur angehen wenn es -50 ist.
dann würde ich mit Variablen arbeiten auf die auch im falls geprüft werden kann
z.b "gruen"
wenn der Zustand bei <-50 eingestellt wird und im fallsund nicht gruen
geprüft wird, wird nicht weiter gesteuert -
@codierknecht und wenn der vorherige Wert schon -15 war?
-
@homoran
Dann tritt doch der "Falls" Teil ein -
@codierknecht sagte in Hue Lampe blinkt:
@homoran
Dann tritt doch der "Falls" Teil eineben nicht!
dazu muss der aktuelle Wert < -20 (ist gewollt) und der vorherige >= +20 sein.geht das Ganze langsam vonstatten wird das nix
edit
also nochmals
Trigger bleibt, dann
Falls Wert < -20 und nicht gruen
mache
setze gruen auf true
steuere Hue grün
sonst falls Wert > +20
setze gruen auf false
steuere Hue mit rotdie Hysterese nach Belieben anpassen
sollen bei sonst falls die Lampen auf einen vorher eingestellten beliebigen Wert gesetzt werden, zusätzlich wie ursprünglich arbeiten.
Im moment wurden diese Variablen auch dauernd überschrieben. -
-
@codierknecht sagte in Hue Lampe blinkt:
-20
dann würde auch nur vorheriger wert >= -20 reichen.
und du hast keinerlei Hysterese!
-
@homoran sagte in Hue Lampe blinkt:
und du hast keinerlei Hysterese!
Punkt für Dich.
Ist nur die Frage, in welcher Frequenz das BKW zwischen Werten < -20 und >= -20 schaltet. -
@codierknecht deswegen muss @gluecksmann diese Hysterese selber ausloten
-
Hallo Ihr beiden, ich muss mir eure Kommentare jetzt mal genau anschauen und umsetzen. Danke auf jeden Fall erst einmal. Wenn ich noch Fragen habe, melde ich mich.
So habe ich das jetzt verstanden. Das zustätzlich geprüft wird, ob die Lampe schon grün ist.
-
@gluecksmann sagte in Hue Lampe blinkt:
So habe ich das jetzt verstanden.
nicht ganz alles umgesetzt.
aber
@gluecksmann sagte in Hue Lampe blinkt:
zustätzlich geprüft wird, ob die Lampe schon grün ist.
wie läufts jetzt?
-
@codierknecht sagte in Hue Lampe blinkt:
Innerhalb eines Triggers muss man den triggernden DP nicht nochmal lesen.
Wenn Du auf einen bestimmten DP triggerst, musst Du den innerhalb des Triggers nicht nochmal mit "Wert von ..." auslesen.
Nimm den Block "Wert" aus dem Bereich "Trigger", um darauf zuzugreifen. Das ist für das System ressourcenschonender und nebenbei wesentlich einfacher zu lesen.Wie @Homoran bereits vorgeschlagen hat, wäre eine Variable - z.B. "gruen" - sinnvoll. Diese dann entsprechend füttern. Nach dem Motto: "Wenn nicht gruen dann schalten".
Und mit dem Thema "Hysterese" solltest Du Dich auch nochmal beschäftigen. Damit wird dann zum Schalten keine harte Grenze, sondern ein Bereich festgelegt.
Soll z.B. heißen: "Schalte Grün ein, wenn Leistung < -50 W. Schalte Grün aus, wenn Leistung > -20 W".
Sonst schaltet die Lampe bei Leistungen um die harte Grenze ständig hin und her.
Die Grenzen muss man dabei natürlich empirisch ermitteln.
Soll ja keine Disco werdenHatte ich schon mal erwähnt? Ein bisschen Lesestoff:
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps -
Blinkt weiterhin