NEWS
Umschalten bei einem gewissen wert
-
Als Anfänger habe ich mich jetzt auch mal an blockly versucht.
Das Script soll einen Schalter bei überschreiten eines wertes einschalten und bei unterschreiten des wertes ausschalten.
Soweit funktioniert es auch, aber solang der wert über 80 ist schaltet es jede sekunde ein. Was kann ich da ändern so das es nur einmal schaltet wenn der wert höher als 80 ist und einmal schaltet wenn der wert kleiner wie 80 ist -
@Fritzk Nur einen Trigger verwenden
if, then, else -
@Fritzk sagte in Umschalten bei einem gewissen wert:
Was kann ich da ändern so das es nur einmal schaltet
Falls WERT > 80 UND Schalter ist false
-
und auch drann denken das der Wert auch = 80 sein kann.
-
@Fritzk sagte:
nur einmal schaltet wenn der wert höher als 80 ist und einmal schaltet wenn der wert kleiner wie 80 ist
Nur schalten, wenn Istzustand != Sollzustand:
-
@paul53
Hmm.. geht das nicht auch ohne extra Variable und aktuellen Wert holen :A.
-
@Asgothian sagte:
geht das nicht auch ohne extra Variable und aktuellen Wert holen :
So geht es natürlich auch. Nachteil: Zweimal setState(), was deutlich mehr Ressourcen (RAM) verbraucht als getState().
-
@paul53
Ich möchte so ähnlich im dem Blockly ab einem wert von 10kw Einspeisung die Boilerpumpe einschalten. Unter 10kw wieder aus. Könnt ihr mir das Skript anpassen bzw so ändern das ich es selbst nachbauen kann? -
@a0377016 sagte in Umschalten bei einem gewissen wert:
Könnt ihr mir das Skript anpassen bzw so ändern das ich es selbst nachbauen kann?
Dann zeig doch mal Deinen anzupassenden Versuch, der "umgebaut" werden soll.
-
@paul53 said in Umschalten bei einem gewissen wert:
@Asgothian sagte:
geht das nicht auch ohne extra Variable und aktuellen Wert holen :
So geht es natürlich auch. Nachteil: Zweimal setState(), was deutlich mehr Ressourcen (RAM) verbraucht als getState().
@paul53 said in Umschalten bei einem gewissen wert:
@Fritzk sagte:
nur einmal schaltet wenn der wert höher als 80 ist und einmal schaltet wenn der wert kleiner wie 80 ist
Nur schalten, wenn Istzustand != Sollzustand:
Ich möchte meiner Boilerpumpe ab Wert 10KW einschalten lassen. Unter 10kw aus. Könnt ihr mir das Skript anpassen?
-
@a0377016
Warum bitte Mehrfachposts??? -
@samson71
Sorry mein Fehler -
@a0377016
hab jetzt folgendes Blockly am laufen.<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="=13=V!WX4z5cEfo=Xc?;" x="13" y="12"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="D9)K[URRT:rK|b?ID9@^"> <field name="oid">modbus.0.holdingRegisters.1.40074_Netz_Leistung</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="ZywckQEwc-g3|bX1`Nl4"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="^F4rvJ=n~Mio9!#nyeUt"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="GnL^My,h)8aorqIidR*#"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="9=@^y@L*%y{pI9+xL6~("> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="-#Q)U1[?.GE4^qnX~`Hw"> <field name="NUM">80</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="4_Jr.u-YFRO.#V+)#nPr"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="!7EJVK)kRLAuLJ+|z#QQ"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id="4m-%!:$k[#0_W`!CLLMf"> <field name="NUM">80</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="}1aLEN]lXiaTfGGNGC4a"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#E09806962EAB#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="X3L)zgaHWceez+1wx8OO"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="VO{L%xyIzM]}P!_#$~$D"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="@$-b*ai@{+NAJ39lq`Bc"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="hMx(}mw=|Bov-)!|Hy_P"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="{h4M2A%F]4-rG,V8wWH+"> <field name="NUM">80</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="5BfN@jqY#|ir?_U0,FE_"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="T!(5oKqz6@DoB^1Jzu0y"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id="$+[513*k-EV-#Gv,C$XM"> <field name="NUM">80</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="WSKY6uW#HuBF%v7Z(BJi"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#E09806962EAB#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="b{Esv~`7NL]4lcAFg?1}"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
Musst nur deine Datenpunkte anpassen