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-WRCD - Textzeile per Skript setzen
Moderator: Co-Administratoren
-
- 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
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte
-
- Beiträge: 9681
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: HmIP-WRCD - Textzeile per Skript setzen
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 +++
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 +++
-
- Beiträge: 20
- Registriert: 23.03.2019, 01:50
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 2 Mal
-
- 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
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
-
- 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
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}");
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}");
-
- 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
hab's selbst rausgefunden. Man muss die Umlaute in andere druckbare Zeichen wandeln.
Umgekehrt ist die Anzeige der anderen Zeichen {|}[#$_ nicht möglich.
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}");
-
- 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
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
-
- Beiträge: 9681
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: HmIP-WRCD - Textzeile per Skript setzen
Anregt durch diesen Beitrag habe ich mich nochmal mit dem Thema °-Symbol beschäftigt, dies wirft ja immer mal Fragen auf:
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
Also, das °-Symbol muss als ^ übergeben werden.Aquaplex hat geschrieben: ↑11.05.2020, 16:13Gibt 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.
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 +++
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 +++
-
- 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
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):
Im Display-Skript verwendet man dann:
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("^");
Code: Alles auswählen
zeilentext=zeilentext.Replace("°",dom.GetObject("Gradzeichen").Value());
-
- Beiträge: 82
- Registriert: 14.03.2020, 16:47
- Hat sich bedankt: 11 Mal
- Danksagung erhalten: 1 Mal
Re: HmIP-WRCD - Textzeile per Skript setzen
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.