FHEM und Victron VRM Portal

Begonnen von Joachim, 11 Mai 2025, 16:00:15

Vorheriges Thema - Nächstes Thema

Joachim

Moin an alle,
seit Ewigkeiten habe ich nun doch mal ein Problem, welches ich auch nach ausfürlicher Suche im Forum und im www nicht lösen kann.

Worum geht es?
Ich habe in meinem Wohnmobil
- einen Smart Charger
- einen Cerbro GX
- einen Multiplus 500/20
eingebaut (alles von Victron)
das Ganze an das Victron-Portal angebunden, und möchte jetzt das Ganze mit FHEM und dem MQTT2_CLIENT zu Hause  verbinden.

Zum testen habe ich
- als erstes den MQTT Explorer --> https://mqtt-explorer.com/ installiert,
- die entsprechende Adresse für das Portal errechnet --> https://haus-automatisierung.com/batteriespeicher/2023/12/20/venus-os-mqtt-broker-geraete-emulieren.html
- das Certifikat für das Portal besorgt --> https://github.com/victronenergy/dbus-flashmq
und das ganze in die Anmeldemaske des MQTT Explorers eingegeben.
Host: mqttXX.victronenergy.com --> XX muß errechnet werden
Username: der von Victron zugeteilte Username im Format einer E-Mail adresse
Passwort: mein gewähltes Passwort
unter Advanced das heruntergeladene Servercertifikat importiert
und ein Topic im Format N/VRM_PORTAL_ID/# angelegt.
und auf dem MQTT Explorer laufen die Daten ein.
Wunderbar, MQTT Explorer wieder geschlossen.

Jetzt ein frisches FHEM aufgebaut, und ein MQTT"_Client eingerichtet.
define victron MQTT2_CLIENT mqttXX.victronenergy.com:8883
setuuid victron 681b8899-f33f-e2ed-f63e-0b2ccfde641c5196
attr victron SSL 1
attr victron autocreate no
attr victron disable 0
attr victron sslargs SSL_version:TLSv12 SSL_ca_file:venus-ca.crt SSL_use_cert:1
attr victron username xxxxxxxx@xxxxxxxxx
attr victron verbose 5

über set Password noch mein Passwort vergeben
und das Certifikat im FHEM Ordner versenkt.
leider rennt es nicht, im log folgende Zeilen (Username Passwort und SimpleWrite unknntlich gemacht):
2025.05.11 14:32:55 0: Featurelevel: 6.4
2025.05.11 14:32:55 0: Server started with 5 defined entities (fhem.pl:29809/2025-03-30 perl:5.038002 os:linux user:fhem pid:12822)
2025.05.11 14:32:55 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.11 14:32:55 4: IP: mqttXX.victronenergy.com -> 3.75.75.80
2025.05.11 14:32:55 5: victron: sending CONNECT (16)8(0)(6)MQIsdp(3)(194)(0)(30)(0)(7)victron(0)(17)jxxxxxx@xxxxxx(0)(14)xxxxxxxx
2025.05.11 14:32:55 5: DevIo_SimpleWrite victron: 103800064d514973647003c2001e000776696374726f6e00116a6f616368696d406865726f6c642d6868000e536565xxxxxxxxxxxxxxxx
2025.05.11 14:32:55 1: mqttXX.victronenergy.com:8883 reappeared (victron)
2025.05.11 14:32:56 4: victron received CONNACK
2025.05.11 14:32:56 5: victron: received CONNACK (0)(5)
2025.05.11 14:32:56 1: victron: Connection refused, not authorized
2025.05.11 14:32:56 5: victron: discarding DISCONNECT (224)(0)
2025.05.11 14:32:56 1: mqttXX.victronenergy.com:8883 disconnected, waiting to reappear (victron)
und jetzt komme ich nicht mehr weiter.
Wahrscheinlich ist es nur eine Kleinigkeit, aber welche?

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

frober

Welches Format hat dein Zertifikat?

Vielleicht hilft dir das bezüglich Zertifikat. 1. Post alte Version
https://forum.fhem.de/index.php?topic=111959.840
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Joachim

#2
ZitatWelches Format hat dein Zertifikat?
Das heruntergeladene und funktionierende Certifikat hat die Endung crt.
Ich habe auch alle mir möglichen Konvertierungen wie  cer, der, p7b, pem versucht.
Hat alles nichts gebracht.
außerdem habe ich bei den sslargs ebenfalls SSL_cert_file versucht, das log hier:
2025.05.11 14:27:28 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.11 14:27:28 4: IP: mqttXX.victronenergy.com -> 3.75.75.80
2025.05.11 14:27:38 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.11 14:27:38 4: IP: mqttXX.victronenergy.com -> 3.75.75.80
2025.05.11 14:27:49 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.11 14:27:49 4: IP: mqtt43.victronenergy.com -> 3.75.75.80
2025.05.11 14:28:02 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.11 14:28:02 4: IP: mqttXX.victronenergy.com -> 3.75.75.80

