Ich nehme mal an, Du meinst, Du hast ein http Thing angelegt, welches das obige xml empfängt.
Dann kannst Du diese Daten in verschiedene Channel übernehmen:
- string Channel "nackig". -> Du erhältst einen Striung Channel, der exakt das xml enthält. Das kann sehr praktisch sein, um Fehler zu finden
- number Channel -> im number Channel wird ein einzelner Zahlenwert übernommen. Du musst über einen geeigneten Filter dem System mitteilen, welcher der Zahlenwerte Dich interssiert
- switch Channel -> das gleiche wie beim number Channel, nur dass es sich diesmal um ein Entweder/Oder handelt, Du musst dem System zusätzlich mitteilen, welcher Wert für ON steht und welcher Wert für OFF
- string Channel für einzelnen Wert -> gleiches wie beim number Channel, nur halt mit einem String als Ergebnis
Status -> der Wert, der von openHAB empfangen wird.
Command -> der Wert, der von openHAB versendet wird.
Entsprechend ist die Status-Transformation die, welche das ankommende xml zu einem einzelnen Wert zerlegt. In der Theorie sollte es so aussehen:
Code: Alles auswählen
stateTransformation: XPATH:/eta/vars/variable[@uri='48/10391/0/0/12180']/text()
Der Pfad ist klar, die Variable wird anhand der uri selektiert (es gibt gewöhnlich keine Garantie, in welcher Reihenfolge Knoten gesendet werden) und ausgegeben werden soll der Text, in diesem Fall also die 193. Da es sich um eine Zahl handelt, die um den Faktor 100 verkehrt ist, setzt man noch die unit passend auf cbar (Zentibar - eher ungewöhnlich, daran sollte sich openHAB aber nicht stören).
Leider funktioniert der XPATH Ausdruck bei mir aber nicht - habe ich erwähnt, dass ich mit XPATH auf Kriegsfuß stehe?
Für die zweite Variable wäre switch der korrekte Channeltyp und da sähe es so aus:
Code: Alles auswählen
stateTransformation="XPATH:/eta/vars/variable[@uri='48/10391/0/11135/2400']/@strValue()
Hier würde man sich also den StringValue holen. Nein passt allerdings nicht zum erwarteten Wert (ON oder OFF - ist ja ein switch), entsprechend müsste man noch onValue und offValue ergänzen:
Aber auch hier klappt es bei mir nicht, obwohl der XPath korrekt sein sollte- Vermutlich hat das was mit dem gesetzten Schema zu tun, ic hwerde aber aus der entsprechenden Anleitung nicht schlau. XML ist bestimmt die geilste Erfindung seit der Sache mit dem Rad, nur wurde sie von Theoretikern erdacht, die keinerlei Bezug zur Praxis haben.
Dass etwas auch "einfach funktionieren" kann, zeigt JSONPath (hat auch seine Fallstricke, aber bisher bin ich noch immer recht schnell zum Ziel gekommen)
So, genug Rant, vielleicht hat ja jemand anderes einen Tipp, wie es geht...