Ich kann über valueIcon den Batteriewerten ein entsprechendes Icon zuordnen:
{'battery.ok' => 'measure_battery_100@green','battery.low' => 'measure_battery_0@red','batteryPercent.98' => 'measure_battery_100@green','battery-level.14' => 'measure_battery_0@red'}
Nun ist meine Frage wie ich das formulieren müsste damit ich nicht diskrete Werte (wie z.B. 98) sondern Wertebereiche zuordnen kann (z.B. 80 bis 100). Ich habe es versucht mit Regex umzusetzen:
{'batteryPercent.[8-9][0-9]' => 'measure_battery_100@green','batteryPercent.100' => 'measure_battery_100@green'}
Das geht aber leider nicht.
Die Definition schaut so aus:
define Battery readingsGroup <%Battery>,<Status> .*:[Bb]attery,[Bb]atteryLevel,battery-level,batteryPercent
attr Battery alias Batterystatus
attr Battery devStateStyle style="text-align:right"
attr Battery notime 1
attr Battery valueIcon {'battery.ok' => 'measure_battery_100@green','battery.low' => 'measure_battery_0@red','batteryPercent.98' => 'measure_battery_100@green','battery-level.14' => 'measure_battery_0@red'}
attr Battery valueStyle {'style="text-align:right"'}
# DEF <%Battery>,<Status> .*:[Bb]attery,[Bb]atteryLevel,battery-level,batteryPercent
# FUUID 601add0b-f33f-521d-5b0a-37a4e42f8f0a0e68
# NAME Battery
# NR 65
# NTFY_ORDER 50-Battery
# STATE Initialized
# TYPE readingsGroup
# changed 0
# mayBeVisible 1
# CONTENT:
# 330x_Bern 1
# AS3935 1
# AS3935_kalman 1
# AirPi_gps_sky 1
# AirPi_gps_stat 1
# AirPi_sensors 1
# AirPi_sht31 1
# Alarm_Aussen 1
# Alarm_Husvqvarna 1
# Alarm_Lewisia 1
# Alarm_Veranda 1
# Astronomy 1
# Batterie_monitoring 1
# Battery 1
# BotVac_Bern_Etage 1
# CCU3 1
# CCU3_1 1
# DEVICES_HM_RSSI_RG 1
# Eclipse 1
# FhemRestart 1
# FileLog_Bern 1
# FileLog_DOIF_Barometer 1
# FileLog_DOIF_humidity_inside 1
# FileLog_DOIF_humidity_outside 1
# FileLog_DOIF_temperature_inside 1
# FileLog_DOIF_temperature_outside 1
# FileLog_EnergyCounter 1
# FileLog_Garten 1
# FileLog_Garten_Pumpe 1
# FileLog_HM_WDC7000 1
# FileLog_HM_WDS40_Etage 1
# FileLog_HM_WDS40_Parterre 1
# FileLog_HM_WDS40_Veranda 1
# FileLog_MyWeather 1
# FileLog_Salades 1
# FileLog_Sempervivum 1
# FileLog_Terrasse 1
# FileLog_Withings 1
# Gardena 1
# Garten 1
# Garten_Pumpe 1
# HM_Bat_1 1
# HM_Bat_2 1
# HM_Bat_3 1
# HM_Bat_4 1
# HM_LED_LSR 1
# HM_LED_Vitra 1
# HM_PCBS_Maerklin 1
# HM_PCBS_RMS_4 1
# HM_PCBS_RMS_8 1
# HM_PCBS_Veranda 1
# HM_PM_Counter 1
# HM_PM_Keller 1
# HM_PM_Veranda 1
# HM_RSSI 1
# HM_STHD_rms 1
# HM_Sw1_1 1
# HM_Sw1_2 1
# HM_Sw1_3 1
# HM_Sw1_4 1
# HM_Sw1_5 1
# HM_USB 1
# HM_Verbrauch 1
# HM_WDC7000 1
# HM_WDS100 1
# HM_WDS40_Attic 1
# HM_WDS40_Etage 1
# HM_WDS40_Laundry 1
# HM_WDS40_Parterre 1
# HM_WDS40_Sauna 1
# HM_WDS40_Veranda 1
# HP_M277n 1
# Husqvarna_B 1
# Hygrostat 1
# IoTfreezemon 1
# Logfile 1
# Luftqualitaet 1
# Mean_Barometer 1
# Mean_Humidity_inside 1
# Mean_Humidity_outside 1
# Mean_Temp_inside 1
# Mean_Temp_outside 1
# Netzwerk 1
# NetzwerkListe 1
# Orchideen_Veranda_an 1
# Orchideen_Veranda_aus 1
# Pollenflug 1
# RMS200 1
# RPIMonitor 1
# SDS 1
# SMART_localhost 1
# SSCam.Bern_Buero 1
# SSCam.Bern_Nord 1
# SSCam.Bern_Safe 1
# SSCam.Bern_Sued 1
# SSCam.Bern_West 1
# SSCam.Synology_LiveCam 1
# SSCamSTRM.SSCam.Bern_Buero.mjpeg 1
# SSCamSTRM.SSCam.Bern_Nord.mjpeg 1
# SSCamSTRM.SSCam.Bern_Safe.mjpeg 1
# SSCamSTRM.SSCam.Bern_Sued.mjpeg 1
# SSCamSTRM.SSCam.Bern_West.mjpeg 1
# STAT_localhost 1
# SVG_04_Sun 1
# SVG_05_Polar 1
# SVG_FileLog_EnergyCounter_1 1
# SYNO_Cam 1
# SYNO_IoT 1
# SYNO_Movie 1
# SYNO_Time 1
# SYSMON_localhost 1
# Salades 1
# Sarastro_RPI_RMS 1
# Sarastro_RPI_cam1 1
# Sarastro_RPI_cam2 1
# Sarastro_fitpc 1
# Sarastro_netio 1
# Sempervivum 1
# Solar 1
# StatDevice_MinMax 1
# StatDevice_Tendency 1
# SynFile 1
# System.Reboot.Dummy 1
# System.reboot 1
# TABLETUI 1
# Terrasse 1
# Terrasse_Pumpe 1
# Thermostat 1
# ThermostatLog 1
# UV 1
# Update 1
# Update.New 1
# Update.Start 1
# UpdateFinished 1
# Update_ALL_DOIF 1
# Update_Change_DOIF 1
# Update_FHEM_DOIF 1
# Update_FTUI_DOIF 1
# Update_Status 1
# Update_notify 1
# WEB 1
# WEB_127.0.0.1_55514 1
# WEB_127.0.0.1_56552 1
# WEB_127.0.0.1_56558 1
# WEB_127.0.0.1_56564 1
# WEB_127.0.0.1_56580 1
# WEB_127.0.0.1_56592 1
# Wasser_Verbrauch 1
# Weather 1
# Weather.weblink 1
# Weck_an 1
# Weck_aus 1
# Withings 1
# XMAS_evening_an 1
# XMAS_evening_aus 1
# XMAS_morning_an 1
# XMAS_morning_aus 1
# airpi_stat 1
# allsky_2_stat 1
# autocreate 1
# consolewd 1
# d_rpc001219BidCos_RF 1
# d_rpc001219HmIP_RF 1
# d_rpc001219VirtualDevices 1
# eventTypes 1
# fhempy_local 1
# fhempy_local_reset 1
# fhempy_log 1
# fhempyserver_15733 1
# fit_PC2 1
# global 1
# initialUsbCheck 1
# lightning_stat 1
# logProxy 1
# meteotux 1
# meteotux_MLX90615 1
# meteotux_stat 1
# mymonitoring 1
# nmap 1
# openWeather_one 1
# openWeather_pollution 1
# openWeather_solar 1
# rgPollenflug 1
# rms_stat 1
# siri 1
# stormglass 1
# sunRise 1
# sunSet 1
# telnetPort 1
# tuya_cloud_bf0c0040417c5be27fziuv 1
# tuya_cloud_bf663c2f441e3fb1c2vgbs 1
# tuya_cloud_connector 1
# tuya_local_bf0c0040417c5be27fziuv 1
# tuya_local_bf663c2f441e3fb1c2vgbs 1
# tuya_system 1
# uRadMonitor_A1 1
# uRadMonitor_AC3 1
# water 1
# withings_D4394905 1
# withings_D6254144 1
# withings_D6829353 1
# withings_D813787 1
# withings_D91833 1
# withings_U20146921 1
# withings_U2877 1
# CONTENT2:
# DEVICES:
# ARRAY(0x559952920590)
# ARRAY(0x55995751bee8)
# ARRAY(0x559957628288)
# ARRAY(0x5599575c5238)
# ARRAY(0x55995679cf78)
# ARRAY(0x559957652ff0)
# ARRAY(0x55995676abf0)
# ARRAY(0x5599576312f8)
# ARRAY(0x5599575ce490)
# ARRAY(0x5599572f6018)
# ARRAY(0x5599575db620)
# ARRAY(0x5599575b89f8)
# ARRAY(0x55995732efb8)
# ARRAY(0x5599574db5d0)
# ARRAY(0x5599574d7d48)
# ARRAY(0x559957640488)
# ARRAY(0x55994e1d4e88)
# ARRAY(0x559956b42920)
# ARRAY(0x5599575b6400)
# ARRAY(0x5599575dbfe0)
# ARRAY(0x5599575d8248)
# ARRAY(0x55995731b7d8)
# ARRAY(0x5599575dde48)
# ARRAY(0x5599575e48d8)
# ARRAY(0x5599567634f8)
# ARRAY(0x5599573361c0)
# ARRAY(0x5599576400c8)
# ARRAY(0x55994e1e1d88)
# ARRAY(0x5599574e4680)
# ARRAY(0x55995762b1d0)
# ARRAY(0x5599572ccda8)
# ARRAY(0x5599564c9018)
# ARRAY(0x5599574ba318)
# ARRAY(0x5599574e8bf0)
# ARRAY(0x559957314f50)
# ARRAY(0x55995764f340)
# ARRAY(0x5599574e4d70)
# ARRAY(0x559956766f08)
# ARRAY(0x5599575db8d8)
# ARRAY(0x5599572c6248)
# ARRAY(0x5599575de508)
# ARRAY(0x5599575029e8)
# ARRAY(0x5599573366b8)
# ARRAY(0x5599575b2cc0)
# ARRAY(0x55995763d588)
# ARRAY(0x559957463b18)
# ARRAY(0x559957625360)
# ARRAY(0x55994e1daca0)
# ARRAY(0x5599575362f8)
# ARRAY(0x55994e1de8a0)
# ARRAY(0x5599575e0d28)
# ARRAY(0x55995756d7f0)
# ARRAY(0x5599574b9a90)
# ARRAY(0x55995676a458)
# ARRAY(0x559956762060)
# ARRAY(0x5599575e4548)
# ARRAY(0x55995706b380)
# ARRAY(0x55995722ea08)
# ARRAY(0x5599574d7220)
# ARRAY(0x5599575bc7c0)
# ARRAY(0x55994e1d5410)
# ARRAY(0x5599572e4358)
# ARRAY(0x55995715c8c8)
# ARRAY(0x5599572c5cd8)
# ARRAY(0x559957317ee8)
# ARRAY(0x55995762f158)
# ARRAY(0x559957622ab8)
# ARRAY(0x5599575e1670)
# ARRAY(0x5599574e8dd0)
# ARRAY(0x55995730cfb8)
# ARRAY(0x5599575765d0)
# ARRAY(0x559957634840)
# ARRAY(0x55995751c080)
# ARRAY(0x5599575b5db8)
# ARRAY(0x5599574e10e8)
# ARRAY(0x5599575473c8)
# ARRAY(0x559956763780)
# ARRAY(0x5599574ee440)
# ARRAY(0x55995675a1b8)
# ARRAY(0x5599575e0ed8)
# ARRAY(0x559957623310)
# ARRAY(0x5599574f74a0)
# ARRAY(0x559956761960)
# ARRAY(0x55995751dd08)
# ARRAY(0x5599575e0ff8)
# ARRAY(0x5599572ee718)
# ARRAY(0x55994e1d8790)
# ARRAY(0x55994e1de018)
# ARRAY(0x5599574f6eb8)
# ARRAY(0x5599572d7ad8)
# ARRAY(0x5599574fc400)
# ARRAY(0x55995764ca28)
# ARRAY(0x5599575d1b70)
# ARRAY(0x55995763a8c0)
# ARRAY(0x5599575c5940)
# ARRAY(0x55995765bcc8)
# ARRAY(0x5599574ba288)
# ARRAY(0x5599572e8ae0)
# ARRAY(0x55994de4ca10)
# ARRAY(0x5599575cc310)
# ARRAY(0x559955277fe8)
# ARRAY(0x5599574e8650)
# ARRAY(0x55995675d490)
# ARRAY(0x559956b53b38)
# ARRAY(0x5599575708e0)
# ARRAY(0x55995763a638)
# ARRAY(0x559957637bf0)
# ARRAY(0x559956d90248)
# ARRAY(0x5599575bfca0)
# ARRAY(0x559956773390)
# ARRAY(0x5599575b6298)
# ARRAY(0x55995675ab18)
# ARRAY(0x5599572ee700)
# ARRAY(0x55995710b7b0)
# ARRAY(0x55995762e948)
# ARRAY(0x5599575b26a8)
# ARRAY(0x5599567734c8)
# ARRAY(0x55994e1d58a8)
# ARRAY(0x5599576317a8)
# ARRAY(0x55995751d600)
# ARRAY(0x559957634900)
# ARRAY(0x55994e1dae68)
# ARRAY(0x5599575a5628)
# ARRAY(0x55995731afc8)
# ARRAY(0x55995751b738)
# ARRAY(0x5599574e8188)
# ARRAY(0x559957310aa8)
# ARRAY(0x5599575bbf20)
# ARRAY(0x55995754ea78)
# ARRAY(0x559955603958)
# ARRAY(0x5599572e3de8)
# ARRAY(0x559956806ec0)
# ARRAY(0x559957646710)
# ARRAY(0x5599574fcd48)
# ARRAY(0x5599575c24a0)
# ARRAY(0x559957467360)
# ARRAY(0x559956d190f0)
# ARRAY(0x55994d06f8e0)
# ARRAY(0x559956761fd0)
# ARRAY(0x55995754f4f8)
# ARRAY(0x55995752fc70)
# ARRAY(0x5599575cbda0)
# ARRAY(0x5599574fa608)
# ARRAY(0x55995752d150)
# ARRAY(0x5599574bd028)
# ARRAY(0x559955c7ba68)
# ARRAY(0x55995675ab00)
# ARRAY(0x559957541ae0)
# ARRAY(0x5599575bf328)
# ARRAY(0x55995765bae8)
# ARRAY(0x5599575e1298)
# ARRAY(0x5599574d1518)
# ARRAY(0x559957649ee0)
# ARRAY(0x559957305660)
# ARRAY(0x5599572e0498)
# ARRAY(0x559957502b50)
# ARRAY(0x5599574f3548)
# ARRAY(0x5599572b3198)
# ARRAY(0x55995679ae98)
# ARRAY(0x5599574e55f8)
# ARRAY(0x559957570388)
# ARRAY(0x5599567621b0)
# ARRAY(0x5599573462f8)
# ARRAY(0x55994e1d8d48)
# ARRAY(0x559957622ce0)
# ARRAY(0x5599572eeac0)
# ARRAY(0x5599574f9c78)
# ARRAY(0x559956d64458)
# ARRAY(0x5599567616c0)
# ARRAY(0x5599575d8698)
# ARRAY(0x5599574d0dc8)
# ARRAY(0x55995733d558)
# ARRAY(0x559956767580)
# ARRAY(0x5599574bc6c8)
# ARRAY(0x55995723fd78)
# ARRAY(0x559957541b70)
# ARRAY(0x55994e1e1db8)
# ARRAY(0x55995754f378)
# ARRAY(0x55995762ea98)
# ARRAY(0x5599567615e8)
# ARRAY(0x5599575b6118)
# ARRAY(0x559957656528)
# ARRAY(0x5599575bc028)
# ARRAY(0x5599574b2c30)
# ARRAY(0x5599575c1af8)
# ARRAY(0x55995731b838)
# ARRAY(0x55995725d2b8)
# ARRAY(0x5599575e58a0)
# ARRAY(0x55994e1de210)
# ARRAY(0x559955bc29e8)
# ARRAY(0x5599534f7e68)
# ARRAY(0x55995728cd00)
# ARRAY(0x5599575b58d8)
# ARRAY(0x55995764cb78)
# ARRAY(0x5599574eeb18)
# ARRAY(0x55995733e320)
# ARRAY(0x55994e1d8718)
# ARRAY(0x559956d76fe0)
# ARRAY(0x5599574eb6b0)
# ARRAY(0x5599572dfb80)
# ARRAY(0x559957646ad0)
# ARRAY(0x5599572eea30)
# ARRAY(0x5599574e4e78)
# ARRAY(0x5599574f3b18)
# ARRAY(0x5599574ff7f8)
# ARRAY(0x559956d97540)
# fhem:
# lastDefChange 14
# last_update 1694162397.22831
# helper:
# DEF
# valueStyle {'style="text-align:right"'}
# positions:
# BotVac_Bern_Etage.batteryPercent 16:1
# Garten.battery-level 41:1
# Garten_Pumpe.battery-level 42:1
# HM_Bat_1.battery 43:1
# HM_Bat_2.battery 44:1
# HM_Bat_3.battery 45:1
# HM_Bat_4.battery 46:1
# HM_LED_LSR.battery 47:1
# HM_LED_Vitra.battery 48:1
# HM_PM_Counter.battery 53:1
# HM_STHD_rms.battery 57:1
# HM_Sw1_1.battery 58:1
# HM_Sw1_2.battery 59:1
# HM_Sw1_3.battery 60:1
# HM_Sw1_4.battery 61:1
# HM_Sw1_5.battery 62:1
# HM_WDC7000.battery 65:1
# HM_WDS100.battery 66:1
# HM_WDS40_Attic.battery 67:1
# HM_WDS40_Etage.battery 68:1
# HM_WDS40_Laundry.battery 69:1
# HM_WDS40_Parterre.battery 70:1
# HM_WDS40_Sauna.battery 71:1
# HM_WDS40_Veranda.battery 72:1
# Salades.battery-level 113:1
# Sempervivum.battery-level 119:1
# Terrasse.battery-level 127:1
# Terrasse_Pumpe.battery-level 128:1
# withings_D4394905.batteryPercent 200:1
# withings_D813787.batteryPercent 203:1
# withings_D91833.batteryPercent 204:1
# valueIcon:
# battery-level.14 measure_battery_0@red
# battery.low measure_battery_0@red
# battery.ok measure_battery_100@green
# batteryPercent.98 measure_battery_100@green
# values:
# formated:
# undef
# ARRAY(0x559956767220)
# orig:
# undef
# ARRAY(0x5599575744b0)
# prefixsuffix:
# undef
# ARRAY(0x559957245d38)
# hmccu:
#
Hi,
ich habe es so definiert:
{'battery.ok' => 'measure_battery_100@black','batteryState.ok' => 'remotecontrol/black_btn_GREEN',
'battery.low' => 'measure_battery_25@red',
'present.yes' => 'remotecontrol/black_btn_GREEN',
'present.no' => 'control_x@red',
'activity.alive' => 'remotecontrol/black_btn_GREEN',
'activity.dead' => 'control_x@red',
'state.active' => 'remotecontrol/black_btn_GREEN',
'batteryPercent' => '{if ($READING eq "batteryPercent" && $VALUE < "15") {"measure_battery_".(sprintf("%.0f",(($VALUE)/25))*25)."\@red"} elsif ($READING eq "batteryPercent" && $VALUE < "35") {"measure_battery_".(sprintf("%.0f",(($VALUE)/25))*25)."\@orange"} else {"measure_battery_".(sprintf("%.0f",(($VALUE)/25))*25)."\@black"}}'}
Viele Grüße
Jürgen
Perfekt - vielen Dank.