HomeMatic Funk-Statusanzeige - HM-Dis-WM55

Begonnen von Roaster, 14 November 2014, 20:33:48

Vorheriges Thema - Nächstes Thema

martinp876

ZitatDann können die Texte so kein Leerzeichen enthalten.
Zitat4Dis (HM-PB-4DIS-WM)

    text <btn_no> [on|off] <text1> <text2>
    Set the text on the display of the device. To this purpose issue this set command first (or a number of them), and then choose from the teach-in menu of the 4Dis the "Central" to transmit the data.
    If used on a channel btn_no and on|off must not be given but only pure text.
    \_ will be replaced by blank character.

habe gerade das Kommando erweitert. man kann jetzt :
set dis02 displayWM help
set dis02 displayWM short line5 txt color icon

setzen - also nur eine zeile ändern - oder nur das Icon:

set dis02 displayWM short line5 nc nc open
klappt bei mir mit HMLAN prima.

setze
attr msgRepeat 3

nutze zum Konfigurieren den config button auf der rückseite (am andere werden ich noch arbeiten)

peere Kanal 01 und 02 mit FHEM
set d01 peerBulk <fhemID>01
set d02 peerBulk <fhemID>01

also jeweils kanal 01 der Zentrale. ok - zugegeben - keine Ahnung ob man das braucht. aber die CCU hat es auch gemacht. müsste man noch testen...

strauch

#136
Danke werde ich nachher testen.

Edit: werde ich heute Abend testen, ich war gesten zu Müde :-)
Edith2: Ich warte noch bis mein Test wegen der falschen Zeit abgeschlossen ist.

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

strauch

Ok, ich bekomme jetzt schon mal Text und Bildchen auf mein Display :-). Hab aber immer noch mal Registeread:Timeout. Aber mal schauen. Ich muss jetzt mal ein bisschen spielen um das alles besser kennen zu lernen, dann gibt es weiteres Feedback. Hab noch nicht ganz verstanden, wann er aufhört die Infos anzuzeigen. Scheinbar immer wenn ich ein set auf den anderen Button gelegt habe. Zudem kann man ja die Anzeige mit einem set Befehl ergänzen das ist schon ganz praktisch.
Jetzt muss ich mal überlegen wann man am besten was an den Taster überträgt, oder ob man sogar die Infos sammelt durch notifys und dann wird auf einem Tastendruck ausgelöst.

Beispiel Idee: Wenn ein Fenster offen ist, dann setzte die Infos Fenster offen auf Zeile 3.

Sorry für den Wirsch post.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

maluk

Ich bin gerade auch am Experimentieren und inzwischen funktioniert das Display auch gut. Seit ich "attr msgRepeat 3" gesetzt habe, hatte ich auch keinen "RESPONSE TIMEOUT:RegisterRead" mehr.

Zwei kleine Probleme sind mir aufgefallen: bei der Namensgebung der Icons weicht sigred von der restlichen Namenskonvention ab, richtig wäre hier sigRed. Außerdem gibt es Probleme mit Umlauten in den Texten. Wenn ich z.B. "Garagentüre" als Text angebe, erscheint auf dem Display "Garagent". Allerdings weiß ich nicht, ob Umlaute von dem Display überhaupt unterstützt werden.

@strauch: so wie ich es verstanden habe, musst du in den notifys der zu überwachenden Devices den set displayWM aufrufen. So habe ich es jetzt umgesetzt und werde mal die nächsten Tage testen.

strauch

@Martin ist das Teil sehr empfindlich was das senden und empfangen von Daten angeht, hab erst gedacht ich hab vielleicht schlecht gelötet, aber scheint ja eher ein generelles Problem zu sein?

@maluk ich werde das auch mal Testen. Erstmal mit einem structure für alle Fenster und wenn eines offen ist das die Meldung kommt. Ich wollte das Display als kommen und gehen, schlafen und wach Taster verwenden.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

strauch

