Hauptmenü

(Gelöst) Batteriestatus

Begonnen von is2late, 27 November 2021, 14:27:57

Vorheriges Thema - Nächstes Thema

is2late

Hallo zusammen,

ich möchte gern eine einzige Anzeige bekommen, wenn bei einem von mehreren Devices die Batterieleistung unter einen bestimmten Wert fällt.
Die einzelnen Devices liefern einen Prozentwert im Reading "batteryPercent". Das Structure "Batteriestatus" soll idealerweise zwei Zustände annehmen: "grün", wenn alle Geräte >25 % liegen, "rot" im anderen Fall.
In der Def des Structure sind die Geräte aufgeführt. Jetzt wird vermutlich noch (mindestens) ein Attribut benötigt und ich tippe mal auf clientstate_priority oder -behavior, komme hier aber nicht weiter.
Kann mir jemand aufs Pferd helfen?

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

yersinia

Es ist zwar kein Structure aber eine ReadingsGroup:
defmod ui_battery readingsGroup .*:[Bb]attery
attr ui_battery alias Batteriestatus
attr ui_battery mapping %ALIAS
attr ui_battery notime 1
attr ui_battery style text-align:left;;
attr ui_battery valueFormat {return "0" if ($VALUE eq "low");;\
return "100" if ($VALUE eq "ok");;\
return "100" if ($VALUE eq "High");;\
return "75" if ($VALUE eq "High, Charging");;\
return "100" if ($VALUE eq "Online");;\
return "0" if ($VALUE < 2.2);;\
return "25" if ($VALUE < 2.3);;\
return "50" if ($VALUE < 2.4);;\
return "75" if ($VALUE < 2.7);;\
return "100" if ($VALUE > 2.6 and $VALUE < 3.3);;\
return "0" if ($VALUE > 3.2 and $VALUE < 26);;\
return "25" if ($VALUE > 25 and $VALUE < 51);;\
return "50" if ($VALUE > 50 and $VALUE < 76);;\
return "75" if ($VALUE > 75 and $VALUE < 100);;\
return "100"}
attr ui_battery valueIcon {'battery.0' => '10px-kreis-rot',\
'battery.25' => '10px-kreis-rot',\
'battery.50' => '10px-kreis-gelb',\
'battery.75' => '10px-kreis-gelb',\
'battery.100' => '10px-kreis-gruen',\
'Battery.0' => '10px-kreis-rot',\
'Battery.100' => '10px-kreis-gruen',\
'batteryLevel.0' => '10px-kreis-rot',\
'batteryLevel.25' => '10px-kreis-rot',\
'batteryLevel.50' => '10px-kreis-gelb',\
'batteryLevel.75' => '10px-kreis-gelb',\
'batteryLevel.100' => '10px-kreis-gruen',\
'batteryState.0' => '10px-kreis-rot',\
'batteryState.25' => '10px-kreis-rot',\
'batteryState.50' => '10px-kreis-gelb',\
'batteryState.75' => '10px-kreis-gelb',\
'batteryState.100' => '10px-kreis-gruen',\
'battery_LifePercent.0' => '10px-kreis-rot',\
'battery_LifePercent.25' => '10px-kreis-rot',\
'battery_LifePercent.50' => '10px-kreis-gelb',\
'battery_LifePercent.75' => '10px-kreis-gelb',\
'battery_LifePercent.100' => '10px-kreis-gruen'}
attr ui_battery verbose 0
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

is2late

#2
Hi Yersinia,

