Seite 1 von 1
Daten aus Webportal
Verfasst: Samstag 18. September 2021, 13:50
von DatMichi
Hallo,
ich habe einen SENEC Batteriespeicher für unsere Photovoltaikanlage. Dieser hat einen Webserver den ich mittels IP aufrufen kann. Jetzt möchte ich die Daten aber mittels Python Script auslesen.
Dazu habe ich auch etwas gefunden.
Unter:
https://gist.github.com/smashnet/82ad0b ... 49ba08f88a
Das funktioniert auch alles soweit. Aber ich bekomme folgendes Ergebnis
Re: Daten aus Webportal
Verfasst: Samstag 18. September 2021, 14:15
von __deets__
Das sind Datenstrukturen - Wörterbücher und Listen. Ich empfehle ein Tutorial zum Umgang mit denen durchzuarbeiten. Dann sollte sich die Struktur, und wie man mit ihr arbeitet, erschließen.
Re: Daten aus Webportal
Verfasst: Samstag 18. September 2021, 14:21
von DatMichi
__deets__ hat geschrieben: ↑Samstag 18. September 2021, 14:15
Das sind Datenstrukturen - Wörterbücher und Listen. Ich empfehle ein Tutorial zum Umgang mit denen durchzuarbeiten. Dann sollte sich die Struktur, und wie man mit ihr arbeitet, erschließen.
Ich danke dir.
Beim Suchen bin ich auf
https://hellocoding.de/blog/coding-lang ... -verwenden gestoßen und habe ich die Lösung gefunden.
Code: Alles auswählen
if __name__ == "__main__":
api = Senec("IP_OF_YOUR_SENEC_APPLIANCE")
jsontxt = json.dumps(api.get_values())
obj = json.loads(jsontxt)
print(obj['STATISTIC']['CURRENT_STATE'])
Re: Daten aus Webportal
Verfasst: Samstag 18. September 2021, 14:28
von kbr
"api.get_values()" liefert Dir bereits ein Dictionary. Schau Dir noch einmal an, was die Zeilen 3 und 4 bewirken.
Re: Daten aus Webportal
Verfasst: Samstag 18. September 2021, 19:33
von DatMichi
Ich komme nicht drauf....
Code: Alles auswählen
print((str(api.get_all_values(["ENERGY"]["GUI_GRID_POW"]))))
Code: Alles auswählen
print((api.get_all_values(["ENERGY"]["GUI_GRID_POW"])))
Das ist die Fehlermeldung die ich bekomme
Traceback (most recent call last):
File "SpeicherZ.py", line 212, in <module>
print((str(api.get_all_values(["ENERGY"]["GUI_GRID_POW"]))))
TypeError: list indices must be integers or slices, not str
Re: Daten aus Webportal
Verfasst: Samstag 18. September 2021, 20:04
von __blackjack__
@DatMichi: Das ist ja auch nicht wirklich überraschend:
Code: Alles auswählen
In [338]: ["ENERGY"]["GUI_GRID_POW"]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-338-2578f77319f4> in <module>
----> 1 ["ENERGY"]["GUI_GRID_POW"]
TypeError: list indices must be integers or slices, not str
Was hättest Du denn erwartet was dieser Teilausdruck als Ergebnis hätte?
Re: Daten aus Webportal
Verfasst: Samstag 18. September 2021, 20:53
von DatMichi
Erwartet hätte ich die Werte die ich mit meiner Lösung auch bekommen hätte.
Lege ich von Hand ein Wörtbuch an klappt das so.
Re: Daten aus Webportal
Verfasst: Samstag 18. September 2021, 23:27
von __blackjack__
@DatMichi: Das kannst Du aber nicht erwarten wenn Du diesen Teilausdruck da rein schreibst. Der für sich ist halt schon mal falsch. Du müsstest zumindest mal erkennen, dass der Unsinnig ist und was da passiert,an der Stelle und das Du eigentlich was anderes wolltest. Es mag zwar nur nach einer Kleinigkeit aussehen, aber Programmiersprachen sind da sehr genau. Da kann man nicht ungefähr was schreiben und hoffen da passiert das was man eigentlich meinte.
Edit: Vielleicht noch mal: Was hast Du da erwartet, und zwar ganz konkret bei dem Teilausdruck, und warum hast Du das erwartet, und erklär mal was da tatsächlich passiert. Das Gesamtziel ist mir und anderen Lesern ja klar. Du musst da halt Schritt für Schritt hin, und wenn es nicht klappt, musst Du den Schritt ermitteln an dem sich das nicht so verhält wie Du erwartest, und dann herausfinden warum das so ist.