HmIP-WRCD - Textzeile per Skript setzen

HMIP lokale Installation

Moderator: Co-Administratoren

Aquaplex
Beiträge: 300
Registriert: 16.11.2011, 18:16
System: CCU und Access Point
Hat sich bedankt: 26 Mal
Danksagung erhalten: 8 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Aquaplex » 15.05.2021, 20:11

FBK2904 hat geschrieben:
15.05.2021, 18:25
Achja :roll: ... bei mir funktioniert das bestens :lol: !
Aber du hast ja auch den COMBINED-Befehl verwendet :!: Ich probiere ja gerade die Übertragung ohne diesen Befehl, nur für eine einzelne Zeile. Hatte ja geschrieben, dass beim COMBINED bei mir manchmal eine Gerätekommunikations-Störung entsteht, bei der einzelnen Zeile allerdings nicht.
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte

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

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von MichaelN » 15.05.2021, 20:12

Auch wenn du mit COMBINED_PARAMETER nur eine Zeile sendest?
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 +++

Hacker182
Beiträge: 20
Registriert: 23.03.2019, 01:50
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Hacker182 » 15.05.2021, 23:25

FBK2904 hat geschrieben:
15.05.2021, 18:44
Ein bisschen die Forum-Suche bzw. Go....-Suche bemüht und schon hat man(n) auch die verfügbaren Datenpunkte des Aktors:
Danke läuft bereits :-)

Aquaplex
Beiträge: 300
Registriert: 16.11.2011, 18:16
System: CCU und Access Point
Hat sich bedankt: 26 Mal
Danksagung erhalten: 8 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Aquaplex » 16.05.2021, 07:30

MichaelN hat geschrieben:
15.05.2021, 20:12
Auch wenn du mit COMBINED_PARAMETER nur eine Zeile sendest?
Ja, auch dann. Das ist ja das Komische. Wenn ich z.B. 2 Zeilen mit COMBINED übertrage, klappt das in 99% der Fälle ohne Probleme. Aber wenn in dem 1% dann doch eine Gerätekommunikationsstörung auftritt und ich direkt im Anschluss die identischen Daten Zeile für Zeile ohne COMBINED übertrage, klappt das ohne Probleme. Ist dann entsprechend mehr Funklast und in meinen Augen auch nicht so elegant wie mit COMBINED. Daher wäre mir die Übertragung in einem Rutsch schon lieber...
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte

Thialf
Beiträge: 20
Registriert: 25.09.2013, 10:44
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Thialf » 14.06.2021, 16:17

In der Suche habe ich nichts gefunden: Hat schon jemand geschafft per Skript Umlaute und Sonderzeichen darzustellen?
Beim alten HM Display musste man schon die Zeichen in besondere ASCII-Codes wandeln, aber selbst das funktioniert beim WRCD nicht mehr.
Ab dem Sonderzeichen/Umlaut wird nur ein schwarzer Balken angezeigt. Auch \x7D oder 0x7D für ü funktioniert nicht.

dom.GetObject("HmIP-RF.xxx:3.COMBINED_PARAMETER").State("{DDBC=WHITE,DDTC=BLACK,DDA=LEFT,DDS=abc ß ä,DDID=1,DDC=true}");

Thialf
Beiträge: 20
Registriert: 25.09.2013, 10:44
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Thialf » 17.06.2021, 16:30

hab's selbst rausgefunden. Man muss die Umlaute in andere druckbare Zeichen wandeln.

Code: Alles auswählen