vielen Dank! Sieht genial aus und ist es vermutlich auch. Keine Chance für mich, das ohne Deine Hilfe hinzubekommen.
Die Sensoren werden mit ihren Ladezuständen (und den farbigen Punkten) auch perfekt aufgelistet, aber die Gesamtauswertung (gelb/grün/rot) fehlt.
Womöglich hab ich einen Fehler drin...Könntest Du mal auf mein RAW sehen? Es ist einfach kopiert und sollte eigentlich keine Fehler beinhalten:
defmod ui_battery readingsGroup .*:[Bb]attery
attr ui_battery alias Batteriestatus
attr ui_battery mapping %ALIAS
attr ui_battery notime 1
attr ui_battery room Geräte
attr ui_battery style text-align:left;;
attr ui_battery valueFormat {return "0" if ($VALUE eq "low");;\return "100" if ($VALUE eq "ok");;\ return "100" if ($VALUE eq "High");;\ return "75" if ($VALUE eq "High, Charging");;\ return "100" if ($VALUE eq "Online");;\ return "0" if ($VALUE < 2.2);;\ return "25" if ($VALUE < 2.3);;\ return "50" if ($VALUE < 2.4);;\ return "75" if ($VALUE < 2.7);;\ return "100" if ($VALUE > 2.6 and $VALUE < 3.3);;\ return "0" if ($VALUE > 3.2 and $VALUE < 26);;\ return "25" if ($VALUE > 25 and $VALUE < 51);;\ return "50" if ($VALUE > 50 and $VALUE < 76);;\ return "75" if ($VALUE > 75 and $VALUE < 100);;\ return "100"}
attr ui_battery valueIcon {'battery.0' => '10px-kreis-rot',\ 'battery.25' => '10px-kreis-rot',\ 'battery.50' => '10px-kreis-gelb',\ 'battery.75' => '10px-kreis-gelb',\ 'battery.100' => '10px-kreis-gruen',\ 'Battery.0' => '10px-kreis-rot',\ 'Battery.100' => '10px-kreis-gruen',\ 'batteryLevel.0' => '10px-kreis-rot',\ 'batteryLevel.25' => '10px-kreis-rot',\ 'batteryLevel.50' => '10px-kreis-gelb',\ 'batteryLevel.75' => '10px-kreis-gelb',\ 'batteryLevel.100' => '10px-kreis-gruen',\ 'batteryState.0' => '10px-kreis-rot',\ 'batteryState.25' => '10px-kreis-rot',\ 'batteryState.50' => '10px-kreis-gelb',\ 'batteryState.75' => '10px-kreis-gelb',\ 'batteryState.100' => '10px-kreis-gruen',\ 'battery_LifePercent.0' => '10px-kreis-rot',\ 'battery_LifePercent.25' => '10px-kreis-rot',\ 'battery_LifePercent.50' => '10px-kreis-gelb',\ 'battery_LifePercent.75' => '10px-kreis-gelb',\ 'battery_LifePercent.100' => '10px-kreis-gruen'}
attr ui_battery verbose 0

Etwas verdächtig kommt mir der valueFormat-Teil vor, weil ich mit einigen Werten, zB: $VALUE < 2.4);; nichts anfangen kann. Muss ich da noch etwas anpassen?

Die einzelnen Sensoren sehen wie generell folgt aus:
defmod Bewegungssensor.Haustuer HUEDevice sensor 21  IODev=Hue
attr Bewegungssensor.Haustuer Batteriestatus_map battery
attr Bewegungssensor.Haustuer group Bewegungsmelder
attr Bewegungssensor.Haustuer model SML001
attr Bewegungssensor.Haustuer room HUEDevice
attr Bewegungssensor.Haustuer stateFormat batteryPercent


Die Icons sind alle verfügbar.

Dazu habe ich jetzt ein Structure angelegt, um die einzelnen Zustände als Gesamtauswertung zu bekommen (der Einfachheit halber hier nur mit zwei Devices):
defmod structBatteriestatus structure Batteriestatus Bewegungssensor.Haustuer Bewegungssensor.Nacht.Flur
attr structBatteriestatus clientstate_behavior relative
attr structBatteriestatus clientstate_priority 100 75 50 25 0
attr structBatteriestatus event-on-change-reading .*
attr structBatteriestatus room Geräte


STATE (und state) ist leider "undefined"

HILFE........ :'(

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

Jetzt habe ich es angepasst, funktioniert aber leider immer noch nicht. Ich brauche Eure Hilfe...