mit SSL_cert_file:venus-ca.crt und fehlendem file venus_ca.crt wird das fehlende Certifikat bemängelt
2025.05.11 18:47:05 0: Featurelevel: 6.4
2025.05.11 18:47:05 0: Server started with 5 defined entities (fhem.pl:29809/2025-03-30 perl:5.038002 os:linux user:fhem pid:27754)
2025.05.11 18:47:05 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.11 18:47:05 4: IP: mqttXX.victronenergy.com -> 3.75.75.80
2025.05.11 18:47:05 4: SSL_cert_file venus-ca.crt can't be used: No such file or directory at /usr/share/perl5/IO/Socket/SSL.pm line 2378.
mit fehlendem Certifikat und SSL_ca_file:venus-ca.crt wird das fehlende Certifikat nicht bemängelt.

Den thread hatte ich durchgearbeitet, und das mit den sslargs gefunden. Hat mich aber insgesamt nicht weitergebracht.

Eine Key erstellen geht nicht, da der bei Victron liegt. Es gibt nur das Certifikat mit dem öffentlichen Schlüssel, das beim MQTT Explorer wunderbar funktioniert hat.
Umwandeln in p12 geht wegen des fehlenden privaten keys nicht.
Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

frober

Probiere mal die subscriptions zu setzen.
Wenn ich mich nicht irre, habe mal von einem Server gelesen, der kein Auth ohne
subscriptions zulässt.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Joachim

ZitatProbiere mal die subscriptions zu setzen.
Wenn ich mich nicht irre, habe mal von einem Server gelesen, der kein Auth ohne
subscriptions zulässt.

???
Da brauche ich Hilfe.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

frober

Zitat von: Joachim am 11 Mai 2025, 19:36:20
ZitatProbiere mal die subscriptions zu setzen.
Wenn ich mich nicht irre, habe mal von einem Server gelesen, der kein Auth ohne
subscriptions zulässt.

???
Da brauche ich Hilfe.

Gruß Joachim

Ich hab's jetzt so auch noch nicht gemacht, aber die Topics sieht man doch im MQTT Explorer!? Ein Topic sollte zum Testen reichen...
Bzw. gibt es keine Beschreibung?
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Joachim

ZitatIch hab's jetzt so auch noch nicht gemacht, aber die Topics sieht man doch im MQTT Explorer!? Ein Topic sollte zum Testen reichen...
Bzw. gibt es keine Beschreibung?
So, Topic gesetzt, hat es aber auch nicht gebracht.
attr victron subscriptions N/VRM_PORTAL_ID/#Log weiter so wie vorher.
2025.05.11 19:47:30 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.11 19:47:30 4: IP: mqttXX.victronenergy.com -> 3.75.75.80
2025.05.11 19:47:31 5: victron: sending CONNECT (16)8(0)(6)MQIsdp(3)(194)(0)(30)(0)(7)victron(0)(17)xxxxxxxxxxx@xxxxxxxxxxx(0)(14)xxxxxxxx
2025.05.11 19:47:31 5: DevIo_SimpleWrite victron: 103800064d514973647003c2001e000776696374726f6e00116a6f616368696d406865726f6c642d6868000e536565766574616cxxxxxxxxxxxx
2025.05.11 19:47:31 1: mqttXX.victronenergy.com:8883 reappeared (victron)
2025.05.11 19:47:35 4: victron received CONNACK
2025.05.11 19:47:35 5: victron: received CONNACK (0)(5)
2025.05.11 19:47:35 1: victron: Connection refused, not authorized
2025.05.11 19:47:35 5: victron: discarding DISCONNECT (224)(0)
2025.05.11 19:47:35 1: mqttXX.victronenergy.com:8883 disconnected, waiting to reappear (victron)

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

frober

Verbindungsversuch mit loggen...hab ich aber auch noch nicht gemacht.

Mehr Ideen habe ich momentan nicht, sorry.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Joachim

Erst einmal vielen Dank für Deine Mühe, vielleicht findet sich ja noch jemand anderes, der mir den entscheidenden Tipp geben kann.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

DasQ

#9
Ich hatte eine funktionierende Anleitung mal im Victron Forum gefunden. Leider find ich den Link nimmer. Das mag auch sein das die Anleitung auch im Archiv Forum von Victron ist. Ging aber nicht m Fhem im speziellen sondern ich mein iobroker ... kann aber auch Moquitto gewesen sein.

Aber es gibt eine, da bin ich mir sicher. Sobald ich den Link find post ich den hier rein.

