FHEM er HTTP Request steuern und abfragen

4,137 views
Skip to first unread message

Christian

unread,
Nov 30, 2011, 9:38:07 AM11/30/11
to FHEM users
Hallo zusammen,

ich such seit einigen Tagen ne Möglichkeit mein FHEM per HTTP Request
zu steuern und abfragen zu machen.

Die einzelnen Befehle hab ich der Doku gefunden - is ja nicht schwer
zu finden :-)

aber hat zufällig jemand ne Referenz, wie die HTTP Requests
allgemeingültig aufgebaut sind? Dies würde mir die Arbeit 1000X
vereinfachen und ich müsste mir nicht jeden Befehl per Proxy
mitsniffen.

Vielen Dank

Christian.

p.s. falls sich der ein oder andere fragt, was ich vorhabe - ich
möchte ne Steuerung programmieren, die auch noch andere Geräte und
Softwarekomonenten steuert. Und da ich noch keine SOAP oder json bei
FHEM gefunden hab - korrigiert mich wenn ich falsch liege - dachte ich
mir ich machs quick and dirty in version 0.1 alpha mal per HTTP Request

Rudolf Koenig

unread,
Nov 30, 2011, 11:28:18 AM11/30/11
to fhem-...@googlegroups.com
> aber hat zuf�llig jemand ne Referenz, wie die HTTP Requests
> allgemeing�ltig aufgebaut sind?

Das wuerde mich auch interessieren :)


> Und da ich noch keine SOAP oder json bei FHEM gefunden hab

Ein JSONlist liegt seit "Ewigkeiten" in den contrib drin. Gehoert eigentlich in
das normale FHEM Verzeichnis.

Andy Fuchs

unread,
Nov 30, 2011, 11:51:46 AM11/30/11
to fhem-...@googlegroups.com

Am 30.11.2011 um 17:28 schrieb Rudolf Koenig:

>> aber hat zufällig jemand ne Referenz, wie die HTTP Requests
>> allgemeingültig aufgebaut sind?

Welche HTTP-Requests meinst Du?

>
>> Und da ich noch keine SOAP oder json bei FHEM gefunden hab
>
> Ein JSONlist liegt seit "Ewigkeiten" in den contrib drin. Gehoert eigentlich in
> das normale FHEM Verzeichnis.

Die JSONList ist allerdings nicht ideal. Im Grunde ist sie ähnlich wie xmllist, nur eben im JSON-Format.

Ich hatte mal angefangen, das Ganze in eine strukturierte JSONList zu bauen, aber mein Perl ist dafür einfach zu schlecht...

a.

Axel

unread,
Nov 30, 2011, 1:52:31 PM11/30/11
to fhem-...@googlegroups.com
Hallo Zusammen,

ich hatte mal mit sowas angefangen:

################################################################################
# 99 CSV
# CSV WEBINTERFACE
#
################################################################################
# Usage:
# Values seperated by Semikolon
# FHEM-BASE-URL: http://<MyFHEM-IP>/FHEM/
# START
# /CSV -> Lists alle Devices with <DeviceName>;<DEVCIE-TYPE>;<ROOM>;<STATE>
# /CSV/TYPE/<DeviceType> -> <DeviceName>;<STATE>
# /CSV/ROOM -> Lists All Rooms <ROOM-NAME>
# /CSV/ROOM/<ROOM-NAME> -> <DeviceName>;<DEVCIE-TYPE>;<ROOM>;<STATE>
# /CSV/DEFS -> List alls Devices <DEVICE-NAME>
# /CSV/DEFS/<DEVICE-NAME> -> 
#   READ = READINGS -> READ;<READINGS-NAME>;<VALUE>;<TIMESTAMP>
#   ATTR = Attributes -> ATTR;<ATTR-NAME>;<VALUE>
#   INT = Internals -> INT;<NAME>;<VALUE>
# /CSV/DEFS/<DEVICE-NAME>/READINGS -> READINGS <READINGS-NAME>;<VALUE>;<TIMESTAMP>
# /CSV/DEFS/<DEVICE-NAME>/ATTR -> Attributes <ATTR-NAME>;<VALUE>
# /CSV/DEFS/<DEVICE-NAME>/INT -> Internals <NAME>;VALUE>
################################################################################

War/ist als "reines" Textinterface gedacht...
CSV als "kleinster gemeinsamer Nenner"...
Command-Unterstützung sollte dann noch folgen...irgendwann ;-))

Schöne Grüße

Axel

Christian

unread,
Nov 30, 2011, 2:32:13 PM11/30/11
to FHEM users
Erstmal danke an alle :-)

wie läuft das eigentlich mit dem iPhone APP?
das muss doch eig auch irgendwie FHEM abfragen und Befehle
hinschicken?
Oder geht das auch "nur" per HTTP Request? - also falls das jemand der
App Entwickler liest :-)

Also wenns noch keine Referenzliste gibt für HTTP Requests dann werd
ich das mal sauber dokumentieren wenn ich mit meinem Projekt fertig
bin.

Ich werd mich auch mal Durch die json wühlen - je nach dem wie weit
die ist und was die kann nehm ich die xDD

grüße

Christian

Andy Fuchs

unread,
Nov 30, 2011, 7:53:25 PM11/30/11
to fhem-...@googlegroups.com
Hi Christian,

ich bin zwar keiner der App-Entwickler, aber damit kenn ich mich zumindest besser aus als mit Perl :-)
Meiner Einschätzung nach initiiert die iPhone-App eine Remote-Telnet Kommunikation und kommuniziert damit mit fhem. Das hat den Vorteil, dass man keinen Proxy benötigt (z.b. PHP oder Python oder sonstwas). Der Nachteil ist, dass das natürlich hackbar und unsicher ist.
Ich tippe mal, dass über die Telnet-Session auch nur die xmllist angefordert wird (man möge mich belehren, falls das nicht so ist), und die fhem Kommandos werden als Telnet-Commands abgesetzt.

Ich persönlich würde lieber den Umweg über cgi, PHP, Python oder ein privates Socket nehmen, um mich sicherer zu fühlen.

Andy

> --
> To unsubscribe from this group, send email to
> fhem-users+...@googlegroups.com

Andy Fuchs

unread,
Nov 30, 2011, 8:02:03 PM11/30/11
to fhem-...@googlegroups.com
Ach ja - ein REST-Interface wäre natürlich schon mal nicht schlecht. Ebenfalls prima fände ich, wenn fhem Anfragen/Antworten via JSON direkt unterstützen würde.

Über 'normale' HTTP-Requests geht natürlich auch, ist für meinen Geschmack aber eher altmodisch :-)

Vermutlich wäre ein separates Kommunikations-Layer die Antwort auf alle Fragen.

Andy

Am 30.11.2011 um 20:32 schrieb Christian <dev.chr...@googlemail.com>:

Olaf Droegehorn

unread,
Dec 1, 2011, 1:39:31 AM12/1/11
to fhem-...@googlegroups.com, Andy Fuchs
Hi all,

es ist zur Zeit ein Modul f�r FHEM in Entwicklung, welches HTTP-Request
entgegen nimmt und mit JSON-Lists antwortet.

Das Modul ist zu ca. 70% fertig. Es wird an der HS-Harz entwickelt und
soll dann Teil des Projektes werden.

Ist die Frage, wie dringend Du sowas brauchen w�rdest bzw. wann Du
anf�ngst selbst zu entwickeln.
Es gibt zumindest ein Modul im Contrib-Verzeichnis, welches eine
JSON-List abliefert auf Anfrage. Und dies auch durch FHEMWEB bzw. PGM5
wenn man will.

Gruďż˝,
Olaf

