batteryLevel als Icon in Floorplan

Begonnen von Phlox, 02 August 2016, 18:54:35

Vorheriges Thema - Nächstes Thema

Phlox

Hi,
ich möchte eigentlich nur den Level einer Batterie (Homematic Thermostat) im Floorplan als Icon anzeigen lassen. Den batterylevel mit ReadingsVal kann ich auslesen. Ergibt z.B. 3.2, also sollte dann das "measure_battery_100" Icon auf dem Floorplan erscheinen. Bei 2.2 aber an derselben Stelle ein "measure_battery_25" Icon.

Mit Readingsgroup fand ich ein Beispiel wo alle batteries ausgelesen werden und in der readingsgroup richtig angezeigt werden, aber eben nicht auf dem Floorplan als alleiniges Icon.

Hat jemand einen Tip?

Danke

ht

Guck Dir mal readingsProxy an.
Volker
FHEM 5.7, RasPI 2, HomeMatic über HMUSB, JeeLink Clone, Viessmann Heizung

Phlox

Danke,
aber da steig ich nicht ganz durch.....wie man damit ein Icon auf den floorplan bringt?

ht

Mir ist nicht klar, wo genau Dein Problem liegt. Hier ein readingsProxy aus meiner Konfiguration, den ich mit dem fp_Heizung Attribut mal eben probeweise auf einen meiner Floorplans gepackt habe. Da ist jetzt genau das Icon zu sehen. Vielleicht hilft es Dir ja schon. Ansonsten bitte mehr Informationen, was Du versucht hast und wo genau es nicht weiter geht.

Internals:
   DEF        Viessmann:Status
   DEVICE     Viessmann
   NAME       ViessmannStatus
   NR         276
   NTFY_ORDER 50-ViessmannStatus
   READING    Status
   STATE      OK
   TYPE       readingsProxy
   Content:
     Viessmann  1
   Readings:
     2016-08-02 20:52:02   state           OK
Attributes:
   alias      Viessmann
   devStateIcon (Stoerung|disconnected):sani_heating@red OK:sani_heating@green .*:unknown@yellow
   event-on-change-reading .*
   fp_Heizung 100,100
   group      Status
   room       Haus,Heizung
FHEM 5.7, RasPI 2, HomeMatic über HMUSB, JeeLink Clone, Viessmann Heizung

Phlox

Danke,
es funktioniert. Ich habe es mit dem Batteriestatus hinbekommen. Der liefert entweder ok oder low. Deshalb lautet meine Zeile in der fhem.cfg:

attr Batterie_Test devStateIcon ok:measure_battery_100@green low:measure_battery_0@red

Könntest du mir noch weiterhelfen, wenn ich den BatterieLevel als Icon darstellen will?
Also wenn batteryLevel von 3,2 bis 2,5 (>2,5) dann measure_battery_100@green, wenn batteryLevel <2,1 dann measure_battery_0@red, und von 2,2 bis 2,4 measure_battery_50@orange?

Wenn nicht ist auch nicht tragisch, mit den ReadingsProxy hast du mir bestens weitergeholfen.

Danke

ht

Das geht, Du musst dann aber Perl-Code schreiben. Bei devStateIcon kann man auch Perl-Code aufrufen, Details siehe Command Ref. Wenn Du den readingsProxy für den Wert Deines BatteryLevel konfigurierst, kannst Du im Perl-Code $VALUE verwenden, um das richtige Icon auszuwählen.

Als ein Beispiel für Perl-Code im devStateIcon guck mal nach Color_devStateIcon in der Command Ref und in 99_Utils.pm, auch wenn das schon komplexer ist als das, was Du benötigst.
FHEM 5.7, RasPI 2, HomeMatic über HMUSB, JeeLink Clone, Viessmann Heizung

Phlox

Danke,
ich probiers, wenn Zeit ist. Ist die Syntax ähnlich wie bei ReadingsVal { if  ...;;  set fhem}?

Aber die eigentliche Frage ist ja bereits gelöst.