Nur bestimmte Teile eines Wertes mit stateFormat ausgeben

Begonnen von it-place, 21 Januar 2023, 09:54:08

Vorheriges Thema - Nächstes Thema

it-place

Hallo,
ein eingebundener Schalter Fritz!DECT 440 liefert mir in Fhem die Temperatur und Feuchtigkeit aus. Die Ausgabe STATE ist dabei mit stateFormat wie folgt formatiert:
attr TUF6 stateFormat T: temperature H: rel_humidity

Und gibt dann z.B. folgendes aus:
T: 18.5 C (measured) H: 53 %

Frage: Was muss ich in stateFormat angeben, damit die Ausgabe ohne "C (measured)" und "%" erfolgt, also nur
T: 18.5 H: 53
zurückgibt? :o

Viele Grüße - Olli

Otto123

Hi,

eine Möglichkeit mit set magic https://fhem.de/commandref_modular_DE.html#set
attr TUF6 stateFormat T: [$name:temperature:d] H: [$name:rel_humidity:d]

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

it-place

Hallo Otto,

perfekt, danke! Funktioniert... 8)

Viele Grüße - Olli

it-place

Hallo nochmal,

im Floorplan habe ich jetzt ein merkwürdiges Verhalten. Ich habe den Sensor dort eingebunden mit:
fp_Grundriss 502,605,4,TUF6

Wenn ich dann die Seite neu lade, wird mir das Element zunächst korrekt angezeigt "18.5°C/57%". Nach einiger Zeit steht dann dort aber "18.5 C (measured)°C/57%". Ein Reload im Browser korrigiert das dann wieder für einige Zeit (siehe Screenshots). Woran könnte das liegen? ::)

Viele Grüße - Olli

rudolfkoenig

ZitatWoran könnte das liegen?
stateFormat aendert STATE, das ist die Variable, was man fuer die Anzeige verwendet wird.
Die Aktualisierung erfolgt anhand von einem Event, die von stateFormat nicht geaendert wird.
Ist historisch gewachsen, nicht ganz sauber, und nicht so einfach nachtraeglich zu fixen, ohne Aufruhr bei den Benutzern zu verursachen.

Ich empfehle ein userReading anzulegen, und dieses Reading bzw. Event anzuzeigen.

it-place

Hallo,

Danke für die Antwort! Ich vermute dann, dass ich dafür ein eigenes Dummy-Device benötige, welches den Wert für den Floorplan im STATE stehen hat und diesen Wert mittels UserReadings aus dem TUF6-Device liest, richtig?

Viele Grüße - Olli

rudolfkoenig

Meines Wissens kann FLOORPLAN auch Readings anzeigen.
Die userReadings muss man fuer das Geraet hinzufuegen, was die Events generiert.

Falls ich mich bei FLOORPLAN irren sollte, dann wuerde ich mit einer readingsChange Instanz das state reading manipulieren.
Wenn man unbedingt ein dummy ins Spiel bringen moechte, dann braucht man noch ein notify oder DOIF zusaetzlich.
Und dafuer braucht man auch kein userReadings.

betateilchen

Zitat von: rudolfkoenig am 22 Januar 2023, 14:38:02
Meines Wissens kann FLOORPLAN auch Readings anzeigen.

jepp, mit style = 3 kann man ein bestimmtes reading angeben - siehe commandref zu FLOORPLAN:

Zitat
3 device-reading and optional description
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!