Moin, die Solaranlage meiner Eltern stellt verschiedene Ist-Werte auf einer im LAN- erreichbaren Website dar, verfügt aber leider scheinbar über keine direkt nutzbare API. Über den Umweg der Website würde ich gern trotzdem regelmäßig (z.B. minütlich) an verschiedene Werte gelangen, leider habe ich da wenig Erfahrungswerte, nach welchen Begrifflichkeiten ich mich zur groben Vorgehensweise umschauen muss.. Die Werte befinden sich im html-Quelltext verschachtelt, also in etwa wie im angehängten Screeenshot (Ich wollte das eigentlich als [code] in meinen Beitrag einfügen, wurde aber als spamverdächtig nicht akzeptiert..) Wie ist nun z.B. in Python ein gangbarer Weg, an MEIN_WERT zu kommen und was sind empfehlenswerte Klassen hierfür? Sicherlich kann man auch den kompletten Quelltext händisch parsen, aber ich könnte mir vorstellen, dass es einfacher geht..? Viele Grüße FargoTof
Das ist die perfekte Aufgabe für ChatGPT. Der schreibt dir ein Py Script dafür in 10 Sekunden. Gib ihm den HTML Code und sag welche Werte er ausgeben soll.
Braucht das Python? Das ist in Bash ein Einzeiler curl http://webinterface |grep meine_id | sed 's/<[^>]*>//g'
https://www.heise.de/ratgeber/Scraping-Mit-Python-Daten-von-beliebigen-Websites-auslesen-4659822.html Beautiful Soup
Meine PHP-Lösung für sowas kann ich leider nicht posten, da das Forum zu
dumm programmiert ist und scheinbar ein paar Probleme beim Parsen hat:
> Der Beitrag scheint Spam zu enthalten: ""
Glückwunsch, wer immer diesen Müll programmiert hat.
:
Bearbeitet durch User
Geht's vielleicht so? Edit: So gehts.
:
Bearbeitet durch User
> Braucht das Python?
Wenn du Python gelernt hast, kannst du es für alles immer wieder
verwenden. Bis du sed mal wieder gebrauchen kannst, hast du schon längst
wieder vergessen, wie das geht.
(Nächsten Monat findest du ein Tutorial, wie du mit Mc und MicroPython
die Diagnoseschnittstelle der Anlage auslesen kannst :-)
Ich denke es kommt drauf an was Du mit den Werten vorhast, das entscheidet dann den Weg. Am einfachsten ist Regex, dann könntest du die Daten womit du willst weiterverarbeiten. ich schreibe jetzt dein html nicht vom bild ab um die ein perfektes Regex zu erstellen ;)
Zuerst sollte er sich die Wechselrichter-Webseite genauer anschauen. Die "id"s an den Tags könnten z.B. ein Hinweis darauf sein, dass die Werte da ursprünglich garnicht im HTML stehen, sondern erst nachträglich per JS/DHTML eingefügt (und aktualisiert) werden. d.H. mal mit den Browser-Entwickertools schauen, was die Seite so kommuniziert. Evtl. gibt's ja doch eine "API", mit der sich die Webseite per Server-Sent-Events, Websocket, periodischen GETs usw. die Werte holt.
Die meißten Script und Programmiersprachen werden eine Library kennen die XML parsen kann. Das Stichwort um einen Pfad daraus zu extrahieren heißt XPath. [1] Wenn die lieber mit einem Einzeltool arbeiten willst empfiehlt sich so Etwas wie Xidel [2] oder eine Kombination aus curl und xmllint. 1: https://de.wikipedia.org/wiki/XPath 2: https://github.com/benibela/xidel
:
Bearbeitet durch User
Wenn wir wüssten welcher Wechselrichter( oh Verzeihung das ist ja Hochgeheim) könnte wir dir helfen. in FHEM werden viele Wechselrichter unterstützt: https://wiki.fhem.de/wiki/Solar-/PV-%C3%9Cbersicht Wechselrichter Kostal KostalPiko Kostal Plenticore 10 Plus SMA SMAWechselrichter Solar Edge SolarEdge SE10k Sunways NT5000 Speicher Sonnenspeicher Tesla Powerwall Monitoring/Auswertung Enecsys Monitoring System SunnyHomeManager Datenbankgestützte Erstellung der Energiebilanz einer SMA PV-Anlage mit Überschusseinspeisung SolarLog SolarForecast - Solare Prognose (PV Erzeugung) und Verbrauchersteuerung
:
Bearbeitet durch User
Mr X. schrieb: > Sicherlich kann man auch den > kompletten Quelltext händisch parsen, aber ich könnte mir vorstellen, > dass es einfacher geht..? Anscheinend nicht. Bei den paar Werten ist das ja auch kein Hexenwerk. Oliver
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.