homebridge-http-webhooks
-
-
Vielen Dank, hat mir sehr weiter geholfen. Jetzt funktioniert es!
Erschreckenderweise ist der von dir verlinkte Beitrag noch gar nicht so alt, tut mir leid das ich ein neues Thema diesbezüglich eröffnet und nicht die Suchfunktion genutzt habe.
Halb so wild. Ich falle gelegentlich auch noch der Suchfunktion zum Opfer

Freut mich dass es klappt!

Nun hänge ich schon wieder und finde nach stundenlanger Recherche einfach keine passende Lösung. Inzwischen läuft webhooks bei mir und ich habe mein ESP8266 eingebunden. Der entsprechende Schalter erscheint in meiner Home App.. Diesen kann ich auch betätigen und zwar ganz genau ein Mal. Dann erhalte ich einen Fehler und der Schalter springt in seine Ausgangsposition zurück. Der ESP hat aber geschalten, die Kommunikation klappt also in gewisser Weise. Wenn ich in die Homebridge Logfile sehe, erscheint folgendes:
CodeNov 29 22:36:32 Raspberry homebridge[22224]: [2019-11-29 22:36:32] [HttpWebHooks] Getting current state for 'switch1'... Nov 29 22:36:35 Raspberry homebridge[22224]: [2019-11-29 22:36:35] [HttpWebHooks] Switch state for 'switch1'... Nov 29 22:36:36 Raspberry homebridge[22224]: [2019-11-29 22:36:36] [HttpWebHooks] Request to 'http://192.168.2.201/light=false' finished with status code '-1' and body 'undefined'. Error: read ECONNRESET Nov 29 22:36:36 Raspberry homebridge[22224]: at TCP.onStreamRead (internal/stream_base_commons.js:201:27) { Nov 29 22:36:36 Raspberry homebridge[22224]: errno: 'ECONNRESET', Nov 29 22:36:36 Raspberry homebridge[22224]: code: 'ECONNRESET', Nov 29 22:36:36 Raspberry homebridge[22224]: syscall: 'read' Nov 29 22:36:36 Raspberry homebridge[22224]: }Soweit ich das richtig verstanden habe, beschreibt die Fehlermeldung einen abrupten Abbruch des ESP. Allerdings wüsste ich jetzt absolut nicht, was ich im Quelltext des ESP ändern sollte, ich kann einfach nichts finden. Oder liegt es etwa an der config.json? Dort hat sich seit meinem letzten Beitrag nicht viel geändert:
Code
Alles anzeigen{ "platform": "HttpWebHooks", "webhook_port": "51828", "cache_directory": "/var/homebridge/node-persist/storage", "switches": [ { "id": "switch1", "name": "Light name 1", "on_url": "http://192.168.2.201/light=true", "off_url": "http://192.168.2.201/light=false" } ] }In dem Beispiel-Code von webhooks sind noch einige weitere Optionen aufgeführt, zB:
Code"on_method": "GET", // (optional) "on_body": "{ \"on\" : true }", // (optional only for POST and PUT) "on_headers": "{\"Authorization\": \"Bearer ABCDEFGH\", \"Content-Type\": \"application/json\"}", // (optional)Habe ich hier noch etwas zu beachten? Einiges habe ich bereits ausprobiert (on_method: post), leider ohne Erfolg.
Habt ihr vielleicht eine Idee?
hi, ich nutze dieses plugin erst seit gestern. Allerdings verwende ich es nur in die Richtung, dass durch aufrufen einer url der Zustand angezeigt wird.
Wenn ich es richtig verstehe, möchtest du mit diesem Schalter auch Zustände verändern, oder?
Ich bin mir jetzt gar nicht sicher, ob dies hier mit diesem plugin möglich ist??
Ohne mich jetzt konkret auszukennen, evtl. ist dieses plugin auch noch eine Alternative??Hallo Kohle,
Genau, der Schalter spricht den Webserver meines ESP an und schaltet ein Relais. Das funktioniert wie gesagt eigentlich auch bis zu einem gewissen Grad: Sobald ich den Schalter betätige, zieht das Relais an, in der App fällt der Schalter (mit entsprechender Fehlermeldung) allerdings in die Ausgangsposition zurück. Irgendwie scheint es Kommunikationsprobleme zwischen der Homebridge und dem ESP zu geben und ich weis nicht, welches von beiden dafür verantwortlich ist. Darüber hinaus schalte ich dieses Relais über einen konventionellen Taster. Die Betätigung wird registriert und der Schalter in der App entsprechend angepasst. Dafür hatte ich bereits ein Thema geöffnet und du hast mich zu webhooks geführt
Das funktioniert wiederum sehr gut!Nach einem alternativen Plugin habe ich mich auch bereits umgesehen und werde morgen eventuell das von dir verlinkte ausprobieren. Wenigstens gibts es in der readme eine Erläuterung zu dem push und pull Prinzip, das hatte mir bei webhooks ein wenig gefehlt. Vielleicht sollte ich mich dann doch nochmal damit auseinander setzen, wobei ich aufgrund der Fehlermeldung denke, dass es am ESP liegen könnte.
Viele Grüße
Ich habe es jetzt doch noch mit dem Switch Plugin probiert und erhalte genau den selben Fehler:
Nun bin ich wirklich ratlos. Wenn ich die Adresse zum Schalten des Relais in den Webbrowser eingebe, funktioniert es. Nur im Zusammenhang mit der Bridge will es nicht klappen.
So langsam denke ich wirklich das es ein Netzwerkproblem gibt. Ist es relevant, dass PiHole noch auf dem Raspberry läuft?
Hallo, irgendwie ist bei mir auch der Wurm drin.
Könnte mir da mal ein Profi Unterstützung geben....Danke schon mal.
Nov 30 08:31:09 raspberrypi homebridge[22074]: [11/30/2019, 8:31:09 AM] [HttpWebHooks] Initializing HttpWebHooks platform...
Nov 30 08:31:09 raspberrypi homebridge[22074]: [11/30/2019, 8:31:09 AM] [HttpWebHooks] Initializing platform accessory 'Sensor1'...
Nov 30 08:31:09 raspberrypi homebridge[22074]: [11/30/2019, 8:31:09 AM] TypeError: Cannot read property 'sType' of undefined
Nov 30 08:31:09 raspberrypi homebridge[22074]: at parseServiceJSON (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/AccessoryLoader.js:103:26)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/AccessoryLoader.js:69:19
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Array.forEach ()
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Object.parseAccessoryJSON (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/AccessoryLoader.js:68:17)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Server._createAccessory (/usr/local/lib/node_modules/homebridge/lib/server.js:434:28)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Server. (/usr/local/lib/node_modules/homebridge/lib/server.js:413:32)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:16:19
Nov 30 08:31:09 raspberrypi homebridge[22074]: at HttpWebHooksPlatform.accessories (/usr/local/lib/node_modules/homebridge-http-webhooks/index.js:108:5)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Server._loadPlatformAccessories (/usr/local/lib/node_modules/homebridge/lib/server.js:403:20)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:341:16)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:90:36)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:59:10)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Module._compile (internal/modules/cjs/loader.js:799:30)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Module.load (internal/modules/cjs/loader.js:666:32)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at tryModuleLoad (internal/modules/cjs/loader.js:606:12)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Function.Module._load (internal/modules/cjs/loader.js:598:3)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at Function.Module.runMain (internal/modules/cjs/loader.js:862:12)
Nov 30 08:31:09 raspberrypi homebridge[22074]: at internal/main/run_main_module.js:21:11
Nov 30 08:31:09 raspberrypi homebridge[22074]: [11/30/2019, 8:31:09 AM] Got SIGTERM, shutting down Homebridge...Hier die Config:
},
{
"platform": "HttpWebHooks",
"webhook_port": "51828",
"cache_directory": "/var/homebridge/persist/",
"sensors": [{
"id": "sensor1",
"name": "Sensor1",
"type": "switch"
},
{
"id": "sensor2",
"name": "Sensor2",
"type": "motion"
}
]
}
]
}
Alles anzeigenHallo, irgendwie ist bei mir auch der Wurm drin.
Könnte mir da mal ein Profi Unterstützung geben....Danke schon mal.
Nov 30 08:31:09 raspberrypi homebridge[22074]: [11/30/2019, 8:31:09 AM] TypeError: Cannot read property 'sType' of undefined
Hier die Config:
},
{
"platform": "HttpWebHooks",
"webhook_port": "51828",
"cache_directory": "/var/homebridge/persist/",
"sensors": [{
"id": "sensor1",
"name": "Sensor1",
"type": "switch"
},
{
"id": "sensor2",
"name": "Sensor2",
"type": "motion"
}
]
}
]
}
Guten Morgen!
Einen Sensor vom Typen "switch" gibt es nicht - da wird das Problem liegen.
Guck dir am besten nochmal die Beispiel-Konfiguration vom Plugin an.So in der Art müsste es funktionieren:
Hier bin ich leider auch raus. Das einzigste, was ich festgestellt habe, das people-plugin hat in der Beispiel config auch den Port 51828 drin.Den Port hast du nicht schon in Verwendung? Ich vermute selbst schon nicht, sonst würde eine andere Fehlermeldung erscheinen.
Was für einen Router verwendest du?Guten Morgen,
das webhooks plugin ist abgesehen von dem webinterface bisher das einzige Plugin, welches ich installiert habe (seit gestern Abend auch den http-switch). Wir haben einen Speedport router der Telekom.. Ich glaube langsam auch das es irgendwie damit zusammenhängt, denn mir ist auch aufgefallen, dass die interne dns Auflösung nicht mehr funktioniert. Allerdings weis ich auch nicht, wie lange schon.. Ich wollte gestern nDNS auf dem ESP einbinden um diesen über einen Namen, statt einer IP anzusprechen.. Das hat nicht geklappt, denn wenn ich die Adresse anpinge erhalte ich: "unable to resolve host". Das Problem besteht auch, wenn ich "speedport.ip" in den Browser eintippe. Da ich es früher nie genutzt habe, weis ich wie gesagt auch nicht, wie lange es schon nicht geht (oder ob es überhaupt mal ging). Ich könnte mir vorstellen das es irgendetwas mit PiHole zu tun hat und konnte auch einen entsprechenden Vermerk in der Konfiguration finden. Leider hat eine Anpassung diesbezüglich auch nichts gebracht. Nun bereite ich gerade eine zweite SD karte für den Raspberry vor (ohne Pi Hole), auf der erstmal nur die Homebridge drauf kommt. Dann werde ich mich wohl mal um den Router kümmern müssen.
Mit Arduino kenne ich mich tatsächlich ganz gut aus, Hardwareentwicklung ist sogar mein Beruf.. Bei Software (mal abgesehen von Arduino) und Netzwerken bin ich allerdings raus, Raspberry ist tatsächlich Neuland für mich. Ich habe vor einigen Jahren mal das Ambilight für den TV nachgebaut, seitdem läuft das und wurde nie wieder angefasst. Im Moment habe ich allerdings etwas Zeit um mir neue Dinge anzueignen, bin also gespannt wie es weiter geht!
Viele Grüße
Hier bin ich leider auch raus. Das einzigste, was ich festgestellt habe, das people-plugin hat in der Beispiel config auch den Port 51828 drin.Den Port hast du nicht schon in Verwendung? Ich vermute selbst schon nicht, sonst würde eine andere Fehlermeldung erscheinen.
Was für einen Router verwendest du?Danke für die Infos,
jetzt läuft es erst mal, und der Befehl
http://192.168.178.xx:51777/?a…Id=sensor1&state=true
wird abgesetzt.
Jetzt hab ich leider noch ein kleines FritzBox Problem:
könnte hier nochmal jemand eine step by step Anleitung posten??
Und was genau soll ich bei DynDNS eintragen?
Danke schon mal.!!!
Wenn ich die url:
http://192.168.178.75:51777/?a…Id=sensor1&state=true
öffne wird im Explorer(Safari) auch
angezeigt.
Aber der sensor in der Home-APP reagiert nicht.
Leider komme ich mit den FritzBox-Einstellungen nicht ganz klar.
Arbeitest du mit einem ESP? Es handelt sich blos um einen Sensor, dh. in der APP wird nur angezeigt ob der Kontakt offen oder geschlossen ist?
Falls du mit dem ESP arbeitest, musst du den Zustand des Sensors im Sketch konfigurieren. Sobald er offen/geschlossen ist schickst du ein update an den Schalter bzw. Homebridge Server:
http://yourHomebridgeServerIp:webhook_port/?accessoryId=theAccessoryIdToTrigger&state=NEWSTATE
In meinem Fall wäre es also:
http://192.168.2.200:51828/?accessoryID=sensor1&state=true
oder
http://192.168.2.200:51828/?accessoryID=sensor1&state=false
Das müsstest du wie gesagt in deinem Sketch verarbeiten, ich kann dir da aber nur weiter helfen, falls du tatsächlich einen ESP oder ähnliches verwendest.
Ich habe mein Problem übrigens gelöst. Irgendwo ist tatsächlich der Wurm drin und es waren zwei "Fehler" in der Programmierung des ESP..
Zum einen hatte mich gestern schon folgende Fehlermeldung beschäftigt:
Hieß für mich: Webseite ist zwar da, besitzt aber keinen Inhalt (wusste nicht das es zum schalten von Relais relevant wäre). Allerdings hatte ich das gestern bereits schon berücksichtigt und der Seite nach dem Schaltvorgang einen entsprechenden Inhalt verpasst. Das zweite Problem war die statische IP des ESP. Sobald ich unseren Router als DNS eintrage, bekomme ich zwar meine statische Addresse (kann diese auch über den Webbrowser aufrufen), erhalte habe eine Fehlermeldung beim Schalten über die Home App.. Lasse ich den DNS Server einfach frei, bekomme ich trotzdem meine feste IP und es funktioniert plötzlich. Das in dem Zusammenhang mit der inhaltslosen Webseite war gestern wohl nicht so einfach zu knacken. Jetzt läuft alles und ich kann endlich richtig loslegen.
Viele Grüße
Alles anzeigenWenn ich die url:
http://192.168.178.75:51777/?a…Id=sensor1&state=true
öffne wird im Explorer(Safari) auch
angezeigt.
Aber der sensor in der Home-APP reagiert nicht.
Leider komme ich mit den FritzBox-Einstellungen nicht ganz klar.
Weiter oben hat krs1 die Step by step Anleitung für die Fritzbox drin. Wo hängst du genau? Portfreigabe hat funktioniert? Die DynDNS kannst glaub relativ schnell einstellen.
Ich würde mal im Fritzbox Menü unter Internet/ MyFritzKonto den Zugriff aus dem Internet aktivieren.
Dann unter Internet/Freigaben in Fritz!BoxDienste schauen, dort müsste auch stehen, dass der Internetzugriff aktiviert ist mit samt der Angabe der url......
In der gleichen Rubrik Internet/Freigaben dann noch in DynDNS wechseln.......
Ups... 🤔🤔🤔 Ich stelle gerade fest, dass ich DynDNS gar nicht aktiviert habe 🤪🤪
Es läuft aber auch so 😆😆
DnyDNS brauchst ja nur, dass wenn der Pi mal ne neue IP bekommt, der Port trotzdem über die Fritz-Adresse gesteuert werden kann....Bei mir funktioniert es komischerweise auch ohne Portfreigabe.
der request wird trotzdem ausgeführt.
Wenn ich jetzt über ifttt was programmiere, z.B.:
wenn: button
dann: webhooks,
url:http://192.168.178.xx:51777/?accessoryId=sensor2&state=true
Method:GET
Content Type: application/json
Body: bleibt leer
Passiert nix???
sorry für die vielen Fragen, ist mir alles bisschen zu hoch.

Du nimmst die interne IP der FritzBox.
Du benötigst die IP, welche du in der FritzBox unter Internet/Freigaben/FritzBoxDienste angegeben ist.
Ich würde den Port hier nicht veröffentlichen, sonst kann nachher jeder, der deine IP kennt und den Port kennt dich ärgern. Die URL kann von jedem eingegeben werden😜Was möchtest du denn überhaupt machen? Im Moment scheint doch die Portfreigabe und die Fritzbox zweitrangig zu sein, da du dich ja in deinem Heimnetz befindest (schließe ich mal daraus weil du sagtest, es geht ohne Portfreigabe). Mich wundert allerdings, dass du einen Button und einen Sensor erwähnst.
Möchtest du etwas Schalten oder etwas auslesen?