EHZ Daten von FHEM per MQTT zu Victron VenusOS ??

Begonnen von FHEMGerd, 26 Oktober 2022, 20:14:49

Vorheriges Thema - Nächstes Thema

FHEMGerd

Mal ein Update bzw. Status, vielleicht auch Abschluss des Threads  :)

@sledge:
Nach meinem Verständnis funktioniert Dein Vorschlag, dem VenusOS per Modbus die Leistung am Einspeisepunkt zu übermitteln nicht.
Ich habe mir die Liste mit den Modbus Registern runtergeladen. Da sind auch beschreibbare Register dabei.
Aber m. E. sind das "nur" Konfigurationsdaten, keine dynamischen Daten, insbesondere nicht die Leistung am Einspeisepunkt.

Inzwischen ist es mir gelungen, dem VenusOS, bzw. dem python Skript (Vorlage hier: https://github.com/Marv2190/venus.dbus-MqttToGridMeter) die Leistung am Einspeisepunkt per MQTT zu schicken.
Das python Skript schreibt das dann in den entsprechenden dbus Wert (m. E. "/Ac/Power").

Kurios dabei: Beim Publishen (per notifiy) von FHEM zur openwb (ein MQTT2_CLIENT Gerät) spreche ich eben die openwb an, siehe auch Beitrag vom 27.10.
Das Publish zum VenusOS geht aber sozusagen von FHEM aus m. E. "ins Blaue".
Das VenusOS ist in FHEM gar nicht als Gerät bekannt.
Es funktioniert aber trotzdem:
defmod n_EHZ_P2venus notify myEHZremote:power:.* { fhem("set myBroker publish zaehler/strom/EVU/WirkleistungGesamt " . int($EVTPART1) ) }
Ich hatte zwar das python Skript auf dem VenusOS zu Testzwecken mal dazu gebracht etwas in Richtung FHEM zu publishen, und daraufhin wurde auch ein Gerät angelegt.
Das konnte ich aber löschen (ich will ja von VenusOS aus gar nichts publishen).
Vielleicht ist das VenusOS noch irgendwo in der Konfig des FHEM MQTT Servers vorhanden, aber ich konnte nichts finden, insbesondere nicht die IP Adresse.

Dass es trotzdem funktioniert heißt für mich nur, dass ich das Konzept, wie FHEM MQTT abbildet einfach nicht wirklich verstanden habe.  :)

Danke nochmal für Eure Hilfe.

sledge

Hi FHEMGerd,

nur kurz: Die gesuchten Register in der Modbus-Doku heißen meist *setpoint*, teilweise noch für die entsprechenden Phasen L1-L3. Und die Liste beinhaltet nicht nur "Konfigurationsparameter (die aber auch)", sondern auch die erfordelrichen Register für die aktuellen System-/Leistungsdaten.

Unter "com.victronenergy.grid" hättest Du alles gefunden.

Aber wenn es jetzt bei Dir läuft und Du mit der Geschwindigkeit Deiner Lösung zufrieden bist - there you go.

FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

Fachwerkbewohner

Hallo FHEMGerd,

kannst Du mal bitte sagen, wie Du das Python-Script configuriert hast?
Also diese Zeilen hier:
broker_address = "IPADRESS"
MQTTNAME = "MQTTtoMeter"
Zaehlersensorpfad = "Path"

Ich habe bei Path den Pfad zum MQTT-Topic eingetragen und glaube, dass hier etwas falsch ist.
Zaehlersensorpfad = "zaehler/strom/EVU/WirkleistungGesamt"

Dieses Topic enthält bei mir nur einen int-Wert und das Script erwartet hier einen json-Ausdruck.
Mir fehlt aber eine debug-Möglichkeit, um sagen zu können, was das Script überhaupt empfängt.


Gruß
Mathias


-------------------------------------------------------------
RPI1 Garage - RPI3 Heizung - RPI4 Haus
KNX - 1-Wire - I²C - EnOcean - Z-WAVE - ZigBee - Modbus - MQTT

FHEMGerd

Hallo Matthias,

entschuldige, ich sehe das erst jetzt. Hier die Zeilen, hoffe das hilft Dir noch:

# MQTT Setup
broker_address = "192.x.x.x"
port = 1883
MQTTNAME = "FHEM"

Die Konstante bzw. den alias Zaehlersensorpfad benutze ich nicht, den habe ich entfernt.
Ich habe an der Stelle, an der sich das Skript als Client für die Topics subscribed diese direkt eingetragen:

def on_connect(client, userdata, flags, rc):
    print("Verbunden mit MQTT Broker: " + broker_address)
    client.subscribe("zaehler/strom/EVU/WirkleistungGesamt")
    client.subscribe("zaehler/strom/EVU/Bezug")

Diese Topics publishe ich dann im FHEM wie beschrieben per notify.

Grüße, Gerd