ioBroker / MQTT

mading
Beiträge: 97
Registriert: Do Mai 09, 2019 2:58 pm

Re: ioBroker / MQTT

Beitrag von mading »

ich bin etwas weiter gekommen: mit folgendem Blockly kann ich den Ladepunkt aktivieren oder deaktivieren:
1.PNG
1.PNG (5.52 KiB) 2433 mal betrachtet
Das funktioniert zuverlässig. Der angelegte Datenpunkt darf aber kein bool sein, sondern eine Zahl.

Lt. MQTT Wissenssammlung hier im Forum sollte folgendes set verwendet werden, um den Lademodus zu setzen:

Code: Alles auswählen

SCHREIBEND:
openWB/set/Lademodus
# 0 = Sofort Laden (Direct), 1 = Min und PV, 2 = Nur PV, 3 = Stop, 4 = Standby
Versuche ich das mit gleichem Blockly wie oben analog zu setzen (ebenfalls Datenpunkt mit Zahl erstellt), funktioniert es nicht.

Interessant ist:
verwende ich den eigentlich nur zum Lesen zu verwendenden openWB/global/ChargeMode
3.PNG
3.PNG (5.1 KiB) 2433 mal betrachtet
dann geht es.

@skyflying hier mal das Blockly mit den zwei funktionierenden Bausteinen. Du musst wie geschrieben unter mqtt.0.openWB.set.lp1.ChargePointEnabled einen Datenpunkt nach Typ Zahl anlegen.

Code: Alles auswählen

<xml xmlns="https://developers.google.com/blockly/xml">
  <block type="control" id="acynNsk|t,)qF1nBzLGr" x="-337" y="-260">
    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
    <field name="OID">mqtt.0.openWB.global.ChargeMode</field>
    <field name="WITH_DELAY">FALSE</field>
    <value name="VALUE">
      <block type="convert_tonumber" id="r|,QFY81fh[c0ChZ^[%0">
        <value name="VALUE">
          <block type="math_number" id="M2uPE-KwOWz_^2q(B/ej">
            <field name="NUM">4</field>
          </block>
        </value>
      </block>
    </value>
    <next>
      <block type="control" id="%ybV66FEE`=c|j8q^Xg^">
        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
        <field name="OID">mqtt.0.openWB.set.lp1.ChargePointEnabled</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
          <block type="convert_tonumber" id="?VNMpVAN]L3yxSbXwQq1">
            <value name="VALUE">
              <block type="math_number" id="1yy~OQUu$Ges-Yy|TsOC">
                <field name="NUM">1</field>
              </block>
            </value>
          </block>
        </value>
      </block>
    </next>
  </block>
</xml>
Viele Grüße

mading

Fronius Symo 7.0.3M mit SmartMeter - 6,96kwp | openWB series2 standard+ | Visualisierung + Steuerung mit iobroker/ vis und Grafana | VW ID4
mading
Beiträge: 97
Registriert: Do Mai 09, 2019 2:58 pm

Re: ioBroker / MQTT

Beitrag von mading »

es hat mich nicht los gelassen. Ich habe nun in den eigenen Datenpunkten einen Datenpunkt gesetzt für ChargeMode und ChargePoint enabled. Meine Vis steuert den eigenen Datenpunkt. Ein Blockly überwacht diese und setzt die Parameter im mqtt.0/openWB/... entsprechend.

Wie oben geschrieben nutze ich global/ChargeMode, weil es funktioniert.

Mit folgendem Blockly Script lässt sich über eine vis der Ladepunkt aktivieren und der ChargeMode einstellen. Weiter bin ich noch nicht.
4.PNG

Code: Alles auswählen

