HomeMatic Funk-Statusanzeige - HM-Dis-WM55

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

Vorheriges Thema - Nächstes Thema

strauch

Da weiss was ich aber nicht welche Fenster offen sind. Mit n Nischen Zeit bastel ich mal was.

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

#196
Das ist Richtig, daran bastel ich auch gerade, ich will aber die erste Seite als "grobe Übersicht", das passt
das wenn ich wissen will ob noch was offen ist. Ist dort nur grün zu sehen, ist alles o.k.
Über die long Anzeige versuche ich gerade darzustellen welches Fenster nun wirklich offen ist.

lg Jens

Edit:

Meine Idee war ja in etwa so:


define AZ_Fenster_Zustand notify FK_AZ1 { if ("$value{FK_AZ1}" eq "offen") { fhem("set Display_01 displayWM long line1 AZ1 red open") } else { fhem("set Display_01 displayWM long line1 allesZu green ok") }}


Das funktioniert bei einem Fenster, aber wie macht man es mit der Zeilenbelegung wenn 2 oder 3 Fenster offen sind ?
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

Wie gesagt mit etwas Zeit bastel ich was. Meine bisherigen Scripts absieren hier drauf:
http://www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster
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

#198
Also ich hab mal was wenig elegantes gebastelt, aber es funktioniert schon mal.

Als erstes hab ich ein structure was alle meine Fenster "verwaltet"
define structure_fenster structure structyp_window ku_Fenster gk_Fenster bz_Fenster sz_Fenster bu_Fenster lz_Fenster nz_Fenster
attr structure_fenster clientstate_behavior relative
attr structure_fenster clientstate_priority open|.pen closed|.losed
attr structure_fenster group Display
attr structure_fenster room _Structure


Dann ein notify das auf Veränderungen im structure reagiert und jedesmal ein Script aufruft.
define notify_hm_display notify structure_Fenster:.* {Window_Display}

Und hier das Script (gehört in die 99_myUtils.pm), welches die Fenster durchgeht und anschließend die Info ins Display schreibt. Entweder in rot wenn noch was offen ist oder in grün, wenn alles zu ist. Natürlich müssen die Liste und auch die Kommandos an eigene Begebenheiten angepasst werden (eleganter wären extra Variablen am Anfang). Statt die Fenster aufzulisten geht auch ein .._Fenster. Im Display werden in meinem Fall nur die Raumkürzel dargstellt (ersten beiden Zeichen vom Device). Es müsste auch noch eine substr rein, das wenn es mehr als 12 Zeichen sind, die abgeschnitten werden, sonst gibt es einen Fehler. Aber jetzt ist schon spät und ich geh ins Bett.

sub Window_Display {
my @fensterkontakt = devspec2array("sz_Fenster,bz_Fenster,ku_Fenster,bu_Fenster,gk_Fenster,jz_Fenster,nz_Fenster,lz_Fenster"); # Liste der Fenster die berücksichtigt werden.
my @wopen = ();
foreach(@fensterkontakt) {
  my $fensterkontakt_window = ReadingsVal($_, "state", "nA");
  push (@wopen,$_) if ($fensterkontakt_window =~ m/pen$/ );
}
my $num_wopen = @wopen;
my $resultstring='';
if ( $num_wopen gt 0 ) {
  $resultstring="";
  foreach(@wopen) {
   $resultstring.=substr($_,0,2) . ","; ## Nur die ersten beiden Zeichen vom Device werden ausgewertet
  }
{fhem("set ha_Display_Dis_01 displayWM short line2 txt03_1 red noIcon;set ha_Display_Dis_01 displayWM short line3 " . substr($resultstring,0,12) . " red noIcon")}
} else {
{fhem("set ha_Display_Dis_01 displayWM short line2 txt03_2 green noIcon")}
}
}
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

#199
Moin Andre,

werde ich heute Abend mal testen.
Was hast du eigentlich in den Texten txt03_1 und txt03_2 hinterlegt ?
Hast du die festen Texte und die "nur 2 Zeichen" wegen der Übertragungs-
geschwingikeit gewählt ?

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 festen Texte wegen Leerzeichen die Texte sind Fenster auf und Fenster zu. Die begrenzen Raum Bezeichnungen einfach wegen der darstellbaren Zeichen. Wohnzimmer braucht ja schon eine ganze Zeile.

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

