Ich würde gerne in einer readingsGroup das Batteriesymbol in rot oder grün in Abhängigkeit vom Wert des Readings "battery" anzeigen.
Ungefähr so:
{'if $READING eq "battery" && $VALUE > 3' => 'batterie@lightgreen', 'if $READING eq "battery" && $VALUE <= 3' => 'batterie@red'}
Irgendwie klappt das aber mit der Syntax so nicht, liegt es nur an einer Klammer oder läßt sich das gar nicht so direkt lösen?
Eigentlich müsste dazu was im Wiki zu finden sein, wie valueFormat und valueIcon zusammenspielen. Hier mal meine Werte (ist aber bedingt; ein Device wird nur angezeigt, wenn der Füllstand niedrig ist, und gelesen wird das Reading batteryLevel):
attr ZE.Batterie valueFormat {return $VALUE if $DEVICE eq 'global';; return 0 if $VALUE eq 'low';; return 100 if $VALUE eq 'ok';; return 25 if $VALUE < 2.1;; return 50 if $VALUE < 2.5;;return undef}
attr ZE.Batterie valueIcon {'battery.0' => 'measure_battery_0@red','battery.100' => 'measure_battery_100@green','Battery.0' => 'measure_battery_0@red','Battery.100' => 'measure_battery_100@green','batteryLevel.0' => 'measure_battery_0@red','batteryLevel.25' => 'measure_battery_25@red','batteryLevel.50' => 'measure_battery_50@orange','batteryLevel.75' => 'measure_battery_75@green','batteryLevel.100' => 'measure_battery_100@green'}
defmod ze_batterielevel readingsGroup .*:[Bb]atteryLevel
attr ze_batterielevel notime 1
attr ze_batterielevel room Z_Batterie
attr ze_batterielevel valueFormat { return "0" if( $VALUE*10 < 23);;return "25" if( $VALUE*10 < 25 );; return "50" if( $VALUE*10 < 27 );; return "75" if( $VALUE*10 < 30 );;return 100}
attr ze_batterielevel valueIcon {'batteryLevel.0' => 'measure_battery_0@red','batteryLevel.25' => 'measure_battery_25@orange','batteryLevel.50' => 'measure_battery_50@yellow','batteryLevel.75' => 'measure_battery_75@green','batteryLevel.100' => 'measure_battery_100@green'}
Das hab ich vor Jahren mal angelegt. Es zeigt den Batteriestand meiner Heizkörperthermostate
Dankeschön, das passt schonmal recht gut.
Habe es nun so gelöst:
attr rg_FBH65TFB_Diele valueFormat {return "0" if($READING eq "battery" && $VALUE < 3);;return "1" if($READING eq "battery" && $VALUE >= 3 );;return "%0.1f °C" if $READING eq "temperature";;return "%.0f %%" if $READING eq "humidity";;return "%.0f LUX" if $READING eq "brightness";;return "%.1f V" if $READING eq "voltage"}
attr rg_FBH65TFB_Diele valueIcon {'battery.1' => 'batterie@lightgreen', 'battery.0' => 'batterie@red'}