<xml xmlns="https://developers.google.com/blockly/xml">
  <variables>
    <variable id="~wZ)n(-tznPq0[{zY5`m">ChargePointEnabledStatus</variable>
    <variable id="YDydck(vi-SaN.WZ4;Zw">ChargeModeStatus</variable>
  </variables>
  <block type="comment" id="7qW+2bm!RI[7#|LO5]oa" x="-538" y="-913">
    <field name="COMMENT">Ladepunkt ein oder ausschalten</field>
    <next>
      <block type="on" id=",IS[4)e@NF,oeytw6k)O">
        <field name="OID">javascript.0.scriptEnabled.EigeneDatenpunkte.openWB.ChargePointEnabled4JS</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
          <block type="variables_set" id="o#W{amjxS~NNDP3e4D7(">
            <field name="VAR" id="~wZ)n(-tznPq0[{zY5`m">ChargePointEnabledStatus</field>
            <value name="VALUE">
              <block type="convert_tonumber" id="h!1+G[;Xk|BpQFzO5e*8">
                <value name="VALUE">
                  <block type="get_value" id="|+X%@seAYLztvP4rk(}N">
                    <field name="ATTR">val</field>
                    <field name="OID">javascript.0.scriptEnabled.EigeneDatenpunkte.openWB.ChargePointEnabled4JS</field>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="controls_if" id="37WU}q|f:=oyS{sJQTK^">
                <value name="IF0">
                  <block type="logic_compare" id="0knOghK7yvNS_zBR*vL9">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="variables_get" id="+OxlltUSUt:0M_^+6QMM">
                        <field name="VAR" id="~wZ)n(-tznPq0[{zY5`m">ChargePointEnabledStatus</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id="+tTFF4l](4X_=IW:G[A%">
                        <field name="NUM">1</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="%ybV66FEE`=c|j8q^Xg^">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">mqtt.0.openWB.set.lp1.ChargePointEnabled</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="convert_tonumber" id="?VNMpVAN]L3yxSbXwQq1">
                        <value name="VALUE">
                          <block type="math_number" id="1yy~OQUu$Ges-Yy|TsOC">
                            <field name="NUM">1</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </statement>
                <next>
                  <block type="controls_if" id="wD$iZ{VCXOH4s2E/onOE">
                    <value name="IF0">
                      <block type="logic_compare" id=",ZgDh@Vr`Ax+1x{L5E=$">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="variables_get" id="S?@_m:_S|kC2u1u61~fj">
                            <field name="VAR" id="~wZ)n(-tznPq0[{zY5`m">ChargePointEnabledStatus</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="3c8EbtOU~:XbZLZXl^;4">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="kF2/HyA+kI=Fym)4YguO">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">mqtt.0.openWB.set.lp1.ChargePointEnabled</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="convert_tonumber" id="+f$AG.9^=VK+Go+_i}c6">
                            <value name="VALUE">
                              <block type="math_number" id="e0O?JUmho~Hs?8e6]9/=">
                                <field name="NUM">0</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
        <next>
          <block type="comment" id="B$^Rp(~4lo{g]UP;aS[n">
            <field name="COMMENT">Lademodus setzen: 0 Sofortladen, 1 PV only, 2 Min+PV, 3 Standby, 4 Stop</field>
            <next>
              <block type="on" id="I5un{R:^(zkex?yTQ8.N">
                <field name="OID">javascript.0.scriptEnabled.EigeneDatenpunkte.openWB.ChargeMode4JS</field>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION"></field>
                <statement name="STATEMENT">
                  <block type="variables_set" id="pHk#Qcz#0MdmtQ~gse2Y">
                    <field name="VAR" id="YDydck(vi-SaN.WZ4;Zw">ChargeModeStatus</field>
                    <value name="VALUE">
                      <block type="convert_tonumber" id="X)s^}jnuPz!9zv/JX[Be">
                        <value name="VALUE">
                          <block type="get_value" id="9#zneZG$}SE55cc`@lc$">
                            <field name="ATTR">val</field>
                            <field name="OID">javascript.0.scriptEnabled.EigeneDatenpunkte.openWB.ChargeMode4JS</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="controls_if" id="*[R(w]:ZzU-#W+KL^qDV">
                        <value name="IF0">
                          <block type="logic_compare" id="q-V1pUX|vJoY~Sa_TL:H">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="variables_get" id="#J$#IdMKk{_VjPQa1@!O">
                                <field name="VAR" id="YDydck(vi-SaN.WZ4;Zw">ChargeModeStatus</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="bCsM~5yQH^ybf`RJeO_,">
                                <field name="NUM">0</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="control" id="acynNsk|t,)qF1nBzLGr">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">mqtt.0.openWB.global.ChargeMode</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="convert_tonumber" id="r|,QFY81fh[c0ChZ^[%0">
                                <value name="VALUE">
                                  <block type="math_number" id="M2uPE-KwOWz_^2q(B/ej">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </statement>
                        <next>
                          <block type="controls_if" id="]N_Zpv)Eg/:a.)-quGiH">
                            <value name="IF0">
                              <block type="logic_compare" id="P|15G}%yKB3O7CVvhiaX">
                                <field name="OP">EQ</field>
                                <value name="A">
                                  <block type="variables_get" id="zE,4;:88X+w~?Z7]x#X6">
                                    <field name="VAR" id="YDydck(vi-SaN.WZ4;Zw">ChargeModeStatus</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="math_number" id="wAsJ1@iE2sF`#QqtDwk5">
                                    <field name="NUM">1</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="control" id="]6wg+Q3_34k/H|_cFC#b">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">mqtt.0.openWB.global.ChargeMode</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="convert_tonumber" id="`WQx8E,EA8MDrYiy/uwp">
                                    <value name="VALUE">
                                      <block type="math_number" id="^-0R4Mw`kvhM`5ws~g)^">
                                        <field name="NUM">1</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </statement>
                            <next>
                              <block type="controls_if" id="D/.`Vh5hA!!^Z6P4v@Z5">
                                <value name="IF0">
                                  <block type="logic_compare" id="d#B5vX@$b,gGDb^[,(7i">
                                    <field name="OP">EQ</field>
                                    <value name="A">
                                      <block type="variables_get" id="yl[P9B`3d*dgrPEbK|49">
                                        <field name="VAR" id="YDydck(vi-SaN.WZ4;Zw">ChargeModeStatus</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="math_number" id="oh6`Mm1p*E}q2LA?644-">
                                        <field name="NUM">2</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <statement name="DO0">
                                  <block type="control" id="?V={Y@1YD?X:^LkXMcex">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">mqtt.0.openWB.global.ChargeMode</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="convert_tonumber" id=":#@r:%#Im/X-g5iPWn$k">
                                        <value name="VALUE">
                                          <block type="math_number" id=")T|s)GzYP~71,+IqEgpP">
                                            <field name="NUM">2</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                                <next>
                                  <block type="controls_if" id="y_Hf19q7+7kLpMLtjMft">
                                    <value name="IF0">
                                      <block type="logic_compare" id="95fk*s1gwkTgXS.s|832">
                                        <field name="OP">EQ</field>
                                        <value name="A">
                                          <block type="variables_get" id="{Y*:|NNp/*.R8^{rYD58">
                                            <field name="VAR" id="YDydck(vi-SaN.WZ4;Zw">ChargeModeStatus</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="math_number" id="fS6KQK]ILtGQklpD}c].">
                                            <field name="NUM">3</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <statement name="DO0">
                                      <block type="control" id="H]IbQuKy6*[{yucxO6y|">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                        <field name="OID">mqtt.0.openWB.global.ChargeMode</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE">
                                          <block type="convert_tonumber" id="fogzU,yek$%V9XE5pnd^">
                                            <value name="VALUE">
                                              <block type="math_number" id="!4*3rLbM^tD?=(`*{}_U">
                                                <field name="NUM">3</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </statement>
                                    <next>
                                      <block type="controls_if" id="IpPCAwPq3{sI/S7dfC?F">
                                        <value name="IF0">
                                          <block type="logic_compare" id="0g[y.=)XtrDhX]_}:rdI">
                                            <field name="OP">EQ</field>
                                            <value name="A">
                                              <block type="variables_get" id="rI-~Wri12*xpAoMPcn[r">
                                                <field name="VAR" id="YDydck(vi-SaN.WZ4;Zw">ChargeModeStatus</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <block type="math_number" id="[LnA~6ycxZDWA/:so1`N">
                                                <field name="NUM">4</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <statement name="DO0">
                                          <block type="control" id="l8_(7ERXfaJ8t*`NBk}G">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                            <field name="OID">mqtt.0.openWB.global.ChargeMode</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE">
                                              <block type="convert_tonumber" id="KIMp`!dC_ppulz$3LE_u">
                                                <value name="VALUE">
                                                  <block type="math_number" id="K:Nr`(eHkQ/J7ReF7vaA">
                                                    <field name="NUM">4</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </statement>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </next>
      </block>
    </next>
  </block>
</xml>
Viele Grüße

mading

Fronius Symo 7.0.3M mit SmartMeter - 6,96kwp | openWB series2 standard+ | Visualisierung + Steuerung mit iobroker/ vis und Grafana | VW ID4
LutzB
Beiträge: 3479
Registriert: Di Feb 25, 2020 9:23 am

Re: ioBroker / MQTT

Beitrag von LutzB »

Dir fehlt das "set" in dem Topic. ;)
mading
Beiträge: 97
Registriert: Do Mai 09, 2019 2:58 pm

Re: ioBroker / MQTT

Beitrag von mading »

LutzB hat geschrieben: Mi Jul 21, 2021 3:58 pm Dir fehlt das "set" in dem Topic. ;)
in welchem meinst du? Ich habe es mit mqtt.0.openWB.set.Lademodus getestet, geht leider nicht.

