NEWS
Growatt WR Daten als Json
-
@paul53 Morjen, vielen dank erstmal dafür das du helfen willst. Ich werde dann mal ein paar Aliase anlegen
-
@teletapi bei mir sieht es so aus.
const idJson = 'mqtt.1.energy.solar.L1a'; const path = '0_userdata.0.Solar.Auslesewerte.L1a.'; on(idJson, function(dp) { let obj = JSON.parse(dp.state.val); let id = path + 'InverterStatus'; if(existsState(id)) setState(id, obj.InverterStatus, true); else createState(id, obj.temp.temp, {type: 'number', name: 'InverterStatus', role: 'value', unit: '°C'}); id = path + 'PV1Voltage'; if(existsState(id)) setState(id, obj.PV1Voltage, true); else createState(id, obj.humid.humid, {type: 'number', name: 'PV1Voltage', role: 'value', unit: 'V'}); id = path + 'BattPwr'; if(existsState(id)) setState(id, obj.BattPwr, true); else createState(id, obj.humid.humid, {type: 'number', name: 'BattPwr', role: 'value', unit: 'V'}); id = path + 'BattSOC'; if(existsState(id)) setState(id, obj.BattSOC, true); else createState(id, obj.humid.humid, {type: 'number', name: 'BattSOC', role: 'value', unit: 'V'}); id = path + 'LoadPercent'; if(existsState(id)) setState(id, obj.LoadPercent, true); else createState(id, obj.humid.humid, {type: 'number', name: 'LoadPercent', role: 'value', unit: 'V'}); id = path + 'OutActivePwr'; if(existsState(id)) setState(id, obj.OutActivePwr, true); else createState(id, obj.humid.humid, {type: 'number', name: 'OutActivePwr', role: 'value', unit: 'V'}); id = path + 'PV1ChargePwr'; if(existsState(id)) setState(id, obj.PV1ChargePwr, true); else createState(id, obj.humid.humid, {type: 'number', name: 'PV1ChargePwr', role: 'value', unit: 'V'}); id = path + 'BattVoltage'; if(existsState(id)) setState(id, obj.BattVoltage, true); else createState(id, obj.humid.humid, {type: 'number', name: 'BattVoltage', role: 'value', unit: 'V'}); id = path + 'Buck1Temp'; if(existsState(id)) setState(id, obj.Buck1Temp, true); else createState(id, obj.humid.humid, {type: 'number', name: 'Buck1Temp', role: 'value', unit: 'W'}); id = path + 'Buck2Temp'; if(existsState(id)) setState(id, obj.Buck2Temp, true); else createState(id, obj.humid.humid, {type: 'number', name: 'Buck2Temp', role: 'value', unit: 'W'}); // usw. für weitere Datenpunkte });
-
Es fällt mir etwas schwer das zu sagen aber ich bin komplett ahnungslos wie das funktioniert. Selbst den Alias "mit den richtigen Eigenschaften" zu erstellen wird ohne eure Hilfe nicht gehn.
-
@paul53 wo schreibe ich das hin...?
-
@teletapi sagte: Alias "mit den richtigen Eigenschaften" zu erstellen
Im Tab "Objekte" erst ein Verzeichnis (z.B. "WR") unter "alias.0" erstellen und dann unter dem Verzeichnis die Datenpunkte:
@teletapi sagte in Growatt WR Daten als Json:
wo schreibe ich das hin...?
-
@paul53
hab ich jetzt so erstellt -
@teletapi sagte: hab ich jetzt so erstellt
Zeige bitte die OBJEKTDATEN in Code tags.
-
{ "common": { "name": "InputPower", "desc": "Manuell erzeugt", "role": "state", "type": "number", "read": true, "write": false, "alias": { "read": "JSON.parse(val).InputPower ", "id": "mqtt.0.energy.solar" } }, "type": "state", "native": {}, "_id": "alias.0.Solar.Growatt.InputPower", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1702657939627 } 0
-
@teletapi
Ändere noch die Rolle in "value.power" oder "value" und ergänze die Unit: "W".Code tags ist oben das 5. Symbol </>.
-
-
Das hat ja super geklappt vielen dank für eure Hilfe
Hawe