***edit ich mein die zwei links waren das


https://community.victronenergy.com/t/mqtt-daten-fur-iobroker-aus-vrm-abgreifen/16111

https://communityarchive.victronenergy.com/questions/155407/mqtt-local-via-mqtt-broker.html
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Joachim

ZitatIch hatte eine funktionierende Anleitung mal im Victron Forum gefunden. Leider find ich den Link nimmer. Das mag auch sein das die Anleitung auch im Archiv Forum von Victron ist. Ging aber nicht m Fhem im speziellen sondern ich mein iobroker

Danke für die Links, aber die kannte ich schon.
Ich habe alle Daten, die nötig sind, um auf das VRM Portal zuzugreifen, und habe es mit dem MQTT Explorer erfolgreich geschafft. Mosquitto habe ich bisher nicht installiert, da FHEM das eigentlich kann, nur wie?
In diesen Daten, User,Passwort,Certifikat,Topic, sind alle Informationen, die nötig sind.
Nur wie müssen sie im MQTT2_Client eingetragen werden?

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Beta-User

Zitat von: Joachim am 11 Mai 2025, 19:54:33Log weiter so wie vorher.
Hmmm, vermutlich sollte Rudi sich das mal anschauen.

Falls (!) ich den Code von 00_MQTT2_CLIENT richtig interpretiere, sendet der die subscriptions erst nach dem Login, was ggf. anders ist als mosquitto_sub das tut. Da scheint die (zwingende: https://github.com/victronenergy/dbus-flashmq?tab=readme-ov-file#on-line-server-wildcard-subscription-limitation) subscription direkt beim Anmelden mitgeliefert zu werden.

Vielleicht hilft da auch eine connectFn() (https://svn.fhem.de/trac/changeset/27389/trunk).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Joachim

Moin Beta-User,
ZitatFalls (!) ich den Code von 00_MQTT2_CLIENT richtig interpretiere, sendet der die subscriptions erst nach dem Login,
Das ist meiner Meinung nach auch richtig.
Wenn ich mich im MQTT Explorer ohne subscriptions einlogge, wird die SSL-Verbindung aufgebaut, aber es werden keine Daten gesendet.
Ich hege den Verdacht, dass das Certifikat venus-ca.crt in FHEM nicht richtig abgefragt wird.
Hier ein Loginversuch
- 1. einlogversuch mit hinterlegtem venus-ca.crt im FHEM Stammverzeichnis, sslargs --> SSL_ca_file:venus-ca.crt  SSL_ca_path:/opt/fhem SSL_use_cert:1
- 2. einlogversuch ohne Certifikat, sslargs --> SSL_ca_file:venus-ca.crt  SSL_ca_path:/opt/fhem SSL_use_cert:1
- 3. einlogversuch mit hinterlegtem venus-ca.crt im FHEM Stammverzeichnis, sslargs --> SSL_cert_file:venus-ca.crt  SSL_cert_path:/opt/fhem SSL_use_cert:1
- 4. einlogversuch ohne Certifikat, sslargs --> SSL_cert_file:venus-ca.crt  SSL_cert_path:/opt/fhem SSL_use_cert:1
>>>>>>>>>> 1. Versuch <<<<<<<<<<<<<<<<<<<

2025.05.12 10:16:14 0: Server started with 5 defined entities (fhem.pl:29809/2025-03-30 perl:5.038002 os:linux user:fhem pid:8048)
2025.05.12 10:16:14 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.12 10:16:15 4: IP: mqttXX.victronenergy.com -> 3.75.75.80
2025.05.12 10:16:15 5: victron: sending CONNECT (16)6(0)(4)MQTT(4)(194)(0)(30)(0)(7)victron(0)(17)xxxxxx@xxxxxxxxx(0)(14)xxxxxxxxxxxxxx
2025.05.12 10:16:15 5: DevIo_SimpleWrite victron: 103600044d51545404c2001e000776696374726f6e00116a6f616368696d406865726f6c642d6868000e536565766574616c2dxxxxxxxxxxs
2025.05.12 10:16:15 1: mqttXX.victronenergy.com:8883 reappeared (victron)
2025.05.12 10:16:18 4: victron received CONNACK
2025.05.12 10:16:18 5: victron: received CONNACK (0)(5)
2025.05.12 10:16:18 1: victron: Connection refused, not authorized
2025.05.12 10:16:18 5: victron: discarding DISCONNECT (224)(0)
2025.05.12 10:16:18 1: mqttXX.victronenergy.com:8883 disconnected, waiting to reappear (victron)
2025.05.12 10:17:33 0: Server shutdown
2025.05.12 10:17:33 5: victron: discarding DISCONNECT (224)(0)
2025.05.12 10:17:34 1: Including fhem.cfg
2025.05.12 10:17:34 1: Including ./log/fhem.save
2025.05.12 10:17:34 1: Messages collected while initializing FHEM:SecurityCheck:

>>>>>>>>>> 2. Versuch <<<<<<<<<<<<<<<<<<<
2025.05.12 10:17:34 0: Featurelevel: 6.4
2025.05.12 10:17:34 0: Server started with 5 defined entities (fhem.pl:29809/2025-03-30 perl:5.038002 os:linux user:fhem pid:8080)
2025.05.12 10:17:34 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.12 10:17:34 4: IP: mqttXX.victronenergy.com -> 3.75.75.80
2025.05.12 10:17:34 5: victron: sending CONNECT (16)6(0)(4)MQTT(4)(194)(0)(30)(0)(7)victron(0)(17)xxxxxx@xxxxxxxxx(0)(14)xxxxxxxxxxxxxx
2025.05.12 10:17:34 5: DevIo_SimpleWrite victron: 103600044d51545404c2001e000776696374726f6e00116a6f616368696d406865726f6c642d6868000e536565766574616c2dxxxxxxxxxx
2025.05.12 10:17:34 1: mqttXX.victronenergy.com:8883 reappeared (victron)
2025.05.12 10:17:36 4: victron received CONNACK
2025.05.12 10:17:36 5: victron: received CONNACK (0)(5)
2025.05.12 10:17:36 1: victron: Connection refused, not authorized
2025.05.12 10:17:36 5: victron: discarding DISCONNECT (224)(0)
2025.05.12 10:17:36 1: mqttXXvictronenergy.com:8883 disconnected, waiting to reappear (victron)
2025.05.12 10:30:31 0: Server shutdown
2025.05.12 10:30:31 5: victron: discarding DISCONNECT (224)(0)
2025.05.12 10:30:33 1: Including fhem.cfg
2025.05.12 10:30:33 1: Including ./log/fhem.save
2025.05.12 10:30:33 1: Messages collected while initializing FHEM:SecurityCheck:

>>>>>>>>>> 3. Versuch <<<<<<<<<<<<<<<<<<<
2025.05.12 10:30:33 0: Featurelevel: 6.4
2025.05.12 10:30:33 0: Server started with 5 defined entities (fhem.pl:29809/2025-03-30 perl:5.038002 os:linux user:fhem pid:8315)
2025.05.12 10:30:33 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.12 10:30:38 4: IP: mqttXX.victronenergy.com -> 3.75.75.80

>>>>>>>>>> 4. Versuch <<<<<<<<<<<<<<<<<<<
2025.05.12 10:31:43 5: HttpUtils url=https://mqttXX.victronenergy.com:8883/ NonBlocking via https
2025.05.12 10:31:43 4: IP: mqttXX.victronenergy.com -> 3.75.75.80
2025.05.12 10:31:43 4: SSL_cert_file venus-ca.crt can't be used: No such file or directory at /usr/share/perl5/IO/Socket/SSL.pm line 2378.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

rudolfkoenig

ZitatIn diesen Daten, User,Passwort,Certifikat,Topic, sind alle Informationen, die nötig sind.
Nur wie müssen sie im MQTT2_Client eingetragen werden?
User: attr m2c username MyUser
Passwort: set m2c password MySecret
TLS: attr m2c SSL 1
Zertifikat: attr m2c sslargs SSL_cert_file:client.crt SSL_key_file:client.key (Dateiname relativ zu /opt/fhem)
Topic: attr m2c subscriptions Subscription1 Subscription2


ZitatDa scheint die subscription direkt beim Anmelden mitgeliefert zu werden.
Das geht nicht: die CONNECT Meldung enthaelt ClientID, Benutzername, Passwort, und LWT.
Subscription (und Publish) sind separate API Calls.
Zertifikate sind nicht Teil der MQTT API, das passiert vorher beim Aufbau der TLS Verbindung.

MQTT Version 5 (von FHEM nicht unterstuetzt) enthaelt die Moeglichkeit im Connect "Enhanced Authentication" zu spezifizieren, fuer mosquitto_sub muss man sowas per -D/--property spezifizieren. Weiss nicht, ob das in diesem Fall relevant ist.


Joachim

Moin Rudi,
ZitatUser: attr m2c username MyUser
Passwort: set m2c password MySecret
TLS: attr m2c SSL 1
Zertifikat: attr m2c sslargs SSL_cert_file:client.crt SSL_key_file:client.key (Dateiname relativ zu /opt/fhem)
Topic: attr m2c subscriptions Subscription1 Subscription2
Wo bekomme ich den client.key her? ist das der öffentliche Schlüssel?
Der private Schlüssel liegt bei Victron, und da kommt man aus gutem Grund nicht ran.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232