NEWS
[gelöst] JSON korrekt auslesen (AHOY Api)
-
Danke für euer Feedback.
Die API wird in der GUI alle 30sek aktualisiert.
Dementsprechend ist der Wert aus der API IMMER vorhanden und aktualisiert.
@haselchen sagte in JSON korrekt auslesen (AHOY Api):
Dementsprechend ist der Wert aus der API IMMER vorhanden und aktualisiert
Nicht ganz.
auch deine Gui schaut vorher ob das Objekt null ist, bevor es etwas macht.
https://github.com/lumapu/ahoy/blob/868c49fdf4ff9e0c657120f2f92c49ffff57db38/src/web/html/index.html#L197 -
@haselchen sagte in JSON korrekt auslesen (AHOY Api):
Dementsprechend ist der Wert aus der API IMMER vorhanden und aktualisiert.
...wenn der Abruf fehlerfrei funktioniert hat!
@haselchen sagte in JSON korrekt auslesen (AHOY Api):
Mal klappt der Abruf im 2.Versuch,
und der andere ist defrkt.
also vor dem Auslesen erst prüfen, ob das Objekt auch drin steht
-
du kannst auch über die gui im browser mal mit den developer tools schauen,
was da so ankommt. ob es wirklich immer gefüllt ist.Seite aufrufen.
Dann F12
Dann Tab Network
Dann F5
Dann nach den Einträgen zu api/index schauen -

Also wenn da kein Objekt zurückkommt, dann kannst auch kein Attribut auslesen. Dann musst halt erst mal mit Browser etc. versuchen zu schauen, was da zurückkommt.
Kann es ggf. sein, dass noch eine Anmeldung erforderlich ist?
-
@haselchen sagte in JSON korrekt auslesen (AHOY Api):
Wie bekomme ich das ganze JSON in einen Datenpunkt?
debug result
bringt es zum Anzeigenaktualisiere DP1 mit result
bringt es in einen Datenpunkt.
den kannst du sogar loggen -

Also wenn da kein Objekt zurückkommt, dann kannst auch kein Attribut auslesen. Dann musst halt erst mal mit Browser etc. versuchen zu schauen, was da zurückkommt.
Kann es ggf. sein, dass noch eine Anmeldung erforderlich ist?
script.js.Photovoltaikanlage.HM-600_Statistik: nullDas ist das Ergebnis.
Was ist nicht kapiere.
Exakt die gleichen Blocklys und Einstellungen funktionieren beim anderen Wechselrichter.Edit: nach dem 3.Abruf kommt das
script.js.Photovoltaikanlage.HM-600_Statistik: {"generic":{"wifi_rssi":-69,"ts_uptime":5777,"menu_prot":false,"menu_mask":61,"menu_protEn":false,"esp_type":"ESP8266"},"ts_now":1689944699,"ts_sunrise":1689909623,"ts_sunset":1689967802,"ts_offset":0,"disNightComm":true,"inverter":[{"enabled":true,"id":0,"name":"HM-600","version":"10010","is_avail":true,"is_producing":true,"ts_last_success":1689944693}],"warnings":[],"infos":["MQTT is connected, 5728 packets sent, 0 packets received"]} -
script.js.Photovoltaikanlage.HM-600_Statistik: nullDas ist das Ergebnis.
Was ist nicht kapiere.
Exakt die gleichen Blocklys und Einstellungen funktionieren beim anderen Wechselrichter.Edit: nach dem 3.Abruf kommt das
script.js.Photovoltaikanlage.HM-600_Statistik: {"generic":{"wifi_rssi":-69,"ts_uptime":5777,"menu_prot":false,"menu_mask":61,"menu_protEn":false,"esp_type":"ESP8266"},"ts_now":1689944699,"ts_sunrise":1689909623,"ts_sunset":1689967802,"ts_offset":0,"disNightComm":true,"inverter":[{"enabled":true,"id":0,"name":"HM-600","version":"10010","is_avail":true,"is_producing":true,"ts_last_success":1689944693}],"warnings":[],"infos":["MQTT is connected, 5728 packets sent, 0 packets received"]}@haselchen sagte in JSON korrekt auslesen (AHOY Api):
script.js.Photovoltaikanlage.HM-600_Statistik: nullDas ist das Ergebnis.
Was ist nicht kapiere.
Exakt die gleichen Blocklys und Einstellungen funktionieren beim anderen Wechselrichter.Edit: nach dem 3.Abruf kommt das
script.js.Photovoltaikanlage.HM-600_Statistik: {"generic":{"wifi_rssi":-69,"ts_uptime":5777,"menu_prot":false,"menu_mask":61,"menu_protEn":false,"esp_type":"ESP8266"},"ts_now":1689944699,"ts_sunrise":1689909623,"ts_sunset":1689967802,"ts_offset":0,"disNightComm":true,"inverter":[{"enabled":true,"id":0,"name":"HM-600","version":"10010","is_avail":true,"is_producing":true,"ts_last_success":1689944693}],"warnings":[],"infos":["MQTT is connected, 5728 packets sent, 0 packets received"]}Na das ist doch das was ich gemeint habe. Vielleicht ist das Ding einfach nicht so schnell und gibt nicht immer was zurück mach einfach noch eine Abfrage rein, dass es nicht null sein darf.