Der Sub Charge Mode mit mqtt.0.openWB.set.lp1.DirectChargeSubMode geht leider auch nicht. Stehe ich auf dem Schlauch?
Viele Grüße

mading

Fronius Symo 7.0.3M mit SmartMeter - 6,96kwp | openWB series2 standard+ | Visualisierung + Steuerung mit iobroker/ vis und Grafana | VW ID4
skyflying
Beiträge: 12
Registriert: Fr Jun 04, 2021 1:48 pm

Re: ioBroker / MQTT

Beitrag von skyflying »

@Mading,

wie sieht es denn aus, wenn Du die Werte manuell indem jeweiligen Set Objekt einträgst? Geht es denn dann?

Das ist nämlich mein Problem, das die Werte nicht ankommen. Tippe ich den Wert manuell in das Objekt, wird der Wert „abgeholt“ und danach auch wieder aus dem Set Objekt wieder bereinigt. Übergebe ich den Wert über Blockly, wann wir er auch in das Set Objekt eingetragen aber nicht „abgeholt“ und folglich nicht gesetzt.

Kannst Du das bitte mal prüfen.

Danke für das Blocklyscript. Ich werde später oder morgen mal weiter testen. Bis dato wollte ich PV.1.W Werte übertragen. Um den Fehler weiter einzukreisen, teste ich das mal mit Chargemode und Blockly zusammen.
mading
Beiträge: 97
Registriert: Do Mai 09, 2019 2:58 pm

