Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Moderator: Co-Administratoren
-
- Beiträge: 101
- Registriert: 22.09.2014, 15:58
- Hat sich bedankt: 2 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
Vielen Dank an die hilfreichen Hinweise.
Jetzt läuft das e-Paper-Display so wie es soll!
Kurzschlusselektriker
Jetzt läuft das e-Paper-Display so wie es soll!
Kurzschlusselektriker
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
Hallo zusammen,
hat jemand vielleicht schon eine elegante Lösung umgesetzt, auf dem Display den Status von Fensterkontakten und Rolladen anzuzeigen.
Also eine Zeile für Alle Rolladen zu: Ja/Nein und die andere Zeile für alle Fenster geschlossen: ja/nein.
Der spontante Weg wäre ein Programm, welches eine Systemvariable schreibt, wenn die entsprechenden Kontakte geschlossen sind. Diese Variable würde ich dann auf dem Display ausgeben?
hat jemand vielleicht schon eine elegante Lösung umgesetzt, auf dem Display den Status von Fensterkontakten und Rolladen anzuzeigen.
Also eine Zeile für Alle Rolladen zu: Ja/Nein und die andere Zeile für alle Fenster geschlossen: ja/nein.
Der spontante Weg wäre ein Programm, welches eine Systemvariable schreibt, wenn die entsprechenden Kontakte geschlossen sind. Diese Variable würde ich dann auf dem Display ausgeben?
-
- Beiträge: 164
- Registriert: 03.06.2016, 21:55
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 51 Mal
- Danksagung erhalten: 8 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Hallo zusammen,
bin mir relativ sicher, schon einmal etwas darüber gelesen zu haben - ich finde das jetzt nur nicht mehr
Also, weiß jemand, ob es möglich ist, die Darstellungsweise (normal "schwarz auf weiß" oder invers "weiß auf schwarz") des ePaper-Displays per Skript umzuschalten?
bin mir relativ sicher, schon einmal etwas darüber gelesen zu haben - ich finde das jetzt nur nicht mehr
Also, weiß jemand, ob es möglich ist, die Darstellungsweise (normal "schwarz auf weiß" oder invers "weiß auf schwarz") des ePaper-Displays per Skript umzuschalten?
Grüße,
Ecky
Ecky
-
- Beiträge: 4
- Registriert: 09.12.2018, 13:43
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Hallo zusammen,
seit dem Update der CCU2 auf Version 2.41.5 läuft das Script bei mir nicht mehr.
Ich bekomme folgende Fehlermeldung:
Error 1 at row 76 col 40 near ^ # ",0x1C,";
hat noch jemand das Problem oder übersehe ich hier etwas?
seit dem Update der CCU2 auf Version 2.41.5 läuft das Script bei mir nicht mehr.
Ich bekomme folgende Fehlermeldung:
Error 1 at row 76 col 40 near ^ # ",0x1C,";
Code: Alles auswählen
if (wiederholungen < 1){
command = command # "0xDF,0x1D,";
}
el
Parse following code failed:
!! Universalprogramm zum Füllen des HM-Disp-EP-WM55
!! (c) DrTob
!! Version 1.10
string zeile2 = "Temp " # dom.GetObject("Aussentemperatur").Value() # " °C";
string icon2 = "";
Zuletzt geändert von alchy am 19.12.2018, 14:16, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Grund: Code in Codetags posten
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Bitte dazugehöriges Script posten.
Alchy
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
-
- Beiträge: 4
- Registriert: 09.12.2018, 13:43
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Hi Alchy,
Hier das Script. Wie gesagt, lief es bis zum Update problemlos.
Vielen Dank und Grüße
Hier das Script. Wie gesagt, lief es bis zum Update problemlos.
Code: Alles auswählen
!! Universalprogramm zum Füllen des HM-Disp-EP-WM55
!! (c) DrTob
!! Version 1.10
string zeile2 = "Temp " # dom.GetObject("Aussentemperatur").Value() # " °C";
string icon2 = "";
string zeile3 = "Wind " # dom.GetObject("Windgeschwindigkeit").Value() # " Km H";
string icon3 = "";
string zeile4 = "Humid " # dom.GetObject("Luftfeuchtigkeit").Value() # " %rF";
string icon4 = "";
!Seriennummer des HM-Disp-EP-WM55.
string seriennummer = "NEQ1594209";
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! System Routine do not change anything below !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
string splitter="|";
string msgBuffer = zeile2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # icon4;
string substitutions = "A,0x41\tB,0x42\tC,0x43\tD,0x44\tE,0x45\tF,0x46\tG,0x47\tH,0x48\tI,0x49\tJ,0x4A\tK,0x4B\tL,0x4C\tM,0x4D\tN,0x4E\tO,0x4F\tP,0x50\tQ,0x51\tR,0x52\tS,0x53\tT,0x54\tU,0x55\tV,0x56\tW,0x57\tX,0x58\tY,0x59\tZ,0x5A";
substitutions = substitutions # "\ta,0x61\tb,0x62\tc,0x63\td,0x64\te,0x65\tf,0x66\tg,0x67\th,0x68\ti,0x69\tj,0x6A\tk,0x6B\tl,0x6C\tm,0x6D\tn,0x6E\to,0x6F\tp,0x70\tq,0x71\tr,0x72\ts,0x73\tt,0x74\tu,0x75\tv,0x76\tw,0x77\tx,0x78\ty,0x79\tz,0x7A";
substitutions = substitutions # "\t0,0x30\t1,0x31\t2,0x32\t3,0x33\t4,0x34\t5,0x35\t6,0x36\t7,0x37\t8,0x38\t9,0x39\t ,0x20\t!,0x21\t\",0x22\t%,0x25\t&,0x26\t=,0x27\t(,0x28\t),0x29\t*,0x2A\t+,0x2B\t,,0x2C\t-,0x2D\t.,0x2E\t/,0x2F";
substitutions = substitutions # "\tÄ,0x5B\tÖ,0x23\tÜ,0x24\tä,0x7B\tö,0x7C\tü,0x7D\tß,0x5F\t:,0x3A\t;,0x3B\t@,0x40\t>,0x3E";
string bufferLine;
string substEntry;
integer i;
string char;
string line;
string icon;
string command = "0x02,0x0A";
foreach(bufferLine, msgBuffer) {
line = bufferLine.StrValueByIndex(splitter, 0);
icon = bufferLine.StrValueByIndex(splitter, 1);
integer linelength = line.Length();
integer iconlength = icon.Length();
if ((linelength > 0) || (iconlength > 0)) {
command = command # ",0x12";
if ((linelength == 4) && (line.Substr(0,2) == "0x")) {
command = command # "," # line;
i = 12;
}
else {
i = 0;
}
if (linelength > 12) {
linelength = 12;
}
while (i < linelength) {
char = line.Substr(i, 1);
boolean b = true;
foreach(substEntry, substitutions){
if (b == true){
if (char == substEntry.Substr(0,1)){
command = command # substEntry.Substr(1,5);
b = false;
}
}
}
i = i + 1;
}
if (iconlength > 0) {
command = command # ",0x13," # icon;
}
}
command = command # ",0x0A";
}
command = command # ",0x14," # tonfolge # ",0x1C,";
if (wiederholungen < 1){
command = command # "0xDF,0x1D,";
}
else {
if (wiederholungen < 11) {
command = command # "0xD" # (wiederholungen - 1) # ",0x1D,";
}
else {
if (wiederholungen == 11) {
command = command # "0xDA,0x1D,";
}
else {
if (wiederholungen == 12) {
command = command # "0xDB,0x1D,";
}
else {
if (wiederholungen == 13) {
command = command # "0xDC,0x1D,";
}
else {
if (wiederholungen == 14) {
command = command # "0xDD,0x1D,";
}
else {
command = command # "0xDE,0x1D,";
}
}
}
}
}
}
if (abstand <= 10) {
command = command # "0xE0,0x16,";
}
else {
if (abstand <= 100) {
command = command # "0xE" # (abstand - 1 / 10) # ",0x16,";
}
else {
if (abstand <= 110) {
command = command # "0xEA,0x16,";
}
else {
if (abstand <= 120) {
command = command # "0xEB,0x16,";
}
else {
if (abstand <= 130) {
command = command # "0xEC,0x16,";
}
else {
if (abstand <= 140) {
command = command # "0xED,0x16,";
}
else {
if (abstand <= 150) {
command = command # "0xEE,0x16,";
}
else {
command = command # "0xEF,0x16,";
}
}
}
}
}
}
}
command = command # signal # ",0x03";
dom.GetObject("BidCos-RF." # seriennummer # ":3.SUBMIT").State(command);
Zuletzt geändert von DerSchmitty am 21.12.2018, 13:46, insgesamt 1-mal geändert.
- Sammy
- Beiträge: 9172
- Registriert: 09.09.2008, 20:47
- Hat sich bedankt: 15 Mal
- Danksagung erhalten: 174 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Code bitte immer in Code-Tags posten. So will sich das keiner ansehen. Bitte oben korrigieren.
Gruß Sammy
Gruß Sammy
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
wie sendest du denn so ? also jedesmal das display anzusprechen bei einer aktualisierung, am besten noch ohne netzbetrieb mit wakeup burst, wird dir recht zuverlässig deinen DC durch die Zimmerdecke jagen
Black
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 4
- Registriert: 09.12.2018, 13:43
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Ja, bei Änderungen der Außentemperatur (alle 5 Minuten)
Gibt es eine Aktualisierung. Hat bisher noch nie Probleme mit dem DC gemacht (lief über 4 Monate problemlos).
VG
Schmitty
Gibt es eine Aktualisierung. Hat bisher noch nie Probleme mit dem DC gemacht (lief über 4 Monate problemlos).
VG
Schmitty
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Dieses Script lief so noch nie problemlos.DerSchmitty hat geschrieben: ↑21.12.2018, 13:09Hier das Script. Wie gesagt, lief es bis zum Update problemlos.
Es enthält mehrere Fehler, die auf Änderungen deinerseits am Originalcode beruhen.
in Zeile 76 versuchst du in command den Inhalt der Scriptvariablen tonfolge zu einem String zusammenzusetzen.
Code: Alles auswählen
command = command # ",0x14," # tonfolge # ",0x1C,";
Würdest du dieses reparieren, würde jedoch das Script ebenso mit einem Fehler abbrechen, da dieser Fehler auch auf die Scriptvariable wiederholungen zutrifft. Danach käme es dann zum Abbruch wegen der scriptvariable abbruch .....
Und warum?
weil du einfach einen wichtigen Abschnitt des Originalscriptes entfernt hast und das obwohl im Scriptabschnitt noch zusätzlich
!Variablen für die Texte und Icons
!Nicht verwendete Variablen nicht löschen, sondern auf "" setzen!
steht. KLar geht das zu reparieren. Jetzt kannst du mal den gesamten Abschnitt zwischen
!Seriennummer des HM-Disp-EP-WM55.
und
! System Routine do not change anything below !
wieder aus dm Originalscript in dein Script rein kopieren und dann testen und melden.
Weiter habe ich mir deinen Code auch noch nicht angeschaut. Der Peter ist jetzt bei dir.
Code: Alles auswählen
!Seriennummer des HM-Disp-EP-WM55.
string seriennummer = "NEQ0000000";
!Variablen für die Texte und Icons
!Nicht verwendete Variablen nicht löschen, sondern auf "" setzen!
!Zeilen-Variablen können 0x80-0x89 für vordefinierte Texte oder bis zu 12 Zeichen Freitext sein. (längere Texte werden abgeschnitten)
string zeile2 = "0x80";
string icon2 = "0x86";
string zeile3 = "Freier Text";
string icon3 = "";
string zeile4 = "";
string icon4 = "";
string signal = "0xF0";
string tonfolge = "0xC0";
! 1 bis 15. 0 = Unendlich
integer wiederholungen = 1;
! es wird zum nächstmöglichen Abstand aufgerundet. Maximum ist 160s.
integer abstand = 10;
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! System Routine do not change anything below !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fakt ist aber, das dieses von dir gepostete Script völlig unabhängig von dem Update so nicht funktioniert hat.
Durch den Blödsinn mit globaler Deklarierung vielleicht durch eine richtige Doppelverwendung, aber das ist hier schon einigen auf die Füße gefallen.
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.