NEWS
[gelöst] JSON Daten splitten
-
@homoran
Der Datenpunkt heißt AllJsonData.Den Datenpunkt habe ich hier eingefügt

@tourer4778 sagte in JSON Daten splitten:
Der Datenpunkt heißt AllJsonData.
und der enthält (gemäß der bisherigen Diskussion) was?
ein gültiges JSON?
ein ARRAY? -
Hallo, ich mache etwas verkehrt, weiß aber nicht was.
Habe versucht, es wie hier zu machen,
allerding bekomme ich immer Fehlermeldungen ...09:33:50.267 error javascript.0 (751) script.js.EPEVER_TEST: Cannot parse "mqtt.0.Epever.EPEVER_e1e194.Al"SyntaxError: Unexpected token m in JSON at position 0
09:33:50.269 error javascript.0 (751) script.js.EPEVER_TEST: TypeError: Cannot read property '2' of null
09:33:50.269 error javascript.0 (751) at Object.<anonymous> (script.js.EPEVER_TEST:7:72)So sieht dder JSON Datenpunkt aus ...
"EpeverTime": "2021-12-10 23:06:50", "PanelV": " 12.52", "PanelI": " 0.00", "PanelP": " 0.00", usw.Mein Blockly

@tourer4778 sagte in JSON Daten splitten:
Cannot parse "mqtt.0.Epever.EPEVER_e1e194.Al"SyntaxError: Unexpected token m in JSON at position 0
Dennoch stimmt an Position 0 des String irgendwas nicht.
du kannst es selbst probieren, indem du den Inhalt des String kopierst und einfach so direkt in die Browserconsole einfügstdann müsste es so aussehen. habe deinem beispiel noch das letzt komma entfernt und einen schließende klammer hinzugefügt

als ergebnis wird das korrekt interpretiert
-
@tourer4778 sagte in JSON Daten splitten:
Der Datenpunkt heißt AllJsonData.
und der enthält (gemäß der bisherigen Diskussion) was?
ein gültiges JSON?
ein ARRAY?@homoran
Im ganzen sieht es so aus
{
"EpeverTime": "2021-12-11 04:52:24",
"PanelV": " 14.31",
"PanelI": " 0.05",
"PanelP": " 0.78",
"PanelminV": " 12.46",
"PanelmaxV": " 36.80",
"BatteryV": " 13.05",
"BatteryI": " 0.06",
"BatteryP": " 0.78",
"BatterySOC": " 72.00",
"BatteryNetI": " 0.04",
"BatteryminV": " 12.70",
"BatterymaxV": " 13.11",
"LoadV": " 13.05",
"LoadI": " 0.00",
"LoadP": " 0.00",
"LoadState": "On",
"Co2Reduction": " 0.00",
"Consumed_Day": " 0.00",
"Consumed_All": " 0.10",
"Generated_Day": " 0.00",
"Generated_All": " 0.04",
"BatteryVoltState": "Normal",
"BatteryTempState": "Normal",
"ChargerChargeState": "Boost"
} -
@homoran
Im ganzen sieht es so aus
{
"EpeverTime": "2021-12-11 04:52:24",
"PanelV": " 14.31",
"PanelI": " 0.05",
"PanelP": " 0.78",
"PanelminV": " 12.46",
"PanelmaxV": " 36.80",
"BatteryV": " 13.05",
"BatteryI": " 0.06",
"BatteryP": " 0.78",
"BatterySOC": " 72.00",
"BatteryNetI": " 0.04",
"BatteryminV": " 12.70",
"BatterymaxV": " 13.11",
"LoadV": " 13.05",
"LoadI": " 0.00",
"LoadP": " 0.00",
"LoadState": "On",
"Co2Reduction": " 0.00",
"Consumed_Day": " 0.00",
"Consumed_All": " 0.10",
"Generated_Day": " 0.00",
"Generated_All": " 0.04",
"BatteryVoltState": "Normal",
"BatteryTempState": "Normal",
"ChargerChargeState": "Boost"
}@tourer4778 sagte in JSON Daten splitten:
{
"EpeverTime": "2021-12-11 04:52:24",
"PanelV": " 14.31",
"PanelI": " 0.05",
"PanelP": " 0.78",
"PanelminV": " 12.46",
"PanelmaxV": " 36.80",
"BatteryV": " 13.05",
"BatteryI": " 0.06",
"BatteryP": " 0.78",
"BatterySOC": " 72.00",
"BatteryNetI": " 0.04",
"BatteryminV": " 12.70",
"BatterymaxV": " 13.11",
"LoadV": " 13.05",
"LoadI": " 0.00",
"LoadP": " 0.00",
"LoadState": "On",
"Co2Reduction": " 0.00",
"Consumed_Day": " 0.00",
"Consumed_All": " 0.10",
"Generated_Day": " 0.00",
"Generated_All": " 0.04",
"BatteryVoltState": "Normal",
"BatteryTempState": "Normal",
"ChargerChargeState": "Boost"
}dieses JSON ist korrekt.
@Homoran Es ist ein Objekt

-
@tourer4778 sagte in JSON Daten splitten:
{
"EpeverTime": "2021-12-11 04:52:24",
"PanelV": " 14.31",
"PanelI": " 0.05",
"PanelP": " 0.78",
"PanelminV": " 12.46",
"PanelmaxV": " 36.80",
"BatteryV": " 13.05",
"BatteryI": " 0.06",
"BatteryP": " 0.78",
"BatterySOC": " 72.00",
"BatteryNetI": " 0.04",
"BatteryminV": " 12.70",
"BatterymaxV": " 13.11",
"LoadV": " 13.05",
"LoadI": " 0.00",
"LoadP": " 0.00",
"LoadState": "On",
"Co2Reduction": " 0.00",
"Consumed_Day": " 0.00",
"Consumed_All": " 0.10",
"Generated_Day": " 0.00",
"Generated_All": " 0.04",
"BatteryVoltState": "Normal",
"BatteryTempState": "Normal",
"ChargerChargeState": "Boost"
}dieses JSON ist korrekt.
@Homoran Es ist ein Objekt

