Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Moderator: Co-Administratoren
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
du rufst Automatik nicht ab, sondern setzt es auf 0
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
Ich absolut verblödeter Vollpfosten. Wie ist das in meinen Hirnwindungen passiert?
Gottseidank nutze ich die Variable noch nicht
Danke.
...
*tischkante*
Gottseidank nutze ich die Variable noch nicht
Danke.
Code: Alles auswählen
var autstr = dom.GetObject("Automatik").Value();
*tischkante*
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
So. Meine. Ich Das geht jetze, so wie ich mir das vorstelle.
Zeile 2 ist Datum und "Alarm"-Systemvariable
Zeile 3 ist Temperatur und "Automatik"-Systemvariable
Zeile 4 ist Luftfeuchte und die Systemmeldungen, sofern ungleich Null.
Jetzt macht das e-Paper sinn.
Hötte jetzt gerne ein sehr, sehr großes e-Paper mit Homematic-Ansteuerung DIN A4 wäre angemessen.
Zeile 2 ist Datum und "Alarm"-Systemvariable
Zeile 3 ist Temperatur und "Automatik"-Systemvariable
Zeile 4 ist Luftfeuchte und die Systemmeldungen, sofern ungleich Null.
Jetzt macht das e-Paper sinn.
Hötte jetzt gerne ein sehr, sehr großes e-Paper mit Homematic-Ansteuerung DIN A4 wäre angemessen.
Code: Alles auswählen
!! Universalprogramm zum Füllen des HM-Disp-EP-WM55
!! (c) DrTob
!! Version 1.10
!! TEST mit zusätzlichen Symbolen
!! Seriennummer des HM-Disp-EP-WM55.
string seriennummer = "NEQ9999999";
!! ZEILE 2
var almstr = dom.GetObject("Alarm").Value();
string i2;
if (almstr == true){i2 = "0x86";}
if (almstr == false){i2 = "0x85";}
integer wd = system.Date("%u").ToInteger();
string wdstr;
if (wd == 1){wdstr = "Mo";}
if (wd == 2){wdstr = "Di";}
if (wd == 3){wdstr = "Mi";}
if (wd == 4){wdstr = "Do";}
if (wd == 5){wdstr = "Fr";}
if (wd == 6){wdstr = "Sa";}
if (wd == 7){wdstr = "So";}
string zeile2 = wdstr # system.Date(" %d.%m.%y");
string icon2 = i2 # "";
!! ZEILE 3
var autstr = dom.GetObject("Automatik").Value();
string i3;
if (autstr == true){i3 = "0x81";}
if (autstr == false){i3 = "0x80";}
! Seriennummer des Aussentemperaturfuehlers
string temp = dom.GetObject("BidCos-RF.MEQ9999999:1.TEMPERATURE").Value().ToString(1);
string zeile3 = temp # " Grad C.";
string icon3 = i3 # "";
!! ZEILE 4
var smstr = dom.GetObject(41).Value();
string i4;
if (smstr == 0){i4 = "0x85";}
if (smstr <> 0){i4 = "0x88";}
! Seriennummer des Aussentemperaturfuehlers
string hum = dom.GetObject("BidCos-RF.MEQ9999999:1.HUMIDITY").Value().ToString(1);
!string hum = "90";
string zeile4 = hum # "%rel. LF. ";
string icon4 = i4 # "";
! Symbole
! 0x80 AUS
! 0x81 EIN
! 0x82 OFFEN
! 0x83 geschlossen
! 0x84 fehler
! 0x85 alles ok
! 0x86 information
! 0x87 neue nachricht
! 0x88 servicemeldung
! Zugriff auf vordefinierte Texte
! 0x80 Textblock 1
! 0x81 Textblock 2
! 0x82 Textblock 3
! 0x83 Textblock 4
! 0x84 Textblock 5
! 0x85 Textblock 6
! 0x86 Textblock 7
! 0x87 Textblock 8
! 0x88 Textblock 9
! 0x89 Textblock 10
! Tonfolgen
! 0xC0 AUS
! 0xC1 LANG LANG
! 0xC2 LANG KURZ
! 0xC3 LANG KURZ KURZ
! 0xC4 KURZ
! 0xC5 KURZ KURZ
! 0xC6 LANG
! 0xC7
! 0xC9
! 0xCA
!Signale
! 0xF0 AUS
! 0xF1 Rotes Blitzen
! 0xF2 Grünes Blitzen
! 0xF3 Orangenes Blitzen
string signal = "0xF0";
string tonfolge = "0xC0";
! 1 bis 15. 0 = Unendlich
integer wiederholungen = 2;
! es wird zum naechstmoeglichen Abstand aufgerundet. Maximum ist 160s.
integer abstand = 10;
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 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);
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
Hallo zusammen,
gibt es eine Möglichkeit die LED dauerhaft anzuschalten?
Mir ist bewusst das es auf Kosten der Batterie geht, würde es dennoch gern mal testen.
Gruß
gibt es eine Möglichkeit die LED dauerhaft anzuschalten?
Mir ist bewusst das es auf Kosten der Batterie geht, würde es dennoch gern mal testen.
Gruß
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
**Push**Lysrix hat geschrieben:Hallo zusammen,
gibt es eine Möglichkeit die LED dauerhaft anzuschalten?
Mir ist bewusst das es auf Kosten der Batterie geht, würde es dennoch gern mal testen.
Gruß
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
Hallo,
gibt es vielleicht die Möglichkeit, die LED 10-20 mal schnell hintereinander blinken zu lassen?
Bei mir blinkt Sie immer nur ein mal.
gibt es vielleicht die Möglichkeit, die LED 10-20 mal schnell hintereinander blinken zu lassen?
Bei mir blinkt Sie immer nur ein mal.
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
PROBLEM!! Bei mir piep es....
Kann mir vielleicht jemand sagen, warum trotz deaktivierter Tastendruckauswertung bei meiner zeitgesteuerten Aktualisierung mein Display piept, wenn es sich aktualisiert????
Und das Ganze im Abstand von 10 sek nochmal....?
Benutzerter Code ist dieser:
Besten Dank im Voraus....Kraehe
Kann mir vielleicht jemand sagen, warum trotz deaktivierter Tastendruckauswertung bei meiner zeitgesteuerten Aktualisierung mein Display piept, wenn es sich aktualisiert????
Und das Ganze im Abstand von 10 sek nochmal....?
Benutzerter Code ist dieser:
Code: Alles auswählen
!! Universalprogramm zum Füllen des HM-Disp-EP-WM55
!! (c) DrTob
!! Version 1.10
!! ZEILE 2
var tanja = dom.GetObject("Anwesenheit Tanja").Value();
string i1;
if (tanja == true){i1 = "Tanja da";}
if (tanja == false){i1 = "Tanja weg";}
string i2;
if (tanja == true){i2 = "0x85";}
if (tanja == false){i2 = "0x84";}
string zeile2 = i1 # "";
string icon2 = i2 # "";
!! Zeile 3
var lars = dom.GetObject("Anwesenheit Lars").Value();
string i3;
if (lars == true){i3 = "Lars da";}
if (lars == false){i3 = "Lars weg";}
string i4;
if (lars == true){i4 = "0x85";}
if (lars == false){i4 = "0x84";}
string zeile3 = i3 # "";
string icon3 = i4 # "";
!! Zeile 4 ## Außentemperatur
var term="MEQ0831946";
var channel=dom.GetObject("BidCos-RF."#term#":1.TEMPERATURE");
var temp = channel.Value();
string zeile4 = "Außen "#temp.ToString(1)#" C";
string icon4 = "0x86";
! Symbole
! 0x80 AUS
! 0x81 EIN
! 0x82 OFFEN
! 0x83 geschlossen
! 0x84 fehler
! 0x85 alles ok
! 0x86 information
! 0x87 neue nachricht
! 0x88 servicemeldung
! Zugriff auf vordefinierte Texte
! 0x80 Textblock 1
! 0x81 Textblock 2
! 0x82 Textblock 3
! 0x83 Textblock 4
! 0x84 Textblock 5
! 0x85 Textblock 6
! 0x86 Textblock 7
! 0x87 Textblock 8
! 0x88 Textblock 9
! 0x89 Textblock 10
! Tonfolgen
! 0xC0 AUS
! 0xC1 LANG LANG
! 0xC2 LANG KURZ
! 0xC3 LANG KURZ KURZ
! 0xC4 KURZ
! 0xC5 KURZ KURZ
! 0xC6 LANG
! 0xC7
! 0xC9
! 0xCA
!Signale
! 0xF0 AUS
! 0xF1 Rotes Blitzen
! 0xF2 Grünes Blitzen
! 0xF3 Orangenes Blitzen
!Seriennummer des HM-Disp-EP-WM55.
string seriennummer = "NEQ1463380";
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 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);
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
Du hast Variablen aus dem Script entfernt. Unter anderem die Tonfolge. Die wird im System noch existieren und auf irgendwas stehen. Deshalb piepts. Nach einem CCU-Neustart dürfte dann gar nichts mehr gehen.
Feste Texte ("Tanja da"...) solltest du übrigens am besten im Aktor hinterlegen, dann müssen wesentlich weniger Daten übertragen werden.
Feste Texte ("Tanja da"...) solltest du übrigens am besten im Aktor hinterlegen, dann müssen wesentlich weniger Daten übertragen werden.
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
...super....Danke Dr. Tob für die schnelle Antwort!!!
Jetzt funktioniert es fast richtig........
Jetzt funktioniert es fast richtig........
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri
Vielen dank für die Mühe und tolle Arbeit ...
Der Script läuft tadellos bei mir mit aktuell 8 Zuständen auf dem Display [emoji6]
Gesendet von iPhone mit Tapatalk
Der Script läuft tadellos bei mir mit aktuell 8 Zuständen auf dem Display [emoji6]
Gesendet von iPhone mit Tapatalk