ich hatte mein Anliegen hier schonmal geschildert, war aber auf dem falschen Dampfer.
Worum es geht:
Man kann zum Fronius Wechselrichter zusätzliche Smart Meter in Verbrauchszweige einbringen um deren Stromverbrauch nachzuverfolgen. In meinem Fall ist das ein Heizstab welcher über das Fronius Lastmanagement angesteuert wird und an einem einphasigen Fronius Smart Meter hängt. Dieses spricht über Modbus mit dem Wechselrichter und der Verbrauch kann dann per .json vom Wechselrichter abgefragt werden.
Ich hätte nun gerne diesen Verbraucherzähler mit in meiner OpenWB-Statistik. Angelehnt an die anderen Smarthome -> Verbraucherzähler müsste der Code für das Modul wie unten aussehen.
Eingaben:
devicenumber des Verbrauchers
ip-Adresse des Fronius WR
Smart Meter ID (normalerweise ist 0 der Hauptzähler, weitere Verbraucherzähler dann fortlaufend)
Code: Alles auswählen
#!/usr/bin/python3
import sys
import os
import time
import json
import getopt
import socket
import struct
import codecs
import binascii
import urllib.request
named_tuple = time.localtime() # getstruct_time
time_string = time.strftime("%m/%d/%Y, %H:%M:%S fronius watty.py", named_tuple)
devicenumber=str(sys.argv[1])
ipadr=str(sys.argv[2])
smid=int(sys.argv[3])
answer = json.loads(str(urllib.request.urlopen("http://"+str(ipadr)+"/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceID="+str(smid), timeout=3).read().decode("utf-8")))
aktpower = answer['Body']['Data']['PowerReal_P_Sum']
if aktpower > 50:
relais = 1
else:
relais = 0
powerc = 0
answer = '{"power":' + str(aktpower) + ',"powerc":' + str(powerc) + ',"on":' + str(relais) + '} '
f1 = open('/var/www/html/openWB/ramdisk/smarthome_device_ret' + str(devicenumber), 'w')
json.dump(answer,f1)
f1.close()