Diese Nummer die ich dort eintrage,, ist das die Zeile im JSON ?
PanelV will ich haben und dieses steht in Zeile 3, oder versteh ich das falsch?
-
Diese Nummer die ich dort eintrage,, ist das die Zeile im JSON ?
PanelV will ich haben und dieses steht in Zeile 3, oder versteh ich das falsch?
@tourer4778 sagte in JSON Daten splitten:
Diese Nummer die ich dort eintrage,, ist das die Zeile im JSON ?
PanelV will ich haben und dieses steht in Zeile 3, oder versteh ich das falsch?
dieser Block ist für Listen (Arrays) das hast du nicht:

Die Variable erstezt deinen datenpunkt
bleibt ein einzeiler -
@homoran
Im ganzen sieht es so aus
{
"EpeverTime": "2021-12-11 04:52:24",
"PanelV": " 14.31",
"PanelI": " 0.05",
"PanelP": " 0.78",
"PanelminV": " 12.46",
"PanelmaxV": " 36.80",
"BatteryV": " 13.05",
"BatteryI": " 0.06",
"BatteryP": " 0.78",
"BatterySOC": " 72.00",
"BatteryNetI": " 0.04",
"BatteryminV": " 12.70",
"BatterymaxV": " 13.11",
"LoadV": " 13.05",
"LoadI": " 0.00",
"LoadP": " 0.00",
"LoadState": "On",
"Co2Reduction": " 0.00",
"Consumed_Day": " 0.00",
"Consumed_All": " 0.10",
"Generated_Day": " 0.00",
"Generated_All": " 0.04",
"BatteryVoltState": "Normal",
"BatteryTempState": "Normal",
"ChargerChargeState": "Boost"
} -
Danke, aber ich verstehe beides nicht

Ich habe beides versucht umzusetzen, allerding funktioniert beides nicht. -
Danke, aber ich verstehe beides nicht

Ich habe beides versucht umzusetzen, allerding funktioniert beides nicht.

-
Danke, aber ich verstehe beides nicht

Ich habe beides versucht umzusetzen, allerding funktioniert beides nicht.@tourer4778 sagte in JSON Daten splitten:
ch habe beides versucht umzusetzen,
bitte zeigen!
@tourer4778 sagte in JSON Daten splitten:
aber ich verstehe beides nicht
Der Vorschlag von @paul53 ist vollständig. Zusätzlich wandelt er das Erbenis noch in eine Zahl um, damit du damit weiter arbeiten kannst
meiner bezog sich nur auf das Auslesen deines Datenpunktes, ohne Trigger
und mangels deines Datenpunktes hatte ich den Inhalt in eine Variable geschrieben.Das ist nur ein ganz kleiner Bestandteil von Pauls Blockly
-
Danke, aber ich verstehe beides nicht

Ich habe beides versucht umzusetzen, allerding funktioniert beides nicht. -
So funktionierts, alledings mit Warnung ...
15:27:42.967 warn javascript.0 (751) at Object.<anonymous> (script.js.EPEVER_TEST:4:3) -
So funktionierts, alledings mit Warnung ...
15:27:42.967 warn javascript.0 (751) at Object.<anonymous> (script.js.EPEVER_TEST:4:3)@tourer4778 sagte in JSON Daten splitten:
So funktionierts
dein langer Block "Wert von...." wäre alleine mit dem roten "Wert"-Baustein aus Trigger erschlagen gewesen
@tourer4778 sagte in JSON Daten splitten:
alledings mit Warnung ...
Was steht denn in der js-Ansicht in Zeile 4, Position 3
-
@tourer4778 sagte in JSON Daten splitten:
So funktionierts
dein langer Block "Wert von...." wäre alleine mit dem roten "Wert"-Baustein aus Trigger erschlagen gewesen
@tourer4778 sagte in JSON Daten splitten:
alledings mit Warnung ...
Was steht denn in der js-Ansicht in Zeile 4, Position 3
@homoran
on({id: 'mqtt.0.Epever.EPEVER_e1e194.AllJsonData', change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
setState("javascript.0.EPEVER_e1e194.PanelV"/PanelV/, parseFloat(getAttr(getState('mqtt.0.Epever.EPEVER_e1e194.AllJsonData').val, 'PanelV')), true);
}); -
So funktionierts, alledings mit Warnung ...
15:27:42.967 warn javascript.0 (751) at Object.<anonymous> (script.js.EPEVER_TEST:4:3)@tourer4778 sagte: alledings mit Warnung
Ist der Datenpunkt "javascript.0.EPEVER_e1e194.PanelV" vom Typ "number"?
-
@tourer4778 sagte: alledings mit Warnung
Ist der Datenpunkt "javascript.0.EPEVER_e1e194.PanelV" vom Typ "number"?
@paul53 sagte in JSON Daten splitten:
Ist der Datenpunkt "javascript.0.EPEVER_e1e194.PanelV" vom Typ "number"?
String
-
@paul53 sagte in JSON Daten splitten:
Ist der Datenpunkt "javascript.0.EPEVER_e1e194.PanelV" vom Typ "number"?
String
@tourer4778 sagte: String
Daher kommt die Warnung. Ändere den Typ in "number".
-
@tourer4778 sagte: String
Daher kommt die Warnung. Ändere den Typ in "number".
@paul53
Danke, ja jetzt ist es in Ordnung.
Danke für die Geduld.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden


