Dimmer set:44 und chn:44% phys:44% anzeigen eliminieren

Begonnen von Samsi, 09 August 2013, 21:51:17

Vorheriges Thema - Nächstes Thema

Samsi

Ich habe für meinen Dimmer für die einzelnen Dimmstufen die Icons mit devStateIcon eingebunden:

\d.%:dim06% 1\d.%:dim12% 2\d.%:dim25% 3\d.%:dim31% 4\d.%:dim43% 5\d.%:dim50% 6\d.%:dim62% 7\d.%:dim75% 8\d.%:dim81% 9\d.%:dim93% set*:toogle chn*:toggle

Die Icons funktionieren auch mit den Dimmstufen. Während des Dimmens bekomm ich aber immer text-Statusmeldungen kurz angezeigt, die mich eigentlich gar nicht interessieren

z.B:
set:35
chn:44% phys:45%

Deshalb hab ich in dem Obigen devStateIcon Attribut versuch stattdessen ein andere Icon anzuzeigen mit set*:toogle chn*:toggle

Irgendwie klappt das aber nicht, und ich weiss nicht warum.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

rudolfkoenig

Vmtl. sollte es set.*:toggle heissen. Events kann man mit event-on-update-reading unterdruecken, siehe auch http://fhem.de/commandref.html#readingFnAttributes

Samsi

Danke erstmal, aber leider komme ich nicht so richtig weiter.

wenn ich in meinen EventMonitor schaue, kommt folgendes:

2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch level: set_34
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch set_34
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch level: 23.5 %
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch deviceMsg: 23.5 % (to HMLAN1)
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch chn:23.5 % phys:23 %
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch dim: up:23.5 %
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch overload: off
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch overheat: off
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch reduced: off
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch chn:23.5 % phys:34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch phyLevel: 34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch chn:23.5 % phys:34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch phyLevel: 34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch chn:23.5 % phys:34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch phyLevel: 34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch phyLevel: 34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch level: 34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch deviceMsg: 34 % (to HMLAN1)
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch 34 %
2013-08-10 21:30:56 CUL_HM licht_EG_Esstisch dim: stop:34 %

ich habe dann event-on-update-reading auf level gesetzt und es kommen nur noch folgende events:

2013-08-10 21:28:17 CUL_HM licht_EG_Esstisch level: set_40
2013-08-10 21:28:17 CUL_HM licht_EG_Esstisch level: 22.5 %
2013-08-10 21:28:21 CUL_HM licht_EG_Esstisch level: 40 %
2013-08-10 21:28:22 CUL_HM licht_EG_Esstisch level: 40 %

das set_40 ist komischerweise immer noch dabei. Aber obwohl dss "chn:23.5 % phys:34 %" nicht mehr im EventMonitor angezeigt wird, zeigt er mir das im WebInterface anstelle meiner Lampen-Bilder an.

Hab ich was falsch gemacht, oder funktioniert es einfach doch nicht so?


Grüße

FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

rudolfkoenig

Das Argument zu event-on-update-reading muss praezise genug sein, um nur die passenden events durchzulassen. Nur level reicht ja nicht, da das in beiden vorkommt. Vmtl. sowas wie level.*% koennte reichen.

Samsi

Hallo rudolfkoenig,

danke erst mal für Deine Bemühungen. Zumindest hab ich jetzt verstanden, warum das set_34 noch kommt. Denn im Eventmonitor kommt das ja 2 mal:

einmal mit und einmal ohne 'level':

2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch level: set_34
2013-08-10 21:30:53 CUL_HM licht_EG_Esstisch set_34

das eigentlich Problem ist aber ein ganz anderes, ich vermute das kam in meinem letzten Beitrag nicht richtig rüber:


Durch event-on-update-reading xyz kann ich ja dafür sorgen das im EventMonitor gar kein event mehr durchkommt und trotzdem werden im Webinterface wieter die Texte für

chn:23.5 % phys:34 %

set_34

angezeigt. Das event-on-update-reading Attribut hat also irgendwie keine Auswirkung.

Viele Grüße
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

rudolfkoenig

Sorry, ich habe nicht aufgepasst.

Das was in FHEMWEB als Status angezeigt wird, ist der STATE Eintrag des Geraetes, was normalerweise dem state Reading entspricht, es sei denn der Benutzer hat das Attribute stateFormat gesetzt.
Das ist unabhaengig davon, ob ein Event generiert wird oder nicht beim aendern dieser Reading.

Die kurzfristige Loesung ist als vmtl. sowas wie (ungetestet):
attr licht_EG_Esstisch stateFormat {\
  my $st =  ReadingsVal("licht_EG_Esstisch", "state", "??");;\
  ($st =~ m/level.*%/ ? $st : Value("licht_EG_Esstisch") );\
}


Laengerfristig (damit andere auch was davon haben) muesste man enstprechende Icons anlegen, oder besser aber gleichzeitig auch unwahrscheinlicher Martin ueberzeugen, nicht alle HomeMatic Zwischenstaende als FHEM-Status zu setzen :)

Samsi

Nochmals danke, aber auch damit komme ich leider nicht richtig weiter.


In Deiner regExp wird auf "level" abgefragt, das 'level' kommt aber nie in dem state (bzw. im FHEMWEB) vor sondern nur 34 %, set_34 und chn:34% phys34%. Das level wird nur im EventMonitor angezeigt, deswegen nehme ich mal an, Du hast das nur versehentlich da rein gemacht, oder ist das level doch irgendwie wichtig?

Jedenfalls mit dem level hat es leider nicht funktioniert, also hab ich die regExp mal etwas verändert:  ^\d.*%$
also alles was mit einer Zahl anfängt und mit einem % aufhört. Das funktionierte dann auch fast:

{ my $st =  ReadingsVal("licht_EG_Esstisch", "state", "??"); ($st =~ m/(^\d.*%$)/ ? $st : Value("licht_EG_Esstisch") );}

die set_34 und chn:34% phys:34% werden nicht mehr im Frontend neben dem Slider angezeigt. Am Ende des Dimmens steht dann links neben dem Slider der richtige wert. Allerdings geht der Slider am Ende nicht mehr auf den zuletzt gesetzten Wert. Wenn ich dann aber den Slider noch mal bewege geht er auf den Wert den ich beim vorletzten mal gesetzt habe.

Bsp: Ich stelle den Slider auf 90% am ende wenn das Dimmen fertig ist habe ich folgende Anzeige:

90%      Silder: ---30%----------------

Dann stelle ich den Slider auf 40%:

40%      Slider: -----------------90%--


Alternativ habe ich mal folgendes stateFormat probiert, war aber auch nicht besser.

{(ReadingsVal("licht_EG_Esstisch", "state", "??") =~ m/(^\d.*%$)/ ) ? $1 : ""}

Viele  Grüße
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

rudolfkoenig

Von slider war bisher keine Rede, und es hat vmtl. mit dem Subject nichts zu tun.

Bitte eine neue Diskussion mit allen benoetigten Definitionen+Attributen+Bedienungsanleitung+Protokollierten events.