Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Moderator: Co-Administratoren
-
- Beiträge: 9684
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1627 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Nein. Aber aufgrund des Funktionsprinzips würde ich mal versuchen mehrfach den kompletten Inhalt zu invertieren. Vielleicht "renkt" es sich dann wieder ein.
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: 10
- Registriert: 06.02.2021, 14:26
- System: CCU
- Wohnort: Visselhövede
- Hat sich bedankt: 1 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Ich habe nun bei eq3 eine Script Dokumentation gefunden, die jedoch wohl auch nur für erfahrene Programmierer geschrieben wurde. Die Beispiele lassen sich bei mir nicht umsetzen. Ich scheitere schon daran, einen einfaches "Hallo" auf dem Display darzustellen. Mit derart einfachen Ausgaben scheint sich hier auch niemand zu beschäftigten... Ich beginne mit dem Gedanken zu spielen, alles wieder zu verkaufen.MichaelN hat geschrieben: ↑07.02.2021, 00:44Ich würde hiermit starten :
viewtopic.php?f=27&t=21710&hilit=Wm55
Wenn das noch zu viel hardcore ist, noch 3 Schritte zurück und erstmal die Tipps für Anfänger durcharbeiten.
Code: Alles auswählen
string temp = dom.GetObject("HmIP-RF.<SN>:3.TEXT").State("Hallo");
Viele Grüße
Robert
System:
CCU3, 2x HM, 42x HMIP
Robert
System:
CCU3, 2x HM, 42x HMIP
-
- Beiträge: 12116
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 849 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Die komplette Script-Engine wird von eQ-3 nicht supported.
Nun ja, das ist halt nur "irgendwas Dahergeschriebenes".RobMatic hat geschrieben: ↑11.02.2021, 11:19Mit derart einfachen Ausgaben scheint sich hier auch niemand zu beschäftigten...
...Code: Alles auswählen
string temp = dom.GetObject("HmIP-RF.<SN>:3.TEXT").State("Hallo");
Was soll denn deiner Meinung nach als Rückgabe von dom.GetObject("HmIP-RF.<SN>:3.TEXT").State("Hallo"); in die Variable temp geschrieben werden? Und was willst du damit machen?
Desweiteren schreibst du in einem der vorherigen Beiträge, dass du ein HM-Dis-EP-WM55 hast, aber in deinem Skript fängst du was mit "HmIP-RF..." an.
Ich kann mich da nur MichaelN anschließen.
Fang zunächst einmal an, kleine Brötchen zu backen, um überhaupt erstmal die Skriptlogik zu verstehen.
-
- Beiträge: 10
- Registriert: 06.02.2021, 14:26
- System: CCU
- Wohnort: Visselhövede
- Hat sich bedankt: 1 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Ich versuche gerade, einen einfachen Text "Hallo" auf dem Display auszugeben. Geht noch einfacher?
Das die Zeile Fehler enthält, ist mir klar. Sonst hätte ich sie nicht gepostet. Meine Erwartungen an dieses Forum, Unterstützung in Form von Erklärungen und Hilfe zu erhalten, um einen Einstieg in die Programmierung zu erhalten, wird hier offensichtlich nicht erfüllt.
Viele Grüße
Robert
System:
CCU3, 2x HM, 42x HMIP
Robert
System:
CCU3, 2x HM, 42x HMIP
-
- Beiträge: 9684
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1627 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Ich glaube es ist etwas vermessen zu glauben, das man über diese Plattform einen Programmier-Lehrgang abhalten kann.
Wir wissen ja noch nicht mal, wo wir Dich "abholen" müssen. Welche Vorkenntnisse hast Du? Basic, XLS-Makros, SPS, anything else?
Was hast Du schon erfolgreich in HM gemacht? Weißt Du das Variablentypen sind und welche wofür verwendet werden? Kennst Du die Unterschiede zwischen Geräten, Kanälen und Datenpunkten? Also, wo starten wir?
Wir wissen ja noch nicht mal, wo wir Dich "abholen" müssen. Welche Vorkenntnisse hast Du? Basic, XLS-Makros, SPS, anything else?
Was hast Du schon erfolgreich in HM gemacht? Weißt Du das Variablentypen sind und welche wofür verwendet werden? Kennst Du die Unterschiede zwischen Geräten, Kanälen und Datenpunkten? Also, wo starten 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 +++
-
- Beiträge: 10
- Registriert: 06.02.2021, 14:26
- System: CCU
- Wohnort: Visselhövede
- Hat sich bedankt: 1 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
1. Ich habe erwähnt, dass ich Einsteiger in das Homematic-System bin wollte ein hier zu Verfügung gestelltes Script nutzen, das bei mir nicht funktioniert hat und habe um Hilfe gebeten. Mir wurde gesagt, ich soll mich mit den Grundlagen beschäftigen. Ok, macht Sinn.MichaelN hat geschrieben: ↑11.02.2021, 12:09Ich glaube es ist etwas vermessen zu glauben, das man über diese Plattform einen Programmier-Lehrgang abhalten kann.
Wir wissen ja noch nicht mal, wo wir Dich "abholen" müssen. Welche Vorkenntnisse hast Du? Basic, XLS-Makros, SPS, anything else?
Was hast Du schon erfolgreich in HM gemacht? Weißt Du das Variablentypen sind und welche wofür verwendet werden? Kennst Du die Unterschiede zwischen Geräten, Kanälen und Datenpunkten? Also, wo starten wir?
2. Ich beschäftige mich mit einer Zeile Code, die einfach einen Text auf einem Display ausgeben soll. Tut es aber nicht. Und wenn hier nicht einmal der Fehler in einer Zeile erklärt wird, komme ich zu der Erkenntnis, dass hier ein kleiner elitärer Kreis ist, der sein Wissen nur untereinander Teilt und kein Interesse hat, Wissen mit Einsteigern zu teilen.
Ich Programmiere seit 20 Jahren nicht mehr und habe keine Ahnung, wie ich die Hardware anspreche.
Ich wünsche euch noch viel Spaß dabei, euch gegenseitig zu befruchten. Ich fühle mich hier auf jedem Fall nicht erwünscht.
Viele Grüße
Robert
System:
CCU3, 2x HM, 42x HMIP
Robert
System:
CCU3, 2x HM, 42x HMIP
-
- Beiträge: 9684
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1627 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Deine Programmzeile ist so falsch, das man gar nicht weiß, wo man anfangen soll. Kurz gefasst: das WM55 kann man nicht "einfach so" beschreiben. Daher gibt es dieses Mega Skript. Das kann ICH aber auch nicht mal eben so analysieren und per Ferndiagnose helfen. Da hilft es auch nicht beleidigte Leberwurst zu spielen.
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 +++
- FBK2904
- Beiträge: 454
- Registriert: 22.03.2016, 17:12
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Bei Ludwigsburg
- Hat sich bedankt: 80 Mal
- Danksagung erhalten: 42 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Ich besitze dieses Display zwar nicht (hatte einmal das HM-Dis-WM55 welches fast genauso angesteuert wird und nun das HmIP-WRCD),
aber wenn man(n) die Logik des Scriptes sich ein paar Mal durchschaut, ist es "eigentlich" nicht schwierig.
Um dir ein Erfolgserlebnis (hoffentlich) liefern zu können, habe es mal so angepasst, dass in Zeile 3 dein Wunsch erfüllt werden müsste .
-> Im Script in Zeile 48 natürlich die Seriennummer deines HM-Disp-EP-WM55 eintragen und unter "Script testen" starten.
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 = "ABC0123456";
!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)
! ## Einen Text in Zeile 2 (ohne Icon) ausgeben
string zeile2 = "";
string icon2 = "";
! ## Einen Text in Zeile 3 (ohne Icon) ausgeben
string zeile3 = "Hi, RobMatic";
string icon3 = "";
! ## Einen Text in Zeile 4 (ohne Icon) ausgeben
string zeile4 = "";
string icon4 = "";
! 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);
Grüssle,
Frank
--------------------------
System: CCU3 (RM 3.75.7.20240420) mit Stabantenne (www.stall.biz)
Geräte: 56x HM (classic) / 13x HmIP / 8x CUxD /16x virtuelle Gruppen / 4x PioTek-Tracker V4 FTTB & FAM-USB-Gateway
Addons: XML-API 2.3 / CUx-Daemon 2.11 / CUxD-Highcharts 1.45 / Programme drucken 2.6
Sonstige: SDV v5.03.04 G / AIO Creator NEO v3.1.0 mit 2x Samsung Tab SM-T580 (Root & Android 10 [LineageOS 17.1 by TALUAtXDAi])
Frank
--------------------------
System: CCU3 (RM 3.75.7.20240420) mit Stabantenne (www.stall.biz)
Geräte: 56x HM (classic) / 13x HmIP / 8x CUxD /16x virtuelle Gruppen / 4x PioTek-Tracker V4 FTTB & FAM-USB-Gateway
Addons: XML-API 2.3 / CUx-Daemon 2.11 / CUxD-Highcharts 1.45 / Programme drucken 2.6
Sonstige: SDV v5.03.04 G / AIO Creator NEO v3.1.0 mit 2x Samsung Tab SM-T580 (Root & Android 10 [LineageOS 17.1 by TALUAtXDAi])
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Gibt es eine Möglichkeit die angezeigte Uhrzeit 5min voreilen zu lassen?
Warum?
Das Display aktualisiert sich alle 5min und dann soll die angezeigt Uhrzeit voreilen, sonst würde sie ja 5min nacheilen.
Somit ist man immer pünktlich oder sogar zu früh fertig...das Display soll ins Bad auf Augenhöhe.
Damit mein Mädel lieber zu früh als zu spät mit schön machen fertig ist
Warum?
Das Display aktualisiert sich alle 5min und dann soll die angezeigt Uhrzeit voreilen, sonst würde sie ja 5min nacheilen.
Somit ist man immer pünktlich oder sogar zu früh fertig...das Display soll ins Bad auf Augenhöhe.
Damit mein Mädel lieber zu früh als zu spät mit schön machen fertig ist
-
- Beiträge: 551
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Script
Wenn du das Skript verwendest, was diese Zeile enthält:
dann die durch diese ersetzen :
Da werden dann 5 Minuten = 300 Sekunden dazugerechnet
Code: Alles auswählen
string zeile2 = system.Date("%H:%M ");
Code: Alles auswählen
string zeile2 = (system.Date().ToTime().ToInteger()+300).ToTime().Format("%H:%M ");
Gruß
Harry
Harry