Praxisbeispiel HM-Dis-WM55 gesucht

Begonnen von roedert, 13 März 2016, 22:53:41

Vorheriges Thema - Nächstes Thema

roedert

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

Bennemannc

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
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

roedert


Bennemannc

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
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

martinp876

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.