Also, gewöhnlich sollte die Formatierung so aussehen:
Dies sollte dann
162 liefern.
Es kann auch sein, dass Du noch ein /text() anhängen musst, so ganz habe ich XPATH auch noch nicht verstanden...
Der Punkt ist aber, dass der XPATH Ausdruck quasi den Pfad zum Wert angibt. Nutzerfreundlich formatiert sieht der Output ja so aus:
Code: Alles auswählen
<data>
<code>ok</code>
<D_Y_2_01>162</D_Y_2_01>
<D_A_1_3>6.0</D_A_1_3>
<D_D_1>16.0</D_D_1>
<D_D_2>-</D_D_2>
<D_C_4_2>21:21</D_C_4_2>
<D_A_1_6>-</D_A_1_6>
<D_A_1_1>0.00</D_A_1_1>
<D_A_1_2>0.28</D_A_1_2>
<D_A_2_2>000</D_A_2_2>
<D_A_3_1> 16</D_A_3_1>
<D_A_3_2>56</D_A_3_2>
<D_Y_1>162</D_Y_1>
<D_A_1_3>6.0</D_A_1_3>
<D_A_2_3>99</D_A_2_3>
<D_Y_5>0</D_Y_5>
</data>
Da kann man schön erkennen, dass da gar nicht so viel zum entschlüsseln nötig ist.
Wen alle Stricke reißen, kannst Du auch REGEX verwenden, das sähe dann (für den ersten Messwert, wie oben) so aus:
Man könnte hier auch noch besser eingrenzen, aber die Werte müssen eh alle separat heraus gezogen werden, da kann man auch den plumpen Weg gehen.
Aber probiere ruhig noch mal mit XPATH, das sollte eigentlich auch funktionieren.
Das Wichtigste ist ja, dass die Daten nun schon mal in openHAB ankommen. Wie oben erwähnt, verlinke einfach für jeden Wert ein zusätzliches Item. Fange mit einem String Item an, in dem Du bequem im Profile mit XPATH oder notfalls mit REGEX experimentieren kannst, bis der Output dem entspricht, was Du erwartest. Anschließend legst Du die einzelnen Number Items an und nutzt das identische Profile (natürlich jeweils angepasst für den jeweiligen Wert). Ab dem Zeitpunkt sollten alle Werte als Zahlen in openHAB bereitstehen.
Noch ein Tipp: Es ist vermutlich irgendwie möglich, die entsprechenden Einheiten im Profile mit dazu zu zaubern, aber das artet schnell in einen ermüdenden Kampf aus. Für die reine Anzeige eines Wertes kannst Du die Einheit leicht später über die Metadaten des Items hinzufügen. Das Item bleibt vom Typ her ein Number Item (nicht - als Beispiel - Number:Pressure oder sowas), in der Anzeige steht dann trotzdem hPa oder bar oder was auch immer. Wenn Du aber auf den Wert z.B. innerhalb einer Rule Bezug nimmst, musst Du Dich nicht damit rumschlagen, dass eine Einheit an der Zahl dran hängt.
UoM (Units of Measurement) ist eine tolle Funktion, wenn die Werte schon entsprechend angeliefert werden, weil man sich keine Gedanken um die Umrechnung machen muss, einfach gewünschte Einheit angeben, fertig. Um aber eigene Werte in das System einzubringen, ist unverhältnismäßig viel Arbeit nötig.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet