Status von Tür/Fenster-Sensor via Webhook an die REST-API von openHAB übergeben

Guten Abend,

ich mache mich gerade mit den Webhooks von Homee und der REST-API von openHAB vertraut, und habe Probleme - diese REST-API Aufrufe in der Webapp von Homee abzubilden.

Gebe ich den Aufruf der oH2-API direkt in den Web-Browser ein oder rufe es via CURL auf, dann funktioniert es:

curl -X PUT --header “Content-Type: text/plain” --header “Accept: application/json” -d “OPEN” “http://192.XXX.XXX.XX:8080/rest/items/31_DoorWindow/state

In Homee ist der Webhook wie folgt konfiguriert:

URL: http://192.XXX.XXX.XX:8080/rest/items/31_DoorWindow/state
Methode: POST
Content-Type: text/plain
Body: Open

Trifft es zu, das Homme zur Zeit in Version 2.8 noch die Möglichkeit fehlt - den Header zu übergeben, wie zum Beispiel ?

Header: application/json

Es wäre äußerst wünschenswert, wenn die Webhooks von Homee analog openHAB besser dokumentiert würden und die Eingaben in der URL-Zeile der Webapp lesbar wären und nicht nach ca. 20 Zeichen abgeschnitten würden.

Danke & Gruß
Heiko

Edit 10.10.2016: Screenshot der oH2-REST-API

Guten Abend,

ich finde 59 Aufrufe ohne Rückmeldung etwas irritierend.

Zumindest von @Timo als Webentwickler hätte ich mir als Anwender eine Rückmeldung (insbesondere zum Darstellungsfehler der URL) erwünscht.

Es ist auch sehr deprimierend, das es von den @homee - Machern keine Rückmeldung zur API und Interoperatibilität mit anderen Systemen gibt. Ich denke mal, das es hier bei openHAB 2 mehr Unterstützung gibt:

Sobald es dort eine Lösung gibt, werde ich diese dann gerne hier mit der Homee-Community teilen.

Viele Grüße,
Heiko

Hallo Heiko,

in deinem Aufruf mit Curl verwendest du die Methode PUT, in homee jedoch POST. Außerdem ist der Text im Body einmal komplett groß geschrieben.

Den Header “application/json” kannst du bei Content Type aus einer Liste auswählen. Eigene Header lassen sich aktuell noch nicht hinzufügen.

Um dein Curl Aufruf in homee abzubilden, setze die Methode auf PUT und den Content Type auf “application/json”. Der Rest sieht in deinem Screenshot schon gut aus.

Grüße

Hallo @anon97065019,

vielen Dank für Deine Rückmeldung.

Die REST-API von openHAB erwartet die Übergabe des Status “OPEN” bzw. “CLOSED” in Großbuchstaben, ansonsten kann sie nicht geparsed werden:

{
  "error": {
    "message": "State could not be parsed: closed",
    "http-code": 400
  }

CURL im Terminal von OS X kommt an:

curl -X PUT --header “Content-Type: text/plain” --header “Accept: application/json” -d “CLOSED” “http://192.168.178.53:8080/rest/items/41_DoorWindow/state

17:24:26.073 [INFO ] [marthome.event.ItemStateChangedEvent] - 41_DoorWindow changed from CLOSED to OPEN

Eintragen hab ich die Werte in Homee nun wie im Screenshot:

Es kommt aber nach Aktion testen nichts bei der REST-API von openHAB an.

Wie könnte ich nun die Ausgabe von Homee im Terminal von OS X testen? Muss ich eventuell an meiner FritzBox 7490 Einstellungen vornehmen, damit diese Anweisung (Webhook) vom BrainCube überhaupt auf dem Mac ankommt?

Ich würde Homee und openHAB gerne ohne 2 externe Server wie IFTT und myOpenHAB in Verbindung bringen :wink:

Gruss
Heiko

Sorry, war im Urlaub :palm_tree:
Aber hier kann dir @anon97065019 sowieso besser helfen :slight_smile:

Mit netcat könntest du dir den Webhook einfach anzeigen lassen. (Sofern verfügbar unter OS X, evtl homebrew?)
Unter Linux sieht das so aus:

netcat -l 13337
<jetzt den webhook auslösen>
PUT / HTTP/1.1
Host: 127.0.0.1:13337
Accept: */*
Content-Type: text%2Fplain
Content-Length: 6

CLOSED

Und dabei fällt auf, dass der Content-Type fälschlicherweise url-encoded ist. Evtl liegt es ja daran. Wir werden das im nächsten Update beheben.

Ich habe gestern meine Hue Bridge erfolgreich mit OH2 über einen Raspberry verbinden können und nun spricht homee per Webhook mit OH2. So kann ich ohne den Zigbee Cube kostengünstig meine Philips und IKEA Lampen schalten.

1 „Gefällt mir“

Hättest Du hierzu vielleicht ein paar Beispiele wie Du das umgesetzt hast?

Wen sprichst du denn an ?
Was möchtest du denn genau wissen ?
VG

Ich meinte @madmax.

Eigentlich benötige ich nur einen Beispielwebhook der mit openHAB funktioniert.

Gut dann wissen wir es nun.:grinning:
Bei mir werkelt Node-RED und nicht OH2.
OH2 ab ich wieder abgestellt.
VG

Meine Hue werden über Node-Red und dem homee Plugin sowie dem wemo Plugin direkt in homee angesprochen.
Also wemo geschaltet und Hue geht an !

Ich habe es mittlerweile auch so gelöst wie @Micha

Danke für Eure Rückmeldung.

Ich habe nun auch das Node-Red Plugin für Homee heruntergeladen und wie beschrieben eingerichtet, allerdings erhalte ich dort immer nur Fehlermeldungen:

12 Nov 19:49:12 - [error] [homee:Homee] TypeError: Cannot read property ‚send‘ of null

Verbindet sich das Plugin mit homee?
Hast du deine Eingaben kontrolliert ?

Ich habe diesen Fehler bisher noch nie gehabt.

:thinking::thinking::thinking::thinking::thinking:

Danke - hatte noch ein http:// vor der IP des Homee rüber kopiert. Nun ist der Homee in Node-Red online.

Muss nun nur noch eine Brücke zu openHAB bauen, aber ich denke mal das ich nun den Missing-Link gefunden habe :slight_smile:

1 „Gefällt mir“

1 Jahr und 3 Monate später, ausgelöst durch ein HowTo von https://www.siio.de zur Anwesenheitserkennung habe ich es nun endlich geschafft, das Homee nun endlich über Webhooks auch mit anderen Plattformen wie openHAB “spricht” :slight_smile:

Da ich seit dem Kauf von Homee auf die kurz drauf versprochene Veröffentlichung der API gewartet habe, hängen nun alle Z-Wave-Geräte an einem Razberry und “sprechen” mit allen Systemen.

Nun kann ich den noch mit dem Brain-Cube gekoppelten Geräten endlich HomeKit-Kompatibilität zur Verfügung stellen.