Variable oder HM-Sec-SCo per CuDX auswerten?

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

Moderator: Co-Administratoren

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

Variable oder HM-Sec-SCo per CuDX auswerten?

Beitrag von Hackertomm » 20.02.2020, 11:25

Wie kann man eine selbst definierte Variable der Web-UI mit CuDX auslesen?

Wie das mit einem Wert eines Sensors geht, habe ich auf dieser Seite gelesen.
So ein Display habe ich mir auch gebaut und lasse es den Temperatur und Feuchtigkeitswert eines Selbstbau Sensors anzeigen.
Ich habe da ein 4x20 Display dran und noch eine Zeile Platz, da könnte also noch die selbst definierte Variable "Garage" rein, die mir in der Web UI anzeigt, ob meine Garage Zu ist oder Auf.
Die Variable zeigt zwar in der Web UI Text an "Garage ZU" oder "Garage AUF", im Log ist das aber nur 0 oder 1, wobei 0 Geschlossen ist und 1 dann offen.
Oder wie kann ich einen HM-Sec-SCo per CuDX auswerten, der den "Wert" für die Variable liefert?
Nur kenne ich mich da mit der Programmierung nicht aus und bräuchte da ein bisschen Hilfe.
Gruß
Hackertomm

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

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

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

Beitrag von Baxxy » 20.02.2020, 13:56

Hackertomm hat geschrieben:
20.02.2020, 11:25
Die Variable zeigt zwar in der Web UI Text an "Garage ZU" oder "Garage AUF", im Log ist das aber nur 0 oder 1, wobei 0 Geschlossen ist und 1 dann offen.
Du könntest im Ansteuerungsscript für das Display den Status der SysVar/des Aktors (0/1; true/false) in einen String umwandeln.
Hier mal ein Beispiel für eine SysVar "Test-Garagentor-Status" Typ Logik (wahr=offen; falsch=geschlossen).

Code: Alles auswählen

var GarageSysVar = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Test-Garagentor-Status").Value();
string Garagentorstring = "geschlossen";
if ((GarageSysVar == true) || (GarageSysVar == 1)) {Garagentorstring = "offen";}
WriteLine("Die Systemvariable hat den Wert "#GarageSysVar# "!");
WriteLine("Das Garagentor ist "#Garagentorstring# "!");
Vermutlich geht's auch einfacher und die WriteLines sind nur zur Kontrolle.
Direkt den HM-Sec-SCo auszuwerten geht auf diese Weise natürlich auch. Da kann ich aber kein Beispiel liefern da ich ihn nicht habe.

Grüße
Baxxy

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 » 20.02.2020, 14:32

Ich danke dir.
Ich werde es mal heute Abend ausprobieren, wenn ich dazu komme.
Wenn nicht Morgen.
Bei uns ist ab Heute Ausnahmezustand, wegen Fasching und Hexentanz.
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 » 21.02.2020, 17:40

Ok, ich habs hinbekommen, allerdings mit einem anderen Script und alles andere wie 100%ig, aber funktioniert erstmal.
Da nun ist der Weg bekannt ist, kann das weiter ausbauen.
Zum Beispiel statt der Variable "Garage" den Zustand des HM-Sec-SCo anzeigen lassen.
In die Script programmierung von HM, da muss ich mich wirklich noch weiter einarbeiten.

Bild
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 » 21.02.2020, 19:43

Hackertomm hat geschrieben:
20.02.2020, 11:25
Wie kann man eine selbst definierte Variable der Web-UI mit CuDX auslesen?
Was hat das nun mit CUxD zu tun?
Hackertomm hat geschrieben:
20.02.2020, 11:25
Die Variable zeigt zwar in der Web UI Text an "Garage ZU" oder "Garage AUF", im Log ist das aber nur 0 oder 1, wobei 0 Geschlossen ist und 1 dann offen.
Du kannst dabei auf .ValueName() zurückgreifen.

Code: Alles auswählen

object GarageSysVar = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Test-Garagentor-Status");
WriteLine("Die Systemvariable hat den Wert "#GarageSysVar.ValueName() # "!");
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 » 21.02.2020, 22:30

Das hat mit CuXD dahingehen zu tun, das ich letztendlich den HM-Sec-SCo selber auswerten will, der u.a. auch den Wert der Variable Garage liefert.
Somit kann ich diese Variable dann Löschen und einfach nicht mehr protokollieren, was ich jetzt noch tue.
Ich vermute das muss ich dann ebenso machen, wie ich auch die Werte des HM-WDS40-TH-I über CuXD auf das Display bringe.
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 » 21.02.2020, 23:00

Ich kann dir nicht folgen. Bisher sehe ich ein bisschen Homematic Script ohne jegliche CUxD Verbindung.
Aber da hab ich keine Ahnung von, liegt an mir.

.ValueName() beantwortet deine Frage zum Auslesen der hinterlegten Wertebezeichnung bei Systemvariablen vom Typ Logik oder Alarm so wie ich es dir oben mundgerecht gepostet habe.
Leider hat EQ-3 versäumt dieses auch z.B. für die Binary Wertebezeichnungen bei z.B. Fenstersensoren zu integrieren. Wäre ja zu einfach.
Vielleicht übersehe ich aber nur etwas in der nicht vorhandenen Doku dazu.

Aber in jedem Fall kannst du den Wert bei Sensoren auslesen und entsprechend "wandeln":

Code: Alles auswählen

object oGarage = datapoints.Get("BidCos-RF.HEQ012345678:1.STATE");
if(oGarage.Value()) {WriteLine("Garage offen")}else{WriteLine("Garage zu");} 
Natürlich kann man auch bei Systemvariablen "wandeln" aber da ist es ja nicht nötig.

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 » 22.02.2020, 10:42

Es kann auch sein, dass ich mich mit CuXD etwas verrant habe und es nicht nötig ist.
Anbei mal das Script, welches die Temperatur und die Luftfeuchtigeit ausgibt.

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);
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);
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);
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);
Dieses Script stammt von dieser Seite und ist etwas abgewandelt und auf mein Gerät angepasst.
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 » 22.02.2020, 19:41

Du verwendest kein CUxD sondern feuerst 4 system.exec Aufrufe direkt hintereinander ab. Das machst du dann wie oft?
Ist das überhaupt nötig?

Egal

Deine Frage hat also mit CUxD nichts zu tun.
Die Antwort, wie du Systemvariablen abfragst oder auch die Werte von Sensoren wandelst steht ja oben.
Also Problem gelöst und ein anderes Unterforum wird sich finden. Kannst ja schon mal den Threadtitel anpassen.

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, 12:24

Ja, anderes Unterforum ist wahrscheinlich besser.
CuXD wahrscheinlich deshalb, weil in dem ersten Beispiel Script von dieser Seite, welches ich hatte, das mit CuXD so beschrieben war.

Code: Alles auswählen

! --- LCD Display - Meldungen aus HomeMatic auf LCD ---
! --- © Werner Weber - Technikkram.net
! --- Temperatur aus WETTERSTATION - CUxD ---
string url = "http://192.168.1.2/control?cmd=LCDCMD,clear";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
string url = "http://192.168.1.2/control?cmd=LCD,1,1,TEMP      Garten";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
string Kombi01 = dom.GetObject("BidCos-RF.NEQ0343825:1.TEMPERATURE").Value().ToString(2);
string url = "http://192.168.1.2/control?cmd=LCD,2,1,'"#Kombi01#"' %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
Da es ja auch ohne geht, werde ich CuXD wieder Deinstallieren.
In dem Script sieht man auch, woher die system.exec Aufrufe stammen.
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.
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“