Hauptmenü

XML mit HTTPMOD einlesen

Begonnen von Muschelpuster, 04 Oktober 2017, 12:18:19

Vorheriges Thema - Nächstes Thema

Muschelpuster

Moin zusammen,

Irgendwie bin ich mal wieder zu dusselig. Ich habe folgendes HTTPMOD definiert:defmod httpmod_test HTTPMOD http://172.30.1.127/CMD0/box_info.xml?xsl=box_info.xsl&m3=&help=General/Info 15
attr httpmod_test userattr reading01Name reading01XPath-Strict
attr httpmod_test reading01Name Uptime
attr httpmod_test reading01XPath-Strict //sys/@uptime


Zurück bekommt das Modul:<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="box_info.xsl"?>
<info>
<modes modes="!firm!fw-save!boot-save!fullboot!"/>
<sys version="123, Hardware[1300] " hardware-id="IP222-46-05-79" serial="123456789579" coder-chs="2" sntp="172.30.1.1" dhcp0-cfg-mode="client" uptime="6818" date="04.10.2017 11:07"/>
</info>


So bekomme ich auch nach meinen spärlichen XPath-Kenntnissen völlig korrekt ein reading Uptime mit dem Inhalt uptime="6818". Aber natürlich möchte ich nur den Wert haben und daher habe ich folgendes gemacht: attr httpmod_test reading01XPath-Strict //sys/@uptime/text()Nun wird mein Reading leider nicht mehr aktualsiert. Aber warum?

unwissende Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

viegener

Ohne, dass ich das ausprobiert hätte müsste der Ausdruck um den Wert zu bekommen einfach ein string()-operator auf dem xpath  sein:
string(//sys/@uptime)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Muschelpuster

#2
Jo, danke - so geht es.
Kann ich jetzt auch noch die Sekunden gleich in (Tage,) Stunden & Minuten umrechnen oder verbietet sich das, weil ich mich hier in der XPath-Welt bewege?

optimierungswillige Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

viegener

Ich kann jetzt nicht sagen, ob das gut in der xpath-Welt geht, aber in HTTPMod wäre dafür eigentlich reading...OExpr zuständig, da müsste es möglich sein einen perl-Ausdruck zu hinterlegen, der die Umwandlung macht, alternativ wäre ein userreading oder gar eine myutils-Funktion der richtige Ort, wenn die berechnung zu kompliziert wird

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können