Hauptmenü

FHEM mit wget auslesen

Begonnen von Darth.Weber, 22 Januar 2014, 05:41:48

Vorheriges Thema - Nächstes Thema

Darth.Weber

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)

Billy

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
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

justme1968

schau dir mal xmllist oder jsonlist an.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Daku123

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.
Raspberry B+ als FHEM-Server
CUL868 mit HM-LC-SW4-PCB, HM-WDS10-TH-O, HM-SEC-MDIR und 2x HM-SEC-RHS
JeeLink mit 1x TX25IT (Zisternenüberwachung), 5xTX29IT (2x Temperatur und 3x als Fenster/Torkontakt), 11xTX29DTH-IT

Daku123

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???
Raspberry B+ als FHEM-Server
CUL868 mit HM-LC-SW4-PCB, HM-WDS10-TH-O, HM-SEC-MDIR und 2x HM-SEC-RHS
JeeLink mit 1x TX25IT (Zisternenüberwachung), 5xTX29IT (2x Temperatur und 3x als Fenster/Torkontakt), 11xTX29DTH-IT

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

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()
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Daku123

@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?
Raspberry B+ als FHEM-Server
CUL868 mit HM-LC-SW4-PCB, HM-WDS10-TH-O, HM-SEC-MDIR und 2x HM-SEC-RHS
JeeLink mit 1x TX25IT (Zisternenüberwachung), 5xTX29IT (2x Temperatur und 3x als Fenster/Torkontakt), 11xTX29DTH-IT