Hilfe für Script Display 20x4

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
magnum1795
Beiträge: 260
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 44 Mal
Danksagung erhalten: 21 Mal

Hilfe für Script Display 20x4

Beitrag von magnum1795 » 30.03.2021, 11:46

hallo, bräuchte wiedermal Hilfe bei einen Script zur Anzeige auf einen LCD Display 20x4

Ich würde dort gern Daten von Systemvariablen (in meinen Fall z.B. die Wassertemperatur vom Pool) gern anzeigen lassen. Leider komme ich nicht recht weiter und ich verstehe (noch) nicht was ich da genau eintragen muss. Habe mir ein Script erstellt, aber es fehlt eben noch der genaue Eintrag um die Temperatur anzuzeigen. Mein Script sieht folgendermaßen aus

Code: Alles auswählen

string stdout;
string stderr;
string url="http://192.168.0.29/control?cmd=LCDCMD,clear";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
string url = "http://192.168.0.29/control?cmd=LCD,1,1,' Wassertemp.   Pool'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
string wtemp = xxxxxxxxxxxxxxxxxxxxxxxx  (dom.GetObject("BidCos-RF.UNISENS001:1.TEMPERATURE").Value().ToString(2);)
string url = "http://192.168.0.29/control?cmd=LCD,2,1,'"#wtemp#" %C2%B0C'";
system.Exec ("wget -q -O /dev/null " #url, &stdout, &stderr);
192.168.0.29 ist die IP vom ESP (ESP Easy ist installiert) des Displays. Wenn ich die string wtemp Zeile erstmal komplett weg lasse, wird das Display soweit Richtig angezeigt, Heißt also erst wird es gelöscht dann wird Wassertemp. Pool geschrieben. Soweit sollte ja alles Richtig sein. Was aber müsste ich genau bei string wtemp xxxxxxxx eintragen um eben die Systemvariable Pool_WTemp dort anzeigen zu lassen?

Ich komme da nicht weiter und verstehe irgendwie nicht die Zusammenhänge mit den Variablen. Wenn es sich um ein Homematicgerät handelt und es in der Statelist in der XML Api ist, weiß ich was ich eintragen muss (z.B. BidCos-RF.UNISENS001:1.TEMPERATURE) und das klappt dann auch. Aber bei Variablen ?
Dateianhänge
pool statusanzeige.jpg

MichaelN
Beiträge: 9635
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Hilfe für Script Display 20x4

Beitrag von MichaelN » 30.03.2021, 12:45

Siehe Signatur, undokumentierte Skript Befehle. Ganz am Anfang ist der Zugriff auf SV erklärt

Btw: Wenn dein Display nicht erreichbar ist, Legst du die CCU lahm. Du brauchst einen Timeout. Gibt dazu einiges zu lesen im forum.
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 +++

magnum1795
Beiträge: 260
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 44 Mal
Danksagung erhalten: 21 Mal

Re: Hilfe für Script Display 20x4

Beitrag von magnum1795 » 30.03.2021, 15:55

@ MichaelN

Danke dir erstmal für den "Lesestoff". Habe mal versucht etwas durch zu steigen, aber gebe es nun auf. Ist einfach zu Hoch für mich. Ich scheitere ja schon an den "Begriffserklärungen". So steht z.B. dort im ersten Beitrag

! System-Variable auslesen
var Daten = dom.GetObject(ID_SYSTEM_VARIABLES).Get("sysvarname").State();
! System-Variable beschreiben
dom.GetObject(ID_SYSTEM_VARIABLES).Get("sysvarname").State(Daten);


Was ist die ID_SYSTEM_VARIABLES ? Muss ich hier was eintragen?
sysvarname ? Hier habe ich mal den Sysnamen aus der CCU für die Poolwassertemperatur "Pool_WTemp" eingetragen wo die Daten auch korrekt drin stehen, klappt aber nicht. Ebenso wenn ich bei der ID_SYSTEM... es eintrage, auch nicht. Wie gesagt, wenn ich das im Script so eingebe (mal in ID ... und auch mal in sysvarname eingetragen) kommt zwar keine Fehlermeldung beim Testen des Scriptes, aber eben auch absolut keine Ausgabe.

Sorry, ich bin kein Programmierer (und werde es wohl auch nie mehr werden in meinen Alter) und das ganze ist mir einfach zu Hoch, wenn ich nichtmal die einfachsten Zusammenhänge verstehe. Mit dem Richtigen Anschubser würde ich es vielleicht hinbekommen (so wie bei den .json Daten in Variablen schreiben), aber ganz ohne wird das eben nichts. Sage dir dennoch vielen Dank für den Versuch mir zu helfen.
Zuletzt geändert von magnum1795 am 30.03.2021, 16:19, insgesamt 1-mal geändert.

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

Re: Hilfe für Script Display 20x4

Beitrag von Baxxy » 30.03.2021, 16:12

magnum1795 hat geschrieben:
30.03.2021, 15:55
Muss ich hier was eintragen?
Eintragen musst du nur innerhalb der " " den Namen deiner SysVar.

Für dein Beispiel:

Code: Alles auswählen

string wtemp = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Pool_WTemp").Value().ToString(1);
magnum1795 hat geschrieben:
30.03.2021, 15:55
Was ist die ID_SYSTEM_VARIABLES ? Muss ich hier was eintragen?
Nein das bleibt so. Vereinfacht gesagt wird nur innerhalb deiner Systemvariablen "gesucht" und auf das Objekt, dessen Name dann in den " " steht, zugegriffen.

MichaelN
Beiträge: 9635
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Hilfe für Script Display 20x4

Beitrag von MichaelN » 30.03.2021, 16:22

Ohne den gezielten Zugriff auf ID_SYSTEM_VARIABLES würden sonst alle Objekte durchsucht und wenn du zufällig den gleich Namen für eine SV und ein Gerät oder Gewerk O. Ä. Verwendet hast, kommen komische Dinge raus.
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 +++

magnum1795
Beiträge: 260
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 44 Mal
Danksagung erhalten: 21 Mal

Re: Hilfe für Script Display 20x4

Beitrag von magnum1795 » 30.03.2021, 16:27

👌👏
vielen Dank. So funktioniert es. Hatte ja auch schon mal dort Pool_WTemp drin, aber hinten eben nicht Value sondern State stehen.

Es kann manchmal so einfach sein. Wenn man aber eben wie ich nicht mal die "Basic´s" und den Unterschied zwischen STATE, Value etc.so richtig versteht, wird es sehr schwer.

Und ich versuche das ganze nun besser zu verstehen. Lesen tue ich ja, aber verstehe manches einfach nicht.

MichaelN
Beiträge: 9635
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Hilfe für Script Display 20x4

Beitrag von MichaelN » 30.03.2021, 16:28

State oder Value ist bei SV eigentlich egal.
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 +++

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

Re: Hilfe für Script Display 20x4

Beitrag von Baxxy » 30.03.2021, 16:34

MichaelN hat geschrieben:
30.03.2021, 16:28
eigentlich egal.
Bei einer Systemvariable stimme ich zu. :wink:
Ich habe mir trotzdem angewöhnt...
lesen --> .Value()
schreiben --> .State()

Grüße
Baxxy

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“