NEWS
(gelöst) benötige Hilfe beim Json in Datenpunkte umwandeln
-
ich habe noch eine Frage, vielleicht hast Du dazu eine Antwort.
Bei der Ausführung vom Skript bekomme Fehlermeldung:
7.6.2024, 23:51:42.878 [warn ]: javascript.0 (3511) at Object.<anonymous> (script.js.Home.Growatt:9:3) 7.6.2024, 23:51:47.927 [warn ]: javascript.0 (3511) at Object.<anonymous> (script.js.Home.Growatt:9:3) 7.6.2024, 23:51:52.920 [warn ]: javascript.0 (3511) at Object.<anonymous> (script.js.Home.Growatt:9:3) 7.6.2024, 23:51:57.917 [warn ]: javascript.0 (3511) at Object.<anonymous> (script.js.Home.Growatt:9:3) 7.6.2024, 23:52:02.888 [warn ]: javascript.0 (3511) at Object.<anonymous> (script.js.Home.Growatt:9:3) 7.6.2024, 23:52:07.920 [warn ]: javascript.0 (3511) at Object.<anonymous> (script.js.Home.Growatt:9:3) 7.6.2024, 23:52:12.894 [warn ]: javascript.0 (3511) at Object.<anonymous> (script.js.Home.Growatt:9:3)MOD-EDIT: Code in code-tags gesetzt!
Was bedeutet das ?
@2hot4you sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
Was bedeutet das ?
zeig doch mal dein Blockly und den erzeugten JS-Code
-
@2hot4you sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
Was bedeutet das ?
zeig doch mal dein Blockly und den erzeugten JS-Code
anbei der Code vom Blockly. Ich habe alle Datenpunkte geprüft, alle mit Werten.
on({ id: [].concat(['mqtt.0.OpenInverterGateway']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; json = getState('mqtt.0.OpenInverterGateway').val; setState('0_userdata.0.Growatt.InverterStatus' /* InverterStatus */, getAttr(json, 'InverterStatus'), true); setState('0_userdata.0.Growatt.InputPower' /* InputPower */, getAttr(json, 'InputPower'), true); setState('0_userdata.0.Growatt.PV1InputPower' /* PV1InputPower */, getAttr(json, 'PV1InputPower'), true); setState('0_userdata.0.Growatt.PV2InputPower' /* PV2InputPower */, getAttr(json, 'PV2InputPower'), true); setState('0_userdata.0.Growatt.PV1EnergyToday' /* PV1EnergyToday */, getAttr(json, 'PV1EnergyToday'), true); setState('0_userdata.0.Growatt.PV2EnergyToday' /* PV2EnergyToday */, getAttr(json, 'PV2EnergyToday'), true); setState('0_userdata.0.Growatt.PVEnergyTotal' /* PVEnergyTotal */, getAttr(json, 'PVEnergyTotal'), true); setState('0_userdata.0.Growatt.DischargePower' /* DischargePower */, getAttr(json, 'DischargePower'), true); setState('0_userdata.0.Growatt.ChargePower' /* ChargePower */, getAttr(json, 'ChargePower'), true); setState('0_userdata.0.Growatt.BatteryVoltage' /* BatteryVoltage */, getAttr(json, 'BatteryVoltage'), true); setState('0_userdata.0.Growatt.BatteryTemperature' /* BatteryTemperature */, getAttr(json, 'BatteryTemperature'), true); setState('0_userdata.0.Growatt.BatteryState' /* BatteryState */, getAttr(json, 'BatteryState'), true); setState('0_userdata.0.Growatt.SOC' /* SOC */, getAttr(json, 'SOC'), true); setState('0_userdata.0.Growatt.ChargeEnergyToday' /* ChargeEnergyToday */, getAttr(json, 'ChargeEnergyToday'), true); setState('0_userdata.0.Growatt.OutputPower' /* OutputPower */, getAttr(json, 'OutputPower'), true); setState('0_userdata.0.Growatt.InverterTemperature' /* InverterTemperature */, getAttr(json, 'InverterTemperature'), true); }); -
anbei der Code vom Blockly. Ich habe alle Datenpunkte geprüft, alle mit Werten.
on({ id: [].concat(['mqtt.0.OpenInverterGateway']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; json = getState('mqtt.0.OpenInverterGateway').val; setState('0_userdata.0.Growatt.InverterStatus' /* InverterStatus */, getAttr(json, 'InverterStatus'), true); setState('0_userdata.0.Growatt.InputPower' /* InputPower */, getAttr(json, 'InputPower'), true); setState('0_userdata.0.Growatt.PV1InputPower' /* PV1InputPower */, getAttr(json, 'PV1InputPower'), true); setState('0_userdata.0.Growatt.PV2InputPower' /* PV2InputPower */, getAttr(json, 'PV2InputPower'), true); setState('0_userdata.0.Growatt.PV1EnergyToday' /* PV1EnergyToday */, getAttr(json, 'PV1EnergyToday'), true); setState('0_userdata.0.Growatt.PV2EnergyToday' /* PV2EnergyToday */, getAttr(json, 'PV2EnergyToday'), true); setState('0_userdata.0.Growatt.PVEnergyTotal' /* PVEnergyTotal */, getAttr(json, 'PVEnergyTotal'), true); setState('0_userdata.0.Growatt.DischargePower' /* DischargePower */, getAttr(json, 'DischargePower'), true); setState('0_userdata.0.Growatt.ChargePower' /* ChargePower */, getAttr(json, 'ChargePower'), true); setState('0_userdata.0.Growatt.BatteryVoltage' /* BatteryVoltage */, getAttr(json, 'BatteryVoltage'), true); setState('0_userdata.0.Growatt.BatteryTemperature' /* BatteryTemperature */, getAttr(json, 'BatteryTemperature'), true); setState('0_userdata.0.Growatt.BatteryState' /* BatteryState */, getAttr(json, 'BatteryState'), true); setState('0_userdata.0.Growatt.SOC' /* SOC */, getAttr(json, 'SOC'), true); setState('0_userdata.0.Growatt.ChargeEnergyToday' /* ChargeEnergyToday */, getAttr(json, 'ChargeEnergyToday'), true); setState('0_userdata.0.Growatt.OutputPower' /* OutputPower */, getAttr(json, 'OutputPower'), true); setState('0_userdata.0.Growatt.InverterTemperature' /* InverterTemperature */, getAttr(json, 'InverterTemperature'), true); });@2hot4you sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
setState('0_userdata.0.Growatt.PV1EnergyToday
wenn das Zeile 9 ist, wird der DP angemeckert.
@2hot4you sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
anbei der Code vom Blockly.
und wo ist
@homoran sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
zeig doch mal dein Blockly
-
@2hot4you sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
setState('0_userdata.0.Growatt.PV1EnergyToday
wenn das Zeile 9 ist, wird der DP angemeckert.
@2hot4you sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
anbei der Code vom Blockly.
und wo ist
@homoran sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
zeig doch mal dein Blockly
-
@2hot4you sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
Datenpunkt ist da
und wie sieht das json aus?
ist da auch der Wert da?es geht auch nicht um den markierten Block!
-
@2hot4you sagte in benötige Hilfe beim Json in Datenpunkte umwandeln:
Datenpunkt ist da
und wie sieht das json aus?
ist da auch der Wert da?es geht auch nicht um den markierten Block!
so sieht das json aus
{ "InverterStatus": 5, "InputPower": 0, "PV1Voltage": 110, "PV1InputCurrent": 0, "PV1InputPower": 0, "PV2Voltage": 165.6, "PV2InputCurrent": 0, "PV2InputPower": 0, "OutputPower": 0, "GridFrequency": 49.98, "L1ThreePhaseGridVoltage": 409.4, "L1ThreePhaseGridOutputCurrent": 0.3, "L1ThreePhaseGridOutputPower": 314.1, "L2ThreePhaseGridVoltage": 404.3, "L2ThreePhaseGridOutputCurrent": 0.3, "L2ThreePhaseGridOutputPower": 0, "L3ThreePhaseGridVoltage": 412.1, "L3ThreePhaseGridOutputCurrent": 0.3, "L3ThreePhaseGridOutputPower": 0, "TodayGenerateEnergy": 49.6, "TotalGenerateEnergy": 912, "TWorkTimeTotal": 1918900, "PV1EnergyToday": 21.6, "PV1EnergyTotal": 477.8, "PV2EnergyToday": 32.3, "PV2EnergyTotal": 509.2, "PVEnergyTotal": 987, "InverterTemperature": 31, "TemperatureInsideIPM": 28.3, "BoostTemperature": 27.4, "DischargePower": 0, "ChargePower": 0.1, "BatteryVoltage": 212.8, "SOC": 85, "ACPowerToUser": 550, "ACPowerToUserTotal": 550, "ACPowerToGrid": 0, "ACPowerToGridTotal": 0, "INVPowerToLocalLoad": 550, "INVPowerToLocalLoadTotal": 550, "BatteryTemperature": 211, "BatteryState": 5, "EnergyToUserToday": 0.6, "EnergyToUserTotal": 102.6, "EnergyToGridToday": 40.7, "EnergyToGridTotal": 619.7, "DischargeEnergyToday": 4.3, "DischargeEnergyTotal": 147.1, "ChargeEnergyToday": 5.5, "ChargeEnergyTotal": 151.1, "LocalLoadEnergyToday": 12.9, "LocalLoadEnergyTotal": 472.3, "ACChargeEnergyToday": 0.1, "ACChargeEnergyTotal": 15.2, "Mac": "D4:D4:DA:CC:8F:98", "Cnt": 1914 } -
so sieht das json aus
{ "InverterStatus": 5, "InputPower": 0, "PV1Voltage": 110, "PV1InputCurrent": 0, "PV1InputPower": 0, "PV2Voltage": 165.6, "PV2InputCurrent": 0, "PV2InputPower": 0, "OutputPower": 0, "GridFrequency": 49.98, "L1ThreePhaseGridVoltage": 409.4, "L1ThreePhaseGridOutputCurrent": 0.3, "L1ThreePhaseGridOutputPower": 314.1, "L2ThreePhaseGridVoltage": 404.3, "L2ThreePhaseGridOutputCurrent": 0.3, "L2ThreePhaseGridOutputPower": 0, "L3ThreePhaseGridVoltage": 412.1, "L3ThreePhaseGridOutputCurrent": 0.3, "L3ThreePhaseGridOutputPower": 0, "TodayGenerateEnergy": 49.6, "TotalGenerateEnergy": 912, "TWorkTimeTotal": 1918900, "PV1EnergyToday": 21.6, "PV1EnergyTotal": 477.8, "PV2EnergyToday": 32.3, "PV2EnergyTotal": 509.2, "PVEnergyTotal": 987, "InverterTemperature": 31, "TemperatureInsideIPM": 28.3, "BoostTemperature": 27.4, "DischargePower": 0, "ChargePower": 0.1, "BatteryVoltage": 212.8, "SOC": 85, "ACPowerToUser": 550, "ACPowerToUserTotal": 550, "ACPowerToGrid": 0, "ACPowerToGridTotal": 0, "INVPowerToLocalLoad": 550, "INVPowerToLocalLoadTotal": 550, "BatteryTemperature": 211, "BatteryState": 5, "EnergyToUserToday": 0.6, "EnergyToUserTotal": 102.6, "EnergyToGridToday": 40.7, "EnergyToGridTotal": 619.7, "DischargeEnergyToday": 4.3, "DischargeEnergyTotal": 147.1, "ChargeEnergyToday": 5.5, "ChargeEnergyTotal": 151.1, "LocalLoadEnergyToday": 12.9, "LocalLoadEnergyTotal": 472.3, "ACChargeEnergyToday": 0.1, "ACChargeEnergyTotal": 15.2, "Mac": "D4:D4:DA:CC:8F:98", "Cnt": 1914 } -
ich habe umgestellt auf Alias ;-)
-
ich habe umgestellt auf Alias ;-)
Eine Frage hierzu in die Runde:
Ich lese ebenfalls per Alias die MQTT-Daten des Growatt aus.
Abends, wenn der Inverter seinen Betrieb einstellt, fällt der JSON-Datenpunkt aber fast komplett aus.
In der JSON-Struktur ist dann nur noch der Inverterstatus zu sehen.
Dadurch werden die Aliaswerte alle auf NaN gesetzt.
Ist das bei Euch auch so?
Dann müsste ich doch mit einem Blockly die Werte erst zwischenspeichern.
Danke! -
Eine Frage hierzu in die Runde:
Ich lese ebenfalls per Alias die MQTT-Daten des Growatt aus.
Abends, wenn der Inverter seinen Betrieb einstellt, fällt der JSON-Datenpunkt aber fast komplett aus.
In der JSON-Struktur ist dann nur noch der Inverterstatus zu sehen.
Dadurch werden die Aliaswerte alle auf NaN gesetzt.
Ist das bei Euch auch so?
Dann müsste ich doch mit einem Blockly die Werte erst zwischenspeichern.
Danke!Ich habe das erst einmal so gelöst:
2 Datenpunkte manuell angelegt (Leistung und EnergieHeute), die dann beschrieben werden, wenn der Inverter läuft:
