Erstellung eines Homebridge Plugins für HomeKit

So es läuft… Siri Befehle funktionieren auch… und die Aktionen werden sofort ausgeführt…

4 „Gefällt mir“

@Markus_Krueger

gäbe es auch die Möglichkeit das plugin für Rolladen zu erweitern?
Habe das jetzt mal mit dem switch gebaut…aber Rolladen aus und ein ist etwas doof :wink: funktionieren tut es aber…

Klar, da bin ich aber auf andere angewiesen, da ich keine Rollädensteuerung hab und somit nicht testen kann.
Ist ein Projekt auf github und jeder kann einen Pull request erstellen.

was auch immer pull request bedeutet…ich kann testen …:wink: Aber alles andere kann ich leider nicht :wink:

:slight_smile: ich kann das leider nicht entwickeln, solange ich kein gerät zum testen hab, so meine ich das :wink: blind entwickeln ist eher schlecht.

@Markus

kannst du mir mal kurz weiterhelfen…

ich habe zusätzlich jetzt noch das netamo Plugin eingebaut…leider zeigt es jetzt nur noch die Daten von Netamo an. Ich bin mir sicher, dass ich in der Jason was falsch gemacht habe…

Vielleicht kannst du oder jemand anderes mir den Fehler zeigen, so dass ich sowohl die switches als auch die Daten von Netamo angezeigt bekomme.

  {
    "bridge": {
            "name": "Homebridge",
            "username": "CC:22:3D:E3:CE:30",
            "port": xxxx,
            "pin": "xxxx"
    },
    "platforms": [{
            "platform": "netatmo",
            "name": "netatmo platform",
            "ttl": 5,
            "auth": {
                    "client_id": "xxxxxxxx",
                    "client_secret": "7xxxxxxxx",
                    "username": "xxxxxxx",
                    "password": "xxxxxxxx",
        
        
                    "platform": "HttpWebHooks",
                    "webhook_port": "xxxx",
                    "cache_directory": "./.node-persist/storage",
                    "sensors": [{
                            "id": "sensor1",
                            "name": "Haustür",
                            "type": "contact"
                    }],
                    "switches": [{
                            "id": "Licht ",
                            "name": "Licht ",
                            "on_url": "https://xxxx=TEST",
                            "off_url": "https://xxxxx=TEST%20Aus"
                    }, {
                            "id": "Wohnzimmerlicht",
                            "name": "Wohnzimmerlicht",
                            "on_url": "xxxxx"
                            "off_url": "xxxxxxx
                    }, {
                            "id": "Rolladen",
                            "name": "Rolladen",
                            "on_url": "xxxxxx&event=Rolladenauf",
                            "off_url": "xxxxxx&event=Rolladenzu"
                    }, {
                            "id": "TV",
                            "name": "Fernseher",
                            "on_url": "xxxxxx&event=tvan",
                            "off_url": "xxxxxx&event=tvaus"
                    }, {
                            "id": "Leuchte Esstisch",
                            "name": "Leuchte Esstisch",
                            "on_url": "xxxxxx&event=leuchtesideboard%2$
                            "off_url": "xxxxxx&event=leuchtesideboard%$
                    }, {
                            "id": "Leuchte Couch",
                            "name": "Leuchte Couch",
                            "on_url": "xxxxxx&event=leuchtecouch%20an",
                            "off_url": "xxxxxx&event=leuchtecouch%20au$


                    }]
            }
    }]

}

Im “Wohnzimmerlicht” fehlt nach der on_url ein Komma - “Leuchte Esstisch” ebenfalls, dann fehlen nonch ein paar Hochkomma…

Sorry… aber das Forum zerschiest das jedes Mal - jetzt Mal die Konfig:

{
"bridge": {
	"name": "Homebridge",
	"username": "CD:22:3D:E3:CE:30",
	"port": 51826,
	"pin": "031-45-154"
},

"description": "Your description.",

"platforms": [{
	"platform": "HttpWebHooks",
	"webhook_port": "51827",
	"cache_directory": "./.node-persist/storage",
	"switches": [{
		"id": "switch1",
		"name": "Stehlampe",
		"on_url": "https://homee",
		"off_url": "https://homee"
	}, {
		"id": "switch2",
		"name": "Alle Lampen",
		"on_url": "https://homee",
		"off_url": "https://homee"
	}]
}, {
	"platform": "netatmo",
	"name": "netatmo platform",
	"ttl": 5,
	"auth": {
		"client_id": "xxx",
		"client_secret": "xxx",
		"username": "username",
		"password": "pass"
	}
}],

"accessories": []

}

Bei dir stimmt was nicht in der Reihenfolge… Die zweite Plattform ist nicht von der ersten getrennt, auch wenn das dann ein gülter json ist…

Super , die Trennung hat gefehlt wischen den Plattformen!!!

Danke , das andere waren copy Fehler :wink:

Hallo @jens.lange.amberg, @fisch.

versuche gerade die Homebrige ohne Programmierkenntnisse zum Laufen zu bekommen. :scream: Gut, dass es das Internet gibt…

Aktuell hänge ich draran, was als “on_url”: “was kommt hier rein?” eingefügt werden muss?
Wenn ich den in Homee generierten Webhook nehmen, funktioniert die json und damit Homebridge nicht.
Danke vorab!

Grüße
Sebastian

Hi,

Wie sieht der Webhook am Ende aus? Sind da Leerzeichen drin?
Das wäre das einzige was den Json ggf. kaputt machen könnte… sonst passt das schon

Grüße

@CaptainL folgendes ist ein gültiger eintrag:

{
"id": "steckerfernseher",
"name": "Fernseher",
"on_url": "http://Homee:7681/api/v2/webhook_trigger?webhooks_key=THEKEY&event=fernseher_an",
"off_url": "http://Homee:7681/api/v2/webhook_trigger?webhooks_key=THEKEY&event=fernseher_aus"
}

Danke für Eure schnelle Rückmeldung. Aber irgendwie will es nicht. Könnt Ihr meinen Fehler finden?

{
"bridge": {
    "name": "Homebridge",
    "username": "XXXX",
    "port": 51826,
    "pin": "031-45-154"
},

"accessories": [
],

"platforms": [{
    "platform": "HttpWebHooks",
    "webhook_port": "51827",
    "cache_directory": "./.node-persist/storage",
    "switches": [{
            "id": "Switch1",
            "name": "Alle Lichter",
            "on_url": "http://Homee:7681/api/v2/webhook_trigger?webhooks_key=THEKEY&event=Alle_Lichter_an",
            "off_url": "http://Homee:7681/api/v2/webhook_trigger?webhooks_key=THEKEY&event=Alle_Lichter_aus"
    }]

}

Danke!

Das Ende ist falsch

	}]
}]

}

Da fehlt ein Block “}]”

:+1: Daran lags. Hab es mehrfach geprüft und nicht gesehen…
Muss mir das gleich nochmals genauer anschauen, warum das bei mir untergegangen ist.

Danke!

Dafür gibt es Automaten -> http://jsonlint.com/

Hab ich auch benutzt, hat aber immer einen Fehler in der “on_url”-Zeile angezeigt. Damit konnte ich leider nichts anfangen. Versuche das Problem aber nochmals zu reproduzieren, um daraus zu lernen. Wie gesagt, bin noch ein Greenhorn.

Aber schalten kann ich immer noch nicht. Wieder auf Fehlersuche…

Hi,

welche APP hast du denn auf das iPhone geladen?

On/Off im Browser geht?

Grüße

Die von Apple.

Was meinst Du mit ON/OFF im Browser? In der Homee Web-App? Gibt es sonst eine Möglichkeit?

Bevor ich mit den Webhooks rumexperimentiert habe, konnte ich die Homebridge bereits in der iOS App einrichten. Nach Zurücksetzen der App wird jetzt nichts mehr gefunden. Es kommt der Fehler:

[2016-12-29 18:52:27] Loaded plugin: homebridge-http-webhooks
[2016-12-29 18:52:27] Registering platform 'homebridge-http-webhooks.HttpWebHooks'
[2016-12-29 18:52:27] Registering accessory 'homebridge-http-webhooks.HttpWebHookSensor'
[2016-12-29 18:52:27] Registering accessory 'homebridge-http-webhooks.HttpWebHookSwitch'
[2016-12-29 18:52:27] ---
[2016-12-29 18:52:27] Loaded config.json with 0 accessories and 1 platforms.
[2016-12-29 18:52:27] ---
[2016-12-29 18:52:27] Loading 1 platforms...
[2016-12-29 18:52:27] Initializing HttpWebHooks platform...
[2016-12-29 18:52:27] Initializing platform accessory 'Alle Lichter'...
[2016-12-29 18:52:27] Started server for webhooks on port '51827'.
[2016-12-29 18:52:27] Loading 0 accessories...
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

┌────────────┐
│ 031-45-154 │
└────────────┘

events.js:141
  throw er; // Unhandled 'error' event
  ^

Error: listen EADDRINUSE :::51827
at Object.exports._errnoException (util.js:907:11)
at exports._exceptionWithHostPort (util.js:930:20)
at Server._listen2 (net.js:1250:14)
at listen (net.js:1286:10)
at Server.listen (net.js:1382:5)
at Object.HttpWebHooksPlatform.accessories (/usr/local/lib/node_modules/homebridge-   
http-webhooks/index.js:102:24)
at Server._loadPlatformAccessories (/usr/local/lib/node_modules/homebridge/lib/server.js:354:20)
at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:298:16)
at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:80:36)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:40:10)

Jemand ne Ahnung woran es liegen könnte?

Hi,

die URL aus dem JSON muss im Browser auch funktionieren.

http://Homee:7681/api/v2/webhook_trigger?webhooks_key=THEKEY&event=Alle_Lichter_an einfach im Browser testen. Dann sollten alle Lichter an gehen, die andere schaltet alles wieder aus.

Geht das?

Edit: Der Fehler oben bedeutet, dass der Port wohl noch belegt ist an der die Bridge hören soll. Raspberry? Dann einen Neustart… danach sollte es gehen, wenn nicht wäre auch ein Rechteproblem möglich

Grüße