Installationsanleitung: Homebridge Installation unter ESXI für IPS4 / Siri integratio

Hallo,

da der folgende Thread schon ellenlang ist und mitunter sicherlich einige Informationen untergehen versuche ich mich an einer Installationsanleitung:

Apple HomeKit: Anbindung an IPS auf Basis der HomeBridge von nfarina

Bitte Postet nicht hier in dem Thread, sondern in dem vorgenannten Thread und bezieht auf diesen Thread und die Postnummer.

Ich beziehe mich hier nicht auf den PI, da ich einen ESXI laufen habe setze ich eine VM ein.

Noch einen kleinen Tip, macht nach jedem „Meilenstein“ einen Snapshot machen - sollte was nicht funktionieren kann man ohne Probleme zurückspringen (auch z.B. vor Updates). Sollten die Snapshot nicht mehr gebraucht werden, dann jedoch bitte löschen, da diese das System ausbremsen.

Diese Seite ist im Aufbau und wird sukzessive erweitert.

P.s.: Bis auf Zugangsdaten verwende ich hier Echtdaten - denke meine Infrastruktur sollte gut genug geschützt sein und wenn nicht - dann habe ich sowieso was falsch gemacht in der Sicherheitskonfiguration und habe das dann einfach mal nicht besser verdient :).

Vielen Dank.

Vorbereitungen:

Bitte ladet das Netinstallimage von hier (Debian 8.4 amd64):

Installing Debian via the Internet

Link:

http://cdimage.debian.org/debian-cd/8.4.0/amd64/iso-cd/debian-8.4.0-amd64-netinst.iso

Kopiert das ISO in eurem Datenspeicher, ich habe einen Installordner wo ich Installationsimages ablege.

Einrichten der VM:

Fortsetzung:

Installation:

Bildschirmfoto 2016-05-15 um 17.45.47.png

Fortsetzung:

Fortsetzung:

Erstkonfiguration:

Als erstes fehlte mit der „sudo“:

Mit root anmelden und dann apt-get install sudo eingeben.

Danach noch die /etc/sudoers erweitern:

Unter root ALL=(ALL:ALL) ALL noch folgendes hinzufügen:

homebridge ALL=(ALL:ALL) ALL

Danach habe ich mir eine feste IP zugeordnet:

Mit vi oder nano die /etc/network/interfaces editieren und folgendes ändern:

Vorher:
iface eth0 inet dhcp

Nachher:
iface eth0 inet static
address 192.168.40.16
broadcast 192.168.40.255
netmask 255.255.255.0
gateway 192.168.40.254

DNS anpassen:

Mit vi oder nano die /etc/resolv.conf anpassen falls erforderlich (bei mir nicht nötig gewesen, da die per DHCP zugewiesenen Optionen brauchbar waren):

domain leibling.local
search leibling.local
nameserver 192.168.40.2
nameserver 192.168.40.254

Sicherheitshalber einmal komplett durchstarten lassen (die 10 Sekunden gönne ich mir mal):

init 6

Die Grundkonfiguration ist fertig, wenn ich mögt macht am besten erstmal einen Snapshot - dann könntet ihr noch mal neu anfangen wenn was sein sollte. Dauert nur ein paar Sekunden.

Zur Information: Ich beziehe mich hiermit auf die Installationsanleitung, die in dem oben genannten Thread in Post 160 beschrieben wird. Dort werden die einzelnen Punkte ausführlich erklärt!

Nun kann es mit der Homebridge losgehen, da ich SSH installiert habe und Netzwerk konfiguriert habe, kann ich nun bequem mit Copy&Paste arbeiten.

Dazu rufe ich am Mac einen Terminal auf (unter Windows sollte Putty gehen) und gebe folgendes ein:

ssh <IP> -l<username> - also ssh 192.168.40.16 -lhomebridge (kleine L, gefolgt vom Usernamen ohne Leerzeichen)

Nun kommen folgende Befehle Zeile für Zeile einzeln:

sudo apt-get install libavahi-compat-libdnssd-dev
sudo apt-get install libkrb5-dev
sudo wget -qO- https://deb.nodesource.com/setup_5.x | sudo bash -
sudo apt-get install nodejs
sudo apt-get install build-essential
sudo apt-get install git

[i]sudo npm install -g homebridge
sudo npm install -g homebridge-symcon

mkdir -p .homebridge
cd .homebridge[/i]

Mit vi oder nano die Datei config.json erstellen mit den folgenden Inhalt:

[i]{
„bridge“: {
„name“: „Homebridge“,
„username“: „CC:22:3D:E3:CE:30“,
„port“: 51826,
„pin“: „031-45-154“
},

"description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",

"platforms": [
    {
        "platform" : "Symcon",
        "name" : "Symcon",
        "rpcClientOptions": {
            "port": 3777,
            "host": "127.0.0.1",
            "path": "/api/",
            "login": "username",
            "hash": "clear text password",
            "strict": true
        }
    }
]

}[/i]

Statt host bitte die IP eures IPS Servers eintragen, username ist die Emailadresse die ihr auch in eurer IPS Lizenz verwendet habt oder für den Fernzugriff und bei hash das Kennwort in Klartext (bitte nicht in base64 oder ähnliches wie in dem oben genannten Thread geschrieben).

Danach noch in der Datei /usr/lib/node_modules/homebridge-symcon/package.json folgende Änderung:

Die Zeile:

„homebridge“: „^0.2.0“,

Ändern in:

„homebridge“: „^0.3.0“,

ToDo nach IPS Konfiguration:
Änderungen ab Zeile 317?
Homebridge starten

Nun geht es erstmal auf IPS Seite weiter - ihr benötigt dazu IPS Version 4. Macht bei solchen Änderungen am besten vorher ein Backup!

Ich beziehe mich hier auf den oben genannten Thread auf Posts 160 und 506, dieser sind ausführlicher - hier nur die Zusammenfassung!

Öffnet die Console und geht in die Baumansicht.
Geht zu Kern Instanzen und macht einen Doppelklick auf Modules.
Klickt oben rechts auf den Hinzufügen Button.
Eingeben von git://github.com/w-andre/symcon-php-homekit.git und ok klicken.
Erstellt nun im Verzeichnisbaum einen Ordner (Kategorie) Homekit.
In dieser Kategorie erstellt ihr eine Instanz vom Typ HomeKit-Accessory:

Wählen sie nun erstmal ein Gerät vom Typ Light Bulb aus:

Gehen Sie zurück in den Objektbaum und benennen die das neue Objekt um in einen Aussagekräftigen Namen und öffnen Sie es mit einem Doppelklick:

Wählen Sie die Statusvariable zu dem existierenden Gerät und Speichern sie die Einstellungen mit übernehmen.

Nun könnt ihr eure Homebridge starten. Gebt dazu im SSH Fenster oder direkt in der VM mit dem angemeldeten Benutzer homebridge einfach den Befehl homebridge ein.

Sollte das Ergebnis so aussehen, dann seid ihr soweit startklar.

Die oberen Fehlermeldungen sind „normal“ und stören nicht.

Nun kommt die Konfiguration im iPhone. Dazu benötigen wir eine App um unser „Zuhause“ einrichten zu können und die Geräte zuordnen zu können.

Ladet dazu die App „Elgato Eve“ aus dem Appstore und startet diese.

Erlaubt den Zugriff auf die HomeDaten und geht auf Gerät hinzufügen.

Wählt euer HomeKit-Accessory Instanz aus und gebt den Code manuell ein (Fotografieren hat bei mir nicht geklappt, mache aber auch die Einrichtung nachts im dunklen Zimmer). Kommt ein Hinweis das ihr auch nicht zertifizierte Geräte nutzen möchtet, erlaubt dies natürlich.

Da ich meine Räume schon mit der App MyTouchHome eingerichtet habe (Kostenpunkt 1,99€ - wurde jedoch auch in anderen Foren mehrfach empfohlen) kann ich hier direkt den Raum auswählen.

Bearbeitet nun den Eintrag damit Siri besser damit zurecht kommt (klickt auf das Zahnrad und ändert die Werte - vorher Stand unten "Bad-Deckenleuchte - HomeKit-Accessory, nun steht dort Licht - HomeKit-Accessory):

Und fertig ist die Siri Haussteuerung:

Für heute ist es erstmal genug - es kommen aber noch einige Punkte sobald wieder Zeit ist … nun kommt erst mal der Interessante Teil - einrichten der Geräte zur Steuerung mit Siri.

ToDo:

Homebridge als Dienst einrichten, Autostart VM
Weitere Benutzer einladen (Hinweis: Nur einmal Pairen, weitere Einladen)
Steuerung von Unterwegs (Stichworte: ATV, iCloud Emailadresse, Schlüsselbund Freigabe)
Tipps für Weitere Möglichkeiten (Stichworte: Homematic direkt, Sonos usw.)
Stichworte für Hauptthread.

Steuern über die Apple Watch geht ebenfalls, jedoch ist es sehr träge bis alleine der Befehl verstanden wird - das geht auf dem iPhone wesentlich schneller.

IMG_3499.PNG

Installation der VMWare Tools.

Bei Bedarf einen aktuellen Snapshot erstellen.
Die Homebridge mit STRG + C beenden.
Mit su und Kennwort auf Root wechseln.
Installieren mit:
apt-get install open-vm-tools
reboot

Anschließend wird angezeigt das die VMWare Tools (bzw. Open Source Implementierung installiert ist).

Nicht vergessen wieder die Homebridge zu starten und den Snapshot später zu löschen wenn nicht mehr benötigt.

Nun noch der Autostart, damit auch das System verfügbar bleibt:

Öffnet den vSphere Client und wählt oben Home > Bestandsliste > Bestandsliste.

Dann links euren Host und auf mittleren Auswahl dann VM Starten / Herunterfahren.

Anschließend rechts oben auf Eigenschaften.

Falls der automatische Start nicht aktiviert ist, dann aktiviert ihn und markiert eure Homebridge VM und mit dem Button nach oben dann hoch in den Bereich automatischer Start.

Anschließend richten wir noch die Homebridge als Dienst in der VM ein (danke hier an CryGenID für den Tip):

Meldet auch auf der VM als root an.

Erstellt mit VI oder nano das folgende Script:

/etc/systemd/system/homebridge.service

mit folgenden Inhalt:

[i][Unit]
Description=Homebridge

[Service]
Type=simple
ExecStart=/usr/bin/homebridge > /dev/null 2>&1 &
User=homebridge
Group=root
Restart=on-failure
RestartSec=5
StartLimitInterval=60s
StartLimitBurst=3

[Install]
WantedBy=multi-user.target[/i]

Update 16.6.16:
Joachim hat noch einen Fehler gefunden!
Bitte ändert in der Datei SymconAccessory.js in der Zeile 279 den Wert von:
service.getCharacteristic(hapCharacteristic)
in:
service.getCharacteristic(hapCharacteristic).setProps({minValue: -30})
Update ende

Dann in der Console noch folgende Befehle nacheinander eingeben. Solltet ihr Homebridge gestartet haben beendet es natürlich.

chmod 644 /etc/systemd/system/homebridge.service
systemctl daemon-reload
systemctl enable homebridge.service

Mit systemctl start homebridge.service oder systemctl stop homebridge.service startet bzw. beendet ihr diesen Dienst. Wenn ihr die VM mit init 6 neustartet seht ihr direkt das der Autostart funktioniert.

Einen Tip zwischendurch, falls ihr mal euer System zurücksetzen müsst (z.B. wenn neue Geräte auch nach Dienstneustart nicht mehr gefunden werden).

Beendet den Homebridge Dienst (entweder mit systemctl stop homebridge.service oder wenn ihr das nicht als Dienst laufen habt einfach mit STRG + C). Solltet ihr keine Rechte haben, dann davor ein sudo und anschließend das Rootkennwort.

Geht auf das iPhone unter Datenschutz > HomeKit > Zurücksetzen.

Anschließend dann auf der VM mit dem User Homebridge anmelden und dann im Homeverzeichnis cd ./homebridge/persist und mit rm * alle Dateien löschen.

Dann wieder Homebridge starten und mit er App (z.B. Eve) wieder alles einrichten.

Hinzufügen eines weiteren Gerätes.

Ein weiteres Gerät mit dem eigenen iCloud Account sollte direkt funktionieren (ansonsten mal in den Einstellungen schauen ob bei HomeKit iCloud aktiviert und das eigene Zuhause angezeigt wird), andere Geräte werden nicht „gepaired“ sondern eingeladen.

Gehen Sie dazu wie folgt vor:

Öffnen Sie z.B. die Eve App.
Wählen sie oben das Zahnrad oben rechts.
Klicken Sie auf Gastzugriff.
Schauen Sie das alle Gerät ausgewählt und erreichbar sind.
Klicken Sie dann auf Personen einladen.
Geben Sie die Adresse ein (am besten eine iCloud.com Adresse) und wählen Hinzufügen oben rechts.
Auf dem anderen Gerät wird eine Einladung angezeigt und diesen dann annehmen.
Danach sollte das mit Siri auch auf den anderen Gerät klappen.

Ich habe laut eurer tollen Anleitung die homebridge zum laufen gebracht und zwar auf einem Rapsberry Pi.
Symcon läuft auf dem selben Gerät, Instanzen werden auch gefunden, jedoch wird immer erst der Status gelesen, und das klappt nicht!

[2017-01-08 15:08:44] [Symcon] 31282: Calling JSON-RPC method HKSLightBulb_GetValue with params [35339,„On“,„Boolean“,false,-1]
[2017-01-08 15:08:44] [Symcon] 31282: Called JSON-RPC method ‚HKSLightBulb_GetValue‘ with response: „“
[2017-01-08 15:08:44] [Symcon] 31282: callback…

Wenn ich mit der EVE App arbeite kommt ein _SetValue und damit reagiert auch die Lampe, der neue Status wird aber auch nicht zurückgegeben.

Sieht also aus als ob die Kommunikation Homebridge -> Symcon funktioniert, jedoch Symcon -> Homebridge nicht.

Weiss jemand woran das liegen könnte?