Hallo zusammen,
nur ganz kurz, das Display/Skript läuft wieder.
Ich habe jetzt die Version 1.5 (von LibertyX gepostet) aus dem Forum kopiert und meine Änderungen wieder eingefügt.
Das Ergebnis ist wie vorher, das Display läuft, aber ich muss vorher immer ein Skript ohne meine Änderungen einfügen, das Display kurz betätigen und dann mein Skript einfügen... ansonsten wir mir angezeigt das Skript wäre fehlerhaft...
Also erst:
Code: Alles auswählen
!! Universalprogramm zum Füllen
!! (c) DrTob
!! optimized by thkl
!! Das Script holt sich jetzt die Seriennummer des Displays selbst aus der Auslösebedinung des Programms
! Farben
! 0x80 weiß
! 0x81 rot
! 0x82 orange
! 0x83 gelb
! 0x84 gruen
! 0x85 blau
! Symbole
! 0x80 AUS
! 0x81 EIN
! 0x82 OFFEN
! 0x83 geschlossen
! 0x84 fehler
! 0x85 alles ok
! 0x86 information
! 0x87 neue nachricht
! 0x88 servicemeldung
! 0x89 Signal grün
! 0x8A Signal gelb
! 0x8B Signal rot
! Zugriff auf vordefinierte Texte
!
! 0x80 Text 0 (Kanal 1 Text Zeile 1)
! 0x81 Text 1 (Kanal 1 Text Zeile 2)
! 0x82 Text 2 (Kanal 2 Text Zeile 3)
! 0x83 Text 3 (Kanal 2 Text Zeile 4)
! 0x84 Text 4 (Kanal 3 Text Zeile 5)
! 0x85 Text 5 (Kanal 3 Text Zeile 6)
! 0x86 Text 6 (Kanal 4 Text Zeile 7)
! 0x87 Text 7 (Kanal 4 Text Zeile 8)
! 0x88 Text 8 (Kanal 5 Text Zeile 9)
! 0x89 Text 9 (Kanal 5 Text Zeile 10)
! 0x8A Text 10 (Kanal 6 Text Zeile 11)
! 0x8B Text 11 (Kanal 6 Text Zeile 12)
! 0x8C Text 12 (Kanal 7 Text Zeile 13)
! 0x8D Text 13 (Kanal 7 Text Zeile 14)
! 0x8E Text 14 (Kanal 8 Text Zeile 15)
! 0x8F Text 15 (Kanal 8 Text Zeile 16)
! 0x90 Text 16 (Kanal 9 Text Zeile 17)
! 0x91 Text 17 (Kanal 9 Text Zeile 18)
! 0x92 Text 18 (Kanal 10 Text Zeile 19)
! 0x93 Text 19 (Kanal 10 Text Zeile 20)
string zeile1 = "Zeile 1";
string color1 = "0x80";
string icon1 = "";
string zeile2 = "Zeile 2";
string color2 = "0x80";
string icon2 = "";
string zeile3 = "Zeile 3";
string color3 = "0x80";
string icon3 = "";
string zeile4 = "Zeile 4";
string color4 = "0x80";
string icon4 = "";
string zeile5 = "";
string color5 = "";
string icon5 = "";
string zeile6 = "Zeile 6";
string color6 = "0x80";
string icon6 = "";
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! System Routine do not change anything below !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
string splitter="|";
string msgBuffer = zeile1 # splitter # color1 # splitter # icon1 # "\t";
msgBuffer = msgBuffer # zeile2 # splitter # color2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # color3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # color4 # splitter # icon4 # "\t";
msgBuffer = msgBuffer # zeile5 # splitter # color5 # splitter # icon5 # "\t";
msgBuffer = msgBuffer # zeile6 # splitter # color6 # splitter # icon6;
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";
foreach(bufferLine, msgBuffer) {
line = bufferLine.StrValueByIndex(splitter, 0);
icon = bufferLine.StrValueByIndex(splitter, 2);
if ((line <> "") || (icon <> "")) {
command = command # ",0x12";
if ((line.Substr(0,2) == "0x") && (line.Length() == 4)) {
command = command # "," # line;
i = 12;
}
else {
i = 0;
}
while ((i < line.Length()) && (i < 12)) {
char = line.Substr(i, 1);
foreach(substEntry, substitutions){
if (char == substEntry.Substr(0,1)){command = command # substEntry.Substr(1,5);}
}
i = i + 1;
}
command = command # ",0x11," # bufferLine.StrValueByIndex(splitter, 1);
if (icon <> "") {
command = command # ",0x13," # icon;
}
}
command = command # ",0x0A";
}
command = command # ",0x03";
dom.GetObject("BidCos-RF." # dom.GetObject("$src$").Name().StrValueByIndex(".",1) # ".SUBMIT").State(command);
Dann das Display betätigen und dann mein Skript:
Code: Alles auswählen
!! Universalprogramm zum Füllen V1.5
!! (c) DrTob
!! optimized by thkl
!! Das Script holt sich jetzt die Seriennummer des Displays selbst aus der Auslösebedinung des Programms
! Farben
! 0x80 weiß
! 0x81 rot
! 0x82 orange
! 0x83 gelb
! 0x84 gruen
! 0x85 blau
string weiss = "0x80";
string rot = "0x81";
string orange = "0x82";
string gelb = "0x83";
string gruen = "0x84";
string blau = "0x85";
! Symbole
! 0x80 AUS
! 0x81 EIN
! 0x82 OFFEN
! 0x83 geschlossen
! 0x84 fehler
! 0x85 alles ok
! 0x86 information
! 0x87 neue nachricht
! 0x88 servicemeldung
! 0x89 Signal grün
! 0x8A Signal gelb
! 0x8B Signal rot
! Zugriff auf vordefinierte Texte
!
! 0x80 Text 0 (Kanal 1 Text Zeile 1)
! 0x81 Text 1 (Kanal 1 Text Zeile 2)
! 0x82 Text 2 (Kanal 2 Text Zeile 3)
! 0x83 Text 3 (Kanal 2 Text Zeile 4)
! 0x84 Text 4 (Kanal 3 Text Zeile 5)
! 0x85 Text 5 (Kanal 3 Text Zeile 6)
! 0x86 Text 6 (Kanal 4 Text Zeile 7)
! 0x87 Text 7 (Kanal 4 Text Zeile 8)
! 0x88 Text 8 (Kanal 5 Text Zeile 9)
! 0x89 Text 9 (Kanal 5 Text Zeile 10)
! 0x8A Text 10 (Kanal 6 Text Zeile 11)
! 0x8B Text 11 (Kanal 6 Text Zeile 12)
! 0x8C Text 12 (Kanal 7 Text Zeile 13)
! 0x8D Text 13 (Kanal 7 Text Zeile 14)
! 0x8E Text 14 (Kanal 8 Text Zeile 15)
! 0x8F Text 15 (Kanal 8 Text Zeile 16)
! 0x90 Text 16 (Kanal 9 Text Zeile 17)
! 0x91 Text 17 (Kanal 9 Text Zeile 18)
! 0x92 Text 18 (Kanal 10 Text Zeile 19)
! 0x93 Text 19 (Kanal 10 Text Zeile 20)
!string zeile1 = "Zeile 1";
!string color1 = "0x80";
!string icon1 = "";
!string zeile2 = "Zeile 2";
!string color2 = "0x80";
!string icon2 = "";
string zeile3 = "";
string color3 = "0x80";
string icon3 = "";
!string zeile4 = "Zeile 4";
!string color4 = "0x80";
!string icon4 = "";
string zeile5 = "";
string color5 = "0x80";
string icon5 = "";
!string zeile6 = "Zeile 6";
!string color6 = "0x80";
!string icon6 = "";
! ## Außentemperatur
var term="LEQ0798861";
var channel=dom.GetObject("BidCos-RF."#term#":1.TEMPERATURE");
var temp = channel.Value();
zeile1 = "Temp "#temp.ToString(1)#" C";
if (temp >= 20.0) {color1 = "0x81";}
if (temp >= 10.0) {color1 = "0x83";}
if (temp >= 5.0) {color1 = "0x80";}
if (temp < 0.0) {color1 = "0x85";}
if (temp < -5.0) {color1 = "0x85";}
if (temp < -10.0) {color1 = "0x85";}
! icon3 = "0x86";
! ## Luftfeuchte
var term="LEQ0798861";
var channel=dom.GetObject("BidCos-RF."#term#":1.HUMIDITY");
var hum = channel.Value();
zeile2 = "Hum "#hum.ToString(1)#" %";
if (hum >= 40) {color2 = "0x85";}
if (hum >= 50) {color2 = "0x84";}
if (hum >= 60) {color2 = "0x84";}
if (hum >= 70) {color2 = "0x83";}
if (hum >= 80) {color2 = "0x82";}
if (hum >= 90) {color2 = "0x81";}
! icon2 = "0x86";
! Uhrzeit
! var uhr = dom.GetObject("%Uhrzeit%").Value();
! zeile4 = "Zeit "#uhr.ToString(0)#" H";
zeile4 = ""# system.Date("%H:%M") #" Uhr";
! var oSysvar = dom.GetObject("Uhrzeit");
! zeile4 = "Time "#Uhrzeit.ToString(0)#" H";
! Fensterprüfung
var oSysvar = dom.GetObject("Fenstervariable");
if (oSysvar.State()==1){
! ## Kanal : MEQ0180208:1 -> Text Zeile 6 , Textfarbe Weiß, Icon
zeile6 = "Fenster zu";
icon6 = "0x83";
color6="0x84";
}
else
{
! ## Kanal : MEQ0180208:1 -> Text Zeile 6 , Textfarbe Rot, Icon
zeile6 = "Fenster auf";
color6 = "0x81";
icon6 = "0x82";
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! System Routine do not change anything below !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
string splitter="|";
string msgBuffer = zeile1 # splitter # color1 # splitter # icon1 # "\t";
msgBuffer = msgBuffer # zeile2 # splitter # color2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # color3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # color4 # splitter # icon4 # "\t";
msgBuffer = msgBuffer # zeile5 # splitter # color5 # splitter # icon5 # "\t";
msgBuffer = msgBuffer # zeile6 # splitter # color6 # splitter # icon6;
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\t?,0x3f";
string bufferLine;
string substEntry;
integer i;
string char;
string line;
string icon;
string command = "0x02";
foreach(bufferLine, msgBuffer) {
line = bufferLine.StrValueByIndex(splitter, 0);
icon = bufferLine.StrValueByIndex(splitter, 2);
if ((line <> "") || (icon <> "")) {
command = command # ",0x12";
if ((line.Substr(0,2) == "0x") && (line.Length() == 4)) {
command = command # "," # line;
i = 12;
}
else {
i = 0;
}
while ((i < line.Length()) && (i < 12)) {
char = line.Substr(i, 1);
foreach(substEntry, substitutions){
if (char == substEntry.Substr(0,1)){command = command # substEntry.Substr(1,5);}
}
i = i + 1;
}
command = command # ",0x11," # bufferLine.StrValueByIndex(splitter, 1);
if (icon <> "") {
command = command # ",0x13," # icon;
}
}
command = command # ",0x0A";
}
command = command # ",0x03";
dom.GetObject("BidCos-RF." # dom.GetObject("$src$").Name().StrValueByIndex(".",1) # ".SUBMIT").State(command);
Dann läuft das Display bis zum nächsten Neustart vom Raspberry.
Dies ist jedoch schon bei der CCU2 so gewesen und ich möchte hier dieses Thema jetzt nicht dafür vollmüllen.
Da jetzt wieder alles wie vorher ist, ein Danke an alle.
VG
Leif