Seite 1 von 3
OH3 Map Transformation
Verfasst: 13. Mär 2021 08:41
von Mr. BJ
Hallo zusammen,
Ich versuche gerade in OH3 mich in die Map Transformation einzuarbeiten.
Sprich, ich habe ein Item von meinem Wandthermostat für das Wochenprofil angelegt das eine Zahl (1-6) beinhaltet. Damit nicht die Zahl angezeigt wird sondern einen Namen wie Frühschicht habe ich eine weeklyprofile.map im Ordner transform angelegt (Muss man doch immer noch so machen oder geht das inzwischen auch über die UI?).
weeklyprofile.map:
Code: Alles auswählen
1=Standard
2=Spätschicht
3=Frühschicht
4=Leer1
5=Leer2
6=Sommerpause
Im Item Wochenprofil habe ich MAP als Profile ausgewählt, weeklyprofile.map bei Filename eingetragen und gespeichert.
State Formatter habe ich leer gelassen das Standardmäßig %s verwendet wird.
Aber das Item zeigt trotzdem immer nur die Zahl an, hat jemand eine Idee?
Re: OH3 Map Transformation
Verfasst: 13. Mär 2021 08:51
von Mr. BJ
Ich habe gerade gesehen das das Item einen Typ von Number hat, da kann das ja nicht funktionieren.
Also ein neues Item als String angelegt und die gleiche MAP-Datei verwendet bekomme ich folgenden Fehler in der Konsole:
Code: Alles auswählen
Exception while formatting value 'Frühschicht' of item WandthermostatWohnzimmerWochenprofilText with format '%.0f': f != java.lang.String
Also Frühschicht für die 3 ist Richtig aber warum ich einen Error erhalte verstehe ich nicht.
Re: OH3 Map Transformation
Verfasst: 13. Mär 2021 10:43
von int5749
Hallo Björn
ich weiß ja nicht, wie Dein item ausschaut, aber ich habe z.B. ein Nummer Item für die Device Class meines Wechselrichters. Dies wird dann über eine MAP Datei in einen Text gewandelt.
Code: Alles auswählen
Number SMA_Device_Class "[MAP(SMA.map):%s]" (Inverter) {channel="modbus:data:smaTCP:sma:sma_device_class:number"}
In der Sitemap wird dann der Text ausgegeben.
Deine Fehlermedung sieht aber eher so aus, als würdest Du Temperatur ausgeben wollen?? => with format '%.0f'
FÜr Test wäre es ja %s
Viele Grüße
Re: OH3 Map Transformation
Verfasst: 13. Mär 2021 15:32
von udo1toni
Erst mal ist Number für den Typ des Items korrekt. Es wird ja die Zahl gespeichert, nicht der Text.
Was aber verkehrt ist, ist die Stelle, in der Du das Mapping vornimmst. Das gehört nicht ins Profile, sondern in die Darstellung des Status. Dazu legst Du in Metatdata einen Parameter State Description an und trägst dort unter Pattern MAP:weeklyprofile.map ein. Die MAP Transformation muss natürlich installiert sein

und die Datei weeklyprofile.map muss im Verzeichnis transform liegen.
Re: OH3 Map Transformation
Verfasst: 13. Mär 2021 16:35
von Mr. BJ
Hallo zusammen,
@int5749
Ich habe Items über die neue UI erstellt da ich OH3 für einen Arbeitskollegen teste da er von Scripten Null Ahnung hat.
@udo1toni
Dazu legst Du in Metatdata einen Parameter State Description an
Ja das ist mir später auch aufgefallen aber sobald ich das State Description anlege zeigt er mir folgendes an:
MAP Transformation ist installiert und die Datei liegt im transform Ordner. Die Dateirechte sind 770 und Inhaber/Gruppe ist openhab/openhab.
Re: OH3 Map Transformation
Verfasst: 13. Mär 2021 19:18
von peter-pan
...unter "Pattern" trage mal bitte folgendes ein:
Dann sollte es klappen.

Re: OH3 Map Transformation
Verfasst: 13. Mär 2021 19:45
von Mr. BJ
Klasse, das hat funktioniert. Besten Dank!!!
Re: OH3 Map Transformation
Verfasst: 14. Mär 2021 00:59
von udo1toni
Oh ja, Asche auf mein Haupt... Schreibweise für Thing und Item durcheinander gebracht...

Re: OH3 Map Transformation
Verfasst: 17. Mär 2021 13:27
von Markus_JE
Hallo Udo,
ich klinke mich da mal ein.
Ich habe ein switch item (Batteriestatus) welches mir OFF und ON ausgibt. Wurde so beim einfügen der Hardware vor eingestellt.
Dies würde ich jetzt gerne umbenennen in Batteriestatus OK und Batteriestatus nicht ok.
Bis jetzt habe ich folgendes versucht:
1. transformation map file angelegt batteristatus.map
2. Im item unter state description pattern die map datei (beatteriestatus.map) eingetragen
Leider bislang ohne Funktion.
Re: OH3 Map Transformation
Verfasst: 17. Mär 2021 22:14
von udo1toni
Nur um sicher zu gehen:
State Description Pattern: (nicht beatteriestatus.map)
Eine Datei im Verzeichnis
/etc/openhab/transform/ mit dem Namen
batteriestatus.map (nicht batteristatus.map) mit folgendem Inhalt: