stateFormat ersetzt Reading nicht

Begonnen von zap, 16 Dezember 2015, 12:31:03

Vorheriges Thema - Nächstes Thema

zap

Hallo,

ich habe ein Problem bei der Verwendung des Attributs stateFormat. Meine Readings haben folgendes Format (Beispiel):

KL-AZ-TH:1.TEMPERATURE

Der entsprechend attr Befehl sieht so aus:

attr xyz stateFormat T: KL-AZ-TH:1.TEMPERATURE H: KL-AZ-TH:1.HUMIDITY

Leider werden die beiden Readings nicht durch Werte ersetzt (ja, die Readings existieren). Ich behelfe mir derzeit mit sprintf / ReadingsVal Konstrukten, was aber schnell unübersichtlich wird.


2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

marvin78

Code-Tags würden der Übersichtlichkeit dienen.

Ich könnte mir vorstellen, dass es an den Doppelpunkten und/oder in den Readings liegt. Hast du versucht, die Zeichen zu escapen (bin nicht sicher ob das funktioniert). Der Umweg über ein userReading könnte hilfreich sein. stateFormat als Perl-(sub)  ({}) könnte auch hilfreich sein.

zap

Zitat von: marvin78 am 16 Dezember 2015, 12:35:42
Ich könnte mir vorstellen, dass es an den Doppelpunkten und/oder in den Readings liegt. Hast du versucht, die Zeichen zu escapen (bin nicht sicher ob das funktioniert). Der Umweg über ein userReading könnte hilfreich sein. stateFormat als Perl-(sub)  ({}) könnte auch hilfreich sein.

Danke! Es ist der Doppelpunkt. Escapen bringt nichts. Könnte man Zeile 3858 in fhem.pl etwas abändern?

Statt


$st =~ s/\b([A-Za-z\d_\.-]+)\b/($r->{$1} ? $r->{$1}{VAL} : $1)/ge;


wäre folgendes hilfreich (\: eingefügt):


$st =~ s/\b([A-Za-z\d_\.\:-]+)\b/($r->{$1} ? $r->{$1}{VAL} : $1)/ge;

2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

marvin78

Die Frage solltest du in einem Forum stellen, in dem Rudi mitliest. Am besten in dem, dass in der maintainer.tx für die fhem.pl benannt ist.