Hauptmenü

JSON direkt empfangen

Begonnen von MarcP, 10 Juli 2017, 15:34:00

Vorheriges Thema - Nächstes Thema

MarcP

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 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
Javascript Charts für FHEM mit Chart.js: https://git.io/JeoJV

DeeSPe

HTTPMOD kann doch z.B. JSON abrufen und verarbeiten...

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

MarcP

Hallo,

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
Javascript Charts für FHEM mit Chart.js: https://git.io/JeoJV

dev0

Kann IFTTT denn nur JSON, oder ist das konfiguriertbar? Unterstützt IFTTT basic auth?

MarcP

#4
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
Javascript Charts für FHEM mit Chart.js: https://git.io/JeoJV

MarcP

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

Javascript Charts für FHEM mit Chart.js: https://git.io/JeoJV

justme1968

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

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