Am 01.12.2011 02:02, schrieb Andy Fuchs:
> Ach ja - ein REST-Interface w�re nat�rlich schon mal nicht schlecht. Ebenfalls prima f�nde ich, wenn fhem Anfragen/Antworten via JSON direkt unterst�tzen w�rde.
>
> �ber 'normale' HTTP-Requests geht nat�rlich auch, ist f�r meinen Geschmack aber eher altmodisch :-)
>
> Vermutlich w�re ein separates Kommunikations-Layer die Antwort auf alle Fragen.


>
> Andy
>
> Am 30.11.2011 um 20:32 schrieb Christian<dev.chr...@googlemail.com>:
>

>> Also wenns noch keine Referenzliste gibt f�r HTTP Requests dann werd


>> ich das mal sauber dokumentieren wenn ich mit meinem Projekt fertig
>> bin.
>>

>> Ich werd mich auch mal Durch die json w�hlen - je nach dem wie weit


>> die ist und was die kann nehm ich die xDD
>

--
------------------------------------------------------------------------
Prof. Dr. Olaf Droegehorn
General Manager Tel. : +49-561-82020-410
DHS - Computertechnik GmbH Fax. : +49-561-82020-399
Carlsdorfer Stra�e 3 E-Mail: O.Droegehorn@dhs-
computertechnik.de
D-34128 Kassel WEB: www.dhs-computertechnik.de
------------------------------------------------------------------------

Rudolf Koenig

unread,
Dec 1, 2011, 2:34:17 AM12/1/11
to fhem-...@googlegroups.com
> Ich pers�nlich w�rde lieber den Umweg �ber cgi, PHP, Python oder ein privates
> Socket nehmen, um mich sicherer zu f�hlen.

Auch ohne es konkret zu wissen (willkommen im Klub :), ich sehe zwei Wege, um
die Verbindung abzusichern:
- VPN
- HTTPS
Da ersteres auf dem iPhone vorhanden ist, und letzteres mit dem FritzBox mWn
noch nicht moeglich ist, tippe ich auf VPN+Telnet+XmlList.

Rudolf Koenig

unread,
Dec 1, 2011, 2:37:24 AM12/1/11
to fhem-...@googlegroups.com
> es ist zur Zeit ein Modul f�r FHEM in Entwicklung, welches

> HTTP-Request entgegen nimmt und mit JSON-Lists antwortet.

Solange es noch nicht fertig ist, kann man sich mit
http://fhemhost:8083/fhem?cmd=jsonlist&XHR=1
aushelfen, nachdem man fhem/contrib/JsonList/99_JsonList.pm nach fhem/FHEM
kopiert hat.

Andy Fuchs

unread,
Dec 1, 2011, 4:17:16 AM12/1/11
to fhem-...@googlegroups.com
Olaf,

wenn ihr an der HS-Harz so was neu entwickelt, könntet ihr dann evtl. ein Auge auf die semantische Ausgabe legen?

Das Hauptmanko der JSONList.pm so wie sie derzeit ist, ist dass sie etwas unpraktisch organisiert ist, was bei der Auswertung des JSON zusätzlichen Aufwand bedeutet. Wenn man das optimieren könnte, dann wäre so ein Modul der Knaller! (grundsätzlich finde ich so ein Modul ohnehin super.)

Zwei Fragen noch:
- Wird dieses Modul bi-direktional; D.h. Anfragen via Get, Änderungen via Post?
- Macht ihr da JSONP-Support rein. Damit liesse sich dann ganz wunderbar die SOP umgehen, und viele Probleme lösen, die derzeit nur durch offene Ports, respektive PHP oder andere Mittelmänner mache lässt.

Gruß

andy

Am 01.12.2011 um 07:39 schrieb Olaf Droegehorn:

> Hi all,
>
> es ist zur Zeit ein Modul für FHEM in Entwicklung, welches HTTP-Request entgegen nimmt und mit JSON-Lists antwortet.


