HmIP-WRCD - Textzeile per Skript setzen

HMIP lokale Installation

Moderator: Co-Administratoren

Nagamichisan
Beiträge: 54
Registriert: 14.05.2016, 20:08
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Nagamichisan » 25.01.2022, 15:13

Belly hat geschrieben:
04.10.2020, 14:31
Lässt sich die Status-LED per Skript ansteuern/setzen?
Diese Frage stelle ich mir auch gerade? :?:
Wäre doch interessant, wenn bei bestimmten Systemvariablen (z.B. Fenster offen) das LED rot anzeigen würde.
CCU3 mit RasperryMatic | Raspberry PI4 mit ioBroker

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von MichaelN » 25.01.2022, 15:15

Kurze Antwort: Nein
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 +++

Nagamichisan
Beiträge: 54
Registriert: 14.05.2016, 20:08
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Nagamichisan » 25.01.2022, 15:59

Ok schade, aber nicht so tragisch...

Was anderes, ich habe zwar jetzt etwas gebraucht, aber trotzdem ein Programm hinbekommen, dass mir Temp., Luftf. und eine SV (Status Terrassentür) ausliest.

Code: Alles auswählen

! Skript für HM Display für die Anzeige von TMP, LF, Status Terrassentür

integer curTemp = "TMP " #  dom.GetObject (ID_DATAPOINTS).Get ("HmIP-RF.SerialTemp:1.ACTUAL_TEMPERATURE").Value().ToString(1)#"^C";
integer humidityout1 = "LF   " #  dom.GetObject (ID_DATAPOINTS).Get ("HmIP-RF.SerialTemp:1.HUMIDITY").Value().ToString(0)#" %";
string status_terrasse = dom.GetObject("Terrassentuer_Status").ValueName();

string ZeilenInhalt = "{DDBC=BLACK,DDTC=WHITE,DDA=CENTER,DDS=Wetterdaten,DDID=1},{DDBC=WHITE,DDTC=BLACK,DDI=0,DDA=CENTER,DDS="#curTemp#",DDID=2,DDC=true},{DDBC=WHITE,DDTC=BLACK,DDI=0,DDA=CENTER,DDS="#humidityout1#",DDID=3,DDC=true},{DDBC=BLACK,DDTC=WHITE,DDA=CENTER,DDS=Terrasse,DDID=4},{DDBC=WHITE,DDTC=BLACK,DDA=CENTER,DDS="#status_terrasse#",DDID=5}";

dom.GetObject ("HmIP-RF.SerialDisplay:3.COMBINED_PARAMETER").State(ZeilenInhalt);
Dieses möchte ich alle 10-15 Min als WebUI Programm ausführen lassen, jedoch zusätzlich erreichen, sobald sich die der Status der SV Terrassentür ändert dies auf dem Display auch sofort ändert.

Fragen:
1. Belaste ich den DC bei 10-15 Min. dieses Programms zu arg oder ist das noch im Rahmen?
Habe leider viele verschiedene Aussagen gelesen und bin mir nicht sicher.

2. Ist folgende Lösung für das sofortige Melden des neuen Status außerhalb der o.g. 10-15 Min. via WebUI Programm ok für den DC? Oder passiert da trotzdem (warum auch immer?) im Hintergrund zu viel?
Bild

3. Burst-Limit ist erreicht, kann das am vielen Basteln heute liegen? DC ist auf ca. 25-30%. Wie bekomme ich die Meldung wieder weg?

Danke schonmal.
VG
Markus
CCU3 mit RasperryMatic | Raspberry PI4 mit ioBroker

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von MichaelN » 25.01.2022, 16:07

Nagamichisan hat geschrieben:
25.01.2022, 15:59
1. Belaste ich den DC bei 10-15 Min. dieses Programms zu arg oder ist das noch im Rahmen?
Möglich oder auch nicht - ausprobieren
Nagamichisan hat geschrieben:
25.01.2022, 15:59
2. Ist folgende Lösung für das sofortige Melden des neuen Status außerhalb der o.g. 10-15 Min. via WebUI Programm ok für den DC?
Wenn Du die Tür nicht ständig öffnest, ist das für den DC nicht so gravierend. ABER: Programme aus Programmen zu starten ist ein schlechter Programmierstil. Entweder das Skript in dieses Programm packen (und da bräuchtest Du ja nur die 1 Zeiel ändern)
Oder notfalls das andere Programm über eine virtuelle Taste triggern.
EDIT: ODER, was mir logischer erscheint, wenn Du eh das ganze Skript durchlaufen lassen willst (was ich nicht täte, geht ja nur um 1 Zeile?), dann pack diese Triggerbedingung in das periodisch auslösende Programm mit rein.
Nagamichisan hat geschrieben:
25.01.2022, 15:59
3. Burst-Limit ist erreicht, kann das am vielen Basteln heute liegen?
Möglich. Oder die Antwort auf Frage 1...
Nagamichisan hat geschrieben:
25.01.2022, 15:59
Wie bekomme ich die Meldung wieder weg?
Bestätigen? oder 1 Stunde warten?

Generell würde ich nur die Daten aktualisieren, die sich auch geändert haben
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 +++

Nagamichisan
Beiträge: 54
Registriert: 14.05.2016, 20:08
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Nagamichisan » 25.01.2022, 16:31

Ok, danke für die ausführlichen Antworten. Werde das mit dem Programm im Programm nochmal überdenken :cry: Und ja, vielleicht einfach nur die eine Zeile reinpacken. Macht ja auch Sinn.

Bestätigen kann ich leider nichts in den Servicemeldungen, der Knopf ist grau ohne Funktion.
Ich lass das Display jetzt einfach mal etwas in Ruhe :D

EDIT:; wenn ich nur eine Zeile ändern möchte, dachte ich das geht so, passiert aber nix:

Code: Alles auswählen

string status_terrasse = dom.GetObject("Terrassentuer_Status").ValueName();
string ZeilenInhalt = "{DDBC=WHITE,DDTC=BLACK,DDA=CENTER,DDS="#status_terrasse#",DDID=5}";
dom.GetObject ("HmIP-RF.ServialDisplay:3.COMBINED_PARAMETER").State(ZeilenInhalt);
Geht nun, nach etwas probieren, keine Ahnung was da falsch war:

Code: Alles auswählen

string status_terrasse = dom.GetObject("Terrassentuer_Status").ValueName();
dom.GetObject("HmIP-RF.SerialDisplay:3.COMBINED_PARAMETER").State("{DDBC=WHITE,DDTC=BLACK,DDA=CENTER,DDS="#status_terrasse#",DDID=5,DDC=true}");
CCU3 mit RasperryMatic | Raspberry PI4 mit ioBroker

Hugo Oberstein
Beiträge: 266
Registriert: 05.10.2019, 21:17
Hat sich bedankt: 110 Mal
Danksagung erhalten: 2 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Hugo Oberstein » 05.04.2022, 08:16

Hallo Zusammen,
ich bin seit gestern Besitzer von zwei HmIP-WRCDs an der PIVCCU3 und lese mich gerade in das Thema ein.
Mein Ziel ist es, den Status der Alarmanlage (Systemvariable) in der 3. Zeile des Displays anzuzeigen.
Wenn ich das konventionell über ein Programm mache, aktualisiert er ja alle 5 Zeilen und der DC schnellt in die Höhe. (Programm siehe Bilder). Das Programm funktioniert und das Ergebnis passt. Aber ich will ja "Nur" die 3 Zeile aktualisieren und habe mir aus diesem Beitrag ein Script kopiert und angepasst:

Code: Alles auswählen

! Minimal-Beispiel um das WRCD zu beschreiben
string Kanal = "002A5D89A1XXXX:3"; ! kompl. Kanalname einsetzen
string zeile = "3"; ! Nummer der Zeile
string zeilentext = "INAKTIV "; ! 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 DisplayInhaltNeu = "{DDBC=WHITE,DDTC=BLACK,DDI=27,DDA=CENTER,DDS="#zeilentext#",DDID="#zeile#",DDC=true}";

! neuen Inhalt setzen
channels.Get(Kanal).DPByHssDP("COMBINED_PARAMETER").State(DisplayInhaltNeu);
Bei dem String Kanal habe ich die Seriennummer angegeben . Das Script lasse ich wie beim ursprünglichen Programm einmal nach 5 Sekunden für den einen WRCD und nach 7 Sekunden für den anderen WRCD laufen (wobei sich die beiden Scripte nur in den Seriennummern unterscheiden).
Die problematische "°" Grad Zeile habe raus gelassen, da ich sie nicht brauche.


Soviel zu meiner Vorrede. Das Programm wird ausgeführt, aber die 3. Zeile des Displays ändert sich nicht - weder bei dem einen , noch bei dem anderen WRCD.
Was habe ich falsch gemacht ?
Vielen Dank für eure Unterstützung.

Hugo.
Dateianhänge
Bild 2.PNG
Bild 1.PNG

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von MichaelN » 05.04.2022, 08:35

In das Skript gehört der Kanalname. Wenn ich Skript und Screenshot Vergleiche lese ich da unterschiedliche Dinge. Ich bezweifle das der Kanal 002A5D89A1XXXX:3 heisst. Den Namen des Kanals findest Du in den Geräteeinstellungen, wenn Du das Gerät aufklpaast in der linken Spalte. Und in dem Zusammenhang: es ist sehr ungünstig wenn Gerät und Kanal absolut Identisch benannt sind.

Und dann muss das Skript ja auch aufgerufen werden. Es nützt nichts, wenn es auf der Festplatte deines PCs liegt. In deinem Programm steht aber "Kanalaktion" statt "Skript". Wo also wird es ausgeführt?
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 +++

Hugo Oberstein
Beiträge: 266
Registriert: 05.10.2019, 21:17
Hat sich bedankt: 110 Mal
Danksagung erhalten: 2 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Hugo Oberstein » 05.04.2022, 10:04

Hallo Michael,
vielen Dank. Ich hatte die Seriennummer und den Kanal dort eingetragen - nicht den Kanalnamen. Das habe ich wohl falsch verstanden gehabt - vielen Dank für die Hilfestellung.
Das Bild war das ursprüngliche Programm, mit dem es funktionierte (wobei ja alle Zeilen aktualisiert wurden)

Mein neues Programm habe ich -wie von Dir im anderen Beitrag vorschlagen- separat aufgeteilt.
Ich habe jetzt den Namen im Skript ersetzt und werde das heute Abend mal ausprobieren.

Zwei kurze Frage noch:
1. Wie macht man eine vollständig leere Zeile ? Einfach z.B. Zeile 2 mit einem "Leerzeichen" ?
2. Wenn ich Aktionen mit Skripten steuere, funktioniert auch dann der Haken "retriggern" bei "sonst" noch?

Danke noch einmal für den guten Support und liebe Grüße

Hugo
Dateianhänge
Bild 3.JPG

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von MichaelN » 05.04.2022, 12:31

Zu 1) mit ""
Zu 2) prinzipiell ja.
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 +++

Hugo Oberstein
Beiträge: 266
Registriert: 05.10.2019, 21:17
Hat sich bedankt: 110 Mal
Danksagung erhalten: 2 Mal

Re: HmIP-WRCD - Textzeile per Skript setzen

Beitrag von Hugo Oberstein » 06.04.2022, 08:32

Hallo Michael,
nun klappt das Script problemlos. Vielen Dank noch einmal.
Ich habe aber darauf verzichtet, "Leerzeilen" zu pushen, da ich ja bei jeder Aktualisierung - auch wenn es nur eine Leerzeile ist- den DC belaste.

Ich gehe davon aus, dass die CCU nicht prüft bzw. prüfen kann, ob sich etwas in der Zeile ändert im Vergleich zu Vorzustand und dann nur die Aktualisierung sendet.

Vielen Dank noch mal für die Hilfe.

Hugo

Antworten

Zurück zu „HomeMatic IP mit CCU“