FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: roedert am 13 März 2016, 22:53:41

Titel: Praxisbeispiel HM-Dis-WM55 gesucht
Beitrag von: roedert am 13 März 2016, 22:53:41
Hat schon wer den HM-Dis-WM55 im praktischen Einsatz?
Die Doku dazu ist ja leide rnoch sehr "übersichtlich" ... außer dem Thread von "Entstehung" an habe ich im Forum kaum was zu dem Teil gefunden. Und das Wiki selbst ist leider noch sehr abstrakt.

Vielleicht hat jmd. das Teil schon im praktischen Einsatz und kann dies vielleicht bei den Codeschnipseln veröffentlichen.
Pairing und Beschreiben der 10 Texte ist soweit klar ... es scheitert aber noch an einem praxisnahem Notify welches die beiden Tasten auswertet, eine Aktion ausführt und mehrzeiligen Text ausgibt. 
Einfachstes Beispiel wäre Taster oben gedrückt, Device xyz wird eingeschaltet, Display zeigt "xyz eingeschaltet" an. Taster unten gedrückt schaltet entsprechend aus.....

Ein schönes Beispiel ist zB hier zu sehen ..... aber keinen blassen Schimmer wie man dies in FHEM umsetzen könnte: https://www.youtube.com/watch?v=sypuNQ8X7ds
Titel: Antw:Praxisbeispiel HM-Dis-WM55 gesucht
Beitrag von: Bennemannc am 30 Dezember 2016, 16:44:59
Hallo,

ich habe das Teil jetzt in Verwendung - bist Du schon weiter oder liegt das Teil in der Ecke ich nd schläft ;-)

Gruß Christoph
Titel: Antw:Praxisbeispiel HM-Dis-WM55 gesucht
Beitrag von: roedert am 30 Dezember 2016, 17:40:11
...es schläft  ::)
Titel: Antw:Praxisbeispiel HM-Dis-WM55 gesucht
Beitrag von: Bennemannc am 30 Dezember 2016, 20:52:34
Also ich nutze das jetzt nur zum Anzeigen der Zustände - Schalter und Fenster - bevor man das Haus verläßt.
Das Ganze geht mit set .... über ein Notify

Gruß Christoph
Titel: Antw:Praxisbeispiel HM-Dis-WM55 gesucht
Beitrag von: martinp876 am 31 Dezember 2016, 09:18:18
also bei mir funktioniert es. Je nachdem was man will. Zum Anzeigen brauche ich kein Notify. Zum Schalten nutze ich schon eines.
Das Device ist nur bedingt zum Schalten geeignet (zu langsam, sendet kein Burst,...)

Ich nutze die Anzeige aber nur zum spielen - habe keine sinnvolle Anwendung dafür. Will ich etwas sehen nutze ich ein tablet. Daher ist dein "use-case" notwendig um zu klären, was du brauchst.
Bis dahin halte ich die Implementierung über myUtils für die einzig sinnvolle und ausbaufähige (wie gesagt: der einzige use-case den ich kenne und mit dem man alles erschlagen kann - deinen kenne ich nicht).

Unterm Strich ist das Device nicht einfach sinnvoll zu nutzen. Warum?
Es sind nur wenig Zeichen möglich=> ich muss meine Ausgabe formatieren => ich brauche eine Funktion
Es sind nur wenig Zeilen=> ich möchte blättern können=> ich brauche eine Umschaltfunktion
Es gilt text/symbol/farbe zu steuern=> ich muss auswertungen erstellen um die Werte zu ermitteln => ich brauche eine Funktion.

Im Wiki ist eine "komplette" Lösung mit einigen Vorschlägen. Klustere die information und es wird einfach (meine ich).
1) funktionen:
sub myTh($$$){#temp sensor
   my ($p,$e,$t) = @_;
   if($t eq "t"){return $p.ReadingsVal($e,"temperature","no")."-".ReadingsVal($e,"humidity","");  }
   if($t eq "c"){return    ReadingsVal($e,"temperature",0)>20 ? "red" : "blue" }
   if($t eq "i"){return    ReadingsVal($e,"battery",0)    ? "ok"  : "no"  }
   return "nix";
}

erstelle eine Funktion je "gewerk" welches du auswerten willt. Hier ein Temperatursensor. Baue deine Funktionen genau nach dem Schema: Der Aufruf ist
myTh(prefix,name,item) => prefix wird vor dem text geschrieben - z.B. T: für eine Temperatur. Name ist der Name der Entity die ausgewertet werden soll und Item ist Farbe, text oder Icon.
In den Ifs machst du dann, was du willst.

2) Zuordnung

my %lineArr = (0 =>{#============Btn Type 0: Btn1 short
                     0 =>{#-------itteration 0
                           1=>'{myTh("wz:","h_s_s2",'    #  line 1
                          ,2=>'{myTh("os:","h_s_s1",'   
                          ,3=>'{myTh("op:","h_s_aussen",'
                          ,4=>'{myPr("p:" ,"h_s_aussen",'
                          ,5=>'{myTx("","","",'             
                          ,6=>'{myTx("","","",'     
                         }
                    ,1 =>{#-------itteration 1
                           1=>'{myTh("wz:","h_s_s2",'    #  line 1
                          ,2=>'{myTh("os:","h_s_s1",'   
                          ,3=>'{myTh("op:","h_s_aussen",'
                          ,4=>'{myPr("p:" ,"h_s_aussen",'
                          ,5=>'{myTx("","","",'             
                          ,6=>'{myTx("","","",'     
                         }
                    }

hier definierst du, welche Zeile durch welche Funktion ausgefüllt werden soll.
Itteration erlaubt dir zu blättern. Wenn es nur eine Iteration gibt blättert sich eben nichts.