FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: uwirt am 08 September 2023, 10:40:29

Titel: Batteriestatus Icon
Beitrag von: uwirt am 08 September 2023, 10:40:29
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:
#

Titel: Aw: Batteriestatus Icon
Beitrag von: juemuc am 08 September 2023, 12:23:29
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
Titel: Aw: Batteriestatus Icon
Beitrag von: uwirt am 08 September 2023, 13:12:49
Perfekt - vielen Dank.