[gelöst] Attribute in StateFormat

Begonnen von cyrusfd, 05 Juni 2019, 14:39:25

Vorheriges Thema - Nächstes Thema

cyrusfd

Hallo,

ich habe ein Device bei dem ich im StateFormat 2 Readings anzeige lasse. Das funktioniert auch tadellos. Ich möchte jedoch auch ein Attribute anzeigen lassen.
AttrVal(<"DeviceName">,<"Attribute">,"") hat mir nur den Text ausgeworfen.

Kann mir vielleicht jemand bei der richtigen Syntax hier behilflich sein?

LG
Cyrus

marvin78

Das ist eine Perl Funktion:

Auszug aus der commandref:

ZitatFalls der Wert in {} eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die Auswertung passiert bei jeder Änderung eines Readings.

cyrusfd

danke Marvin,

leider ändert das nichts.
mein stateFormat sieht so aus
mower_activity <br> mower_battery <br> {AttrVal ("myMower","interval","")}

angezeigt wird
mäht
33%
{AttrVal ("myMower","interval","")}

Ich sehe vor lauter Bäumen den Wald nicht mehr ;-)

amenomade

Probier mal mit:
{ReadingsVal("myMower", "mower_activity","")."<br>".ReadingsVal("myMower", "mower_battery","")."<br>".AttrVal(""myMower", "interval", "")}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

cyrusfd

#4
Zitat von: amenomade am 05 Juni 2019, 18:09:02
Probier mal mit:
{ReadingsVal("myMower", "mower_activity","")."<br>".ReadingsVal("myMower", "mower_battery","")."<br>".AttrVal(""myMower", "interval", "")}

Danke amenomade!
Hat funktioniert!!!  :)

Ein Problem habe ich noch. Wenn ich das Attribut ändere, wird es im StateFormat nicht aktualisiert, obwohl es im Attribut mit dem neuen Wert angezeigt wird.

update:
da das interval  jetzt auf mehrer Stunden eingestellt wurde, musste ich nach Änderung des Interval ein ,,set myMower update" einfügen.
jetzt wird auch StateFormat richtig angezeigt.

amenomade

Ja, weil die Änderung eines Attributs kein Event auf dem Device generiert, sondern auf global.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

nils_

steht auch in dem post von marvin78 (der letzte teil ist entscheidend!)

Zitat von: marvin78 am 05 Juni 2019, 14:49:41
Das ist eine Perl Funktion:

Auszug aus der commandref:
ZitatFalls der Wert in {} eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die Auswertung passiert bei jeder Änderung eines Readings.

viele Wege in FHEM es gibt!

justme1968

alternativer ansatz der auch updates kann:

statt stateFormat komplett als perl zu bauen: per notify die attribut änderung in ein reading stecken und dann in stateFormat wie zu anfang mit readings arbeiten.

das hätte den vorteil das die updates gehen und das man auch einfach mehrere icons verwenden könnte.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968