diff --git a/modules/smarthome/solarlog/watt.py b/modules/smarthome/solarlog/watt.py new file mode 100644 index 000000000..ad57ec67b --- /dev/null +++ b/modules/smarthome/solarlog/watt.py @@ -0,0 +1,48 @@ +#!/usr/bin/python3 +import sys +import json +import jq +import os +import requests + +devicenumber = str(sys.argv[1]) +ipadr = os.environ.get('bezug_solarlog_ip') #IP-Adresse des SolarLog kommt vom PV Modul + +# ID des Zählers im SolarLog (SolarLog base hat 2 RS485 Schnittstellen und die Sortierung scheint B/A zu schein) +# Daher am besten alle Werte mit folgendem cli commando abrufen und ggf mit der Webansicht http://ip/#ilang=DE&b=p_live_table abgleichen. +# curl --request POST --url http:///getjp --header 'Content-Type: application/json' --data '{"782":null}' +# Die Zähler ID ist die Nummer vor dem Verbrauchswert. +smid = int(sys.argv[2]) + +# Abfrage-URL, die das JSON liefert. +jsonurl = "http://"+str(ipadr)+"/getjp" + +request_data_power = {'782':{str(smid):None}} +request_data_powerc = {'777': {'0':None}} # need more filtering + +#json Key in dem der aktuelle Leistungswert stehen +jsonpower = '."782"."1"' +# json enthält immer eine Liste von Tagen und alle Werte, letzer Array entry ist heute, Filter per Device ID +jsonpowerc = '."777"."0"[-1][1]['+str(smid)+']' + +try: + answer_power = json.loads(requests.post(jsonurl,json=request_data_power,timeout=3).content.decode('UTF-8')) + power = jq.compile(jsonpower).input(answer_power).first() + if (power==None): + power=0 +except: + power = 0 + +try: + answer_powerc = json.loads(requests.post(jsonurl,json=request_data_powerc,timeout=3).content.decode('UTF-8')) + powerc = jq.compile(jsonpowerc).input(answer_powerc).first() + if (powerc==None): + powerc=0 +except: + powerc = 0 + +f1 = open('/var/www/html/openWB/ramdisk/smarthome_device_ret' + str(devicenumber), 'w') +answer = '{"power":' + str(power) + ',"powerc":' + str(powerc) + '}' +#print(answer) +json.dump(answer, f1) +f1.close() \ No newline at end of file diff --git a/web/settings/smarthomeconfig.php b/web/settings/smarthomeconfig.php index 26fea3b92..308449044 100644 --- a/web/settings/smarthomeconfig.php +++ b/web/settings/smarthomeconfig.php @@ -90,6 +90,7 @@ + @@ -119,11 +120,9 @@ - Vitalcal 200-s Wärmepumpe mit LON Kommunikationsmodul und Vitogate 300. Wenn die Einschaltbedingung erreicht ist wird Komfortfunktion "Einmalige Warmwasserbereitung" außerhalb des Zeitprogramms gestartet. Für die "Einmalige Warmwasserbereitung" wird der Warmwassertemperatur-Sollwert 2 genutzt. In der Wp kann eingestellt werden, ob für diese Funktion die Elektroheizung (Heizstab) benutzt werden soll. + Vitocal 200-s Wärmepumpe mit LON Kommunikationsmodul und Vitogate 300. Wenn die Einschaltbedingung erreicht ist wird Komfortfunktion "Einmalige Warmwasserbereitung" außerhalb des Zeitprogramms gestartet. Für die "Einmalige Warmwasserbereitung" wird der Warmwassertemperatur-Sollwert 2 genutzt. In der Wp kann eingestellt werden, ob für diese Funktion die Elektroheizung (Heizstab) benutzt werden soll. - - Heizstab ELWA-E der Firma my-PV
Im Web Frontend vom Heizstab muss unter Steuerungs-Einstellungen der Parameter "Ansteuerungs-Typ = Modbus TCP" und "Power Timeout = 120 Sek" gesetzt werden. @@ -154,6 +153,12 @@ Mit diesem Typ werden SmartHome Geräte des Herstellers MyStrom unterstützt.
+ + Ermöglicht die Einbindung von Unterverbrauchszählern aus Solarlog (z.B. Pro380, Pro1).
+
+ Die zugehörige IP Adresse ist im PV Modul einzustellen. +
+
@@ -508,6 +513,18 @@ + +
+
+
+ +
+ + ID des Zählers im SolarLog. SolarLog hat 2 RS485 Schnittstellen und die Sortierung scheint B,A zu sein. In der Webansicht http://solarlog.ip/#ilang=DE&b=p_live_table unter Verbrauchszähler bei 0 anfrangen zu zählen. +
+
+
+