Icon-Farbe ändern, sobald ein Reading vorhanden ist

Begonnen von Dodger, 22 November 2021, 15:39:13

Vorheriges Thema - Nächstes Thema

Dodger

Hi,

jetzt geht es ans Eingemachte....
ich möchte gerne die Anwesenheit bestimmter Familienmitglieder über die Farbe eines Icons darstellen.
Dazu wollte ich ein Reading aus der Fritzbox verwenden.
Dort taucht, sofern im WLAN angemeldet, die MAC Adresse der Handys als Reading auf.

Daher wäre mein Wunsch:
wenn reading(MAC) vorhanden, dann Icon auf grün, sonst rot

Dafür hab ich mir ein Notify gebastelt:
define Anwesenheit notify FritzBox_Status:mac_xx_xx_xx_xx_xx_xx:.* set Anwesenheit_icon

wenn das Reading erkannt wird, dann wir das Notify auf active gesetzt.

Aber wie geht es danach weiter?

Wie bekomme ich das Icon gesetzt? Und: Was passiert, wenn das Reading gar nciht da ist?
Man müsste also eigentlich sagen:
das Icon ist standard-mäßig rot und wechseln nur dann auf grün, wenn das notify auf active geht....

Gruß
Dodger

TomLee

Kann man machen muss man aber nicht.

Üblicherweise nimmt man für diesen Zweck ein PRESENCE-Device und für die bunten Icons bietet sich devstateIcon an:

defmod sp_Thomas_FB PRESENCE function {checkFritzMACpresent("Fritzbox1","xx:xx:xx:xx:xx:xx")} 60 60
attr sp_Thomas_FB userattr dummy dummy_map structexclude
attr sp_Thomas_FB devStateIcon {my $var = ReadingsVal($name,'presence','absent') eq 'present'?'10px-kreis-gruen':'10px-kreis-rot';;\
my $var1= ReadingsTimestamp($name,'presence',0);;\
my $seconds = time_str2num($var1);;\
my $result = FmtDateTime($seconds);;\
'<div>'.FW_makeImage($var).' '.$result.'</div>'}
attr sp_Thomas_FB event-on-change-reading .*
attr sp_Thomas_FB room Fritzbox
attr sp_Thomas_FB timestamp-on-change-reading presence,state


Bitte damit beschäftigen bevor Fragen sind.