NEWS
Wallbox, PV mit openWB in iobroker einbinden
-
@mading Danke!
Die SN Datenpunkte hatte ich nicht wissentlich angelegt, hab sie jetzt einfach mal gelöscht.
Wie ich eigene Datenpunkte anlege hatte ich oben gelernt, wichtig deine Bemerkung, dass ich sie im Expertenmodus anlegen muss.
Nun muss ich mir noch mehr Docu und Anleitungen reinziehen, damit ich die richtigen und nicht zu dumme Fragen stellen kann. -
Hallo Forum, jetzt hätte ich noch eine Frage, die mir in der Docu nicht klar wird. Dort steht bei 'Blockly for Dummies' dass:
'ACHTUNG: Scripte - egal welcher Art - gehören nur in sehr seltenen Ausnahmefällen in den Ordner "global". Du solltest Dir eine sinnvolle Ordnerstruktur - im Normalfall unterhalb von "common" - ausdenken.'Soll es heißen, dass die Scripte 'in' oder 'unter' 'common' angelegt werden sollen?
Bei mir sieht es nun 'unter' so aus, siehe Bild.
Danke für eure Hilfe -
@wolfirr richtig, den Expertenmodus brauchst du da nicht und siehst den global Ordner dann auch nicht
-
@mading Danke, aber ich hab mich vielleicht nicht präzise genug ausgedrückt. Ich wollte wissen, ob ich die Scripte IM Ordner 'common' oder UNTERHALB des Ordners anlegen soll?
Ok, ich mach das nicht im Expertenmodus, das war wohl ein Fehler.
Heute hatte ich bei Sonne endlich die Möglichkeit die Scripte zu testen und sie tun leider nicht, was ich will. Also es werden keine Datenpunkte gefüllt oder angelegt und damit auch nichts sinnvolles an die openWB per mqtt geschickt.
Da muss ich wohl noch weiter üben, weil ich auch nicht herausgefunden habe, woran es liegt. -
@wolfirr unterhalb, leg‘ einfach deine eigene Ordnerstruktur an.
-
@mading endlich konnte ich bei Sonnenschein den Speicher mal wieder richtig betreiben und das Blockly nochmal laufen lassen und testen. Dabei ist mir folgender Debug ausgegeben worden und ich weiß nicht, wo der Fehler liegen kann?
Danke im VorausDebug Output:
15.2.2024, 12:55:39.788 [info ]: javascript.0 (1832412) Start javascript script.js.Speicher.SN103 15.2.2024, 12:55:39.871 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: schedule(cron=* * * * *) 15.2.2024, 12:55:39.873 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1707994275680,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707994275680} 15.2.2024, 12:55:39.873 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1707994275680,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707994275680} 15.2.2024, 12:55:39.874 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":1963,"ack":true,"ts":1707998056473,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707998056473} 15.2.2024, 12:55:39.875 [error]: javascript.0 (1832412) script.js.Speicher.SN103 Error by subscription (trigger): Wrong ID of type boolean or number. 15.2.2024, 12:55:39.875 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 15.2.2024, 12:56:00.049 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: getObject(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, enumName=undefined) => {"_id":"fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W","type":"state","common":{"name":"ESS_Minutenwerte 03_Battery_to_Household_in_W","type":"number","role":"value","read":true,"write":false,"custom":{"influxdb.0":{"enabled":true,"storageType":"Number","aliasId":"","debounceTime":0,"blockTime":0,"changesOnly":true,"changesRelogInterval":0,"changesMinDelta":0,"ignoreBelowNumber":"","disableSkippedValueLogging":false,"enableDebugLogs":false,"debounce":1000}}},"native":{"Name":"ESS_Minutenwerte","Attribute":"03_Battery_to_Household_in_W","Readings":true,"type":"number","role":"value"},"value":{"val":"0"},"from":"system.adapter.influxdb.0","user":"system.user.admin","ts":1704876495776} 15.2.2024, 12:56:00.050 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":1963,"ack":true,"ts":1707998056473,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707998056473} 15.2.2024, 12:56:00.051 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":1963,"ack":true,"ts":1707998056473,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707998056473} 15.2.2024, 12:56:00.052 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: setForeignState(id=0_userdata.0.eigeneDatenpunkte.Caterva.SN103.LeistungSN103, state={"val":-1963,"ack":true,"ts":1707998160052,"q":0,"from":"system.adapter.javascript.0","lc":1707998160052,"c":"script.js.Speicher.SN103"}) 15.2.2024, 12:56:00.053 [warn ]: javascript.0 (1832412) script.js.Speicher.SN103: setForeignState(id=0_userdata.0.eigeneDatenpunkte.Caterva.SN103.LeistungSN103, state={"val":-1963,"ack":true,"ts":1707998160052,"q":0,"from":"system.adapter.javascript.0","lc":1707998160052,"c":"script.js.Speicher.SN103"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist 15.2.2024, 12:56:00.055 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/W","message":"0","retain":true}, hasCallback=true) 15.2.2024, 12:56:00.058 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.01_SoC_in_Pct, timerId=undefined) => {"val":70,"ack":true,"ts":1707997876082,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707997876082} 15.2.2024, 12:56:00.059 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/%Soc","message":70,"retain":true}, hasCallback=true) 15.2.2024, 12:56:20.056 [error]: javascript.0 (1832412) script.js.Speicher.SN103: timeout 15.2.2024, 12:56:20.058 [error]: javascript.0 (1832412) script.js.Speicher.SN103: timeout 15.2.2024, 12:57:00.052 [info ]: javascript.0 (1832412) script.js.Speicher.SN103: getObject(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, enumName=undefined) => {"_id":"fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W","type":"state","common":{"name":"ESS_Minutenwerte 03_Battery_to_Household_in_W","type":"number","role":"value","read":true,"write":false,"custom":{"influxdb.0":{"enabled":true,"storageType":"Number","aliasId":"","debounceTime":0,"blockTime":0,"changesOnly":true,"changesRelogInterval":0,"changesMinDelta":0,"ignoreBelowNumber":"","disableSkippedValueLogging":false,"enableDebugLogs":false,"debounce":1000}}},"native":{"Name":"ESS_Minutenwerte","Attribute":"03_Battery_to_Household_in_W","Readings":true,"type":"number","role":"value"},"value":{"val":"0"},"from":"system.adapter.influxdb.0","user":"system.user.admin","ts":1704876495776}
-
@wolfirr
Es gibt wohl ein Problem mit 1832412) script.js.Speicher.SN103 Error by subscription (trigger): Wrong ID of type boolean or number.Was ist das für ein DP?
-
@mading Hallo Mading, auf was referenziert die '1832412'? Finde dazu keinen Zusammenhang. Habe noch sehen, dass da ein verstecktes Blockly war, dass ich nicht gesehen hatte. Nachdem ich es entfernt habe, kommt nur noch der Timeout:
21:49:00.568 info javascript.0 (1832412) Start javascript script.js.Speicher.SN103 21:49:00.783 info javascript.0 (1832412) script.js.Speicher.SN103: schedule(cron=* * * * *) 21:49:00.784 info javascript.0 (1832412) script.js.Speicher.SN103: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 21:50:00.056 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1708103715789,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708103715789} 21:50:00.057 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1708094176184,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708094176184} 21:50:00.059 info javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/W","message":"0","retain":true}, hasCallback=true) 21:50:00.061 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.01_SoC_in_Pct, timerId=undefined) => {"val":13,"ack":true,"ts":1708103895547,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708103895547} 21:50:00.065 info javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/%Soc","message":13,"retain":true}, hasCallback=true) 21:50:20.060 error javascript.0 (1832412) script.js.Speicher.SN103: timeout 21:50:20.065 error javascript.0 (1832412) script.js.Speicher.SN103: timeout 21:51:00.044 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1708103715789,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708103715789} 21:51:00.045 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1708094176184,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708094176184} 21:51:00.047 info javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/W","message":"0","retain":true}, hasCallback=true) 21:51:00.048 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.01_SoC_in_Pct, timerId=undefined) => {"val":13,"ack":true,"ts":1708103895547,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708103895547} 21:51:00.049 info javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/%Soc","message":13,"retain":true}, hasCallback=true) 21:51:20.047 error javascript.0 (1832412) script.js.Speicher.SN103: timeout 21:51:20.049 error javascript.0 (1832412) script.js.Speicher.SN103: timeout 21:52:00.040 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1708103715789,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708103715789} 21:52:00.040 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1708094176184,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708094176184} 21:52:00.042 info javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/W","message":"0","retain":true}, hasCallback=true) 21:52:00.043 info javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.01_SoC_in_Pct, timerId=undefined) => {"val":13,"ack":true,"ts":1708103895547,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1708103895547} 21:52:00.044 info javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/%Soc","message":13,"retain":true}, hasCallback=true)
Danke
Wolfirr -
@wolfirr schwer zu sagen. Wie oft schickst du Updates an den Speicher oder fragst ihn ab? Wie ist der Speicher angebunden (WLan/ LAN)?
-
@mading Danke soweit, ich hab noch ein paar Änderungen und Tests durchgeführt, dann die openWB auf V2 upgedated. Jetzt kommen die Daten an der openWB an und werden auch richtig angezeigt. Hoffe, dass nun auch das PV-Überschussladen richtig funktioniert.
In der V1.9 openWB war anscheinend ein Fehler mit MQTT, da ich immer Schwierigkeiten hatte den Topic richtig zu bezeichnen und die Schreibweise der houseBattery irgendwie nicht korrekt erkannt wurde.
Die Gerätschaften sind alle per LAN angeschlossen, da bei mir das WLAN schwierig ist mit dauerhafter Verbindung in die verschiedenen Gebäude.Herzlichen Dank an eure Unterstützung!
Wenn jemand Fragen hat, wie man iobroker mit openWB V2.0 anbindet, jetzt hab ich etwas Erfahrung sammel dürfen und kann vielleicht auch helfen.
Wolfirr! -
@wolfirr
Hallo wolfirr,ich bin leider nicht sehr erfahren mit MQTT. Ich bin ebenfalls mit dem iobroker unterwegs und möchte Daten meiner openWB mit dem Softwarestand 2.1.4 auslesen.
Dazu habe ich den mqtt-client als Adapter heruntergeladen und die ip-Adresse der openWB eingetragen, siehe den Screenshot.
Leider bekomme ich aber keine Daten unter den Objekten eingelesen. Mir ist allerdings auch nicht klar, wer als MQTT-Broker agiert. Muss ich dazu erst noch einen MQTT-Broker installieren, oder übernimmt das bereits die openWB? Muss in der openWB die Brücke aktiviert werden? Welche Funktion hat diese Brücke?
Herzliche Dank im Voraus, vielleicht kannst Du mir dazu ein paar Infos geben?
-
@mar-bus
Hallo.
Hier https://forum.iobroker.net/topic/43655/wallbox-pv-mit-openwb-in-iobroker-einbinden/64
habe ich beschrieben wie ich das bei mir gelöst habe.
Die openWB ist der Mqtt Broker.Gruß
-
Danke für die Info, zwei kurze Fragen:
Wenn ich das richtige sehe, hast du sowohl den Broker als auch den Client in deinem iobroker eingerichtet. Werden beide Adapter gebraucht? Oder ist der Broker aus anderen Gründen installiert worden?
Die Brücke muss auch eingerichtet werden?
Herzliche Grüße
-
Noch eine weitere Frage:
ist die Bezeichnung der Brücke im mqtt-client als Class-ID einzutragen, in deinem Beispielen ist die Class-ID "iobr_openwb", während die Brücke in der openWB "ioBroker" lautet, oder sind die Bezeichnungen unabhängig von einander und können beliebig gewählt werden?
Danke und Grüße
-
@mar-bus
Ich habe auf der OpenWB keine Brücke eingerichtet.
Mit MQTT-Explorer kannst du die mal anschauen was die Box ohne Brücke so alles von sich gibt.
Den MQTT-Brocker Adapter hat bei mir keinen Bezug zur WB.
Die client-ID ist beliebig, muss aber in deinem Netz einmalig sein.Gruß
-
Mit welcher Intention hast Du denn dann die Konfiguration der Brücke geteilt. Nur zur Info?
Herzliche Grüße
-
@mar-bus
Du hats mich erwischt :-), da war was aus der alten WB Software mit reingerutscht.
Aktuell so eingestellt:
-
Ok, das macht dann Sinn. Ich habe mir jetzt den mqtt-explorer installiert, dort kann ich sehen, was die openwb published.
Leider klappt es mqtt-client-adapter im ioBroker nicht. Unter den Objekten des mqtt-clients werden keine Objekte angezeigt.
Irgendeine Idee?
-
@mar-bus
Die Objekte die du brauchst musst du selbst anlegen und konfigurieren.
Beispiele hier:
https://forum.iobroker.net/topic/43655/wallbox-pv-mit-openwb-in-iobroker-einbinden/64 -
@ag
Danke für die Hinweise, ich bin jetzt auf einem anderen Wege zum Erfolg gekommen.Ich habe den mqtt-Broker/Client-Adapter installiert. Dann habe ich die Verbindungsdaten zur openWB als Client eingepflegt.
Im nächsten Schritt habe ich unter den Client Settings nur die Subscribe Pattern eingepflegt, die für mich interessant sind. Dabei hat der mqtt-explorer mir gute Dienste erwiesen.
Im letzten Schritt habe ich dann unter MQTT Einstellungen die Maske zum Bekanntgeben eigener States geleert, damit wird anscheinend wohl ein Publishing in Richtung openWB vermieden. Ich hatte davor immer Fehlermeldungen im Protokoll, weil Fehler beim Subsriben und Publishen auftraten.
Ein anderer Weg, aber dieser scheint jetzt zu funktionieren.
Danke für die Hilfe.