string text = "Test äöüÄÖÜß";
text=text.Replace("ä","{");
text=text.Replace("ö","|");
text=text.Replace("ü","}");
text=text.Replace("Ä","[");
text=text.Replace("Ö","#");
text=text.Replace("Ü","$");
text=text.Replace("ß","_");
dom.GetObject("HmIP-RF.xxx:3.COMBINED_PARAMETER").State("{DDBC=WHITE,DDTC=BLACK,DDA=LEFT,DDS="#text#",DDID=1,DDC=true}");
Umgekehrt ist die Anzeige der anderen Zeichen {|}[#$_ nicht möglich.

Aquaplex
Beiträge: 300
Registriert: 16.11.2011, 18:16
System: CCU und Access Point
Hat sich bedankt: 26 Mal
Danksagung erhalten: 8 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Aquaplex » 17.06.2021, 17:12

Siehe auch der Beitrag auf Seite 3. Da sind die Zeichen für die Umlaute gelistet.
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte

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

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von MichaelN » 17.06.2021, 20:05

Anregt durch diesen Beitrag habe ich mich nochmal mit dem Thema °-Symbol beschäftigt, dies wirft ja immer mal Fragen auf:
schrubi64 hat geschrieben:
10.04.2020, 19:28
Ich hab's nicht hinbekommen mit dem Grad-Symbol °. Interessanterweise funktioniert es einwandfrei, wenn mit der Funktion "Skript testen" auf der Web-Oberfläche der CCU3 gearbeitet wird und das Zirkumflex für das Grad-Symbol verwendet wird.
Aquaplex hat geschrieben:
11.05.2020, 16:13
Gibt es denn mittlerweile eine Lösung, um das Grad-Symbol (°) im Display darzustellen? Wie Beat geschrieben hatte, wenn man es im Skript-Fenster testet (ausführt), wird das Grad bei Eingabe des "^" aufs Display übertragen. Schließt man allerdings das Skript-Fenster, wird das "^" nicht gespeichert.
Also, das °-Symbol muss als ^ übergeben werden.
Haken an der Sache: in der Original CCU FW ist ein Bug, der das Speichern eines Skriptes mit ^ im Code verhindert. Siehe auch viewtopic.php?f=65&t=68225. Hat man die FW entsprechend https://github.com/jens-maus/RaspberryM ... tUse.patch gepatcht oder nutzt die RM oder Blacks SDV, dann kann man auch das °-Symbol auf dem Display einsetzen:

Edit: ich habe das Skript nach dieser Idee überarbeitet: viewtopic.php?f=34&t=71091
es funktioniert somit nun auch auf einer original CCU

Code: Alles auswählen

! Minimal-Beispiel um das WRCD zu beschreiben
string Kanal = "Statusdisplay:3"; ! kompl. Kanalname einsetzen
string zeile = "4"; ! Nummer der Zeile
string zeilentext = "ähm 120°C"; ! anzuzeigenden Text

! Umlaute ersetzen
zeilentext=zeilentext.Replace("ä","{");
zeilentext=zeilentext.Replace("ö","|");
zeilentext=zeilentext.Replace("ü","}");
zeilentext=zeilentext.Replace("Ä","[");
zeilentext=zeilentext.Replace("Ö","#");
zeilentext=zeilentext.Replace("Ü","$");
zeilentext=zeilentext.Replace("ß","_");
string Grad ="%5E".UriDecode(); ! Workaround fuer Caret-Bug der WebUI nach https://homematic-forum.de/forum/viewtopic.php?f=34&t=71091
zeilentext=zeilentext.Replace("°",Grad);

string DisplayInhaltNeu = "{DDBC=WHITE,DDTC=BLACK,DDI=0,DDA=CENTER,DDS="#zeilentext#",DDID="#zeile#",DDC=true}";

! neuen Inhalt setzen
channels.Get(Kanal).DPByHssDP("COMBINED_PARAMETER").State(DisplayInhaltNeu);
Zuletzt geändert von MichaelN am 12.09.2022, 15:36, insgesamt 2-mal geändert.
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 +++

Thialf
Beiträge: 20
Registriert: 25.09.2013, 10:44
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Thialf » 18.06.2021, 09:48

dafür hätte ich eine Lösung:
Man legt sich eine Systemvariable an (Gradzeichen) und testet dieses Skript (welches nicht gespeichert wird. Die Systemvariable wird hingegen implizit gespeichert):

Code: Alles auswählen

dom.GetObject("Gradzeichen").State("^");
Im Display-Skript verwendet man dann:

Code: Alles auswählen

zeilentext=zeilentext.Replace("°",dom.GetObject("Gradzeichen").Value());

Dani3000
Beiträge: 81
Registriert: 14.03.2020, 16:47
Hat sich bedankt: 11 Mal
Danksagung erhalten: 1 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Dani3000 » 22.07.2021, 08:56

Wie ist das verhalten der WRCD bei euch aktuell? Bei mir sind Kommunikatsionsprobleme seit dem letzten CCU - Update vor 3 Wochen komplett verschwunden. Im Changelog stand aber nichts zur Behebung des Problems. Naja egel, hauptsache weg.

Antworten

Zurück zu „HomeMatic IP mit CCU“