bekomme ich genau die selbe lange Liste. Die Doku zur WEB-api habe ich zwar gelesen, verstehe aber trotzdem nicht, wie ich an den Wert
1
"AC": {
2
"0": {
3
"Power": {
4
"v": 323.7999878
des Wechselrichters 114190651346 komme. Ich möchte die momentane Leistung (also hier 323.7999878) in eine Variable schreiben. Kann mir da bitte jemand weiterhelfen?
Oh, ich sehe gerade in der Vorschau, dass die Formatierung der Liste verloren gegangen ist. Ich weiß auch nicht, wie ich das verhindern kann.
Vielen Dank für Deine schnelle Antwort.
Das ist auch genau die Lösung, die ich gesucht habe. Das Doku-lesen ist ja, ach, so anstrengend. Es ist ja viel einfacher, stundenlang herum zu probieren, als fünf Minuten in die Doku zu schaun, oder?
Na ja, ich hätte mir ja eigentlich denken können, dass ich mich zu früh gefreut habe. Das mit "curl" funktioniert wunderbar auf der Befehlszeile, ich erhalte den richtigen Wert.
Aber diesen Wert möchte ich ja in einem Python-Script einer Variablen zuweisen, und Python kann mit "curl" wohl nichts anfangen.
Nach etwas Stöbern bin ich auf die requests-library gestoßen, und habe folgendes probiert:
also diesen Wert 453.6.
Dann habe ich (analog zur curl-Zeile) folgendes versucht:
1
r = requests.get(f"http://192.168.0.153/api/livedata/status").json()['.inverters[0].AC."0".Power.v']
bekomme aber damit den Fehler:
1
KeyError: '.inverters[0].AC."0".Power.v'
Natürlich habe ich in die requests Doku geschaut, aber auch hier wird ein Grundwissen vorausgesetzt, das ich einfach nicht habe. Ich kann {},[],(),:,' nicht richtig interpretieren. Ich sehe zwar, dass ein Fehler aufgetreten ist, aber ich weiß nicht, wie ich ihn vermeiden kann. Vermutlich ist das ganz einfach, man muss nur wissen, wie.
Wie lautet die alte Weisheit?:
1
Wissen ist Macht!
2
Weißt' nix?
3
Macht nix!
4
Frag halt!
Das mache ich dann hiermit.
Kann mir jemand den richtigen Tip geben?
Ja, das war's, das geht bei mir jetzt auch. Der Knackpunkt war wohl das fehlende "import json" und die "json.loads" Anweisung.
Merkwürdig finde ich allerdings, dass ich im gleichen Script schon auf zwei unterschiedliche shellys zugreife (ein- und dreiphasiger Leistungsmesser).
Auch hier benutze ich die requests-library und json, und das funktioniert, ohne dass ich explizit json importieren musste.
Nur zur Info:
den einphasigen shelly lese ich so aus:
Die entsprechenden Zeilen habe ich irgendwo im Netz gefunden, alleine wäre ich da nie drauf gekommen. Diese Zeilen habe ich mir zum Vorbild genommen, um auch auf den Wechselrichter (über OpenDTU) zuzugreifen. Aber das war wohl nichts.
Dir ganz herzlichen Dank, jetzt kann ich endlich weiterbasteln, das nächste Problem wartet schon auf mich (und die mikrocontroller-Gemeinde).
Eine eigene Frage?
Dieser Thread ist über 2 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.