Hier der Stand:
A) Sensoren:
defmod Bewegungssensor.Haustuer HUEDevice sensor 21  IODev=Hue
attr Bewegungssensor.Haustuer userattr Batteriestatus Batteriestatus_map room_map structexclude
attr Bewegungssensor.Haustuer group Bewegungsmelder
attr Bewegungssensor.Haustuer model SML001
attr Bewegungssensor.Haustuer room HUEDevice
attr Bewegungssensor.Haustuer stateFormat batteryPercent

Zustand wird korrekt angezeigt.

B) ReadingsGroup:
defmod ui_battery readingsGroup .*:[Bb]attery
attr ui_battery alias Batteriestatus
attr ui_battery mapping %ALIAS
attr ui_battery notime 1
attr ui_battery room Geräte
attr ui_battery style text-align:left;;
attr ui_battery valueFormat {return "0" if ($VALUE > 0 and $VALUE < 26);;\\
return "25" if ($VALUE > 25 and $VALUE < 51);;\\
return "50" if ($VALUE > 50 and $VALUE < 76);;\\
return "75" if ($VALUE > 75 and $VALUE < 100);;\\
return "100"}
attr ui_battery valueIcon {'battery.0' => '10px-kreis-rot',\\
'battery.25' => '10px-kreis-rot',\\
'battery.50' => '10px-kreis-gelb',\\
'battery.75' => '10px-kreis-gelb',\\
'battery.100' => '10px-kreis-gruen'}

Die Werte der einzelnen Sensoren werden in "Batteriestatus" jetzt "gerundet" angezeigt, also zB 75 statt 88 %. Die farbigen Punkte sind entschwunden (macht zwar nichts, deutet aber wohl auf einen Fehler hin ;-)

C) Structure:
defmod structBatteriestatus structure Batteriestatus Bewegungssensor.Haustuer Bewegungssensor.Nacht.Flur Bewegungssensor.SZ.Ingo Bewegungssensor.Spuele Bewegungssensor.Vorratsraum Bewegungssensor.oberer.Flur Bewegungssensor.Basis.WZ TempSensor.Flur TempSensor.Haustuer TempSensor.Kueche TempSensor.SZ.Ingo TempSensor.oberer.Flur
attr structBatteriestatus clientstate_behavior relative
attr structBatteriestatus clientstate_priority 75 100
attr structBatteriestatus event-on-change-reading .*

Zeigt jetzt "100" an, obwohl einzelne Sensoren bei 75 bzw 88 % liegen.

Bei clientstate_priority würde ich gern auch 0%, 25 % und 50 % angeben, hab aber nach Lektüre der Commandref  den Eindruck, dass das nicht geht.

Sieht jemand, was falsch läuft?

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

yersinia

Ich kenne mich nicht mit structure aus, aber die von mir vorgeschlagene ReadingsGroup hat erstmal nichts mit structure zu tun. Es sammelt und listet alle Devices auf, welche ein reading battery oder Battery haben.
valueFormat ersetzt dann Werte wie ok zu 100(%) usw.
attr ui_battery valueFormat {return "0" if ($VALUE eq "low");;\
return "100" if ($VALUE eq "ok");;\
return "100" if ($VALUE eq "High");;\
return "75" if ($VALUE eq "High, Charging");;\
return "100" if ($VALUE eq "Online");;\
return "0" if ($VALUE < 2.2);;\
return "25" if ($VALUE < 2.3);;\
return "50" if ($VALUE < 2.4);;\
return "75" if ($VALUE < 2.7);;\
return "100" if ($VALUE > 2.6 and $VALUE < 3.3);;\
return "0" if ($VALUE > 3.2 and $VALUE < 26);;\
return "25" if ($VALUE > 25 and $VALUE < 51);;\
return "50" if ($VALUE > 50 and $VALUE < 76);;\
return "75" if ($VALUE > 75 and $VALUE < 100);;\
return "100"}

valueIcon ersetzt die Werte aus valueFormat durch farbige Kreise.
attr ui_battery valueIcon {'battery.0' => '10px-kreis-rot',\
'battery.25' => '10px-kreis-rot',\
'battery.50' => '10px-kreis-gelb',\
'battery.75' => '10px-kreis-gelb',\
'battery.100' => '10px-kreis-gruen',\
'Battery.0' => '10px-kreis-rot',\
'Battery.100' => '10px-kreis-gruen',\
'batteryLevel.0' => '10px-kreis-rot',\
'batteryLevel.25' => '10px-kreis-rot',\
'batteryLevel.50' => '10px-kreis-gelb',\
'batteryLevel.75' => '10px-kreis-gelb',\
'batteryLevel.100' => '10px-kreis-gruen',\
'batteryState.0' => '10px-kreis-rot',\
'batteryState.25' => '10px-kreis-rot',\
'batteryState.50' => '10px-kreis-gelb',\
'batteryState.75' => '10px-kreis-gelb',\
'batteryState.100' => '10px-kreis-gruen',\
'battery_LifePercent.0' => '10px-kreis-rot',\
'battery_LifePercent.25' => '10px-kreis-rot',\
'battery_LifePercent.50' => '10px-kreis-gelb',\
'battery_LifePercent.75' => '10px-kreis-gelb',\
'battery_LifePercent.100' => '10px-kreis-gruen'}


Wenn deine Devices keine Reading battery haben, werden die hier auch nicht gelistet. Du zeigst aber auch keine lists eines Devices.
Ob dies mit einer structure gehen würde, kann ich dir nicht sagen.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

is2late

Hi Yersinia,

danke für Deine Antwort!
Hier das List eines der Devices:
Internals:
   DEF        sensor 21  IODev=Hue
   FUUID      619ba2d0-f33f-a080-c6aa-d465ba5bb2a232f2
   FVERSION   31_HUEDevice.pm:0.252490/2021-11-21
   ID         S21
   INTERVAL   
   IODev      Hue
   NAME       Bewegungssensor.Haustuer
   NR         361
   STATE      90
   TYPE       HUEDevice
   lastupdated 2021-11-28 15:33:36
   lastupdated_local 2021-11-28 16:33:36
   manufacturername Signify Netherlands B.V.
   modelid    SML001
   name       Bewegungssensor Haustuer
   on         1
   reachable  1
   sensitivity 0
   sensitivitymax 2
   swversion  6.1.1.27575
   type       ZLLPresence
   uniqueid   00:17:88:01:02:03:4b:54-02-0406
   READINGS:
     2021-11-28 13:50:22   IODev           Hue
     2021-11-28 16:33:36   battery         90
     2021-11-28 16:33:36   batteryPercent  90
     2021-11-28 16:33:36   reachable       1
     2021-11-28 16:33:36   state           nomotion
   helper:
     devtype    S
     update_timeout 1
     configList:
     json:
       manufacturername Signify Netherlands B.V.
       modelid    SML001
       name       Bewegungssensor Haustuer
       productname Hue motion sensor
       swversion  6.1.1.27575
       type       ZLLPresence
       uniqueid   00:17:88:01:02:03:4b:54-02-0406
       capabilities:
       config:
         alert      none
         battery    90
         sensitivity 0
         sensitivitymax 2
         pending:
       state:
         lastupdated 2021-11-28T15:33:36
       swupdate:
         lastinstall 2019-12-05T14:33:15
         state      noupdates
     setList:
Attributes:
   group      Bewegungsmelder
   model      SML001
   room       HUEDevice
   stateFormat batteryPercent
   userattr   Batteriestatus Batteriestatus_map room_map structexclude


Ich nehme an, dass man das Structure benötigt, um eine zusammenfassende Auswertung zu bekommen, also etwa in dem Sinn:
Zeig einen roten Punkt, wenn die Batterie eines der Devices <25 %, zeige ansonsten einen grünen Punkt. Idealerweise sollte es noch einen Zwischenschritt geben, nämlich die Farbe Gelb bei Batteriekapazität zwischen 26 und 75 % oä. Das scheint aber mit clientstate_priority nicht zu gehen.

Die Devices verfügen alle über ein Reading "battery" und ein weiteres namens "batteryPercent". Beide weisen die gleichen Werte auf.