Ich habe neuerdings ein Problem oder  eine Hirnverwindung.
wenn ich einen neuen Text eingebe, dann bekomme ich da set mit in den Text
Readings
R-sign

off

2015-02-05 21:11:57
disp_short_l1

FensterOffen red -

2015-02-05 22:30:52
disp_short_l2

- - -

2015-02-05 22:30:52
disp_short_l3

- - -

2015-02-05 22:30:52
disp_short_l4

- - -

2015-02-05 22:30:52
disp_short_l5

- - -

2015-02-05 22:30:52
disp_short_l6

- - -

2015-02-05 22:30:52
state

Short (to HMLAN1)

2015-02-05 22:30:27
text1

set_Text

2015-02-05 22:34:02
text2

set_Text

2015-02-05 22:34:02
trigDst_29A0B0

noConfig

2015-02-05 22:30:27
trigger

Short_195

2015-02-05 22:30:27
trigger_cnt

195

2015-02-05 22:30:27


Kann das jemand bestätigen ?

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

Das mit dem set_ steht immer dann da, wenn die Daten noch nicht an den Taster übertragen wurden. Ich werde mich jetzt mal an einer readingsGroup versuchen die mir den aktuellen Inhalt der Taste in einer Übersicht zeigt.
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

ZitatDas mit dem set_ steht immer dann da, wenn die Daten noch nicht an den Taster übertragen wurden

Habe ich befürchtet, heute abend mal sehen ob es nur den einen Kanal betrifft oder alle, den betreffenden Kanal 2
hatte ich mal vor ein paar Tagen mit einem Clear Reading geleert und er schreibt jetzt nach dem set TEXT und drücken
der Configtaste nicht mehr die Texte in den Display.
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

docb

Hallo,
sagt mal gibt es eigentlich die Möglichkeit, das Ding aufzuwecken - also einen Text anzuzeigen ohne dass eine Taste gedrückt wird?
Viele Grüße
doc
I love FHEM!

Posti123

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

martinp876

Update

es gibt seit jetzt eine neue Funktion - texte dynamisch zu erstellen.

