[gelöst] valueIcon abhängig vom Zahlenwert

Begonnen von FHEM_newbie, 09 Oktober 2022, 22:28:39

Vorheriges Thema - Nächstes Thema

FHEM_newbie

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?

Beta-User

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'}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

DetlefR


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

FHEM_newbie

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'}