>
> Das Modul ist zu ca. 70% fertig. Es wird an der HS-Harz entwickelt und soll dann Teil des Projektes werden.
>

> Ist die Frage, wie dringend Du sowas brauchen würdest bzw. wann Du anfängst selbst zu entwickeln.


> Es gibt zumindest ein Modul im Contrib-Verzeichnis, welches eine JSON-List abliefert auf Anfrage. Und dies auch durch FHEMWEB bzw. PGM5 wenn man will.
>

> Gruß,


> Olaf
>
> Am 01.12.2011 02:02, schrieb Andy Fuchs:

>> Ach ja - ein REST-Interface wäre natürlich schon mal nicht schlecht. Ebenfalls prima fände ich, wenn fhem Anfragen/Antworten via JSON direkt unterstützen würde.
>>

>> Über 'normale' HTTP-Requests geht natürlich auch, ist für meinen Geschmack aber eher altmodisch :-)
>>
>> Vermutlich wäre ein separates Kommunikations-Layer die Antwort auf alle Fragen.


>>
>> Andy
>>
>> Am 30.11.2011 um 20:32 schrieb Christian<dev.chr...@googlemail.com>:
>>

>>> Also wenns noch keine Referenzliste gibt für HTTP Requests dann werd


>>> ich das mal sauber dokumentieren wenn ich mit meinem Projekt fertig
>>> bin.
>>>

>>> Ich werd mich auch mal Durch die json wühlen - je nach dem wie weit


>>> die ist und was die kann nehm ich die xDD
>>
>
> --
> ------------------------------------------------------------------------
> Prof. Dr. Olaf Droegehorn
> General Manager Tel. : +49-561-82020-410
> DHS - Computertechnik GmbH Fax. : +49-561-82020-399

> Carlsdorfer Straße 3 E-Mail: O.Droegehorn@dhs-


> computertechnik.de
> D-34128 Kassel WEB: www.dhs-computertechnik.de
> ------------------------------------------------------------------------
>

Christian

unread,
Dec 1, 2011, 4:17:45 AM12/1/11
to FHEM users
Hi all,

ja HTTP Requests sind schon altmodisch - darum ja auch quick and
dirty :-)

Ich werd mir mal

>  http://fhemhost:8083/fhem?cmd=jsonlist&XHR=1

anschauen - vielleicht reicht dies ja aus.

Soooo dringend brauch ich das nicht unbedingt.

@Olaf Droegehorn habt ihr euren sourcecode zufaellig iwo im inet in
einer versionskontrolle (github etc)?
Vielleicht kann ich mit den 80% was anfangen bzw diese fuer mein
projekt mal hernehmen - dann spar ich mir das selbstprogrammieren :-)

danke

christian

Martin Fischer

unread,
Dec 1, 2011, 4:29:55 PM12/1/11
to fhem-...@googlegroups.com
hiya,

Am Donnerstag, 1. Dezember 2011 schrieb Andy Fuchs:
> Das Hauptmanko der JSONList.pm so wie sie derzeit ist, ist dass sie etwas
> unpraktisch organisiert ist, was bei der Auswertung des JSON zusätzlichen
> Aufwand bedeutet. Wenn man das optimieren könnte, dann wäre so ein Modul
> der Knaller! (grundsätzlich finde ich so ein Modul ohnehin super.)

ich habe gerade eine neue version von jsonlist eingecheckt, die besser
strukturiert ist. ich hatte die schon lange liegen, ist aber irgendwie in
vergessenheit geraten.

ausserdem habe ich 99_JsonList.pm vom contrib in die main-module verschoben.
ist jetzt also im "standard" befehlssatz integriert.

gruß martin

Christian

unread,
Dec 2, 2011, 7:05:03 AM12/2/11
to FHEM users
merci - ich schau mal ob ich weiter komme :-)

danke an alle

christian

Reply all
Reply to author
Forward
0 new messages