Variable oder HM-Sec-SCo per CuDX auswerten?

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Variable oder HM-Sec-SCo per CuDX auswerten?

Beitrag von alchy » 23.02.2020, 13:41

Hackertomm hat geschrieben:
23.02.2020, 12:24
Ich bekomme ja den Wert "STATE" vom HM-Sec-SCo ausgelesen und angezeigt, als True oder False, da muss ich also nur schauen, wie das auf dem Display in einen String mit Text umgesetzt wird.
Wozu habe ich dir die Frage(n) oben beantwortet?
Aber du hast augenscheinlich kein Interesse daran, Fragen beantwortest du ja auch nicht.
Es wird nicht besser ,wenn du es immer und immer wieder eine fremde Seite verlinkst. Dann frag doch dort nach. :roll:

Abschließend:
Basierend auf deinem augenscheinlich funktionierenden Script oben, kannst du so den Sensor zusätzlich ausgeben. (ob die Zeile so "LCD,2,5,'" gewählt werden kann, weiß ich aber nicht.

Den Datenpunktnamen BidCos-RF.HEQ012345678:1.STATE musst du anpassen. und er muss natürlich boolean sein.

Code: Alles auswählen

! --- LCD Display - Meldungen aus HomeMatic auf LCD ---
! --- © Werner Weber - Technikkram.net
! --- Temperatur aus WETTERSTATION - System.Exec ---
string stdout;
string stderr;
string url="http://192.168.2.113/control?cmd=LCDCMD,clear";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
!Textzeile
string url = "http://192.168.2.113/control?cmd=LCD,1,5,'Sensor Au%E2en'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
!Garagensensor Datenpunkt in nächster Zeile anpassen
object oGarage = datapoints.Get("BidCos-RF.HEQ012345678:1.STATE");
string sGarage = "Garage ";
if(oGarage.Value()) {sGarage= sGarage#"offen";}else{sGarage=sGarage#"zu";}
string url = "http://192.168.2.113/control?cmd=LCD,2,5,'"#sGarage#"'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
!Temperatur
string Temp01 = dom.GetObject("BidCos-RF.JPTH10I003:1.TEMPERATURE").Value().ToString(2);
string url = "http://192.168.2.113/control?cmd=LCD,3,6,'"#Temp01#"ßC'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
!Luftfeuchte
string Hum01 = dom.GetObject("BidCos-RF.JPTH10I003:1.HUMIDITY").Value().ToString(2);
string url = "http://192.168.2.113/control?cmd=LCD,4,6,'"#Hum01#"%'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);

Das so Umgesetzte finde ich aber trotzdem zumindest fraglich, was ja schon oben steht.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Hackertomm
Beiträge: 680
Registriert: 18.04.2018, 12:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Neuhausen auf den Fildern
Hat sich bedankt: 15 Mal
Danksagung erhalten: 19 Mal

Re: Variable oder HM-Sec-SCo per CuDX auswerten?

Beitrag von Hackertomm » 23.02.2020, 17:16

Entschuldigung, ich kämpfe grad nebenher mit einer Erkältung und habe einen Kopf wie ein 10er Eis.

Die vielen system.Exec sind scheinbar nötig um die einzenlen Links zu senden.
Ohne Abschluss mit system.Exec "("wget -q -O /dev/null " #url, &stdout, &stderr);" wird da nicht alles gesendet und das Diplay bleibt dann teilweise leer.
Auf jeden Fall danke ich dir!
Das Theme kann als abgeschlossen betrachtet werden!
Gruß
Hackertomm

Virtual Image auf einer Qnap TS-451D2, 2GHZ Celeron u. 8GB RAM, aktuell Raspberry OVA, Vers. 3.71.12.20231020

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Variable oder HM-Sec-SCo per CuDX auswerten?

Beitrag von alchy » 23.02.2020, 17:48

Hackertomm hat geschrieben:
23.02.2020, 17:16
Entschuldigung, ich kämpfe grad nebenher mit einer Erkältung und habe einen Kopf wie ein 10er Eis.
Fragen kannst du ja auch, da wird wohl auch antworten gehen. :wink:
Dieses Verhalten ist leider allgemein so üblich hier geworden.
Hackertomm hat geschrieben:
23.02.2020, 17:16
Die vielen system.Exec sind scheinbar nötig um die einzenlen Links zu senden.
Ich habe den Kram nicht, aber nach meinem Verständnis:
Der erste Aufruf löscht das Display und dann folgen im Beispiel jeweils einer für jede einzelne Zeile.
Ergo jetzt 5 x. system.exec -
Und wie oft machst du das jetzt?
Ist es nötig?
Muss man das Display jedesmal löschen?
Muss man ALLE Zeilen aktualisieren oder kann man das einzeln tun?
usw.
Hackertomm hat geschrieben:
23.02.2020, 17:16
Das Theme kann als abgeschlossen betrachtet werden!
Und da es dich ja nicht interessiert, warne ich hiermit zumindest die, die drüber stolpern. :cry:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
Baxxy
Beiträge: 10826
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 607 Mal
Danksagung erhalten: 2225 Mal

Re: Variable oder HM-Sec-SCo per CuDX auswerten?

Beitrag von Baxxy » 23.02.2020, 18:22

alchy hat geschrieben:
23.02.2020, 17:48
Ich habe den Kram nicht, aber nach meinem Verständnis:
Na dann wollen wir dich mal erhellen. Obwohl ich vermute das Du das System schon längst durchschaut hast. :mrgreen:
alchy hat geschrieben:
23.02.2020, 17:48
Der erste Aufruf löscht das Display und dann folgen im Beispiel jeweils einer für jede einzelne Zeile.
Richtig.
alchy hat geschrieben:
23.02.2020, 17:48
Ergo jetzt 5 x. system.exec -
Und wie oft machst du das jetzt?
Ist es nötig?
Nicht nötig.
alchy hat geschrieben:
23.02.2020, 17:48
Muss man das Display jedesmal löschen?
Wenn man nur eine "Seite" darstellen will dann nein, andernfalls ja.
alchy hat geschrieben:
23.02.2020, 17:48
Muss man ALLE Zeilen aktualisieren oder kann man das einzeln tun?
Jede Zeile kann einzeln aktualisiert/geändert werden.
Hackertomm hat geschrieben:
23.02.2020, 17:16
Das Theme kann als abgeschlossen betrachtet werden!
Geht klar. Für mehr Info's zur (besseren) Ansteuerung des Display könntest Du einen neuen Thread aufmachen.

Grüße
Baxxxy

Hackertomm
Beiträge: 680
Registriert: 18.04.2018, 12:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Neuhausen auf den Fildern
Hat sich bedankt: 15 Mal
Danksagung erhalten: 19 Mal

Re: Variable oder HM-Sec-SCo per CuDX auswerten?

Beitrag von Hackertomm » 23.02.2020, 20:48

Ich habe das Script nochmals etwas angepasst.
Das Display sieht jetzt so aus:
Bild

Es zeigt nun die Daten von gleich 3 Geräte, einem HM-Sec-SCo und 2 HB-WDS40-TH-I Temperatur/Feuchte Sensoren, wovon einer die Werte für Innen, der andere für Außen anzeigt.
Das Script dazu sieht nun so aus:

Code: Alles auswählen

string stdout;
string stderr;
string url = "http://192.168.2.105/control?cmd=LCD,1,2,'Sensoren u. Status'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
object oGarage = datapoints.Get("BidCos-RF.OEQ2138226:1.STATE");
string sGarage = "Garage ";
if(oGarage.Value()) {sGarage= sGarage#"offen";}else{sGarage=sGarage#"zu";}
string url = "http://192.168.2.105/control?cmd=LCD,2,5,'"#sGarage#"'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
string Temp01 = dom.GetObject("BidCos-RF.JPTH10I001:1.TEMPERATURE").Value().ToString(1);
string url = "http://192.168.2.105/control?cmd=LCD,3,3,'In  "#Temp01#"ßC'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
string Hum01 = dom.GetObject("BidCos-RF.JPTH10I001:1.HUMIDITY").Value().ToString(2);
string url = "http://192.168.2.105/control?cmd=LCD,3,14,'"#Hum01#"%'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
string Temp03 = dom.GetObject("BidCos-RF.JPTH10I003:1.TEMPERATURE").Value().ToString(1);
string url = "http://192.168.2.105/control?cmd=LCD,4,3,'Out "#Temp03#"ßC'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
string Hum03 = dom.GetObject("BidCos-RF.JPTH10I003:1.HUMIDITY").Value().ToString(2);
string url = "http://192.168.2.105/control?cmd=LCD,4,14,'"#Hum03#"%'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
Davor startet noch ein Script, welches nur das Diplay komplett löscht, vor dem Anzeigen Script, mit einer Pause von 1 Sekunden bevor das Anzeiescript startet.
Ob ich das wirklich brauche weis ich allerdings nicht.
Problem ist da eher die Software auf dem WEMOS D1 Mini, da gibt es nur 3 Befehle für das DOT Matix Display, ON,OFF und Clear.
Das Ganze funktioniert dann per WLAN über einen ESP32 (WEMOS D1 Mini).
Viel Unterlagen dazu habe ich da allerdings nicht, genauer nur das was auf der Seite dieser Anzeige steht.
Auch die vielen system.exec Aufrufe braucht es, denn lasse ich einige weg, verschwindet nach kurzer Zeit der Inhalt ganzer Zeilen auf dem Display.
Liegt vermutlich auch daran, dass die Geräte im WebUI unterschiedliche Laufzeiten zum aktualisieren haben.
Sieht man gut im Homematic Manager.
Gruß
Hackertomm

Virtual Image auf einer Qnap TS-451D2, 2GHZ Celeron u. 8GB RAM, aktuell Raspberry OVA, Vers. 3.71.12.20231020

Hackertomm
Beiträge: 680
Registriert: 18.04.2018, 12:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Neuhausen auf den Fildern
Hat sich bedankt: 15 Mal
Danksagung erhalten: 19 Mal

Re: Variable oder HM-Sec-SCo per CuDX auswerten?

Beitrag von Hackertomm » 29.02.2020, 12:01

Ich habe zu dem Thema einen eigenen Thread aufgemacht, unter "Status Display mit Wemos D1 Mini" im Forum "Entwicklung Hardwareentwicklung und Selbstbau von Aktoren und Sensoren".
Link

Hier im Forum war der Beitrag total falsch, da er mit CuXD nix zu tun hatte.
Da bin ich durch die ursprüngliche Scriptprogrammierung falsch geleitet worden.
Mittlerweile ist CuXD wieder von meiner Raspberrymatic gelöscht worden.
Gruß
Hackertomm

Virtual Image auf einer Qnap TS-451D2, 2GHZ Celeron u. 8GB RAM, aktuell Raspberry OVA, Vers. 3.71.12.20231020

Gesperrt

Zurück zu „CUxD“