JSON-Webhooks - Beispiele? (ggf. Home Assistant)

Hi,

Frage in die Runde: Hat jemand JSON-Webhooks im Einsatz und kann mal Beispielbilder posten (egal von was; Home Assistant würde mich aber am meisten interessieren)?

Ich verzweifle hier gerade an der RESTful API von Home Assistant (für die ich bisher (EDIT: Verbose Mode des Logs inzwischen gefunden) kein Error log gefunden habe) und will sicherstellen, dass das kein PEBKAC* Problem ist.

Mein Beispiel:

EDIT: Den fehlenden Backslash bei der URLhabe ich gerade gefunden - der löst das Problem aber auch nicht… :tired_face:

Edit 2: Damit kommen die Webhooks zumindest mal als Ereignis im HASS an, sie werden aber scheinbar nicht verarbeitet und führen zu keiner erwarteten Reaktion. Ich werde heute mal mit einem einfacheren Gerät testen ob es klappt…

Laut RESTful API Doku von Home Assistant kann ich keine Fehler entdecken.

Die Domain und die Services existieren (laut der Services API /api/services);

ebenso der Komponentenname (laut /api/config).

Hat jemand einen Hinweis (genereller Art), Beispiele (funktionierende JSON-Webhook-Beispielbilder) oder gar die Lösung meines spezifischen Problems?

*PEBKAC=Problem exists between keyboard and chair.

Danke :cry:

Hi,

Home Assistant nutze ich leider nicht, habe jedoch ein Homegramm im Einsatz mit dem ich einen Timer für unser WC-Licht steuere. Immer wenn im WC Bewegung festgestellt wird löst ein WebHook aus um den Timer wieder auf 120 Sekunden zu stellen. Wird 120 Sekunden keine Bewegung festgestellt geht das Licht wieder aus. Ausgehend von Deinem Screenshot würde ich sagen, dass Du da alles richtig machst und es von Homee Seite her genau so funktionieren sollte. Die Frage wäre dann als nächstes was beim HomeAssistent tatsächlich auch ankommt. Laut Dokumentation sieht das ja eigentlich okay aus.

Anbei der Screenshot von meinem funktionierenden POST request.

1 „Gefällt mir“

Das ist im Log im Verbose Mode:

2017-11-12 16:10:31 INFO (MainThread) [homeassistant.components.http] Serving /api/services/remote/send_command to 192.168.178.25 (auth: True)

homee ruft die API auf

2017-11-12 16:10:31 INFO (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=remote, service=send_command, service_data=command=PowerOn, entity_id=remote.harmony, device=40613107, service_call_id=1966468752-22>

–> Ist das der Fehler? (x=y=z) - muss dem JSON-Body - { “command” : “PowerOn”, “entity_id” : “remote.harmony”, “device” : “40613107” } - noch was vorangestellt werden?

2017-11-12 16:10:31 DEBUG (MainThread) [homeassistant.components.api] STREAM 1927888608 FORWARDING <Event call_service[L]: domain=remote, service=send_command, service_data=command=PowerOn, entity_id=remote.harmony, device=40613107, service_call_id=1966468752-22>
2017-11-12 16:10:31 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_executed[L]: service_call_id=1966468752-22>
2017-11-12 16:10:31 DEBUG (MainThread) [homeassistant.components.api] STREAM 1927888608 WRITING data: {“event_type”: “call_service”, “data”: {“domain”: “remote”, “service”: “send_command”, “service_data”: {“command”: “PowerOn”, “entity_id”: “remote.harmony”, “device”: “40613107”}, “service_call_id”: “1966468752-22”}, “origin”: “LOCAL”, “time_fired”: “2017-11-12T15:10:31.084552+00:00”}

–> Andererseits, hier sieht es wieder gut aus…

2017-11-12 16:10:31 DEBUG (MainThread) [homeassistant.components.api] STREAM 1927888608 FORWARDING <Event service_executed[L]: service_call_id=1966468752-22>
2017-11-12 16:10:31 DEBUG (MainThread) [homeassistant.components.api] STREAM 1927888608 WRITING data: {“event_type”: “service_executed”, “data”: {“service_call_id”: “1966468752-22”}, “origin”: “LOCAL”, “time_fired”: “2017-11-12T15:10:31.096840+00:00”}

@timow: Hast Du eine Idee?

Der Fehler liegt glaube ich nicht im Homee. Ich habe gerade mal den homeassistant run_on service per Webhook aufgerufen und das hat problemlos funktioniert.

Bei Dir im Log ist ja auch zu sehen, dass der Service aufgerufen wird. Ich sehe auch nicht, wo da ein Fehler sein soll. Ich habe leider keinen Harmony Hub, somit kann ich das leider nicht testen.

1 „Gefällt mir“

Hi,
wodurch ist der Call denn authentifiziert? Normalerweise werden dazu Auth-Infos im HTTP Header mit übertragen. Das kannst du mit einem Firefox mal ausprobieren… Homee überträgt diese erstmal nicht mit… musst du den Call vorher über die API authentifizieren?

Ne, auth ist explizit ausgesxhalten an der api…

Sicher?

Ich würde es trotzdem mal mit den DEV Tools von Firefox ausprobieren… auch, wenn es kein auth. Problem ist… da siehst du auch evtl. antworten…