Html auslesen und in Var schreiben

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
skorpion_inka
Beiträge: 12
Registriert: 02.11.2017, 12:58
System: CCU und Access Point
Hat sich bedankt: 2 Mal

Html auslesen und in Var schreiben

Beitrag von skorpion_inka » 01.07.2020, 11:14

Hallo Zusammen,

prinzipiell ist das HTML auslesen uns in eine Variable schreiben kein Problem, wenn sich der HTML-Code nicht großartig ändert.

Mein Problem ist, ich möchte die Leistungsdaten von meiner PV-Anlagen einlesen.
Anbei eine Bild zum besseren Verständnis.

Im HTML-Code werden vielen Werte ausgegeben und mit einem "Komma" getrennt.
Das Problem ist, dass sich die Zahlenstellen ändern.
zB. für Watt ...,1560,.... oder ...,180,....

Kann man irgendwie ein script schreiben, dass einen Wert zwischen den 8 und 9 Komma ausliest?
Dateianhänge
auslesen.jpg

deltaac
Beiträge: 110
Registriert: 27.08.2019, 08:43
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 88 Mal
Danksagung erhalten: 16 Mal

Re: Html auslesen und in Var schreiben

Beitrag von deltaac » 01.07.2020, 11:19

Du ließt aber kein HTML aus sondern JSON.

Lass dich doch bei anderen "JSON-Scripten" inspirieren: search.php?keywords=JSON

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: Html auslesen und in Var schreiben

Beitrag von MichaelN » 01.07.2020, 12:18

Aber die Anzahl der Werte bleibt gleich?! Und ist immer durch , getrennt? Dann mit StrValueByIndex() den x. Wert auslesen und fertig.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

skorpion_inka
Beiträge: 12
Registriert: 02.11.2017, 12:58
System: CCU und Access Point
Hat sich bedankt: 2 Mal

Re: Html auslesen und in Var schreiben

Beitrag von skorpion_inka » 01.07.2020, 12:24

MichaelN hat geschrieben:
01.07.2020, 12:18
Aber die Anzahl der Werte bleibt gleich?! Und ist immer durch , getrennt? Dann mit StrValueByIndex() den x. Wert auslesen und fertig.

Ja, das ist korrekt. Die Anzahl der Werte bleiben gleich.

Hast du zufällig ein Bespielscript für mich?

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: Html auslesen und in Var schreiben

Beitrag von MichaelN » 01.07.2020, 12:25

Steht in der Skript-Doku Teil 1
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Fonzo
Beiträge: 6673
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 478 Mal

Re: Html auslesen und in Var schreiben

Beitrag von Fonzo » 01.07.2020, 12:41

skorpion_inka hat geschrieben:
01.07.2020, 11:14
Kann man irgendwie ein script schreiben, dass einen Wert zwischen den 8 und 9 Komma ausliest?
Und was willst Du damit dann genau anstellen, das in einer Visualisierung anzeigen oder mit dem Wert intern auf der CCU weiter rechnen?
Wenn es Dir lediglich um ein Anzeigen eines solchen Werts in einer Visualisierung neben den Homematic Geräten geht, kannst Du z.B. mit NEO, das der CCU3 beiliegt, so einen JSON Wert per HTTP auslesen und dann als Wert neben Deinen Homematic Geräten in der Steuerungsoberfläche anzeigen.

Benutzeravatar
Black
Beiträge: 5460
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 417 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Html auslesen und in Var schreiben

Beitrag von Black » 01.07.2020, 13:22

Die Frage des TO war nach einer HM Lösung und nicht nach advertising Produkten.

Es geht recht einfach nur mit den von EQ3 veröffentlichten scriptbefehlen. Den Part zwischen data:[ und ],Staus extrahieren, dann sowie von Michael N schon beschrieben. B
Mit StrValueByIndex (",",8) lässt sich dazwischen dann der string packen...

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

skorpion_inka
Beiträge: 12
Registriert: 02.11.2017, 12:58
System: CCU und Access Point
Hat sich bedankt: 2 Mal

Re: Html auslesen und in Var schreiben

Beitrag von skorpion_inka » 01.07.2020, 13:24

Fonzo hat geschrieben:
01.07.2020, 12:41
skorpion_inka hat geschrieben:
01.07.2020, 11:14
Kann man irgendwie ein script schreiben, dass einen Wert zwischen den 8 und 9 Komma ausliest?
Und was willst Du damit dann genau anstellen, das in einer Visualisierung anzeigen oder mit dem Wert intern auf der CCU weiter rechnen?
Wenn es Dir lediglich um ein Anzeigen eines solchen Werts in einer Visualisierung neben den Homematic Geräten geht, kannst Du z.B. mit NEO, das der CCU3 beiliegt, so einen JSON Wert per HTTP auslesen und dann als Wert neben Deinen Homematic Geräten in der Steuerungsoberfläche anzeigen.
Mein Ziel ist es z.B. Verbraucher zu schalten sobald ich Überschuss habe.

Ich habe nochmal eine Frage zum NEO, wenn damit den Wert auslese, wird dieser dann auch an die CCU übergeben oder ist dieser nur im NEO?

Fonzo
Beiträge: 6673
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 478 Mal

Re: Html auslesen und in Var schreiben

Beitrag von Fonzo » 01.07.2020, 13:57

skorpion_inka hat geschrieben:
01.07.2020, 13:24
Mein Ziel ist es z.B. Verbraucher zu schalten sobald ich Überschuss habe.
Dann musst Du in dem Fall den Wert direkt in die CCU einlesen, da Du dort ja auch mit Bedingungen weiter arbeiten willst.
skorpion_inka hat geschrieben:
01.07.2020, 13:24
Ich habe nochmal eine Frage zum NEO, wenn damit den Wert auslese, wird dieser dann auch an die CCU übergeben oder ist dieser nur im NEO?
In dem Fall dient der Wert nur der Darstellung, z.B. aktueller Verbrauch, der Wert wird also nur in die NEO Remote eingelesen und nicht auf eine CCU übertragen oder irgendwo zwischengespeichert. Wenn Du den Wert auf der CCU haben willst, musst Du also mit einem Homematic Skript arbeiten oder Alternativ geht das bei einer CCU3 bzw. RaspberryMatic auch mit dem NEO Server, der den Wert dann abruft und in eine Variable ablegt. Das wäre dann kein Homematic Skript sondern Javascript, wenn man den NEO Server nutzten sollte.

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“