Hauptmenü

XML Datei auslesen

Begonnen von abcdef0123456789, 30 September 2015, 22:57:26

Vorheriges Thema - Nächstes Thema

abcdef0123456789

Hallo,

ich bin absoluter Neuling, was fhem betrifft. Die Suche habe ich schon getestet, ich bin zwar fündig geworden aber nicht so richtig. (http://forum.fhem.de/index.php?topic=21608.0)
Bis jetzt habe ich nur einen Raspberry mit einer fhem Installation.
Dazu habe ich einen ETA SH 30 Twin Heizkessel mit Touch Display. Ich würde gerne dessen LAN Web Schnittstelle auslesen.
Im IE Browser bekomme ich bei der Eingabe von:
"http:// xxx.xxx.xxx.xxx:8080/user/menu" folgende Ausgabe:
<?xml version="1.0" encoding="UTF-8"?>

-<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">


-<menu>


-<fub name="Kessel" uri="/48/10391">


-<object name="Zählerstände" uri="/48/10391/0/0/12010">

<object name="Volllaststunden" uri="/48/10391/0/0/12153"/>

<object name="Volllaststunden seit Wartung" uri="/48/10391/0/0/12404"/>

<object name="Übertemperatur" uri="/48/10391/0/0/12540"/>

<object name="Auslösung Sicherheitstemperaturbegrenzer" uri="/48/10391/0/0/12081"/>

</object>


-<object name="Kessel" uri="/48/10391/0/0/12000">


-<object name="Einstellungen" uri="/48/10391/0/0/12421">

<object name="Starten mit Taste" uri="/48/10391/0/0/13035"/>

</object>


-<object name="Kessel" uri="/48/10391/0/0/12161">

<object name="Kessel Soll" uri="/48/10391/0/0/12001"/>

<object name="Angeforderte Leistung" uri="/48/10391/0/0/12204"/>

<object name="Angeforderte Temperatur" uri="/48/10391/0/0/12006"/>

</object>

<object name="Pelletsbrenner TWIN" uri="/48/10391/0/0/12638"/>


-<object name="Rücklauf" uri="/48/10391/0/0/12220">


-<object name="Rücklaufmischer" uri="/48/10391/0/11163/0">

<object name="Soll Temperatur" uri="/48/10391/0/11163/2120"/>

<object name="Zustand" uri="/48/10391/0/11163/2002"/>

<object name="Ist Temperatur" uri="/48/10391/0/11163/2121"/>

</object>

</object>


-<object name="Kesselpumpe" uri="/48/10391/0/11123/0">

<object name="Anforderung" uri="/48/10391/0/11123/2001"/>

</object>


-<object name="Abgas" uri="/48/10391/0/0/12162">

<object name="Abgas Soll" uri="/48/10391/0/0/12002"/>

<object name="Emissionsmessung" uri="/48/10391/0/0/12115"/>

</object>

<object name="Abgasgebläse" uri="/48/10391/0/0/12165"/>

<object name="Restsauerstoff" uri="/48/10391/0/0/12164"/>


-<object name="Wärmetauscher Reinigung" uri="/48/10391/0/11043/0">

<object name="Anforderung" uri="/48/10391/0/11043/2001"/>

<object name="Beginn Ruhezeit WT-Reinigung" uri="/48/10391/0/0/12632"/>

<object name="Dauer Ruhezeit WT-Reinigung" uri="/48/10391/0/0/12633"/>

</object>

</object>


-<object name="Sonstiges" uri="/48/10391/0/0/12182">

<object name="Ein/Aus Taste" uri="/48/10391/0/0/12080"/>

<object name="Entaschentaste" uri="/48/10391/0/0/12112"/>

<object name="Ladezustand" uri="/48/10391/0/0/12528"/>

</object>

</fub>


-<fub name="Sys" uri="/48/10241">


-<object name="Eingänge" uri="/48/10241/0/0/10990">

<object name="Außentemperatur" uri="/48/10241/0/0/12197"/>

</object>


-<object name="System" uri="/48/10241/0/0/12256">

<object name="Außentemperatur" uri="/48/10241/0/0/12197"/>

</object>

</fub>


-<fub name="Twin" uri="/40/10401">


-<object name="Zählerstände" uri="/40/10401/0/0/12010">

<object name="Volllaststunden" uri="/40/10401/0/0/12153"/>

<object name="Gesamtverbrauch" uri="/40/10401/0/0/12016"/>

<object name="Verbrauch seit Wartung" uri="/40/10401/0/0/12014"/>

<object name="Inhalt Pelletsbehälter" uri="/40/10401/0/0/12011"/>

<object name="Verbrauch seit Entaschung" uri="/40/10401/0/0/12012"/>

<object name="Verbrauch seit Aschebox leeren" uri="/40/10401/0/0/12013"/>

</object>


-<object name="Kessel" uri="/40/10401/0/0/12000">


-<object name="Einstellungen" uri="/40/10401/0/0/12421">

<object name="Start Verzögerung" uri="/40/10401/0/0/12639"/>

<object name="Start in" uri="/40/10401/0/0/12640"/>

</object>


-<object name="Kessel" uri="/40/10401/0/0/12161">

<object name="Kessel Soll" uri="/40/10401/0/0/12001"/>

<object name="Angeforderte Leistung" uri="/40/10401/0/0/12077"/>

<object name="Angeforderte Temperatur" uri="/40/10401/0/0/12006"/>

</object>


-<object name="Rücklauf" uri="/40/10401/0/0/12220">


-<object name="Rücklaufmischer" uri="/40/10401/0/11163/0">

<object name="Soll Temperatur" uri="/40/10401/0/11163/2120"/>

<object name="Zustand" uri="/40/10401/0/11163/2002"/>

<object name="Ist Temperatur" uri="/40/10401/0/11163/2121"/>

</object>

</object>


-<object name="Kesselpumpe" uri="/40/10401/0/11123/0">

<object name="Anforderung" uri="/40/10401/0/11123/2001"/>

</object>


-<object name="Abgas" uri="/40/10401/0/0/12162">

<object name="Emissionsmessung" uri="/40/10401/0/0/12115"/>

</object>

<object name="Abgasgebläse" uri="/40/10401/0/0/12165"/>

<object name="Restsauerstoff" uri="/40/10401/0/0/12164"/>


-<object name="Entaschung" uri="/40/10401/0/0/12050">

<object name="Beginn Ruhezeit" uri="/40/10401/0/0/12248"/>

<object name="Dauer Ruhezeit" uri="/40/10401/0/0/12249"/>

<object name="Entaschen nach min." uri="/40/10401/0/0/12073"/>

<object name="Entaschen nach max." uri="/40/10401/0/0/12074"/>

<object name="Verbrauch seit Entaschung" uri="/40/10401/0/0/12012"/>

<object name="Verbrauch seit Aschebox leeren" uri="/40/10401/0/0/12013"/>

<object name="Aschebox leeren nach" uri="/40/10401/0/0/12120"/>

<object name="Verbrauch seit Wartung" uri="/40/10401/0/0/12014"/>


-<object name="Wärmetauscher Reinigung" uri="/40/10401/0/11043/0">

<object name="Anforderung" uri="/40/10401/0/11043/2001"/>

</object>

</object>


-<object name="Pelletsbehälter" uri="/40/10401/0/0/12005">

<object name="Pelletsbehälter auffüllen" uri="/40/10401/0/0/12071"/>

<object name="Inhalt Pelletsbehälter" uri="/40/10401/0/0/12011"/>

<object name="Saugzeitpunkt" uri="/40/10401/0/0/12152"/>


-<object name="Saugturbine" uri="/40/10401/0/11042/0">

<object name="Anforderung" uri="/40/10401/0/11042/2001"/>

</object>

</object>

</object>


-<object name="Sonstiges" uri="/40/10401/0/0/12182">

<object name="Ein/Aus Taste" uri="/40/10401/0/0/12080"/>

<object name="Entaschentaste" uri="/40/10401/0/0/12112"/>

<object name="Saugzeitpunkt" uri="/40/10401/0/0/12152"/>

<object name="Ladezustand" uri="/40/10401/0/0/12528"/>

</object>

</fub>


-<fub name="Lager" uri="/40/10201">

<object name="Vorrat" uri="/40/10201/0/0/12015"/>

<object name="Vorrat Warngrenze" uri="/40/10201/0/0/12042"/>

</fub>


-<fub name="Puffer-Ww" uri="/120/10251">


-<object name="Puffer" uri="/120/10251/0/0/12207">


-<object name="Puffer oben" uri="/120/10251/0/0/12242">


-<object name="Ladezeiten" uri="/120/10251/12130/0/0">

<object name="Schaltzustand" uri="/120/10251/12130/0/1109"/>

<object name="Temperatur" uri="/120/10251/12130/0/1110"/>


-<object name="Montag" uri="/120/10251/12130/0/1081">

<object name="Absenktemperatur" uri="/120/10251/12130/0/1111"/>

<object name="Zeitfenster 1" uri="/120/10251/12130/0/1082"/>

<object name="Zeitfenster 2" uri="/120/10251/12130/0/1083"/>

<object name="Zeitfenster 3" uri="/120/10251/12130/0/1084"/>

</object>


-<object name="Dienstag" uri="/120/10251/12130/0/1085">

<object name="Absenktemperatur" uri="/120/10251/12130/0/1112"/>

<object name="Zeitfenster 1" uri="/120/10251/12130/0/1086"/>

<object name="Zeitfenster 2" uri="/120/10251/12130/0/1087"/>

<object name="Zeitfenster 3" uri="/120/10251/12130/0/1088"/>

</object>


-<object name="Mittwoch" uri="/120/10251/12130/0/1089">

<object name="Absenktemperatur" uri="/120/10251/12130/0/1113"/>

<object name="Zeitfenster 1" uri="/120/10251/12130/0/1090"/>

<object name="Zeitfenster 2" uri="/120/10251/12130/0/1091"/>

<object name="Zeitfenster 3" uri="/120/10251/12130/0/1092"/>

</object>


-<object name="Donnerstag" uri="/120/10251/12130/0/1093">

<object name="Absenktemperatur" uri="/120/10251/12130/0/1114"/>

<object name="Zeitfenster 1" uri="/120/10251/12130/0/1094"/>

<object name="Zeitfenster 2" uri="/120/10251/12130/0/1095"/>

<object name="Zeitfenster 3" uri="/120/10251/12130/0/1096"/>

</object>


-<object name="Freitag" uri="/120/10251/12130/0/1097">

<object name="Absenktemperatur" uri="/120/10251/12130/0/1115"/>

<object name="Zeitfenster 1" uri="/120/10251/12130/0/1098"/>

<object name="Zeitfenster 2" uri="/120/10251/12130/0/1099"/>

<object name="Zeitfenster 3" uri="/120/10251/12130/0/1100"/>

</object>


-<object name="Samstag" uri="/120/10251/12130/0/1101">

<object name="Absenktemperatur" uri="/120/10251/12130/0/1116"/>

<object name="Zeitfenster 1" uri="/120/10251/12130/0/1102"/>

<object name="Zeitfenster 2" uri="/120/10251/12130/0/1103"/>

<object name="Zeitfenster 3" uri="/120/10251/12130/0/1104"/>

</object>


-<object name="Sonntag" uri="/120/10251/12130/0/1105">

<object name="Absenktemperatur" uri="/120/10251/12130/0/1117"/>

<object name="Zeitfenster 1" uri="/120/10251/12130/0/1106"/>

<object name="Zeitfenster 2" uri="/120/10251/12130/0/1107"/>

<object name="Zeitfenster 3" uri="/120/10251/12130/0/1108"/>

</object>

</object>

<object name="Puffer oben Min" uri="/120/10251/0/0/12211"/>

<object name="Puffer Soll" uri="/120/10251/0/0/12209"/>

<object name="Laden mit anderen Verbrauchern" uri="/120/10251/0/0/12667"/>

<object name="Laden mit Erzeuger" uri="/120/10251/0/0/12932"/>

</object>

<object name="Puffer mitte" uri="/120/10251/0/0/12522"/>


-<object name="Puffer unten" uri="/120/10251/0/0/12244">

<object name="Puffer unten Aus" uri="/120/10251/0/0/12212"/>

</object>


-<object name="geforderte Leistung" uri="/120/10251/0/0/12533">

<object name="Ladezustand" uri="/120/10251/0/0/12528"/>

</object>

<object name="Kaskade" uri="/120/10251/0/0/12317"/>


-<object name="Freigabe Brenner" uri="/120/10251/0/0/12270">

<object name="Brenner starten unter" uri="/120/10251/0/0/12524"/>

</object>

<object name="Anfahrentlastung" uri="/120/10251/0/0/12668"/>


-<object name="Solar abschöpfen" uri="/120/10251/0/0/12652">

<object name="Aktivieren ?" uri="/120/10251/0/0/12683"/>

<object name="...bis Puffer Max" uri="/120/10251/0/0/12645"/>

</object>


-<object name="Extra Laden" uri="/120/10251/0/0/13026">

<object name="Puffer oben Min" uri="/120/10251/0/0/13028"/>

<object name="Puffer unten Aus" uri="/120/10251/0/0/13027"/>

<object name="Extra Laden Ab" uri="/120/10251/0/0/13029"/>

<object name="Laden Taste" uri="/120/10251/0/0/13025"/>

</object>

</object>


-<object name="Warmwasserspeicher" uri="/120/10251/0/0/12129">


-<object name="Ladezeiten" uri="/120/10251/12235/0/0">

<object name="Schaltzustand" uri="/120/10251/12235/0/1109"/>

<object name="Temperatur" uri="/120/10251/12235/0/1110"/>


-<object name="Montag" uri="/120/10251/12235/0/1081">

<object name="Absenktemperatur" uri="/120/10251/12235/0/1111"/>

<object name="Zeitfenster 1" uri="/120/10251/12235/0/1082"/>

<object name="Zeitfenster 2" uri="/120/10251/12235/0/1083"/>

<object name="Zeitfenster 3" uri="/120/10251/12235/0/1084"/>

</object>


-<object name="Dienstag" uri="/120/10251/12235/0/1085">

<object name="Absenktemperatur" uri="/120/10251/12235/0/1112"/>

<object name="Zeitfenster 1" uri="/120/10251/12235/0/1086"/>

<object name="Zeitfenster 2" uri="/120/10251/12235/0/1087"/>

<object name="Zeitfenster 3" uri="/120/10251/12235/0/1088"/>

</object>


-<object name="Mittwoch" uri="/120/10251/12235/0/1089">

<object name="Absenktemperatur" uri="/120/10251/12235/0/1113"/>

<object name="Zeitfenster 1" uri="/120/10251/12235/0/1090"/>

<object name="Zeitfenster 2" uri="/120/10251/12235/0/1091"/>

<object name="Zeitfenster 3" uri="/120/10251/12235/0/1092"/>

</object>


-<object name="Donnerstag" uri="/120/10251/12235/0/1093">

<object name="Absenktemperatur" uri="/120/10251/12235/0/1114"/>

<object name="Zeitfenster 1" uri="/120/10251/12235/0/1094"/>

<object name="Zeitfenster 2" uri="/120/10251/12235/0/1095"/>

<object name="Zeitfenster 3" uri="/120/10251/12235/0/1096"/>

</object>


-<object name="Freitag" uri="/120/10251/12235/0/1097">

<object name="Absenktemperatur" uri="/120/10251/12235/0/1115"/>

<object name="Zeitfenster 1" uri="/120/10251/12235/0/1098"/>

<object name="Zeitfenster 2" uri="/120/10251/12235/0/1099"/>

<object name="Zeitfenster 3" uri="/120/10251/12235/0/1100"/>

</object>


-<object name="Samstag" uri="/120/10251/12235/0/1101">

<object name="Absenktemperatur" uri="/120/10251/12235/0/1116"/>

<object name="Zeitfenster 1" uri="/120/10251/12235/0/1102"/>

<object name="Zeitfenster 2" uri="/120/10251/12235/0/1103"/>

<object name="Zeitfenster 3" uri="/120/10251/12235/0/1104"/>

</object>


-<object name="Sonntag" uri="/120/10251/12235/0/1105">

<object name="Absenktemperatur" uri="/120/10251/12235/0/1117"/>

<object name="Zeitfenster 1" uri="/120/10251/12235/0/1106"/>

<object name="Zeitfenster 2" uri="/120/10251/12235/0/1107"/>

<object name="Zeitfenster 3" uri="/120/10251/12235/0/1108"/>

</object>

</object>

<object name="Einschaltdifferenz" uri="/120/10251/0/0/12133"/>

<object name="Warmwasserspeicher Soll" uri="/120/10251/0/0/12132"/>

<object name="Warmwasserspeicher" uri="/120/10251/0/0/12271"/>

</object>


-<object name="Sonstiges" uri="/120/10251/0/0/12182">

<object name="Laden Taste" uri="/120/10251/0/0/12134"/>

</object>

</fub>


-<fub name="Heizkreis" uri="/120/10101">


-<object name="Heizkreis" uri="/120/10101/0/0/12090">

<object name="Betrieb" uri="/120/10101/0/0/12092"/>


-<object name="Heizzeiten" uri="/120/10101/12113/0/0">

<object name="Schaltzustand" uri="/120/10101/12113/0/1109"/>

<object name="Temperatur" uri="/120/10101/12113/0/1110"/>


-<object name="Montag" uri="/120/10101/12113/0/1081">

<object name="Absenktemperatur" uri="/120/10101/12113/0/1111"/>

<object name="Zeitfenster 1" uri="/120/10101/12113/0/1082"/>

<object name="Zeitfenster 2" uri="/120/10101/12113/0/1083"/>

<object name="Zeitfenster 3" uri="/120/10101/12113/0/1084"/>

</object>


-<object name="Dienstag" uri="/120/10101/12113/0/1085">

<object name="Absenktemperatur" uri="/120/10101/12113/0/1112"/>

<object name="Zeitfenster 1" uri="/120/10101/12113/0/1086"/>

<object name="Zeitfenster 2" uri="/120/10101/12113/0/1087"/>

<object name="Zeitfenster 3" uri="/120/10101/12113/0/1088"/>

</object>


-<object name="Mittwoch" uri="/120/10101/12113/0/1089">

<object name="Absenktemperatur" uri="/120/10101/12113/0/1113"/>

<object name="Zeitfenster 1" uri="/120/10101/12113/0/1090"/>

<object name="Zeitfenster 2" uri="/120/10101/12113/0/1091"/>

<object name="Zeitfenster 3" uri="/120/10101/12113/0/1092"/>

</object>


-<object name="Donnerstag" uri="/120/10101/12113/0/1093">

<object name="Absenktemperatur" uri="/120/10101/12113/0/1114"/>

<object name="Zeitfenster 1" uri="/120/10101/12113/0/1094"/>

<object name="Zeitfenster 2" uri="/120/10101/12113/0/1095"/>

<object name="Zeitfenster 3" uri="/120/10101/12113/0/1096"/>

</object>


-<object name="Freitag" uri="/120/10101/12113/0/1097">

<object name="Absenktemperatur" uri="/120/10101/12113/0/1115"/>

<object name="Zeitfenster 1" uri="/120/10101/12113/0/1098"/>

<object name="Zeitfenster 2" uri="/120/10101/12113/0/1099"/>

<object name="Zeitfenster 3" uri="/120/10101/12113/0/1100"/>

</object>


-<object name="Samstag" uri="/120/10101/12113/0/1101">

<object name="Absenktemperatur" uri="/120/10101/12113/0/1116"/>

<object name="Zeitfenster 1" uri="/120/10101/12113/0/1102"/>

<object name="Zeitfenster 2" uri="/120/10101/12113/0/1103"/>

<object name="Zeitfenster 3" uri="/120/10101/12113/0/1104"/>

</object>


-<object name="Sonntag" uri="/120/10101/12113/0/1105">

<object name="Absenktemperatur" uri="/120/10101/12113/0/1117"/>

<object name="Zeitfenster 1" uri="/120/10101/12113/0/1106"/>

<object name="Zeitfenster 2" uri="/120/10101/12113/0/1107"/>

<object name="Zeitfenster 3" uri="/120/10101/12113/0/1108"/>

</object>

</object>

<object name="Vorlauf" uri="/120/10101/0/0/12241"/>


-<object name="Heizkurve" uri="/120/10101/0/0/12111">

<object name="Schieber Position" uri="/120/10101/0/0/12240"/>

<object name="Vorlauf bei -10°C" uri="/120/10101/0/0/12104"/>

<object name="Vorlauf bei +10°C" uri="/120/10101/0/0/12103"/>

<object name="Vorlauf Absenkung" uri="/120/10101/0/0/12107"/>

</object>


-<object name="Außentemperatur verzögert" uri="/120/10101/12095/0/0">

<object name="Lag x" uri="/120/10101/12095/0/1071"/>

<object name="Lag Tf" uri="/120/10101/12095/0/1072"/>

<object name="Lag y" uri="/120/10101/12095/0/1073"/>

</object>

<object name="Heizgrenze Tag" uri="/120/10101/0/0/12096"/>

<object name="Heizgrenze Nacht" uri="/120/10101/0/0/12097"/>

<object name="Freigabe Temperatur" uri="/120/10101/0/0/12100"/>


-<object name="Heizkreispumpe" uri="/120/10101/0/11124/0">

<object name="Anforderung" uri="/120/10101/0/11124/2001"/>

</object>

<object name="Solar abschöpfen" uri="/120/10101/0/0/12652"/>

</object>


-<object name="Sonstiges" uri="/120/10101/0/0/12182">

<object name="Tag Taste" uri="/120/10101/0/0/12125"/>

<object name="Auto Taste" uri="/120/10101/0/0/12126"/>

<object name="Nacht Taste" uri="/120/10101/0/0/12230"/>

<object name="Ein/Aus Taste" uri="/120/10101/0/0/12080"/>

<object name="Kommen Taste" uri="/120/10101/0/0/12218"/>

<object name="Gehen Taste" uri="/120/10101/0/0/12231"/>

<object name="Urlaub Beginn" uri="/120/10101/0/0/12232"/>

<object name="Urlaub Ende" uri="/120/10101/0/0/12239"/>

</object>

</fub>

</menu>

</eta>


Im IE Browser bekomme ich z. B. bei der Eingabe von:
"http://xxx.xxx.xxx.xxx:8080/user/var/48/10391/0/0/12162",
die Abgastemperatur im folgenden Format angezeigt:
<?xml version="1.0" encoding="UTF-8"?>

-<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">

<value advTextOffset="0" scaleFactor="10" decPlaces="0" unit="°C" strValue="49" uri="/user/var/48/10391/0/0/12162">486</value>

</eta>


Beim Firefox nur den Wert zwischen den ><.
Nun meine Frage, wie bekomme ich die Werte ins fhem? Um die dann eventuell weiter zu bearbeiten? Z. B. Meldung bei Puffer unter 15% oder eine Temperaturaufzeichnung oder etwas mit zu loggen, oder......
Ich habe schon ein wenig gespielt, komme aber nicht so zu einen richtiges Ergebnis.
Zuerst habe ich einen Dummy namens xmldummy habe ich angelegt, dann eine Konfiguration mit den Namen ,,99_Utils_x.pm" angelegt, mit folgendem Inhalt:
sub xmlTemp {

use XML::Simple qw(:strict);


my $xmltext = GetFileFromURL("http://192.168.2.140:8080/user/var/48/10391/0/0/12162");

my $ref = XMLin($xmltext, KeyAttr => { }, ForceArray => [ ]);
#Log 3, "temp: update readings";
fhem("setreading temp 'neutemp' $ref->{value}-{uri=>['']}");

return;
}


Vielen Dank im Voraus für eine Antwort.
Gruß
abcdefgh0123456789