StateIcon für EnOcean Dimmer – Reading als Status setzen

Begonnen von Fabian, 08 August 2015, 15:32:07

Vorheriges Thema - Nächstes Thema

Fabian

Hi,
ich möchte gerne im Webfrontend bei meinem EnOcean Dimmer (bidirektional, Eltako FUD61NP-230V) ein StateIcon anzeigen, sodass nicht nur on/off symbolisiert wird sondern auch wie weit die Lampe gedimmt ist. Ich würde dafür gerne die SVGs ,,dim12%", ,,dim18%" usw verwenden.

In den Readings des dimmers steht bei ,,state" jedoch nur entwerder ,, off" für aus oder eben ,,on" für jede Dimmstufe von 1 – 100%. Die Dimmstufe wird als eigenes reading angegeben. Ich denke ich müsste zuerst irgendwie den Wert, der in den readings bei ,,dim" steht als Status setzen.

Das hier schickt der Dimmer nachdem er zB auf 66% gedimmt wurde:
2015-08-08 14:53:34 EnOcean EnO_FUD61NP_1 on
2015-08-08 14:53:37 EnOcean EnO_FUD61NP_1 rampTime: 0
2015-08-08 14:53:37 EnOcean EnO_FUD61NP_1 on
2015-08-08 14:53:37 EnOcean EnO_FUD61NP_1 dim: 66
2015-08-08 14:53:37 EnOcean EnO_FUD61NP_1 dimValueLast: 66


Hat jemand eine Idee wie das geht oder eine andere Idee um mein Problem zu lösen?

Danke!
Fabian

rudolfkoenig

devStateIcon kann auch ein perl Ausdruck, und ich meine es wurde fuer genau dieses Problem eine Loesung hier im Forum schon gepostet.

Alternative: in /opt/fhem/www/images/fhemSVG/iconalias.txt alle Werte (bis auf die als Datei vorhandenen) einer vorhandenen Datei zuzuordnen. Falls funktioniert, bitte hier anhaengen, ich check das dann ein.

justme1968

ich denke du musst zweistufig vorgehen:

- mit stateFormat dafür sorgen das dim in STATE landet (und nicht mehr nur on und off anzeigt)
- per devStateIcon dann das passende icon zuordnen

oder alternativ die perl code variante von devSateIcon verwenden.

eine hilfsroutine dafür ist hier im wiki beschrieben: http://www.fhemwiki.de/wiki/Color#Farbige_Lampen_Icons. etwas in der art sollte auch funktionieren: attr EnO_FUD61NP_1 devStateIcon {Color::devStateIcon($name,"dimmer","dim","state")}

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Fabian

Zitat von: justme1968 am 08 August 2015, 17:01:46
ich denke du musst zweistufig vorgehen:
Das wäre meine idee gewesen
Zitat von: justme1968 am 08 August 2015, 17:01:46
- mit stateFormat dafür sorgen das dim in STATE landet (und nicht mehr nur on und off anzeigt)
Klingt gut, aber wie funktioniert das? Ich habe nur gefunden was "StateFormat" kann/wozu es gut is, aber nicht was man schreiben muss...

Zitat von: justme1968 am 08 August 2015, 17:01:46oder alternativ die perl code variante von devSateIcon verwenden.
sind die beiden Wege gleichwertig oder ist einer überlegen?
VG
Fabian

krikan

Zitat von: Fabian am 08 August 2015, 22:25:54
Klingt gut, aber wie funktioniert das? Ich habe nur gefunden was "StateFormat" kann/wozu es gut is, aber nicht was man schreiben muss...
Übertragbares Beispiel: http://www.fhemwiki.de/wiki/EnOcean-FSB61-Aktor-Beschattungselemente-Rollladen#Anzeige_Rollladenstand_im_WebFrontend

Fabian

Ich danke euch vielmals, mit euere Hilfe habe ich es schon fast geschafft!

attr EnO_FUD61NP_1 stateFormat dim
attr EnO_FUD61NP_1 devStateIcon 0:light_light_dim_00:on 0\d.*:light_light_dim_00 1\d:light_light_dim_10 2\d.*:light_light_dim_20 3\d.*:light_light_dim_30 4\d.*:light_light_dim_40 5\d.*:light_light_dim_50 6\d.*:light_light_dim_60 7\d.*:light_light_dim_70 8\d.*:light_light_dim_80 9\d.*:light_light_dim_90 100:light_light_dim_100


Das funktioniert bis auf die dim Werte 1-9. Hier werden die Zahlenwerte statt des Icons angezeigt. Wahrscheinlich ist 0\d.* nicht die richtige wildcard für die einstelligen. \d.% hatte ich auch schon versucht... Weiß jemand wie man das richtig schreibt?

Vg Fabian

Spartacus

Hallo,

Zitat von: Fabian am 09 August 2015, 18:53:13

Das funktioniert bis auf die dim Werte 1-9. Hier werden die Zahlenwerte statt des Icons angezeigt. Wahrscheinlich ist 0\d.* nicht die richtige wildcard für die einstelligen. \d.% hatte ich auch schon versucht... Weiß jemand wie man das richtig schreibt?

Vg Fabian

hast Du das Problem mit den Werten unter 10 gelöst? Bei mir habe ich nämlich das gleiche Problem.
Spartacus.
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Fabian

Jein. Eine Möglichkeit 1-10 mit einem Ausdruck abzudecken hab ich nicht gefunden. Deshalb hab ich einfach alle 10 werte einzeln rein.
0:light_light_dim_00:on 1:light_light_dim_00@yellow 2:light_light_dim_00@yellow 3:light_light_dim_00@yellow 4:light_light_dim_00@yellow 5:light_light_dim_00@yellow 6:light_light_dim_00@yellow 7:light_light_dim_00@yellow 8:light_light_dim_00@yellow 9:light_light_dim_00@yellow 1\d:light_light_dim_10@yellow 2\d.*:light_light_dim_20@yellow 3\d.*:light_light_dim_30@yellow 4\d.*:light_light_dim_40@yellow 5\d.*:light_light_dim_50@yellow 6\d.*:light_light_dim_60@yellow 7\d.*:light_light_dim_70@yellow 8\d.*:light_light_dim_80@yellow 9\d.*:light_light_dim_90@yellow 100:light_light_dim_100@yellow:off
Das ist zwar plump, tut aber...

krikan


Spartacus

Hallo zusammen,
Der Vorschlag von krikan funzt!
Besten Dank dafür!
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R