Vesync Binding Werte umwandeln

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

Antworten
Frank1687
Beiträge: 5
Registriert: 9. Okt 2023 22:23
Answers: 0

Vesync Binding Werte umwandeln

Beitrag 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

Benutzeravatar
udo1toni
Beiträge: 13986
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Vesync Binding Werte umwandeln

Beitrag 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.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Frank1687
Beiträge: 5
Registriert: 9. Okt 2023 22:23
Answers: 0

Re: Vesync Binding Werte umwandeln

Beitrag von Frank1687 »

Danke Dir,
habs so hinbekommen :)

Man lernt immer dazu !

Gruß
Frank

Antworten