Hallo an Alle,
da ich einen SolarLog mit SmartHeater habe, habe ich nach einen Weg gesucht den SolarLog per JSON und nicht per Modbus auszulesen.
Hintergrund ist der, dass der Heater als Unterzähler angelegt wird und diese per Modbus offensichtlich nicht abgefragt werden können.
Die JSON Schnittstelle muss bei einigen Firmwareversionen in den Einstellungen des Solarlog freigegeben werden und der Standard Benutzer darf kein Passwort haben.
Dazu müssen 2 Devices angelegt werden, einmal der SolarLog selber und einmal der SmartHeater bzw. ein anderer Unterzähler.
1. Der SmartHeater (oder sonstiger Unterzähler) (natürlich nur wenn ihr über einen Unterzähler verfügt, ansonsten könnt ihr den Punkt überspringen)
define SolarLog_SmartHeater HTTPMOD http://<IP des SolarLog>/getjp 60
userattr reading01JSON reading01Name requestData01 requestHeader01
reading01JSON 782_1 <- Hier die Nummer des Unterzählers angeben. Bei mir ist der Heater Unterzähler 1, deshalb 782_1.
reading01Name 01.Verbrauch_Heater
requestData01 {"782":null}}
requestHeader01 Content-Type: application/json
stateFormat { "Aktueller Verbrauch: " . ReadingsNum($name, "01.Verbrauch_Heater", 0) . "W" }
2. Der SolarLog
defne SolarLog HTTPMOD http://<IP des SolarLog>/getjp 60
userattr reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name reading05JSON reading05Name reading06JSON reading06Name reading07JSON reading07Name reading08JSON reading08Name reading09JSON reading09Name reading10JSON reading10Name requestData01 requestHeader01
reading01JSON 801_170_110
reading02JSON 801_170_112
reading03JSON 801_170_105
reading04JSON 801_170_106
reading05JSON 801_170_107
reading06JSON 801_170_108
reading07JSON 801_170_111
reading08JSON 801_170_112
reading09JSON 801_170_113
reading10JSON 801_170_114
reading01Name 02.Aktueller_Verbrauch
reading02Name 01.Aktuelle_Stromproduktion
reading03Name 03.Tagesertrag
reading04Name 04.Tagesertrag_gestern
reading05Name 05.Monatsertrag
reading06Name 06.Jahresertrag
reading07Name 07.Tagesverbrauch
reading08Name 08.Tagesverbrauch_gestern
reading09Name 09.Monatsverbrauch
reading10Name 10.Jahresverbrauch
requestData01 {"801":{"170":null}}
requestHeader01 Content-Type: application/json
stateFormat { "Akt. Produktion: " . ReadingsNum($name, "01.Aktuelle_Stromproduktion", 0) . "W - Akt. Verbrauch: " . ReadingsNum($name, "02.Aktueller_Verbrauch", 0) . "W - davon Heater: " . ReadingsNum("SolarLog_SmartHeater", "01.Verbrauch_Heater", 0) . "W" }
userReadings 02b.SmartHeater_Verbrauch { ReadingsNum("SolarLog_SmartHeater", "01.Verbrauch_Heater", 0) }
Gerne kann auch das Wiki vom SolarLog ergänzt werden.
Viele Grüße Micky