SolarLog per JSON über HTTPMOD einbinden

Begonnen von Micky79, 20 Juni 2019, 22:02:19

Vorheriges Thema - Nächstes Thema

Micky79

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