Ich hab mal im Fhemwiki das bisheirge Zusammengetragen, vielleicht könnt ihr mal drüber schauen, hab da bestimmt ein paar Fehler eingebaut.
http://www.fhemwiki.de/wiki/HM-Dis-WM55_Funk_Statusanzeige
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

strauch

#141
Ab und an hab ich Missing Acks oder das dort steht (keine Daten übertragen).

Was ich mich aber Frage, wenn ich einen Text gesetzt habe und will die wieder loswerden und nicht mit etwas anderem Überschreiben gibt es dafür auch ein Befehl?
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

jens-hoppel

@Strauch,
die Beschreibung in der Wiki ist gut und nachvollziehbar. Danke.

Gruß Jens
FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

strauch

@Martin im Homematic Forum schaffen Sie es auch Messwerte etc. darzustellen, also mehr als nur die vorgefertgten Texte. Magst du dir anschauen wie die das machen?
http://homematic-forum.de/forum/viewtopic.php?f=27&t=22432&start=50#p193056
    ! ### Homatic-Statusanzeige HM-Dis-WM55 ####
    ! ### Stausanzeige 2 , Vers. 1.0;
    ! ### Anzeige Außentemperatur, Status der Türen, Fenster und Lichter
    !! Display 1 Taste oben kurz                                                         
    !!
    !! Universalprogramm zum Füllen                                                   
    !! (c) DrTob
    !! optimized by thkl
    !!
    !! überarbeitet geosshark 30.12.2014 11:48:00
    !! Anzeige der Aussentemperatur und der Stati aller Fenster, die mit dem
    !! Drehgriffsensor (nur mit diesem getestet) ausgerüstet sind.
    !! Alle Sensoren müssen im Gewerk "Verschluss" sein.
    !! Die Namenskonvention der Sensoren : z.B. xx-Bad-yyy-zz..., der 2. mit "-" getrennt Parameter wird angezeigt, hier "Bad".
    !! (lötix)geändert: Gewerk Fenster in Verschluss, Unterstrich in Leerzeichen, alles geschlossen-zweizeilig, HM-Sec-SCo und HM-Sec-SC-2 eingefügt
    !! Das Script holt sich jetzt die Seriennummer des Displays selbst aus der Auslösebedingung 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)
    ! ==================================================================================================
    ! Temperatur und Luftfeuchtigkeit
    ! TempE = Eingang, TempG = Garten
    var istTempE = dom.GetObject("BidCos-RF.LEQ0177088:1.TEMPERATURE").State();
    var istHumE  = dom.GetObject("BidCos-RF.LEQ0177088:1.HUMIDITY").State();
    var istTempG = dom.GetObject("BidCos-RF.LEQ0177627:1.TEMPERATURE").State();
    var istHumG  = dom.GetObject("BidCos-RF.LEQ0177627:1.HUMIDITY").State();

    string zeile1 = "";
    string color1 = "";
    string  icon1 = "";
    string zeile1 = "Ei:" # istTempE.ToString(1) # "C " # istHumE.ToString(1) # "%";
    if (istTemp >= 0.0)  { string color1 = orange; }
    if (istTemp >= 10.0) { string color1 = gelb; }
    if (istTemp >= 20.0) { string color1 = rot; }
    if (istTemp < 0.0)   { string color1 = weiss; }
    if (istTemp < -6.0)  { string color1 = blau; }
    string zeile2 = "";
    string color2 = "";
    string  icon2 = "";
    string zeile2 = "Ga:" # istTempG.ToString(1) # "C " # istHumG.ToString(1) # "%";
    if (istTemp >= 0.0)  { string color2 = orange; }
    if (istTemp >= 10.0) { string color2 = gelb; }
    if (istTemp >= 20.0) { string color2 = rot; }
    if (istTemp < 0.0)   { string color2 = weiss; }
    if (istTemp < -6.0)  { string color2 = blau; }
    ! ----------------------------------------------------------------------------------------
    ! Alarm EIN / AUS
    var istAlarm = dom.GetObject("Alarm").Value();
    string zeile3;
    string color3;
    string  icon3 = "";
    if(istAlarm)
    {
      zeile3 = "Alarm: AUS";
      color3 = blau;
    }
    else
    {
      zeile3 = "Alarm: EIN";
      color3 = gruen;
    }


    string zeile4;
    string color4;
    string  icon4 = "";

    string zeile5;
    string color5;
    string icon5 = "";

    string zeile6;
    string color6;
    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);




FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Posti123

Zitat von: strauch am 28 Januar 2015, 12:16:25
Ich hab mal im Fhemwiki das bisheirge Zusammengetragen, vielleicht könnt ihr mal drüber schauen, hab da bestimmt ein paar Fehler eingebaut.
http://www.fhemwiki.de/wiki/HM-Dis-WM55_Funk_Statusanzeige

Danke für das Wiki. Noch eine kleine Verständnisfrage. Was verstehst du unter fhemID?
18xHM-CC-RT-DN, 5xHM-TC-IT-WM-W-EU, HMLAN, 2xJeeLink 868, 1xJeeLink433, 1xCUL868, HM-LC-Bl1PBU-FM, HM-LC-Sw2-FM, HM-LC-SW1-FM, HM-LC-Sw1PBU-FM, 5xHM-Sec-SC-2, 2xHM-Sec-SCo, HM-ES-TX-WM, HM-Sen-MDIR-O-2, HM-WDS10-TH-O, 6xTechnoline, 2x PCA301,2xHM-PB-2-WM55-2,2xHM-RC-4-2,2xHM-WDS30-T-O, HM-SEC-WDS-2

strauch

Ist die hmid werde ich andern.

Gesendet von meinem Nexus 4 mit Tapatalk

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

jens-hoppel

Also mit den festen Texten und den Abruf über Notifys bekomme ich jetzt
die Anzeige gefült. Auch über den Zustand der Structure und auch der Dummys.
Bisher nur einmal einen Datenübertragungsfehler.

Wenn ich in der Anzeige die Farbe wechsele z.B. von grün auf rot und verwende
das gleiche Icon, dann bleibt die Farbe des Icon grün, obwohl der Text in rot
angezeigt wird. Verwende ich dabei ein anderes Icon funktioniert es perfekt.
Vielleicht weis Martin woran es liegen könnte.

Gruß Jens

FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

strauch

Die Iconfarbe hängt doch nicht von der Textfarbe ab, musst natürlich auch ein anderes icon nehmen.

Gesendet von meinem Nexus 4 mit Tapatalk

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

jens-hoppel

#148
Hallo Andre,
natürlich ändert das Icon die Farbe mit dem Text.
z.B. "txt07_1 red  info" gibt Text und Icon in rot aus.
Gebe ich nun ein neues Notify mit "txt06_1 green info"
wird der Text in grün drargestellt, aber das Icon bleibt rot.
Gebe ich aber das Notify "txt06_1 green ok" aus dann kommt Text und
Icon in grün.

Gruß Jens
FHEM auf 1.Rasberry PI, 2xCUL CC1101, HMLAN, USV 400
2.Rasberry PI als Wetterserver
HM, FS20, FHT, HMS, WS1080 Komponenten für diverse Schalt- und Überwachungsaufgaben

strauch

#149
ok das werde ich mal testen. Ist mir so noch gar nicht aufgefallen. Geht das mit jedem Icon, bei manchen wie error würde das für mich nicht sinnvoll erscheinen.
Ich hab nachwievor mit massiven Sende und Empfangsprobleme zu kämpfen:

@Martin ist es möglich das ich hier vielleicht doch noch mal den Lötkolben schwingen muss. Allerdings hab ich RSSI werte von -55.

Edith: Ich hab die Antenne noch mal nachgelötet jetzt gehen die getconfigs auch durch. Bin alt noch Anfänger :-).
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.