Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Moderator: Co-Administratoren
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Liebes Forum,
ich stehe wahrscheinlich irgendwo auf dem Schlauch, allerdings bringe ich das Skript nicht zum laufen.
Was mir auffällt ist folgendes, dass ich eine "komische" Seriennummer bei meinem e-INK display habe, diese lautet: 002A5D8989D61B und fängt nicht mit einem Buchstaben an wie bei euch.
Das Programm welches das Skript aufrufen soll funktioniert, ich habe dies getestet, dass ich einfach mit den Boardmitteln der CCU Oberfläche einen Text rausgeschrieben habe.
Ich habe hier mal mein Skript kopiert mit der eingegebenen Seriennumer.
ich stehe wahrscheinlich irgendwo auf dem Schlauch, allerdings bringe ich das Skript nicht zum laufen.
Was mir auffällt ist folgendes, dass ich eine "komische" Seriennummer bei meinem e-INK display habe, diese lautet: 002A5D8989D61B und fängt nicht mit einem Buchstaben an wie bei euch.
Das Programm welches das Skript aufrufen soll funktioniert, ich habe dies getestet, dass ich einfach mit den Boardmitteln der CCU Oberfläche einen Text rausgeschrieben habe.
Ich habe hier mal mein Skript kopiert mit der eingegebenen Seriennumer.
Code: Alles auswählen
!! Universalprogramm zum Füllen des HM-Disp-EP-WM55
!! (c) DrTob
!! Version 1.10
string zeile2 = system.Date("%H:%M ");
string icon2 = "0x87";
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 zeile3 = wdstr # system.Date(" %d.%m.%y");
string icon3 = "";
! 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 = "002A5D8989D61B";
! string temp = dom.GetObject("BidCos-RF.LEQ0000000:1.TEMPERATURE").Value().ToString(1);
string temp = "23.0";
string zeile4 = temp # "C";
string icon4 = "";
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);
- Roland M.
- Beiträge: 9738
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 251 Mal
- Danksagung erhalten: 1358 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Hallo und willkommen im Forum!
Zwei unterschiedliche Geräte aus unterschiedlichen Familien.
Da ich weder den einen, noch den anderen habe, kann ich zum Thema jedoch leider nichts beitragen.
Bitte selbst die 22 Seiten durchforsten, ob da auch eine passende Adaptierung für HmIP dabei ist...
Roland
Du hast offensichtlich ein HmIP-WRCD, dieser Thread entstand aber vor mehr als 5 Jahren für den HM-Disp-EP-WM55!
Zwei unterschiedliche Geräte aus unterschiedlichen Familien.
Da ich weder den einen, noch den anderen habe, kann ich zum Thema jedoch leider nichts beitragen.
Bitte selbst die 22 Seiten durchforsten, ob da auch eine passende Adaptierung für HmIP dabei ist...
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
-
- Beiträge: 9562
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Ne, für das WRCD gibt es einen eigenen Thread.
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 +++
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 +++
-
- Beiträge: 250
- Registriert: 17.12.2014, 18:56
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 3 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Hallo und Danke Dr.Tob für das Skript.
Wollte mit dem Skript das OLED bzw. PB-4DIS ansteuern
aber nur durch ändern der Seriennummer ist nicht
Hat es bereits jemand geschafft einer der beiden Displays
einzubinden.
Danke, Grüße Alex
Wollte mit dem Skript das OLED bzw. PB-4DIS ansteuern
aber nur durch ändern der Seriennummer ist nicht
Hat es bereits jemand geschafft einer der beiden Displays
einzubinden.
Danke, Grüße Alex
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Hallo,
ich habe auch das E-Paper Display und nutze auch schon seit Jahren das Script. Ich möchte jedoch im Rahmen einer kleinen Änderung das Icon in einer Zeile nutzen jedoch den Text der da gerade steht beibehalten. Das funktioniert aber nicht denn wenn ich den Textstring der entsprechenden Displayzeile im Script leer lasse, dann wird das Icon nicht geschrieben. Gibt es da eine universelle Lösung?
Dankesehr
Tom
ich habe auch das E-Paper Display und nutze auch schon seit Jahren das Script. Ich möchte jedoch im Rahmen einer kleinen Änderung das Icon in einer Zeile nutzen jedoch den Text der da gerade steht beibehalten. Das funktioniert aber nicht denn wenn ich den Textstring der entsprechenden Displayzeile im Script leer lasse, dann wird das Icon nicht geschrieben. Gibt es da eine universelle Lösung?
Dankesehr
Tom
-
- Beiträge: 31
- Registriert: 13.03.2020, 08:45
- System: CCU
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 1 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Hi,
Gibt es die Möglichkeit andere Sonderzeichen anzeigen zu lassen, konkret das „°C“ Symbol (C ist natürlich keine Kunst)?
Gibt es die Möglichkeit andere Sonderzeichen anzeigen zu lassen, konkret das „°C“ Symbol (C ist natürlich keine Kunst)?
- Baxxy
- Beiträge: 10648
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 597 Mal
- Danksagung erhalten: 2180 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Du hast doch von mir im anderen Thread ein Script-Beispiel bekommen welches auch das ° beherrscht.
Klappt das nicht?
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 9562
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
"Das" e paper Display gibt es IMHO nicht. Über welches also reden wir?
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 +++
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 +++