String aus Inhalt einer Homepage erstellen

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

Moderator: Co-Administratoren

Antworten
luxxilexx
Beiträge: 6
Registriert: 11.06.2019, 18:35

String aus Inhalt einer Homepage erstellen

Beitrag von luxxilexx » 11.06.2019, 18:55

Hallo ich bin neu hier und würde mich gerne näher mit der Script-Funktion der Homematic auseinander setzen.
Darum auch gleich meine Frage:
Wie kann man aus dem folgenden String, was der Inhalt einer Homepage ist die einzelnen Werte herausnehmen und diese in Systemvariablen speichern?
Der String wäre in diesem Fall die Öffnungsprozente von Rollläden:

Code: Alles auswählen

["50","50","52","10","0","0","100","0",""]
Ich weiß, dass ich da eine Schleife laufen lassen muss die sich die Zahlen zwischen den Gänsefüßchen raus nimmt und diese dann in eine Systemvariable setzen muss. Das Ganze muss so oft wiederholt werden bis man am Ende des Strings angekommen ist. Aber wie geht das in dieser Skript-Sprache um den Inhalt eine Homepage als String ins Skript zu bekommen? Und wie übergebe ich den einzelnen Werte an eine Systemvariable?

Kann mir da jemand weiter helfen?

mit freundlichen Grüßen,
Luxxi
Zuletzt geändert von alchy am 11.06.2019, 20:50, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

gzi
Beiträge: 450
Registriert: 12.01.2015, 23:37
System: CCU
Hat sich bedankt: 15 Mal
Danksagung erhalten: 15 Mal

Re: String aus Inhalt einer Homepage erstellen

Beitrag von gzi » 11.06.2019, 21:58

In Abschnitt 5.3 von https://www.eq-3.com/Downloads/eq3/down ... pdf#page11
Findest Du Beispiele wie man über einen String iterieten kann.

GZI
Lichtsteuerung, Heizungssteuerung, Überwachung (Feuer, Wasser, Einbruch, Stromausfall, Heizungsausfall, Wetter, Kamera), Alarmierung (optisch, akustisch, mail, SMS, voice call) - CCU, diverse HM- und HMIP Aktoren und Sensoren, Rauchmeldeanlage, UPS, GSM-Alarmwähler, Zugriff aus dem Internet via HTTPS und htdigest authentication, kein Datenkraken-Interface (Google, Amazon, China-Cloud, BND, NSA...) - HomeMatic Sicherheits-Kompendium - Checkliste für Auswahl von IP Kameras - Vergleich aktueller HomeMatic Zentralen - und alle Antworten für das gesamte Universum und den Rest

kafetzke
Beiträge: 34
Registriert: 30.07.2018, 13:47
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: String aus Inhalt einer Homepage erstellen

Beitrag von kafetzke » 12.06.2019, 08:18

Moin luxxilex,

die Antwort von GZI betrachtet wohl nur einen kleinen Teil deines Projektes ;-) In Summe sind das schon ein paar mehr notwendige Schritte. Ich habe zwar gerade keine "Paradelösung" zur Hande, aber ggf. eine Anleitung, wie du dich rantasten könntest:

1. Du brauchst die Erweiterung CUxD. Damit kannst du ein virtuelles Gerät in Homematic registrieren, welches wiederum "Konsolenbefehle" ausführt.

Code: Alles auswählen

! wichtig: die Device-ID musst du ggf. nach dem Registrieren des Devices anpassen!
string execdevice = "CUxD.CUX2801001:1";

! Hier kann deine URL rein
string url = "www.google.de";

! das ist der Befehl, den CUxD für dich ausführt.
string downloader = "LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl";

! Befehl zusammen...
string cmd = downloader # " " # url;

! ...und abdafür
string return = dom.GetObject(execdevice # ".CMD_SETS").State(cmd);
In der Variable return wäre dann bei optimaler URL dein auswertbarer String...


2. Aufsplitten in Einzelwerte
Hier wäre es natürlich enorm von Vorteil, wenn du ein Array und keine Liste hättest (Stichwort: definierte Länge = definierte Anzahl von Werten).
Grundsätzlich ist das im Beitrag von GZI genannte Beispiel aber gar nicht so schlecht, um eine passende foreach Schleife zu basteln.

3. Speichern in Systemvariablen
a) die Variablen musst du vorher in Homematic typengerecht anlegen. Ich gehe mal davon aus, dass dir bekannt ist, wie dies geht.
b) die Syntax zum Schreiben von Werten in Systemvariablen lautet:

Code: Alles auswählen

string value;
dom.GetObject("systemvariable").State(value);
Grundsätzlich ist das Ganze also durchaus machbar. Persönlicher Tipp: schnapp dir ein bestehendes Script von "irgendwas" und nimm die Codeschnipsel als Beispiel für Herangehensweisen. Hier im Forum findest du (auch von mir) einige Scripte, die ein vergleichbares Vorgehen nutzen.

"Clever klauen" ist das Stichwort ;-)

luxxilexx
Beiträge: 6
Registriert: 11.06.2019, 18:35

Re: String aus Inhalt einer Homepage erstellen

Beitrag von luxxilexx » 13.06.2019, 20:37

Hallo GZI,
Hallo kafetzke,

Danke für eure Antworten. Der Code von kafetzke ist ein guter Anfang um das Array in die CCU3 zu bekommen und der Verweis von GZI für die weitere Verarbeitung. Super ich freu mich jetzt aufs Wochenende um dieses Projekt in Angriff zu nehmen. Es steht eh schlechtes Wetter an. :)

mit dankenden Grüßen,

luxxilexx

Antworten

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