mein Name ist Thomas und ich bin seit längerem passiver Nutzer dieses Forums.
Vor einigen Jahren habe ich mein neues Hobby Hausautomation entdeckt. Angefangen mit ganz simplen
Funksteckdosen aus dem Baumarkt, über das ELV FS 20 System bis heute zur Homematic CCU3 mit rund
50 Geräten, diversen Programmen und Systemvariablen.
Inzwischen eine CCU3 in meinem Haus und eine in meinem Elternhaus. Über Cloudmatic von überall erreichbar
und Benachrichtigungen für wichtige Dinge per Push Nachricht.
Weiterhin im Haus diverse Lupus Kameras, Velux Dachfenster automatisiert und last not least Rademacher
Rolladensteuerung. Alles auch per App von unterwegs ......
Dazu habe ich mich bzgl. der Homematic auch immer mal der Tipps und Anregungen hier im Forum bedient.
Jetzt habe ich mir die Display-Statusanzeige mit E-Paper-Display ( HM-Dis-EP-WM55 ) zugelegt und bin an meine
autodidaktischen Grenzen gestossen. Ich brauche Hilfe!!!
Hintergrund - wir haben ein großes Grundstück und an der Einfahrt ein Einfahrtstor. Wir haben einen Hund der
gern bei Öffnung der Haustüre durchschlüpft und nach vorne zum Tor rennt. Wenn das Tor dann offen ist auch gern
auf die Straße um anderen Hunden sehr deutlich zu erklären dass es seine Straße ist .........
Daraufhin habe ich dann eine Homematic IP Kontakt-Schnittstelle ( HM-IP-Sci ) mit einem Magnetkontakt am Tor
installiert. Darstellung des Status auf einer Funk-Statusanzeige ( HM-Dis-TD-T ) die aber mechanisch schaltet
und dabei recht laut ist. Unser Hund hat schnell gelernt und jeder Schaltvorgang wird zusätzlich mit Bellen
quittiert weil er glaubt jemand betritt unser Grundstück.
Jetzt habe ich das E-Paper-Display im Einsatz und festgestellt, dass kann nicht nur über die WEB-Oberfläche programmiert
werden sondern dazu gehört auch die Script-Programmierung. Ich habe schon einige Zeit investiert - das Script von DrTob
habe ich soweit angepasst aber der letzte Schliff fehlt und das bekomme ich nicht hin. Vielleicht bin ich schon zu alt,
begriffsstutzig oder einfach zu blöde .........
Da brauche ich bitte Hilfe - wenn möglich bitte gebrauchsfertig. Ich würde es mir dann anschauen und versuchen
zu verstehen für zukünftige Änderungen oder Erweiterungen. Hier sind die Punkte welche ich nicht hinbekomme:
1)
In der mittleren Zeile steht jetzt eine 0 oder 1 - analog zu offen oder zu. Ich möchte dort stehen haben
Tor " offen " oder Tor " zu ". Die Umwandlung der Ziffer in Text bekomme ich nicht hin.
2)
Der Text " Grad " soll ersetzt werden durch das Zeichen "°" und C.
Das habe ich irgendwo mal im Netz gefunden aber finde es nicht mehr ........
3)
Zum Schluss der Name des Scriptes. Dargestellt in der WEB-Oberfläche wird ab dem ersten Zeichen alles immer
weiter. Den Text kann ich ändern, aber da soll nur stehen " Script Einfahrtstor ". Wie geht das?
Vielleicht hat jemand Zeit und Lust mir zu helfen und das Script dahingehend anzupassen, wäre echt dankbar.
Ich habe das Script angehängt, ein Bild der Anzeige und ein Screenshot der Programmierung.
Ich hoffe das ist ausreichend, wenn nicht bitte melden.
Weiterhin habe ich mich bemüht die Forumsregeln einzuhalten, ich hoffe das ist mir gelungen.
Auch das der erste Post wegen Spam frei gegeben werden muss habe ich gelesen.
Jetzt hoffe ich mal auch baldige Hilfe und das jemand dazu Lust und Zeit hat ......
VG, Thomas - EifelPaule
Code: Alles auswählen
!! Universalprogramm zum Füllen des HM-Disp-EP-WM55
!! (c) DrTob
!! Version 1.01
! 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
!Signale
! 0xF0 AUS
! 0xF1 Rotes Blitzen
! 0xF2 Grünes Blitzen
! 0xF3 Orangenes Blitzen
!Seriennummer des HM-Disp-EP-WM55.
string seriennummer = "NEQ1596554";
!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 temp = dom.GetObject("HmIP-RF.0010DA4994786C:1.ACTUAL_TEMPERATURE").Value().ToString(2);
string zeile2 = temp # " Grad";
string icon2 = "";
boolean state = dom.GetObject("HmIP-RF.001E1A498B63F6:1.STATE").Value().ToString(1);
string zeile3 = state;
string icon3 = "";
string temp = dom.GetObject("HmIP-RF.0010D8A990A0AD:1.ACTUAL_TEMPERATURE").Value().ToString(2);
string zeile4 = temp # " Grad";
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 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
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);
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;
}
if (icon <> "") {
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);/code]
[attachment=0]Bildschirmfoto 2021-11-23 um 10.02.43.png[/attachment]
[attachment=1]IMG_7340.JPG[/attachment]