DevStateIcon: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
(→‎Einschränkungen: klammern sind nicht verboten. sie haben nur eine besondere bedeutung.)
Zeile 16: Zeile 16:


== Einschränkungen ==  
== Einschränkungen ==  
In ''devStateIcon'' dürfen keine Leerzeichen oder Klammern vorkommen (ausser zur Trennung der unterschiedlichen Zustände).  
In ''devStateIcon'' dürfen keine Leerzeichen vorkommen (ausser zur Trennung der unterschiedlichen Zustände).  


In den Zuständen können Leerzeichen und Klammern durch einen . (Punkt) ersetzt werden.
Da in der ersten Form der erste Teil jedes Tripels eine Regex ist, sind hier die für eine Regex geltenden Regeln zu beachten. Unter anderem sind das:
* Leerzeichen durch . oder \s ersetzen
* alle Zeichen die in einer Regex eine besondere Bedeutung haben (klammern, punkte, backslash, ...) maskieren


So müsste z.B. (siehe auch {{Link2Forum|Topic=42351|LinkText=dieses Forenthema}}
So müsste z.B. (siehe auch {{Link2Forum|Topic=42351|LinkText=dieses Forenthema}}

Version vom 18. Oktober 2019, 20:49 Uhr


Das Attribut devStateIcon dient dazu, das anzuzeigende Icon eines Devices in Abhängigkeit vom Device-Status (STATE) in der Raumübersicht (room) festzulegen. Zudem kann man einstellen, was bei einem Klick auf das Icon geschieht.

Syntax

Das devStateIcon Attribut kann in 2 verschiedenen Formen spezifiziert werden, die in der commandref/devStateIcon sowie in deviceOverview detaillierter beschrieben werden.


Seit FHEM Version 2019-02-20 gibt es die Möglichkeit mehr als ein Icon pro Device darzustellen: Sobald STATE mehrzeilig ist wird für jede Zeile ein Icon erzeugt und alle Icons nebeneinander dargestellt. Mehrere Zeilen für STATE lassen sich über ein entsprechend gesetztes stateFormat Attribut erreichen. Ein Zeilenumbruch zwischen diesen Icons lässt sich mit <br> erzeugen.

Ein Beispiel findet sich in diesem Forenthread zur Entstehung des Features.

StateFormat-1.png

Einschränkungen

In devStateIcon dürfen keine Leerzeichen vorkommen (ausser zur Trennung der unterschiedlichen Zustände).

Da in der ersten Form der erste Teil jedes Tripels eine Regex ist, sind hier die für eine Regex geltenden Regeln zu beachten. Unter anderem sind das:

  • Leerzeichen durch . oder \s ersetzen
  • alle Zeichen die in einer Regex eine besondere Bedeutung haben (klammern, punkte, backslash, ...) maskieren

So müsste z.B. (siehe auch dieses Forenthema

devStateIcon on-old-for-timer 60:weather_rain_heavy@red:off off:weather_sun@yellow:on-old-for-timer 60

geändert werden auf

devStateIcon on-old-for-timer.60:weather_rain_heavy@red:off off:weather_sun@yellow:on-old-60

wobei in diesem Beispiel zusätzlich der Befehlsteil des off mit der Attributdefinition

eventMap /on-old-for-timer 60:on-old-60/

auf eine "leerzeichenlose" Version umdefiniert werden muss.

Beispiele

Links