Re: ioBroker / MQTT

Beitrag von mading »

beim SubChargeMode bringt es nichts den Datenpunkt direkt zu setzen (auch nicht im mqtt/openWb/set/lp1 direkt. Wird also auch nicht „abgeholt“.
Viele Grüße

mading

Fronius Symo 7.0.3M mit SmartMeter - 6,96kwp | openWB series2 standard+ | Visualisierung + Steuerung mit iobroker/ vis und Grafana | VW ID4
LutzB
Beiträge: 3479
Registriert: Di Feb 25, 2020 9:23 am

Re: ioBroker / MQTT

Beitrag von LutzB »

Schau doch am Besten in der mqttsub.py nach, welche Topics erwartet werden.

https://github.com/snaptec/openWB/blob/ ... mqttsub.py
mading
Beiträge: 97
Registriert: Do Mai 09, 2019 2:58 pm

Re: ioBroker / MQTT

Beitrag von mading »

👍🏼 mach ich spätestens morgen. Am iPad ists bisl umständlich
Viele Grüße

mading

Fronius Symo 7.0.3M mit SmartMeter - 6,96kwp | openWB series2 standard+ | Visualisierung + Steuerung mit iobroker/ vis und Grafana | VW ID4
skyflying
Beiträge: 12
Registriert: Fr Jun 04, 2021 1:48 pm

Re: ioBroker / MQTT

Beitrag von skyflying »

Ich kann das Verhalten von "Mading" bestätigen. Das direkte schreiben der Werte über den direkten Weg geht sowie auch der Weg über den Pfad "set/....", wobei es auch nicht immer greift. Den Hintergrund konnte ich noch nicht rausbekommen.

Zum Thema: SubChargeMode - dies wird im mqttsub.py nicht mit berücksichtigt


Generell wird in dem Script z.B. bei ChargeMode nur über "openWB/set/ChargeMod" geprüft und in "openWB/global/ChargeMode" gepublisht.
Vom Prinzip her (und das ist das was gerade so hier passiert), können auch die Werte direkt in den Parameter geschrieben werden. Also hier als Beispiel "openWB/global/ChargeMode". Denke das sollte aber nicht im Sinne des Erfinders sein.

So wie ich es interpretiere, sollte es eigentlich so sein, das man über alle Daten von extern (hier iobroker) nur eine abgreifende/lesende Möglichkeit hat und wenn Daten an openWB übergeben werden sollen, diese ausschließlich nur über den Pfad "set/..." erfolgen darf.

@LutzB: Sehe ich das richtig?
LutzB
Beiträge: 3479
Registriert: Di Feb 25, 2020 9:23 am

Re: ioBroker / MQTT

Beitrag von LutzB »

Stimmt, alles darf gelesen werden, Änderungen immer über set.
Antworten