HmIP-WRCD - Textzeile per Skript setzen

HMIP lokale Installation

Moderator: Co-Administratoren

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 » 11.08.2021, 11:25

Dani3000 hat geschrieben:
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.
Nachdem ich guter Hoffnung war, ist die Kommunikationsstörung vor 8Tagen wiedergekommen. Alle ~1h kam die Fehlermeldung kontinuierlich 5-6Tage lang. Zwischendurch wurden aber auch Daten übertragen. Seit gestern ist wieder Ruhe und es läuft! (Ich habe nichts geändert!) Übrigens ich arbeite mit dem "Combind". und Tasterübertragung funktioniert zu jeder Zeit problemlos.
Ganz zu Beginn hatte ich ohne Combined gearbeitet und Daten übertragen, das hat damals geklappt, bin dann aber relativ zügig auf Combined umgestiegen.

Nach allen vorherigen Treads gehe ich auch davon aus, das es am Combined-Befehl liegt. Auch wenn FBK2904 damit kein Problem hat.
Ich werde das Skript wohl auch noch mal auskommentieren und somit mal längere Zeit ohne Combined testen.

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 » 11.08.2021, 19:14

Und da stimme ich voll zu. Oft funktioniert der Befehl ohne Probleme und dann auf einmal gibt es Störungen - ohne (bisher) nachvollziehbaren Grund!
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte

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 » 13.08.2021, 10:43

Ich bin jetzt mittlerweile davon überzeugt, dass es am Befehl liegt und nicht an der Hardware. Gerade ist der Fehler wieder aufgetreten und im CCU-Protokoll gibt es keinen Hinweis auf eine gestörte Gerätekommunikation. Ein falsch übergebener String wird aber auch nicht gelistet.
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte

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 » 26.08.2021, 12:35

Nach allen vorherigen Treads gehe ich auch davon aus, das es am Combined-Befehl liegt. Auch wenn FBK2904 damit kein Problem hat.
Ich werde das Skript wohl auch noch mal auskommentieren und somit mal längere Zeit ohne Combined testen.
Ich werde mich mal selbst kommentieren. :D
Ich habe vorgestern den "Combined" durch die "langen Befehle" ersetzt. Was soll ich sagen seit dem ist Ruhe mit den Kommunikationsstörungen des WRCD.
Ich habe sogar die Anzahl der Statusaktualisierungen erhöht. Ich werde weiter testen und berichten. Noch traue ich dem Frieden nicht so ganz...

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 » 26.08.2021, 13:17

Ist ja bei mir genauso. Werden die Zeilen einzeln aktualisiert, tritt auch nach längerer Zeit kein Fehler auf.
Aber wie ich schon oben schrieb, klappt es bei mir nicht, dass am Ende ein Leerzeichen akzeptiert wird. Das Symbol ist immer direkt an den Text geklatscht, egal ob LZ oder nicht :?
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte

tuberkulum
Beiträge: 25
Registriert: 03.12.2018, 19:23
Wohnort: Hannover
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von tuberkulum » 05.09.2021, 10:14

Mal ein Frage zu den Sonderzeichen: Die Zeichen ">", "<" und "=" werden ja durch andere Zeichen ersetzt. Gibt es evtl. innerhalb eines Skripts einen Trick, diese an sich ganz nützlichen Zeichen doch im Display anzuzeigen (z.b. mit einem anderen reservierten ASCII-Code)?
CCU3 3.69.7 - CUx-Daemon v2.10.1 - CCU-Historian v3.3.1 - HQ WebUI v2.5.9 - Email v1.7.6 - Script-Parser v1.8 - XML-API v1.22 - Programmedrucken v.2.6 - hm-pdetect v1.16

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

Aquaplex hat geschrieben:
05.08.2021, 10:21
Könntest du bitte mal probieren, nur eine einzelne Zeile ohne den COMBINED-Befehl zu übertragen? Wird dann am Ende auch das LZ entfernt?
Hat das schon mal jemand gemacht bzw. prüfen können?
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte

saschen79
Beiträge: 94
Registriert: 07.07.2012, 12:29

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von saschen79 » 24.10.2021, 16:29

Hallo zusammen,

ich habe dank eurer Beiträge mein Display zum Laufen gebracht. Wahrscheinlich nicht der eleganteste Weg, ich freue mich aber, dass es schon mal läuft. 2 Sachen funktionieren leider noch nicht.

1. Bei der Temperatur (Zeile2) möchte ich max. eine Nachkommastelle, es werden aber immer alle 6 angezeigt. In Zeile 1 hat das funktioniert. Was mache ich falsch?

2. Die Systemvariablen werden mit true und false angezeigt, wie kann ich hier meine Bezeichnungen anzeigen lassen?

Danke und viele Grüße, Sascha.

Code: Alles auswählen

! Zeile 1 DutyCycle

string DutyCycle = "DutyCycle: " # dom.GetObject("DutyCycle").Value().ToString().Replace(".000000","") # "%";

dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_STRING").State(DutyCycle);
dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_ID").State(1);                   
dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_COMMIT").State(true);

! Zeile 2 Temperatur

string Temp = "T: " # dom.GetObject("HmIP-RF.000EDD89A1XXXX1.ACTUAL_TEMPERATURE").Value().ToString().Replace(".000000","") # "C";

dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_STRING").State(Temp);
dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_ID").State(2);                   
dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_COMMIT").State(true);

! Zeile 3 SV Anwesenheit

string Anwesenheit = "Anwes: " # dom.GetObject("Anwesenheit").Value().ToString();

dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_STRING").State(Anwesenheit);
dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_ID").State(3);                  
dom.GetObject("HmIP-RF.002A5D89AXXXX:3.DISPLAY_DATA_COMMIT").State(true);

MichaelN
Beiträge: 9561
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von MichaelN » 24.10.2021, 17:09

Ganz einfach, Du musst da nicht mit Replace arbeiten. ToString kann runden:

Code: Alles auswählen

string Temp = "T: " # channels.Get("Temperatursensor_WZ:1").DPByHssDP("ACTUAL_TEMPERATURE").Value().ToString(1) # "°C"; 
Achtung:ich habe da ein ° reingeschummelt. Hab grad nicht im Kopf, was das Display dazu sagt

EDIT: nach ° wird abgeschnitten, aber ^ erzeugt ein ° :

Code: Alles auswählen

string Temp = "T: " # channels.Get("Temperatursensor_WZ:1").DPByHssDP("ACTUAL_TEMPERATURE").Value().ToString(1) # "^C"; 
ABER: das kannst Du nur unter RM, mit dem SDV oder einer gepatchen original CCU eingeben abspeichern.

siehe auch viewtopic.php?f=60&t=55269&start=140#p667464
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 +++

Tyfys
Beiträge: 531
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 26 Mal
Danksagung erhalten: 121 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Tyfys » 24.10.2021, 17:28

so erhälts deinen aktuellen wert für true / false

Code: Alles auswählen

string wesenheit = "Anwes: " # dom.GetObject(ID_SYSTEM_VARIABLES).Get("Anwesenheit").ValueName();
WriteLine(wesenheit);
Gruß
Harry

Antworten

Zurück zu „HomeMatic IP mit CCU“