Hallo Forum,
steuern von FHEM mit wget ist einfach, aber wie lese ich Informationen über Komponenten per Skript aus? Mein Weg wäre jetzt:
wget "http://fhemip:port/fhem?detail=name"
doch das parsen der Antwortseite ist styleabhängig und daher aufwändig. Kommt man irgendwie über das Netzwerk an die reinen Informationen in einem bestimmten Format wie z.B. XML oder so?
Ich würde gerne einige Daten wie state,alive,battery extern mit php auslesen und dort weiter verarbeiten (IP-Symcon)
Vielleicht hilft dir 99_getstate.pm in Zusammenhang mit netcat.
Siehe auch
http://forum.fhem.de/index.php/topic,9226.msg50386.html#msg50386
Gruss Billy
schau dir mal xmllist oder jsonlist an.
gruss
andre
Gab es eigentlich eine Lösung dafür, dass getstate nichts zurück gibt wenn es ein String ist?
Bei mir klappt getstate auf ein dummy Device nicht.
Ach ich sehe gerade
"jsonlist Bewegung_Wohnen" bringt Folgendes
{
"ResultSet": {
"Results": {
"ATTRIBUTES": {
"icon": "icoHouse.png",
"room": "CUL_HM"
},
"NAME": "Bewegung_Wohnen",
"NR": "46",
"READINGS": {
"state": {
"TIME": "2014-01-22 13:11:09",
"VAL": "keine"
}
},
"STATE": "keine",
"TYPE": "dummy"
}
}
}
Wie kommt man jetzt nur an den groß geschriebenen STATE???
an das klein geschriebene state (wie an jedes reading) mit ReadingsVal(...). an das gross geschriebene STATE (wie an jeden internal value) mit InternalVal(...).
gruss
andre
Irgendwie wurde hier wieder mal ein Thread gekapert, denn der eigentliche Fragesteller möchte ja ganz etwas anderes:
Zitatdoch das parsen der Antwortseite ist styleabhängig und daher aufwändig. Kommt man irgendwie über das Netzwerk an die reinen Informationen in einem bestimmten Format wie z.B. XML oder so?
Ich würde gerne einige Daten wie state,alive,battery extern mit php auslesen und dort weiter verarbeiten
also die Werte ausserhalb von fhem per php ermitteln.
1. Schritt: Werte per jsonlist/xmllist auslesen
2. Schritt: JSON Array per PHP parsen
Schritt 1 geht problemlos mittels wget, Schritt 2 geht am einfachsten in PHP per json-decode() (http://www.php.net/manual/de/function.json-decode.php)
@betateilchen
Du hast ja Recht, mir geht es aber auch um ein
wget http://192.168.xx.xx:8083/fhem?detail=Bewegung_Wohnen
aber nur um einen bestimmen Wert, nämlich den STATE.
Ich würde diesen Befehl gern Tasker übergeben aber wenn so viele Information kommen, kann Tasker (jedenfalls mit meinem Wissen) nichts damit anfangen.
Gibts da nichts, dass ich mit einem reinen http-Aufruf den Status abgreifen kann?