NEWS
mqtt-Power Limit über Blockly
-
Guten Abend,
ich benötige wieder Hilfe!Ich betreibe openDTUonBattery und kann über mqtt "maximales Leistungslimit" an der DTU setzen.
Topic dazu sieht genau so aus:
openDTUonBattery/powerlimiter/cmd/upper_power_limit
dazu kommt noch der Wert, (maximales Leistungslimit) - bei mir als Beispiel 350 Watt.
Ich würde gerne ein Blockly bauen, in dem in Abhängikkeit von der Sonnenleistung
openDTUonBattery/victron/HQ2410QUPQE/PPV
der "maximale Leistungslimit gesetzt wird.
Falls Sonnenleistung größer als 500, setze "maximales Leistungslimit auf 500, sonst 300.
Kann jemand helfen dies umzusetzen bitte ? -
@knopers1 sagte in mqtt-Power Limit über Blockly:
Falls Sonnenleistung größer als 500, setze "maximales Leistungslimit auf 500, sonst 300.
Kann jemand helfen dies umzusetzen bitte ?woran hapert es denn?
-
@homoran
habe nicht so die Ahnung wie ich Topic mit Wert über Blockly einbauen kann. Hast du eine Ahnung wie das aussehen soll? -
@knopers1 sagte in mqtt-Power Limit über Blockly:
habe nicht so die Ahnung wie ich Topic mit Wert über Blockly einbauen kann.
wie machst du es denn via Datenpunkt?
oder was meinst du mit
@knopers1 sagte in mqtt-Power Limit über Blockly:
Ich ... kann über mqtt "maximales Leistungslimit" an der DTU setzen.
-
@homoran
aus dem mqtt kann ich den Wert der Solarleistung lesen, sowie den "maximales Leistungslimit" schreiben... -
@knopers1 sagte in mqtt-Power Limit über Blockly:
sowie den "maximales Leistungslimit" schreiben...
und da fragte ich
@homoran sagte in mqtt-Power Limit über Blockly:
wie machst du es denn via Datenpunkt?
-
ja, es ist ein Datenpunkt. Ich habe folgendes versucht... Kann es funktionieren?
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="G(hXlntz~E?zMmfAf;T8" x="-137" y="-612"> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="s[R-}avHMlL2CvPO2/vL"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="@Y8!ScK}ilH:K@n`.T=M"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="S7V`Rre69N18)?K?pAn`"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="o2peKYobd?+[T;fX*0=l"> <field name="NUM">500</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="_*^K^LTE*=P{CK?5@MS3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.openDTUonBattery.powerlimiter.cmd.upper_power_limit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="OtaozD[sVYi}oJ01RT/^"> <field name="NUM">500</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id=":M!mg*tJ_[0;e6BMlI1!"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="6/ELkSjnpF{?N$2)*Od^"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="lo^v]NR(#_/90)I;r%EA"> <field name="NUM">300</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="u~Zy6dW$x4%B$5%ib=09"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.openDTUonBattery.powerlimiter.cmd.upper_power_limit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="%]g7]`J2fB4R.$QUOx]F"> <field name="NUM">300</field> </block> </value> </block> </statement> </block> </statement> </block> </xml> <xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="G(hXlntz~E?zMmfAf;T8" x="-137" y="-612"> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="s[R-}avHMlL2CvPO2/vL"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="@Y8!ScK}ilH:K@n`.T=M"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="S7V`Rre69N18)?K?pAn`"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="o2peKYobd?+[T;fX*0=l"> <field name="NUM">500</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="_*^K^LTE*=P{CK?5@MS3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.openDTUonBattery.powerlimiter.cmd.upper_power_limit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="OtaozD[sVYi}oJ01RT/^"> <field name="NUM">500</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id=":M!mg*tJ_[0;e6BMlI1!"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="6/ELkSjnpF{?N$2)*Od^"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="lo^v]NR(#_/90)I;r%EA"> <field name="NUM">300</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="u~Zy6dW$x4%B$5%ib=09"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.openDTUonBattery.powerlimiter.cmd.upper_power_limit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="%]g7]`J2fB4R.$QUOx]F"> <field name="NUM">300</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
-
@knopers1 sagte in mqtt-Power Limit über Blockly:
ja, es ist ein Datenpunkt.
das war nicht die Frage!
WIE kannst du darüber den Wert verändern?
einfach eine Zahl eingeben? -
@homoran ja, bei mqtt wird nur die Zahl geändert, und dies wird bei der DTU übernommen.
Ich habe noch etwas ergänzt : -
@knopers1 sagte in mqtt-Power Limit über Blockly:
Kann es funktionieren?
probiere es aus!
wenn es allerdings einmal > 500 war muss der Werterst wieder unter 300 fallen, damit das Limit wieder auf 300 gesetzt wird.
wenn die Leistung anschließend zwischen 301 und 500 pendelt bleibt das Limit auf 500Außerdem wird jedesmal neu geschrieben auch wenn die Leistung nur um 0.1W schwankt, was dem Speicherchip ggf. nicht gut tut.
Du solltest nur einmalig bei Über-/Unterschreitung der Entscheidungsgrenzen schreiben.
EDIT
Die UND Verknüpfung im sonstfalls kann nie zutreffen! -
@homoran
das hab ich mir gedacht.... Ist es hiermit nicht getan?
-
@knopers1 sagte in mqtt-Power Limit über Blockly:
das hab ich mir gedacht....
was?
@knopers1 sagte in mqtt-Power Limit über Blockly:
Ist es hiermit nicht getan?
womit und warum?
Versuche dir selbst zu erklären was du willst, dann machst du es dir leichter.
eine vollständige Formulierung statt dies und das hilft ungemein! -
@homoran sorry, ich bemühe mich weiter....
Ist jetzt die Über/Unterschreitung der Entscheidungsgrenze passend gesetzt, so dass der Wert für Leistungslimit nicht jedes mal neu geschrieben wird?<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="G(hXlntz~E?zMmfAf;T8" x="-137" y="-612"> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="s[R-}avHMlL2CvPO2/vL"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_multi_and" id="5La4dN}DmcNVR^B(T_16"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="AND0"> <block type="logic_compare" id="@Y8!ScK}ilH:K@n`.T=M"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="S7V`Rre69N18)?K?pAn`"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="o2peKYobd?+[T;fX*0=l"> <field name="NUM">500</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_compare" id="6GOJGx@]xZ;*ViaH8.S`"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="M+DF@@O$Zwu@BqTzm}mH"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="-X%461Ai;2pzD|m%E/N!"> <field name="NUM">300</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="_*^K^LTE*=P{CK?5@MS3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.openDTUonBattery.powerlimiter.cmd.upper_power_limit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="OtaozD[sVYi}oJ01RT/^"> <field name="NUM">500</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id=":M!mg*tJ_[0;e6BMlI1!"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="6/ELkSjnpF{?N$2)*Od^"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="lo^v]NR(#_/90)I;r%EA"> <field name="NUM">300</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="u~Zy6dW$x4%B$5%ib=09"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.openDTUonBattery.powerlimiter.cmd.upper_power_limit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="%]g7]`J2fB4R.$QUOx]F"> <field name="NUM">300</field> </block> </value> </block> </statement> </block> </statement> </block> </xml> <xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="G(hXlntz~E?zMmfAf;T8" x="-137" y="-612"> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="s[R-}avHMlL2CvPO2/vL"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_multi_and" id="5La4dN}DmcNVR^B(T_16"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="AND0"> <block type="logic_compare" id="@Y8!ScK}ilH:K@n`.T=M"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="S7V`Rre69N18)?K?pAn`"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="o2peKYobd?+[T;fX*0=l"> <field name="NUM">500</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_compare" id="6GOJGx@]xZ;*ViaH8.S`"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="M+DF@@O$Zwu@BqTzm}mH"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="-X%461Ai;2pzD|m%E/N!"> <field name="NUM">300</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="_*^K^LTE*=P{CK?5@MS3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.openDTUonBattery.powerlimiter.cmd.upper_power_limit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="OtaozD[sVYi}oJ01RT/^"> <field name="NUM">500</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id=":M!mg*tJ_[0;e6BMlI1!"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="6/ELkSjnpF{?N$2)*Od^"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openDTUonBattery.victron.HQ2410QUPQE.PPV</field> </block> </value> <value name="B"> <block type="math_number" id="lo^v]NR(#_/90)I;r%EA"> <field name="NUM">300</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="u~Zy6dW$x4%B$5%ib=09"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.openDTUonBattery.powerlimiter.cmd.upper_power_limit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="%]g7]`J2fB4R.$QUOx]F"> <field name="NUM">300</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
-
@knopers1 sagte in mqtt-Power Limit über Blockly:
ich bemühe mich weiter....
weiss ich doch!
@knopers1 sagte in mqtt-Power Limit über Blockly:
Ist jetzt die Über/Unterschreitung der Entscheidungsgrenze passend gesetzt
nein! >500 und <300 geht nicht zeitgleich.
@knopers1 sagte in mqtt-Power Limit über Blockly:
so dass der Wert für Leistungslimit nicht jedes mal neu geschrieben wird?
das hat damit weniger zu tun.
Du müsstest nur prüfen ob die gewünschte Stufe bereits läuft und nur wenn das nicht der Fall ist schreiben. -
@homoran
du forderst mich.. Ein paar Tipps wären nicht schlecht aber ...
Was hällst du davon? -
@knopers1 sagte in mqtt-Power Limit über Blockly:
du forderst mich.
jepp!
@knopers1 sagte in mqtt-Power Limit über Blockly:
Ein paar Tipps wären nicht schlecht
gerne.
die Idee mit der Variable ist nicht schlecht!!!
aber nimm noch mal
trigger=victron
falls victron > 500 UND limiter ungleich 500
steuere mqtt mit 500
sonstfalls victron < 300 und limiter ungleich 300
steuere mqtt mit 300und statt
wert von id victron
nimmst du einfach den Baustein Wert aud dem Bereich Trigger -
Ich glaube, hier könnte ein bisschen Lesestoff nicht schaden:
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps -
@codierknecht sagte in mqtt-Power Limit über Blockly:
Ich glaube, hier könnte ein bisschen Lesestoff nicht schaden:
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tippsaber erst später!
im Moment haperts nicht wirklich am Blockly selbst
-
-
benötige deine Meinung