Hi,
möchte gerne von der Heizung folgende xml auslesen siehe "Dimplex Heizung xml.txt".
Folgendes erste die html.cfg eingebunden:
http:WPMCacheInteger.url=http://192.168.178.49/usr-cgi/xml.cgi?I%%7c1%%7c207
http:WPMCacheInteger.updateInterval=60000
http:WPMCacheAnalog.url=http://192.168.178.49/usr-cgi/xml.cgi?A%%7c1%%7c207
http:WPMCacheAnalog.updateInterval=60000
http:WPMCacheDigital.url=http://192.168.178.49/usr-cgi/xml.cgi?D%%7c1%%7c207
http:WPMCacheDigital.updateInterval=60000
und mit folgenden Items versucht die Werte zu übernehmen
Number WPM_In_EVU_Sperre "EVU Sperre [MAP(wpm_in.map):%d]" <blocked> (gWPMIn,gLog) { http="<[WPMCacheAnalog:60000:REGEX(.*?<INDEX>56</INDEX>\\n\\t*<VALUE>(.*?)</VALUE>.*)]" }
Number WPM_In_Sperre_Extern "Sperre Extern [MAP(wpm_in.map):%d]" <blocked> (gWPMIn,gLog) { http="<[WPMCacheAnalog:60000:REGEX(.*?<INDEX>63</INDEX>\\n\\t*<VALUE>(.*?)</VALUE>.*)]" }
Egal was ich mache, ich komme hier nicht weiter. Gibt es eine andere Möglichkeit so eine xml auszulesen?
Vielen Dank.
OH3.2 XML werte auslesen
Moderator: seppy
-
- Beiträge: 3
- Registriert: 21. Nov 2017 15:27
OH3.2 XML werte auslesen
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: OH3.2 XML werte auslesen
Du nutzt die Konfig Syntax des http1 Bindings. Das gibt es in openHAB3 nicht mehr. Das http Binding für openHAB3 nutzt die übliche Things und Channel Konfiguration:
https://www.openhab.org/addons/bindings/http/
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 3
- Registriert: 21. Nov 2017 15:27
Re: OH3.2 XML werte auslesen
Vielen Dank!
Das ist mir dann auch aufgefallen:
Thing http:url:wpm_analog "Wärmepumpe Analog"
[
baseURL="http://192.168.178.49/usr-cgi/xml.cgi?A%%7c1%%7c207",
refresh=60
]
{
Channels:
Type string : WPM_Aussentemp1 "Außentemperatur" [stateTransformation="REGEX(.*?<INDEX>27</INDEX>\\n\\t*<VALUE>(.*?)</VALUE>.*)"]
}
Items:
String WPM_Aussentemp "myTemp [%s]°C" <temperature> (gWPM,gAussen,gAussenChart,gWPMChart,gLog) {channel="http:url:wpm_analog:WPM_Aussentemp1"}
Das liefert aber auch kein Ergebnis!
Das ist mir dann auch aufgefallen:
Thing http:url:wpm_analog "Wärmepumpe Analog"
[
baseURL="http://192.168.178.49/usr-cgi/xml.cgi?A%%7c1%%7c207",
refresh=60
]
{
Channels:
Type string : WPM_Aussentemp1 "Außentemperatur" [stateTransformation="REGEX(.*?<INDEX>27</INDEX>\\n\\t*<VALUE>(.*?)</VALUE>.*)"]
}
Items:
String WPM_Aussentemp "myTemp [%s]°C" <temperature> (gWPM,gAussen,gAussenChart,gWPMChart,gLog) {channel="http:url:wpm_analog:WPM_Aussentemp1"}
Das liefert aber auch kein Ergebnis!
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: OH3.2 XML werte auslesen
Manuelle Things Dateien sind mir ein Graus, ich bin da raus, sorry.
Allgemein: ich würde die Regex Syntax mal über einen Regex Syntax Checker wie z.B https://regex101.com/ prüfen.
Damit habe ich bis jetzt jede Nuss knacken können.
Ich habe die Erfahrung gemacht, dass in openHAB das komplette Einlesen der Datei mit
Code: Alles auswählen
.*.
Code: Alles auswählen
REGEX:.*.Text.\n.\d\d\d..\n.([0-9]+).*.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 286
- Registriert: 7. Mär 2021 14:49
Re: OH3.2 XML werte auslesen
ich denke mit Regex kommst du da nicht weiter.
XPath dürfte da die bessere Wahl sein,
hab mal etwas gesucht und diesen Beitrag gefunden,
viewtopic.php?t=2778
ich denke damit könntest du weiter kommen.
XPath dürfte da die bessere Wahl sein,
hab mal etwas gesucht und diesen Beitrag gefunden,
viewtopic.php?t=2778
ich denke damit könntest du weiter kommen.
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux
-
- Beiträge: 286
- Registriert: 7. Mär 2021 14:49
Re: OH3.2 XML werte auslesen
hab gestern Abend mal sebst versucht,
die XML Datei bei mir gespeichert und in Variable eingelesen.
dabei hab ich auch gelernt wie ich
executeCommandLine(....)
ohne Fehler aufrufen kann!
aber alle Versuche den Wert bei Index 56 mit RegEx oder XPath aus zu lesen brachten nicht das gewünschte Ergebnis!
womit ich den Wert aber erfolgreich auslesen kann ist eine Rule wo ich den XML String mit split('<INDEX>56</INDEX>'),get(1) zerlege!
ist sicher nicht die schönste, richtige Lösung, aber es funktioniert!
die XML Datei bei mir gespeichert und in Variable eingelesen.
dabei hab ich auch gelernt wie ich
executeCommandLine(....)
ohne Fehler aufrufen kann!
aber alle Versuche den Wert bei Index 56 mit RegEx oder XPath aus zu lesen brachten nicht das gewünschte Ergebnis!
womit ich den Wert aber erfolgreich auslesen kann ist eine Rule wo ich den XML String mit split('<INDEX>56</INDEX>'),get(1) zerlege!
Code: Alles auswählen
rule "xml_auslesen"
when
Item xml_lesen changed
then
var file = executeCommandLine(Duration.ofSeconds(2),"cat","/etc/openhab/scripts/xml.xml")
val String suche_index = file.split('<INDEX>56</INDEX>').get(1)
val String suche_value = suche_index.split('<VALUE>').get(1)
val String value = suche_value.split('</VALUE>').get(0)
logInfo("XPATH"," Value : "+value)
end
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: OH3.2 XML werte auslesen
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.