FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: MarcP am 10 Juli 2017, 15:34:00

Titel: JSON direkt empfangen
Beitrag von: MarcP am 10 Juli 2017, 15:34:00
Hallo,

gibt es bereits ein Modul, mit dem man JSON-Nachrichten direkt (per Portfreigabe; idealerweise mit einem Extra-Webserver-Prozess nur für diesen Zweck) aus dem Internet empfangen kann?

Also z.B.: { "command" : "set lamp01 on" }
(Und das führt dann dazu, das dieses Kommando ausgeführt wird)

Ich würde gerne die IFTTT Maker Webhooks (https://ifttt.com/maker_webhooks) direkt benutzen, also ohne z.B. Pushbullet dazwischen.

Ich habe das Forum abgesucht und nichts gefunden, was dem entspricht.

Danke und viele Grüße
Marc
Titel: Antw:JSON direkt empfangen
Beitrag von: DeeSPe am 10 Juli 2017, 15:40:20
HTTPMOD kann doch z.B. JSON abrufen und verarbeiten...

Gruß
Dan
Titel: Antw:JSON direkt empfangen
Beitrag von: MarcP am 10 Juli 2017, 15:48:20
Hallo,

HTTPMOD (https://fhem.de/commandref.html#HTTPMOD) verstehe ich so, das das Modul aktiv "pollt" und die Rückgabewerte als JSON verarbeiten kann.
Ich suche etwas, das JSON aus dem Internet empfängt, so ähnlich wie das GEOFANCY-Plugin es macht, nur halt allgemeiner gehalten.

Viele Grüße
Marc
Titel: Antw:JSON direkt empfangen
Beitrag von: dev0 am 10 Juli 2017, 16:09:11
Kann IFTTT denn nur JSON, oder ist das konfiguriertbar? Unterstützt IFTTT basic auth?
Titel: Antw:JSON direkt empfangen
Beitrag von: MarcP am 10 Juli 2017, 16:18:47
Das ist konfigurierbar, IFTTT unterstützt die Content Type application/json, application/x-www-form-urlencoded und text/plain.

Man kann die URL und den Body beliebig setzen, könnte also auch einfach einen Webserver mit definiertem CSRF-Token konfigurieren, und dann direkt per fhem?cmd=bla das Kommando ausführen.

Das ist so einfach, da bin ich garnicht drauf gekommen...

So kann man z.B. supereinfach Alexa einbinden, per IFTTT Rezept.

Danke für den Denkanstoß!!

Edit:
Also irgendwie so wie im Bild im Anhang.
Nur mal testen, ob der Webserver text/plain akzeptiert.

Edit2: Basic Auth sollte auch gehen, über die Syntax https://username:password@website.com
Titel: Antw:JSON direkt empfangen
Beitrag von: MarcP am 10 Juli 2017, 20:34:59
So, klappt tatsächlich super.

1. WEBhook Device:


define WEBhook FHEMWEB 8011 global
attr WEBhook closeConn 1
attr WEBhook csrfToken L0ngR4nd0m5tring
attr WEBhook csrfTokenHTTPHeader 0
attr WEBhook editConfig 0
attr WEBhook room 9-System
attr WEBhook title null
attr WEBhook webname webhook

define allowed_WEBhook allowed
attr allowed_WEBhook allowedCommands set,get
attr allowed_WEBhook basicAuth { "$user:$password" eq "username:password" }
attr allowed_WEBhook room 9-System
attr allowed_WEBhook validFor WEBhook


2. DynDNS an den Port weitergeleitet

3. irgendeinen Trigger im IFTTT registrieren, z.B. Alexa

4. IFTTT Maker Webhook als Action:
http://username:password@xyz.hopto.org:8088/webhook/?cmd=set%20HUEGroup0%20off&fwcsrf=L0ngR4nd0m5tring

Titel: Antw:JSON direkt empfangen
Beitrag von: justme1968 am 11 Juli 2017, 13:17:06
warum nimmst du für alexa den umweg über ifttt?

es gibt einen fhem skill und wenn du diemaus galaktische scheust ist sogar die ha bridge besser als sein fhem nach außen so frei zu geben.