Was mir fehlt, ist halt die zusammenfassende Auswertung. Das Structure (s.o.) zeigt aktuell den falschen Wert, nämlich 100, obwohl der Wert einiger Devices <100 liegt.

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

yersinia

Um es noch mal zu wiederholen: ich beziehe mich auf eine readingsGroup, von einer structure habe ich ich keine Ahnung.

Die readingsGroup benötigt keine structure, mein Beispiel zeigt alle Devices an, die ein reading [B|b]attery haben und zeigt dieses an. Und ein solches haben ja deine Devices:
   READINGS:
     2021-11-28 16:33:36   battery         90

Wenn du die readingsGroup anlegst, müsstest zumindest dieses Device sehen.
Für das obige Beispiel müsste valueFormat auf 75(%) übersetzen und dann via valueIcon auf einen gelben Kreis anzeigen.

Zitat von: is2late am 28 November 2021, 17:05:39Ich nehme an, dass man das Structure benötigt, um eine zusammenfassende Auswertung zu bekommen, also etwa in dem Sinn:
Zeig einen roten Punkt, wenn die Batterie eines der Devices <25 %, zeige ansonsten einen grünen Punkt. Idealerweise sollte es noch einen Zwischenschritt geben, nämlich die Farbe Gelb bei Batteriekapazität zwischen 26 und 75 % oä. Das scheint aber mit clientstate_priority nicht zu gehen.

Die Devices verfügen alle über ein Reading "battery" und ein weiteres namens "batteryPercent". Beide weisen die gleichen Werte auf.
Wie gesagt, bezgl structure kann ich dir mangels eigener Erfahrung nicht weiterhelfen. :(
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

is2late

Hi Yersinia,

recht herzlichen Dank für Deine Mühe! Ich verstehe Deinen Code auch und habe ihn 1:1 übernommen. Die einzelnen Sensoren werden ja einwandfrei mit farbigem Punkt angezeigt, s. Anlage (hier vereinfacht mit nur zwei Devices). Was mit weiterhin fehlt, ist die Gesamtauswertung, dh eine einzige Anzeige sollte zeigen, ob irgendeines des Devices eine niedrige Batteriekapazität hat. Eine Readingsgroup, soweit ich den Text verstanden habe, kann das nicht, weshalb ich zusätzlich ein Structure versuche. Hab aber auch verstanden, dass Du mir dabei nicht weiterhelfen kannst. Also nochmals vielen Dank!

Kennt sich sonst jemand mit Structure aus und kann mir sagen, ob/wo ich schief liege?

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

Bin jetzt einen Schritt weiter. Wie es scheint, kann die Structure nicht davon abgebracht werden, state als Bezugspunkt zu nehmen. Jedenfalls sind alle meine Versuche mit clientstate_behavior gescheitert. Es geht also wohl darum, state mit den entsprechenden Werten zu füttern, s.a. hier: https://forum.fhem.de/index.php/topic,40444.msg326967.html#msg326967.

defmod structBatteriestatus structure Batteriestatus Bewegungssensor.Haustuer Bewegungssensor.Nacht.Flur
attr structBatteriestatus clientstate_behavior relative
attr structBatteriestatus clientstate_priority battery (anstelle von battery funktioniert motion nomotion-> hilft ja nicht weiter)
attr structBatteriestatus event-on-change-reading .*
attr structBatteriestatus room Geräte


Aktuell wird in meinem state (weil es sich um Bewegungsmelder handelt) "nomotion" bzw. "motion" angezeigt. Ich möchte stattdessen aber eine Ansage wie "ok" bekommen, wenn keine Batterie unter zB 30 % liegt, und die Anzeige "fast leer" oä erhalten, wenn zumindest eine von mehreren Batterien sich dem Ende zuneigt. Die Prozentwerte liegen im Reading unter "battery".

Frage also, wie bekomme ich state dazu, diese Anzeigen auszugeben? Bitte erlöst mich; ich drehe sonst noch durch.

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

Klar gehen andere Readings als state:

Zitat von: https://wiki.fhem.de/wiki/Structure
<struct_type>_map
Ohne dieses Attribut wertet structure erst das Reading state aus, und nur, falls das nicht existiert, das Internal STATE (beeinflussbar durch das allgemeine stateFormat-Attribut). Vor allem bei Geräten, bei denen z.B. auch Konfigurationsbefehle in state geschrieben werden (wie etwa bei Z-Wave-Komponenten), empfiehlt es sich daher, dieses Attribut zu setzen. Beispiel für einen ZWave-Fensterkontakt, der zur structure "Alarm" gehört:

attr <Sensorname> Alarm_map doorWindow

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#10
Was dann damit gehen würde:

an jedes Batterie-Device ein userReadings, welches die entsprechende "Vorverarbeitung" macht, also % unter einem bestimmten Wert -> nOK

Dann eine structure mit all diesen Devices und dann eben jeweils das Attribut auf das userReadings setzen.

Damit sollte dann die structure auf OK stehen, wenn das userReadings aller Devices OK hat und sobald eines auf nOK geht, geht auch die structure auf nOK...

So wolltest du das doch haben, oder?


Ansonsten: notify auf batteryPercent und dann in einer aufgerufenen Sub alle Batterie-Devices "durchklappern" und dann einen dummy entsprechend setzen (jaja: dummy ;)  )...
...wobei mittlerweile glaube ich auch direkt im notify ein entsprechendes Reading zur "Anzeige" gesetzt werden kann (wenn ich mich nicht täusche bzw. einen entspr. Thread nicht missverstanden habe)...

