Ich möchte ein paar Schritte zurück gehen und zunächst die Systemdaten abfragen

insbesondere, welche Version von openHAB Du nutzt (Tipp an dieser Stelle: es ist hilfreich, diese Info als Signatur einzutragen - leider geht das nicht automatisch, d.h. man muss dran denken, die Signatur zu aktualisieren, wenn man updatet)
Unterschiedliche Verhaltensweisen zwischen unterschiedlichen Versionen können nie ganz ausgeschlossen werden
Ich habe das Ganze bei mir mit einer unstable Version durchgespielt, es wird aber genauso mit der aktuellen stable Version funktionieren

Channel:
Code: Alles auswählen
Type number : battery "Batteriestatus" [ stateTopic="test/test/topic", transformationPattern="JSONPATH:$.battery_state∩MAP:zigbeeBattery.map"]
Item:
Code: Alles auswählen
Number Battery "Batteriestatus" {channel="mqtt:topic:mymqtt:test:battery"}
funktioniert bei mir einwandfrei.
Wahlweise ginge das auch genauso mit dem "korrekten"
Itemtyp Number:Dimensionless:
Code: Alles auswählen
Type number : battery "Batteriestatus" [ stateTopic="test/test/topic", transformationPattern="JSONPATH:$.battery_state∩MAP:zigbeeBattery.map",unit="%"]
Code: Alles auswählen
Number:Dimensionless Battery "Batteriestatus" {channel="mqtt:topic:mymqtt:test:battery",unit="%",stateDescription=""[pattern="%d %%"]}
Beide Varianten funktionieren bei mir fehlerfrei.
Mögliche Fehlerquellen die mir gerade einfallen:
- jsonpath und/oder map Transformation nicht installiert
- Datei zigbeeBattery.map in falschem Ordner oder unter falschem Namen angelegt ($OPENHAB_CONF/transform/, Groß/Kleinschreibung beachten!)
- Falscher Aufbau der map-Datei (z.B. Leerzeichen zu Beginn der Zeile - links vom Gleichheitszeichen muss der exakte String angegeben sein)
- Falsches Verknüpfungszeichen. Das ∩ gibt es in der Windows Zeichentabelle unter dem Namen "Durchschnitt" (Übersetzungsfehler in Windows, im englischen heißt es korrekt "Intersection", also "Schnittmenge"). Am einfachsten kopiert man das Symbol aus dem Hilfstext in der WebUI (Channel -> show advanced -> incoming value transformations -> Hilfetext, letztes Zeichen
- Leerzeichen um das Intersection Symbol sind meines Wissens nicht gestattet
openHAB5.1.2 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.5 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte