Hallo zusammen,
ich bin ziemlich neu im Thema Victron / Venus OS. Hier mein Aufbau:
Hardware
- Multiplus II 48/5000/70
- MK3-USB Interface
- Raspberry 3B+, hierauf Venus OS (2.85)
- Loxone Miniserver Gen.2
Problemstellung
Es ist zur Zeit ein Interface vorhanden, welches den Zähler meines Energieversorgers ausliest und in Loxone darstellt (Loxone Zählerinterface Air). D. h. ich bekomme (u. a.) über dieses Interface meine momentanen Einspeise- / Bezugswerte (in Watt). Über die API von Loxone kann ich mir diesen Wert per als .xml oder .json "ziehen":
.xml:
http://[Benutzername]:[Kennwort]@IP_Loxone/dev/sps/io/0CD870EC.90124C.AI2
Ausgabe der Webseite:
<LL control="dev/sps/io/0CD870EC.90124C.AI2" value="1.109" Code="200"/>
Hier bekomme ich also bei value meinen Momentanwert (positiv = Bezug, negativ = Einspeisung)
bei .json sieht das Ganze nun wie folgt aus:
http://[Benutzername]:[Kennwort]@IP_Loxone/jdev/sps/io/0CD870EC.90124C.AI2
Ausgabe der Webseite:
{"LL": { "control": "dev/sps/io/0CD870EC.90124C.AI2", "value": "1.108", "Code": "200"}}
Ich möchte nun über einen eigenen Treiber diesen Wert ("value") nehmen, einen Zähler emulieren und diesen Wert in den dbus schreiben, damit das Ganze im Venus als Zähler auftaucht.
Mein Lösungsansatz:
Ich habe mir den Service von Ralf Zimmermann genommen (der aus einem Fronius WR einen Zähler emuliert) https://github.com/RalfZim/venus.dbus-fronius-smartmeter und versucht, diesen auf meine Bedürfnisse anzupassen (nur von mirgeänderte Textzeilen der "dbus-fronius-smartmeter.py") :
meter_url = "http://172.20.0.225/jdev/sps/io/0CD870EC.90124C.AI2"
meter_r = requests.get(url=meter_url, auth=HTTPBasicAuth('Benutzer', 'Kennwort')) # request data from the Fronius PV inverter
meter_data = meter_r.json() # convert JSON data
meter_consumption = meter_data['LL']['value']
Leider läuft das Script in einen Fehler, den ich nicht eingrenzen kann.
Hat hier jemand eine Idee, wie ich dieses Script "dbus-fronius-smartmeter.py" so anpassen kann, dass ich es mit dem Wert der .xml/.json Ausgabe füllen kann?
Alternativ könnte ich diesen Wert auch als Modbus irgendwo im Venus dbus hin schreiben, aber ich wüsste nicht wo (damit das auch als Zähler visualisiert wird).
Vielen Dank im Voraus!
Sebastian