Und: es gibt bestimmt ein Einzeiler-DOIF was auch schafft was du willst bzw. schlanker macht, was meine "notify-dummy-Variante" macht... ;)

Aber da ich DOIF nicht nutze, kann ich den Einzeiler nicht vorstellen ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

is2late

Hi Joachim,

vielen Dank, das gibt mir Hoffnung  ;)

Werde mal Deinen ersten Vorschlag probieren. Mit UserReadings hatte ich allerdings noch nicht zu tun; mal sehen, ob ich es hinbekomme.

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

Naja evtl. so ähnlich:


attr Bewegungssensor.Haustuer userReadings myBatteryStatus:batteryPercent.* {ReadingsNum($name, "batteryPercent",0) < 25 ? return "nOK" : return "OK"}


damit bekommst du ein neues Reading namens "myBatteryStatus" (kannst du ja anpassen wie du willst ;)  ), getriggert durch das Reading "batteryPercent" und abhängig vom Wert (hier ober/unter 25) eben "OK" oder "nOK" (kannst du auch anpassen ;)  ) liefert...

25 halt auch anpassen wie du willst.

Das dann (leider) bei jedem Device, das du "betrachten" willst...

Damit sollte das dann mit structure klappen wie du willst, halt das Attribut wie oben geschrieben nicht vergessen, damit nicht "state" genommen wird...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

is2late

Super, tausend Dank!
Ganz sicher bin ich mir noch nicht bezüglich
Zitathalt das Attribut wie oben geschrieben nicht vergessen,

Das neue Reading bei den Devices ist da. Bei der Structure muss ich jetzt unter "clientstate_behavior" "myBatteryStatus" setzen, richtig?

LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

#14
Zitat von: is2late am 30 November 2021, 11:39:35
Super, tausend Dank!
Ganz sicher bin ich mir noch nicht bezüglich
Das neue Reading bei den Devices ist da. Bei der Structure muss ich jetzt unter "clientstate_behavior" "myBatteryStatus" setzen, richtig?

LG

Nö, clientstate_behavior lässt doch nur bestimmte Werte zu...
EDIT: da musst du halt lesen was dein erwartetes Verhalten ist. Und evtl. auch noch das Attribut "clientstate_priority" beachten...

Du musst das Attribut bei JEDEM Device setzen, wo du auch das userReadings hast.

Abhängig von deiner "Typ-Angabe" beim erstellen der structure heißt das Attribut auch anders ;)

Bei dir müsste das Attribut "Batteriestatus_map" heißen und dort dann das "neue" Reading angeben...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)