Seite 1 von 1

Vesync Binding Werte umwandeln

Verfasst: 18. Feb 2024 20:30
von Frank1687
Hallo Zusammen,

da ich noch nicht so tief in Openhab/Programmierung drin hänge mal eine Frage.
Vielleicht für den Ein oder Anderen ein klaks ;)

Ich bekomme von den Luftreinigern von Vesync die Werte 1-5 übergeben. Ich fände es nun schön,
wenn statt Luftqualität 1 da nun ein Sehr gut stehen würde, bei 2 gut, 3 mäßig etc ...
Heißt, wie kriege ich die numerischen Zahlen in "Wörtern" angezeigt.

Kann man das irgendwie realisieren ? (auch so, das ich es verstehe :D )

Schonmal vielen Dank im voraus
Frank

Re: Vesync Binding Werte umwandeln

Verfasst: 19. Feb 2024 03:44
von udo1toni
Das geht sehr einfach, dafür gibt es den Map Transformation Service (Add-on Store - Other Addons - Transformation Add-ons).
Bis einschließlich openHAB3.4.5 musste die Zuordnung in einer Datei erfolgen (Name z.B. luftguete.map):

Code: Alles auswählen

1=sehr gut
2=gut
3=befriediegend
4=ausreichend
5=mangelhaft
6=ungenügend
-=-
NUDEF=ungültig
NULL=leer
oder wie auch immer :) und die Datei musste im Ordner /etc/openhab/transform/ gespeichert sein.

Seit openHAB 4 kannst Du die Zuordnung auch direkt in der UI eingeben (Einstellungen - Configuration - Transformations - weißes plus in blauem Kreis - MAP auswählen, Unique ID z.B. auf luftguete setzen, Label z.B. auf Luftgüte, Sprache auf deutsch und Create wählen.
Im Texteditor anschließend die Zuordnungen eintragen (genau wie oben gezeigt)
Ganz unten ganz rechts (unterhalb des Textbereichs) gibt es dann noch einen sehr unscheinbaren blauen Pfeil nach oben, mit dem man die Metadaten des Mappings einblenden kann - mitsamt dem Hint, wie das Mapping verwendet wird.

Damit in der UI der Text statt der Zahl angezeigt wird, musst Du noch in der State Description (Item Metadaten) im Pattern

Code: Alles auswählen

MAP(config:map:luftguete:de):%s
eintragen.

Alternativ kannst Du die Werte auch direkt in der State Description unter Options eintragen (genau wie oben als Liste der Zuordnungen), wenn es um ein einzelnes Item geht, ist das der schnellere Weg. Wenn man aber mehrere gleichartige Items hat, wird es schnell lästig, dass man die Zuordnungen bei jedem Item einzeln einfügen muss (auch wenn man die Transformation ja auch von Hand vornehmen muss...).

Das Item behält weiterhin den Zahlwert, es bleibt also auch ein Number Item. Alternativ kannst Du auch ein String Item definieren und die Transformation zu Text im Profile erledigen, dann ist aber der Text im Status, nicht die Zahl.

Die drei letzten Zuordnungen in der Liste oben sorgen dafür, dass auch im Fehlerfall ein definierter (deutscher) Text erscheint.

Re: Vesync Binding Werte umwandeln

Verfasst: 20. Feb 2024 13:11
von Frank1687
Danke Dir,
habs so hinbekommen :)

Man lernt immer dazu !

Gruß
Frank