Hallo,
Mit:
# Batteriestatus aller Devices anzeigen
define Batterie_Status readingsGroup .*:voltage .*:[Bb]atteryState
attr Batterie_Status notime 1
attr Batterie_Status room ALARM
attr Batterie_Status valueFormat {return "0" if( $VALUE eq "low" );; return "100" if( $VALUE eq "ok" );; return "25" if( $VALUE < 2.1 );; return "50" if( $VALUE < 2.3 );; return "75" if( $VALUE < 2.5 );; return "100"}
attr Batterie_Status valueIcon {'batteryState.0' => 'measure_battery_0@red','batteryState.100' => 'measure_battery_100@green','voltage.0' => 'measure_battery_0@red','voltage.25' => 'measure_battery_25@orange','voltage.50' => 'measure_battery_50@orange','voltage.75' => 'measure_battery_75@green','voltage.100' => 'measure_battery_100@green'}
zeige ich den Batterie-Status an.
Jetzt habe ich folgendes Problem: Ein HMIP-PSM hat auch einen Status "voltage" (wenn aus 0.0). Wäre ja auch nicht schlimm, aber es gibt noch einen Mail-check! Ich möchte somit Geräte mit HMIP nicht berücksichtigen.
Ingo
@ingo46
Du verwendest folgenden Ausdruck und sprichst damit alle (.*) Geräte an; aufgelistet davon werden die, die ein Reading namens voltage haben.
.*:voltage
Um unerwünschte Geräte auszugrenzen, sollte .* (verbreitet devspec genannt) durch geeignete Bedingungen verfeinert werden.
Angenommen, HMIP-Geräte sind schon am Namen zu erkennen, dann könnte folgender Ausdruck helfen:
NAME!=.*HMIP.*:voltage
Generell bietet es sich an, eine geeignete devspec mit Hilfe von FHEM-Kommando list zu "erarbeiten" ...
Zitat von: OdfFhem am 11 November 2022, 03:29:38
@ingo46
Um unerwünschte Geräte auszugrenzen, sollte .* (verbreitet devspec genannt) durch geeignete Bedingungen verfeinert werden.
Angenommen, HMIP-Geräte sind schon am Namen zu erkennen, dann könnte folgender Ausdruck helfen:
NAME!=.*HMIP.*:voltage
...habe ich gerade getestet. NAME= geht - NAME!= nicht
Ingo
Stimmt - list funktioniert mit beiden Varianten, readingsGroup leider nicht mit der negativen.
Mit folgender FILTER-Variante sollte es aber auch bei einer readingsGroup funktionieren:
.*:FILTER=NAME!=.*HMIP.*:voltage
Danke, diese Variante hat funktioniert. Wäre ich nie drauf gekommen!!
Ingo