set dis_02 displayWM short  line1 e:{("ca:".ReadingsVal("h.caro.Clima","desired-temp","no")."-".ReadingsVal("h.caro.Clima","measured-temp","no"),"blue",(ReadingsVal("h.caro.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line2 e:{("lg:".ReadingsVal("h.lnge.Clima","desired-temp","no")."-".ReadingsVal("h.lnge.Clima","measured-temp","no"),"green",(ReadingsVal("h.lnge.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line3 e:{("fh:".ReadingsVal("h.fsth.Clima","desired-temp","no")."-".ReadingsVal("h.fsth.Clima","measured-temp","no"),"green",(ReadingsVal("h.fsth.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line4 e:{("du:".ReadingsVal("h.dact.Clima","desired-temp","no")."-".ReadingsVal("h.dact.Clima","measured-temp","no"),"yellow",(ReadingsVal("h.dact.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line5 e:{("ba:".ReadingsVal("h.bad.Clima","desired-temp","no")."-".ReadingsVal("h.bad.Clima","measured-temp","no"),"blue",(ReadingsVal("h.bad.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line6 e:{("o:".ReadingsVal("h_s_aussen","temperature","-")."-p:".ReadingsVal("h_s_aussen","pressure","-"),"blue","noIcon")}

set dis_01 displayWM short  line1 e:{("o:".ReadingsVal("h_s_aussen","temperature","-")."-p:".ReadingsVal("h_s_aussen","pressure","-"),"blue",(ReadingsVal("h_s_aussen","x",1))?"off":"on")}
set dis_01 displayWM short  line2 e:{("o:lum".ReadingsVal("h_s_aussen","luminosity","-"),"blue","noIcon")}
set dis_01 displayWM short  line3 e:{("s1:".ReadingsVal("h_s_az","temperature","-")."-h:".ReadingsVal("h_s_az","humidity","-"),"orange","noIcon")}
set dis_01 displayWM short  line4 e:{("s1:".ReadingsVal("h_s_keller","temperature","-")."-h:".ReadingsVal("h_s_keller","humidity","-"),"green","noIcon")}


Syntax:

set dis_02 displayWM short  line1 e:{(text,color,icon)}

e: ist die erkennung, dass es zu press-time generiert werden soll.
in den {} MUSS ein array von 3 elementen geliefert werden, text color und icon. ggf kann man noIcon senden um no icon zu bekommen :)

Der text darf nicht länger als 12 zeichen sein, sonst wird er nicht dargestellt.
es dürfen zwischen e:{...} KEINE Leerzeichen sein. also alles zusammenschieben.

Beachtet, dass die berechnung zur echtzeit gemacht wird. Also keine langen berechnungen durchführen.

Kommentare?





strauch

Sehr gute Idee. Bisher mach ich es immer andersherum bei jeder Zustandsänderung wird dir neue ins Display geschrieben. So dürfte das insgesamt die Last reduzieren. Ich werde mal testen was an Berechnungen geht. Gerade sowas wie Fenster sind noch auf.
Dankeschön.

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.

Posti123

Zitat von: martinp876 am 08 Februar 2015, 09:54:27
Update

es gibt seit jetzt eine neue Funktion - texte dynamisch zu erstellen.

set dis_02 displayWM short  line1 e:{("ca:".ReadingsVal("h.caro.Clima","desired-temp","no")."-".ReadingsVal("h.caro.Clima","measured-temp","no"),"blue",(ReadingsVal("h.caro.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line2 e:{("lg:".ReadingsVal("h.lnge.Clima","desired-temp","no")."-".ReadingsVal("h.lnge.Clima","measured-temp","no"),"green",(ReadingsVal("h.lnge.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line3 e:{("fh:".ReadingsVal("h.fsth.Clima","desired-temp","no")."-".ReadingsVal("h.fsth.Clima","measured-temp","no"),"green",(ReadingsVal("h.fsth.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line4 e:{("du:".ReadingsVal("h.dact.Clima","desired-temp","no")."-".ReadingsVal("h.dact.Clima","measured-temp","no"),"yellow",(ReadingsVal("h.dact.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line5 e:{("ba:".ReadingsVal("h.bad.Clima","desired-temp","no")."-".ReadingsVal("h.bad.Clima","measured-temp","no"),"blue",(ReadingsVal("h.bad.Clima","ValvePosition",0))?"on":"off")}
set dis_02 displayWM short  line6 e:{("o:".ReadingsVal("h_s_aussen","temperature","-")."-p:".ReadingsVal("h_s_aussen","pressure","-"),"blue","noIcon")}

set dis_01 displayWM short  line1 e:{("o:".ReadingsVal("h_s_aussen","temperature","-")."-p:".ReadingsVal("h_s_aussen","pressure","-"),"blue",(ReadingsVal("h_s_aussen","x",1))?"off":"on")}
set dis_01 displayWM short  line2 e:{("o:lum".ReadingsVal("h_s_aussen","luminosity","-"),"blue","noIcon")}
set dis_01 displayWM short  line3 e:{("s1:".ReadingsVal("h_s_az","temperature","-")."-h:".ReadingsVal("h_s_az","humidity","-"),"orange","noIcon")}
set dis_01 displayWM short  line4 e:{("s1:".ReadingsVal("h_s_keller","temperature","-")."-h:".ReadingsVal("h_s_keller","humidity","-"),"green","noIcon")}


Syntax:

set dis_02 displayWM short  line1 e:{(text,color,icon)}

e: ist die erkennung, dass es zu press-time generiert werden soll.
in den {} MUSS ein array von 3 elementen geliefert werden, text color und icon. ggf kann man noIcon senden um no icon zu bekommen :)

Der text darf nicht länger als 12 zeichen sein, sonst wird er nicht dargestellt.
es dürfen zwischen e:{...} KEINE Leerzeichen sein. also alles zusammenschieben.

Beachtet, dass die berechnung zur echtzeit gemacht wird. Also keine langen berechnungen durchführen.

Kommentare?

Danke dafür!
Was das I-Tüpfelchen wäre, wenn (ähnlich ReadingVal) sich die color und/oder da Icon dynamisch ändern würde. Das würde nochmal eine riesige flexibilität in Verbindung mit ReadingsVal geben und man müsste damit nicht auf die MyUtils ausweichen.

Sprich:

Wenn measured-temp < 12 dann Color=Red und  icon error, ansonsten green und icon ok.

Nur eine Idee..
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

martinp876

Geht doch. Ist im beispiel enthalten. Mache ein ((readingsval()<10)?"on":"off")
Dann wird das on oder off icon eingeblendet... fertig