Wenn das dann hinhaut, dann bist auf der sicheren Seite, dass dann nur dann was in den DP geschrieben wird, wenn der URL Aufruf ein Ergebnis liefert. Wäre im Prinzip halt generell eine grundsätzliche Möglichkeit um abzufangen, wenn mal nichts zurück kommt.
-
@haselchen sagte in JSON korrekt auslesen (AHOY Api):
script.js.Photovoltaikanlage.HM-600_Statistik: nullDas ist das Ergebnis.
Was ist nicht kapiere.
Exakt die gleichen Blocklys und Einstellungen funktionieren beim anderen Wechselrichter.Edit: nach dem 3.Abruf kommt das
script.js.Photovoltaikanlage.HM-600_Statistik: {"generic":{"wifi_rssi":-69,"ts_uptime":5777,"menu_prot":false,"menu_mask":61,"menu_protEn":false,"esp_type":"ESP8266"},"ts_now":1689944699,"ts_sunrise":1689909623,"ts_sunset":1689967802,"ts_offset":0,"disNightComm":true,"inverter":[{"enabled":true,"id":0,"name":"HM-600","version":"10010","is_avail":true,"is_producing":true,"ts_last_success":1689944693}],"warnings":[],"infos":["MQTT is connected, 5728 packets sent, 0 packets received"]}Na das ist doch das was ich gemeint habe. Vielleicht ist das Ding einfach nicht so schnell und gibt nicht immer was zurück mach einfach noch eine Abfrage rein, dass es nicht null sein darf.

Wenn das dann hinhaut, dann bist auf der sicheren Seite, dass dann nur dann was in den DP geschrieben wird, wenn der URL Aufruf ein Ergebnis liefert. Wäre im Prinzip halt generell eine grundsätzliche Möglichkeit um abzufangen, wenn mal nichts zurück kommt.
-
@haselchen Wenn was zurückkommt, dann passt Dein Aufruf jedenfalls:

-
ich glaube immer noch, dass man auf die Konvertierung verzichten können sollte.
-
script.js.Photovoltaikanlage.HM-600_Statistik: nullDas ist das Ergebnis.
Was ist nicht kapiere.
Exakt die gleichen Blocklys und Einstellungen funktionieren beim anderen Wechselrichter.Edit: nach dem 3.Abruf kommt das
script.js.Photovoltaikanlage.HM-600_Statistik: {"generic":{"wifi_rssi":-69,"ts_uptime":5777,"menu_prot":false,"menu_mask":61,"menu_protEn":false,"esp_type":"ESP8266"},"ts_now":1689944699,"ts_sunrise":1689909623,"ts_sunset":1689967802,"ts_offset":0,"disNightComm":true,"inverter":[{"enabled":true,"id":0,"name":"HM-600","version":"10010","is_avail":true,"is_producing":true,"ts_last_success":1689944693}],"warnings":[],"infos":["MQTT is connected, 5728 packets sent, 0 packets received"]}@haselchen sagte: Das ist das Ergebnis.
Was wird in diesen Fällen in der Variablen
errorgeliefert? -
@haselchen sagte: Das ist das Ergebnis.
Was wird in diesen Fällen in der Variablen
errorgeliefert?javascript.0 2023-07-21 15:20:00.088 error script.js.Photovoltaikanlage.HM-600_Statistik: Cannot get inverter of nullDas kommt, wenn ich nach 1min "Last Success" aus der API lesen und schreiben möchte.
War die Frage , ob ich das richtig überhaupt ins Blockly gepackt hatte.
-
javascript.0 2023-07-21 15:20:00.088 error script.js.Photovoltaikanlage.HM-600_Statistik: Cannot get inverter of nullDas kommt, wenn ich nach 1min "Last Success" aus der API lesen und schreiben möchte.
War die Frage , ob ich das richtig überhaupt ins Blockly gepackt hatte.
@haselchen sagte: Das kommt, wenn ich nach 1min "Last Success" aus der API lesen und schreiben möchte.
Logge mal die Variable
error, die nebenresultebenfalls von request() geliefert wird. -
@haselchen sagte: Das kommt, wenn ich nach 1min "Last Success" aus der API lesen und schreiben möchte.
Logge mal die Variable
error, die nebenresultebenfalls von request() geliefert wird.@paul53
@Homoran
@mickym
@OliverIOLeute, dass ist wie immer grosses Kino mit euch!!!
Alle Ideen zusammen haben den Erfolg gebracht.

Mit dem Blockly wird die null übersprungen und nur reale Werte in den DP geschrieben.
Dauert manchmal 3-4min. aber ich bin schon froh, keine rote Farbe mehr im Log zu haben
-
@paul53
@Homoran
@mickym
@OliverIOLeute, dass ist wie immer grosses Kino mit euch!!!
Alle Ideen zusammen haben den Erfolg gebracht.

Mit dem Blockly wird die null übersprungen und nur reale Werte in den DP geschrieben.
Dauert manchmal 3-4min. aber ich bin schon froh, keine rote Farbe mehr im Log zu haben
@haselchen
Funktioniert es nicht auch so?
-
@haselchen
Funktioniert es nicht auch so?
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
