NEWS
[gelöst]Trockenlaufschutz, Problem mit Blockly
-
@jan1 was sieht gut aus?
-
@jan1 Das skript sieht bei mir jetzt so aus:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout3">timeout3</variable> <variable type="timeout" id="timeout4">timeout4</variable> </variables> <block type="on_ext" id="FB^,o-|.DkV*l1Zpw1ev" x="-487" y="88"> <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="w]B4izL8Xi6Xis[a47]}"> <field name="oid">sonoff.0.Sonoff-POWR2-Hauswasserpumpe.ENERGY_Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="o9}:IIEo};jIF72b9AA."> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="k/5vYdt)FO5#4fIMa~m;" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="ViV`%UQ}k~UPs7,j-ryV"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="u:72U[-3Dnb8^3xE,|!!"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="!{rp568)Xa_3X^/P-X67"> <field name="NUM">100</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="{T1t5z14z,+4|DC]gOXz"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="=QYK}e_eO)R!UP9V$lM^"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id="hLUSUOYJL$qWXsN7kTk8"> <field name="NUM">100</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="U_%ugF^L^YUcG@wP=]~Z"> <field name="NAME">timeout4</field> <next> <block type="control" id="hZTA=BSjCVV{]?(0pVgY"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Sonoff-POWR2-Hauswasserpumpe.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="R||h%3X{{l}e4p`%Yawz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_settimeout" id=".o~uvJbWt^KQ`oiI!e$!"> <field name="NAME">timeout4</field> <field name="DELAY">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="4S}(|m-Kt)y5P9txPZ+I"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Sonoff-POWR2-Hauswasserpumpe.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="}wd]{cXQ@x{`KvgI26LW"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="!/F3qNm$R2Q]m/jo|f#T" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="iHA4@^BN{s/[}$=sq31n"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="gQBF^?(7;hKwq*ro`;LK"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="E1Co9VoP0Z]U].V}:dk6"> <field name="NUM">50</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="2[[fJeqHxkcfP[F^]I-Q"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="f5IDFVCeLD}U6K[_XEG@"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id="2k,M4Zr}0C_#uR%MuF|Q"> <field name="NUM">50</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_cleartimeout" id="cL@Uuw#K=7Oj=lJL/W:h"> <field name="NAME">timeout4</field> <next> <block type="control" id="dYN%$E|/?la90IKRz{*w"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Sonoff-POWR2-Hauswasserpumpe.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="lU?:V,sk#5e#Zs@){!|m"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <next> <block type="debug" id=",qorWlCkGFLb!+WM7/rO"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="8h9QE+{dve}o}{xFz4^/"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="^^vC/IAZ$YnpMiFFn.nC"> <field name="TEXT">Watt:</field> </block> </value> <value name="ADD1"> <block type="on_source" id="-bW!=3`GYzyDgu_1}k0G"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> <block type="on_ext" id=")3Y6O)OSZ6,a.eId9_([" disabled="true" x="-487" y="688"> <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="FB}qA2j)SArn`ar=BQ8z"> <field name="oid">sonoff.0.Sonoff-POWR2-Hauswasserpumpe.ENERGY_Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="nT8{B{T^As}6|P1eFdAp"> <value name="IF0"> <block type="logic_compare" id="h=ll3)j0~lH*]vID@v{h"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="prv]M@]WP)O8k`WxQv,M"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff-POWR2-Hauswasserpumpe.ENERGY_Power</field> </block> </value> <value name="B"> <block type="math_number" id="QWMd~%R.#BvSN.-Jr7|S"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id=";N~?jZO,:^+(B6c4+e.p"> <value name="IF0"> <block type="logic_compare" id="nLGp=iM$L~IydiZi8!Z?"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="#X;Nd8faxS1r?ibN,9Ur"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff-POWR2-Hauswasserpumpe.ENERGY_Power</field> </block> </value> <value name="B"> <block type="math_number" id="3L+Hx`ZZZ[6;bcStTgXv"> <field name="NUM">50</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="s_tu+G)JzfXKRo!,-i?j"> <field name="NAME">timeout3</field> </block> </statement> <next> <block type="timeouts_settimeout" id="|y|12`S1gi{?f|+:!d87"> <field name="NAME">timeout3</field> <field name="DELAY">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="]:Q/hgD*3Ye$XrhiCKVK"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Sonoff-POWR2-Hauswasserpumpe.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]qeVb0?p3y!^dSP8T!{!"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="debug" id="jv2kcn+O#/wer{(+o+DW"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="FXin0|uc^i=Wm;0R-Jtj"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="Z##h?{^2;N/L6AAv4~.."> <field name="TEXT">Watt:</field> </block> </value> <value name="ADD1"> <block type="on_source" id="t@LBx#Y!8Fv5({,pHM[,"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </xml>
-
@nole
Das Blockly.
Wurde auch etwas optimierte und wie man timeouts verwendet siehst ja. Es sollte immer ein stopp des timeouts davor erfolgen um sicher zu stellen, dass nicht genau dieser schon läuft, sonst passt die ein gestellte Zeit nie und man wundert sich, was exakt bei Dir zu Beginn der Grund Deiner Verwirrung war -
@jan1 ich arbeite mich gerade gedanklich durch das Blockly, ich habe dank euch allen heute einiges wichtige dazu gelernt. Vielen Dank an euch alle. Wenn alles läuft erfahrt ihr das natürlich. Ich gehe dann jetzt in die Testphase über.
-
@jan1 irgendwas stimmt noch nicht, ich weiß nur noch nicht was. Schaltet immer noch ohne erkennbaren Grund aus. Ich probiere den Fehler zu finden.
-
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
Das skript sieht bei mir jetzt so aus:
warum nie als screenshot??
Am Handy nutzt der xml-Export rein gar nix -
-
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
Schaltet immer noch ohne erkennbaren Grund aus
und was steht dann im debug?
Hast du mal auf "geändert" getriggert und das Problem bleibt?
ich weiß nicht, ob der Sensor ggf. 2x hintereinander den selben Wert liefert
lass dir vielleicht zusätzlich noch den vorherigen Wert ausgeben -
@homoran Die Pumpe hat wenn sie kein Wasser hat, also im Trockenlauf vor der ich die Pumpe schützen will, zwischen 150 und 200 Watt Verbrauch. Im Pumpen mit Wasser über 300 Watt und natürlich wenn der Wasserdruck im Haus ok ist 0 Watt.
Wenn der Druck erreicht ist und die Pumpe abschaltet zeigt die Wattanzeige vom Sonoff PowR2 kurze Zeit noch ein paar Watt an ( Zwischen 4 und 50 Watt). -
@nole ich hatte noch was editiert:
@homoran sagte in Trockenlaufschutz, Problem mit Blockly:
lass dir vielleicht zusätzlich noch den vorherigen Wert ausgeben
-
@homoran ich werde es nochmal mit "geändert" probieren.
-
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
Die Pumpe hat wenn sie kein Wasser hat, also im Trockenlauf vor der ich die Pumpe schützen will, zwischen 150 und 200 Watt
und warum prüfst du nicht auf diesen Bereich, sondern auf >100 um die Pumpe anzuschalten?
-
@homoran das ist das was ich bei dem Skript auch noch nicht verstehe
-
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
@homoran das ist das was ich bei dem Skript auch noch nicht verstehe
Aber das ist doch dein Ansatz gewesen.
Was genau hast du dir denn dabei gedacht?
-
@homoran eigentlich müsste es doch gehen wenn ich oben Wert größer als 100 und kleiner als 200 prüfe und danach den timeout starten lasse und nach 30 Minuten ausschalten lasse. Den Rest müsste ich doch weglassen können, oder habe ich mich da jetzt total verannt?
-
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
oder habe ich mich da jetzt total verannt?
Was hast du denn genau vor?
Welche Zustände mit welche Werten gibt es in welchen Situationen?
Was willst du erreichen?Ich denke, du willst verhindern, dass die Pumpe trocken läuft.
kann das auch passieren, dass die Pumpe anspringt ohne dass Wasser da ist?
Oder nur, dass die Pumpe nicht ausgeht, nachdem sie gepumpt hat? -
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
im Trockenlauf vor der ich die Pumpe schützen will, zwischen 150 und 200 Watt Verbrauch. Im Pumpen mit Wasser über 300 Watt und natürlich wenn der Wasserdruck im Haus ok ist 0 Watt.
also hast du im Prinzip nur drei Zustände:
- aus = 0W (ok)
- Trockenlauf = 150-200 (nicht ok)
- aktiv pumpend > 300 W (ok)
Habe ich das richtig verstanden?
Gibt es für das Hauswasserwerk(???) noch eine weitere Steuerung (Wasserdruck???) oder ziehst du mit dem SonoffPOW der Pumpe den ganzen Strom einfach weg?
Wenn letzteres, wie osll die dann jemals wieder anspringen? -
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
@homoran ich werde es nochmal mit "geändert" probieren.
Ich kann nicht nachvollziehen weshalb Vorschläge nicht so übernommen werden wie sie zur Verfügung gestellt werden. Zudem schon früher hier im Thread von @Jan1 darauf hingewiesen wurde, dass anstelle von "aktualisieren" "geändert" gesetzt werden soll.
-
@homoran Die Pumpe startet sobald der Wasserdruck im Haus abfällt, also wenn Wasser entnommen wird. Wenn die Pumpe kein Wasser hat ist also zwangsläufig der Wasserdruck im Haus auch nicht da und die Pumpe läuft und läuft. Den Hitzetod der Pumpe möchte ich verhindern. Der Strom soll nur weggenommen werden wenn die Pumpe trocken läuft.
-
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
Die Pumpe startet sobald der Wasserdruck im Haus abfällt,
das geht aber nicht, wenn sie keinen Strom hat.
@nole sagte in Trockenlaufschutz, Problem mit Blockly:
Der Strom soll nur weggenommen werden wenn die Pumpe trocken läuft.
das macht dein Skript aber nicht.
Sobald der Wasserdruck hoch genug ist und die Leistung <50W ist zieht dein Blockly der Pumpe dauerhaft den Strom weg
Langsam habe ich den Eindruck, du hast false und true vertauscht (abgesehen von den übrigen Denkfehlern)
Wie bereits geschrieben, wäre es für dich hilfreich, die möglichen Szenarien und die jeweils gewünschten Aktionen mal auf einem Papier aufzumalen.