NEWS
Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.
-
Solarsteuerung
do while .not.eof() If ppv > 3000 turn shelly on endif if ppv < 2800 turn shelly off endif enddo exit
MOD-EDIT: Code in code-tags gesetzt!
so hätte ich es früher gemacht
-
@williklein sagte in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
so hätte ich es früher gemacht
ja, weil das nicht ereignisorientiert arbeitet musst du da mit Schleifen arbeiten.
Da musst du umdenken (was löst welche Aktion aus) und über Trigger auslösen.Edit:
hab nochmal lange drüber nachgedacht. So anders ist dein Skript ja gar nicht.
Auch du reagierst auf Änderung der ppv und prüfst dann den Wert mit einer (oder besser zwei verschiedenen) Vorgabe(n) um je nach Wert eine Aktion auszuführen. -
ich habe den oberen Befehl
setze shelly nicht, der ist nirgends drin bei mir -
@williklein sagte in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
setze shelly nicht
@paul53 hat das Blockly wieder hochoptimiert.
shelly ist dort eine selbst erstellte Variable.in dem Moment, wo du diese Variable erstellst, gibt es auch den Block setze dazu.
-
sieht jetzt so aus, jetzt fehlt mir < >
-
@williklein sagte in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
fehlt mir < >
der Vergleich ist ein teil der Logik
-
@williklein sagte: sieht jetzt so aus
"ppv" ist das Shelly-Relais und "deviceModel" der Solarertrag?
-
@paul53 ich geh davon aus, das immer noch der Stand hersct auf den ich zu Beginn hingewiesen hatte
@crunchip sagte in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
das du dein Grundsätzliches shelly Problem denn schon gelöst?
siehe anderer Thread
-
Ich habe das Protokoll umgestellt, ob das Problem damit gelöst ist ?? weiss ich nicht.
als > 3000 habe ich, aber falls < 2800 fehlt mir nun. -
@williklein sagte in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
aber falls < 2800 fehlt mir nun.
meinst du das sonst falls?
das musst du über das Zahnrad aktivieren indem du da drauf klickst und dann im popup von links untercdas rechte falls ziehst.@paul53 sagte in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
@williklein sagte: sieht jetzt so aus
"ppv" ist das Shelly-Relais und "deviceModel" der Solarertrag?
meines Wissens ist ppv der solarertrag. devise model kenne ich icht.
Die Datenpunkte habe ich noch gar nicht angesehen, erst mal das Gerüst
-
@williklein sagte: > 3000 habe ich
wert
darf keine selbst erstellte Variable sein, sondern man findet es unter "Trigger".@williklein sagte in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
falls < 2800 fehlt mir nun.
-
@williklein du musst jetzt den richtigen Datenpunkt wählen für deinen Trigger
-
ich habe jetzt die Datenpunkte in den Objekten drin.
Könnt Ihr mir jetzt weiter helfen. das sieht ja jetzt so aus.
-
@williklein du musst deine Datenpunkte anpassen, siehe https://forum.iobroker.net/post/875655
deinen shelly findest du dann unter shelly.0.xyz.Relay0.Switch -
@williklein sagte in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
das sieht ja jetzt so aus.
Die Variable shelly muss mit dem Wert des Schelly-Datenpunktes "Switch" initialisiert werden.
Muss der Trigger-Datenpunkt nicht "ppv" sein?Der Regler hat kein Hysterese, denn es fehlt die Abfrage "sonst falls Wert < 2800", wobei Wert unter "Trigger" zu finden ist und keine selbst erstellte Variable sein darf.
-
ich habs immer noch nicht verstanden, wie die Sachen zusammenhängen.
Wenn der Wert (ppv) vom Growatt > 3000 ist
dann Shelly (switch) on.
wenn < dann switch off -
-
@williklein sagte:
Wenn der Wert (ppv) vom Growatt > 3000 ist
dann Shelly (switch) on.
wenn < 2800 dann switch offDamit beträgt die Hysterese 200 W (3000 - 2800).
Ich exportiere mal das Blockly. Du musst nach dem Import nur noch die Datenpunkte austauschen.
-
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="%f2p3[xiEK;T;hxSX|t5">shelly</variable> </variables> <block type="variables_set" id="k)@FiWDGHXsZ,SHM}1zS" x="300" y="-111"> <field name="VAR" id="%f2p3[xiEK;T;hxSX|t5">shelly</field> <value name="VALUE"> <block type="get_value" id="MfV3iIf5#Fx*F#SPbAd`"> <field name="ATTR">val</field> <field name="OID">shelly.0.shellyplus1#7c87ce63d85c#1.Relay0.Switch</field> </block> </value> <next> <block type="on_ext" id="_f?n?9+^x32}4r=j(lF0"> <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="Bbh1E/},e./{_Yf3_;px"> <field name="oid">growatt.0.1030054.devices.DFK0BKD00C.historyLast.ppv</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="5^_]~A*IAxXr.+z+,O|g"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="9@jz$j=TVGPXYwK_N1tl"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="3O1($TjuU2zLP#.u6(]l"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id=")G`AERK`8@25wu`}x;HJ"> <field name="NUM">3000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="eb+o#xx@Yv#zEjH3[c8,"> <field name="VAR" id="%f2p3[xiEK;T;hxSX|t5">shelly</field> <value name="VALUE"> <block type="logic_boolean" id="^9S9/{$K~z:7}vXy+vXd"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Hk1ghg;eIF}mNq~qg2$N"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id=";GgYm,hYSX3/.3FCVqb^"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="`=4-0(|xgYJ{WIg_dctO"> <field name="NUM">3500</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="SDx9dFe8-XqT~?PP,265"> <field name="VAR" id="%f2p3[xiEK;T;hxSX|t5">shelly</field> <value name="VALUE"> <block type="logic_boolean" id="^aFhyq!(ta2DJm$2qCtt"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="9q!Zk#Vc?c9EX$:Z9zUK"> <value name="IF0"> <block type="logic_compare" id="43Vu=|/wYh`tM*c*dc-J"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="*xID|?TLTij`-[+2G4K["> <field name="VAR" id="%f2p3[xiEK;T;hxSX|t5">shelly</field> </block> </value> <value name="B"> <block type="get_value" id="}|Y8Zi|6j(ivB?Z+tt}8"> <field name="ATTR">val</field> <field name="OID">shelly.0.shellyplus1#7c87ce63d85c#1.Relay0.Switch</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="12N5$JSuj7~#-O,zt39W"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">shelly.0.shellyplus1#7c87ce63d85c#1.Relay0.Switch</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="P@N|PbiTOZ:Bo}3[.)SG"> <field name="VAR" id="%f2p3[xiEK;T;hxSX|t5">shelly</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </xml>
MOD-EDIT: Code in code-tags gesetzt!
-
@williklein said in Mit Blockly das Shelly 1 ein/aus über Solar Ertrag.:
ich weiss nicht wie ich das zurückschicken kann