Homebridge einrichten: Unterschied zwischen den Versionen

Aus FHEMWiki
(Formatierung geändert)
(Änderung 12672 von No Legend (Diskussion) rückgängig gemacht. Unnötige Verwendung von html Tags (br) entfernt. Diverse weitere Korrekturen.)
Zeile 1: Zeile 1:
Dieses HOWTO zeigt die Installation und Erstinbetriebnahme von Homebridge.


== Homebridge einrichten Zusammenfassung ==
Damit kann Siri benutzt werden, um FHEM-Devices zu steuern. So können Devices angesprochen werden, die offiziell HomeKit nicht unterstützen (die Vorgehensweise wurde auf einem Intel NUC mit Ubuntu Server 14.04 LTS und auf einem Raspberry Pi mit Raspian getestet).


Dieses HOWTO zeigt die Installation und Erstinbetriebnahme von Homebridge.<br/>
Um Homebridge erfolgreich zu installieren, müssen zunächst NPM, NodeJS, Python, g++, MDNS, sowie benötigte Hilfspakete installiert werden:
Damit kann Siri benutzt werden, um FHEM-Devices zu steuern. So können Devices angesprochen werden, die offiziell HomeKit nicht unterstützen.<br/>
(Die Vorgehensweise wurde auf einem Intel NUC mit Ubuntu Server 14.04 LTS und auf einem Raspberry Pi mit Raspian getestet.)


Um Homebridge erfolgreich zu installieren müssen zunächst NPM, NodeJS, Python, g++, MDNS, sowie benötigte Hilfspakete installiert werden:
Der WIKI-Eintrag bezieht sich hauptsächlich auf diese {{Link2Forum|Topic=32652|LinkText=Diskussion im FHEM-Forum}}. Ein Riesendank gilt vor allem {{Link2FU|430|Andre (justme1968)}}.
 
Der WIKI-Eintrag bezieht sich hauptsächlich auf die Diskussion im FHEM-Forum:
http://forum.fhem.de/index.php/topic,32652.0.html
Ein riesen Dank gilt vor allem '''justme1968'''


== NodeJS installieren ==
== NodeJS installieren ==
In der Konsole folgende Befehle eingeben:
In der Konsole folgende Befehle eingeben:
<pre style="width:50%;">
<pre style="width:50%;">
Zeile 20: Zeile 14:
sudo apt-get install build-essential libssl-dev
sudo apt-get install build-essential libssl-dev
</pre>
</pre>
UPDATE:
UPDATE: Homebridge funktioniert mit einer kleinen Einschränkung nun auch mit node 4.0.0. Laut
Homebridge funktioniert mit einer kleinen Einschränkung nun auch mit node 4.0.0
[https://github.com/cflurin/homebridge-shims/wiki/Minimalist-Homebridge-on-a-Raspberry-Pi Homebridge on a Raspberry Pi] müssen die folgenden Abhängigkeiten (Dependencies) aus der '''package.json''' entfernt werden:
Laut:
https://github.com/cflurin/homebridge-shims/wiki/Minimalist-Homebridge-on-a-Raspberry-Pi
 
müssen die folgenden Abhängigkeiten (Dependencies) aus der '''package.json''' entfernt werden:
<pre>
<pre>
"harmonyhubjs-client": "^1.1.4",
"harmonyhubjs-client": "^1.1.4",
Zeile 31: Zeile 21:
</pre>
</pre>


Damit es auf einem Raspberry schneller läuft wird darüber hinaus empfohlen auch diese Abhängigkeiten aus der '''package.json''' zu entfernen:


Damit es auf einem Raspberry schneller läuft wird darüber hinaus empfohlen auch diese Abhängigkeiten aus der '''package.json''' zu entfernen:<br/>
Vorher noch ein ein Backup der Datei anlegen  
Vorher noch ein ein Backup der Datei anlegen
<pre>cp package.json package.json.bkp oder sudo cp package.json package.json.bkp </pre>
<pre>cp package.json package.json.bkp oder sudo cp package.json package.json.bkp </pre>
Am einfachsten geht das entfernen mit dem Editor vi.
Am einfachsten geht das entfernen mit dem Editor vi.
<!-- Bist Du sicher, dass "vi" das Einfachste ist? Ist nicht auf vielen Linux Systemen
    mittlerweile auch der "nano" Editor drauf? Der dürfte eigentlich !noch! einfacher sein.
-->
<pre>vi package.json oder sudo vi package.json</pre>
<pre>vi package.json oder sudo vi package.json</pre>
Mit dem Curser vor die Entsprechende Zeile gehen und mit zwei mal Taste d (dd tippen) wir die Zeile gelöscht.<br/>
Mit dem Cursor vor die entsprechende Zeile gehen und mit zwei mal Taste d (dd tippen) wird die Zeile gelöscht.
Eventuell muss vi mit sudo vi aufgerufen werden, je nach verwendeter Distribution.<br/>
 
Gespeichert wir dann mit folgendem Ablauf: ESC :wq! Enter
Eventuell muss vi mit sudo vi aufgerufen werden, je nach verwendeter Distribution.
 
Gespeichert wird dann mit folgendem Ablauf: ESC :wq! Enter
<pre>
<pre>
"ad2usb": "git+https://github.com/alistairg/node-ad2usb.git#local",
"ad2usb": "git+https://github.com/alistairg/node-ad2usb.git#local",
Zeile 121: Zeile 116:
github.com[0: 192.30.252.128]: errno=Die Wartezeit für die Verbindung ist abgelaufen</pre>
github.com[0: 192.30.252.128]: errno=Die Wartezeit für die Verbindung ist abgelaufen</pre>
Fehlerursache konnte hier durch eine aktive Firewall verursacht werden.
Fehlerursache konnte hier durch eine aktive Firewall verursacht werden.


== Homebridge konfigurieren ==
== Homebridge konfigurieren ==
Zeile 129: Zeile 123:
</pre>
</pre>


Homebridge muss nicht, kann aber auf dem selben Server laufen wie FHEM.<br/>
Homebridge muss nicht, kann aber auf dem selben Server laufen wie FHEM.  
Unter "server" muss die IP des FHEM-Servers und unter "port" der benutzte Port des benutzten FHEMWEBS eingetragen werden.<br/>
 
Läuft der Homebridge Server auf dem gleichen Rechner wie FHEM kann die IP 127.0.0.1 benutzt werden.
Unter "server" muss die IP des FHEM-Servers und unter "port" der benutzte Port des benutzten FHEMWEBS eingetragen werden.
 
Läuft der Homebridge Server auf dem gleichen Rechner wie FHEM, kann die IP 127.0.0.1 benutzt werden.
 
WICHTIG: Damit nicht alle Devices von Homebridge berücksichtig werden, bietet es sich an, die Devices zu filtern.
 
In diesem Beispiel wurden alle Devices, die über Siri steuerbar sein sollen zusätzlich in den ROOM Homekit per FHEM eingerichtet.  


WICHTIG: Damit nicht alle Devices von Homebridge berücksichtig werden, bietet es sich an die Devices zu filtern.<br/>
In diesem Beispiel wurden alle Devices, die über Siri steuerbar sein sollen zusätzlich in den ROOM Homekit per FHEM eingerichtet.<br/>
Der PIN kann beliebig in dem Format xxx-xx-xxx angepasst werden. Dieser muss nur einmal bei der Einrichtung in iOS eingegeben werden.
Der PIN kann beliebig in dem Format xxx-xx-xxx angepasst werden. Dieser muss nur einmal bei der Einrichtung in iOS eingegeben werden.


Zeile 194: Zeile 192:


Hombridge sollte nun laufen.
Hombridge sollte nun laufen.
Hier kann die Kommunikation nachverfolgen.
Hier kann man die Kommunikation nachverfolgen.
Abbrechen kann das ganze mit ctrl +c.
Abbrechen kann das ganze mit ctrl +c.
Es sind keine Befehle mehr mit Siri möglich.
Es sind keine Befehle mehr mit Siri möglich.
Zeile 201: Zeile 199:


== Homebridge automatisch starten ==
== Homebridge automatisch starten ==
Eine Anleitung um die Homebridge automatisch zu starten findet sich hier:
Eine Anleitung um die Homebridge automatisch zu starten findet sich  
[https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi] oder
* hier: [https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi] oder
[http://www.meintechblog.de/2015/10/mit-siri-und-fhem-das-gesamte-smart-home-per-stimme-steuern/]<br/>
* [http://www.meintechblog.de/2015/10/mit-siri-und-fhem-das-gesamte-smart-home-per-stimme-steuern/]
 
Link 2 arbeitet mit den von Ubuntu bekannten Services. So ist es möglich mit z.B. sudo service homebridge start/stop/status
Link 2 arbeitet mit den von Ubuntu bekannten Services. So ist es möglich mit z.B. sudo service homebridge start/stop/status


== FHEM Device Einstellungen ==
== FHEM Device Einstellungen ==
Damit man mit Siri auch HM-CC-RT-DN Thermostate steuern kann, muss folgendes beachtet werden<br/>
Damit man mit Siri auch HM-CC-RT-DN Thermostate steuern kann, muss folgendes beachtet werden
1. HM-CC-RT-DN_Clima in den Homekit Raum hinzufügen<br/>
# HM-CC-RT-DN_Clima in den Homekit Raum hinzufügen
2. attr Subtype thermostat setzten.<br/>
# attr Subtype thermostat setzten.


== HomeKit in iOS einrichten ==
== HomeKit in iOS einrichten ==
Um FHEM über Homebridge in iOS nutzen zu können muss HomeKit eingerichtet werden. <br/>
Um FHEM über Homebridge in iOS nutzen zu können, muss HomeKit eingerichtet werden.  
 
Es gibt verschiedene Apps. Im folgenden wird die App EVE von Elgato empfohlen, die aus dem App-Store geladen werden muss.
Es gibt verschiedene Apps. Im folgenden wird die App EVE von Elgato empfohlen, die aus dem App-Store geladen werden muss.
In der App auf:
In der App auf:
Zeile 225: Zeile 224:
eingeben.
eingeben.


Im Anschluss können die Devices nach belieben in verschiedene Räume zugeteilt werden, sowie Szenen und Bereiche erstellt werden.
Im Anschluss können die Devices nach Belieben in verschiedene Räume zugeteilt werden, sowie Szenen und Bereiche erstellt werden.
 
== HomeBridge Allgemein ==
Nach allen Änderungen die in FHEM gemacht werden, welche Homebridge betreffen, muss Homebridge neu gestartet werden.


Der Neustart ist abhängig davon, wie man Homebridge gestartet hat.


== HomeBridge Allgemein ==
Nach allen Änderungen die in FHEM gemacht werden, welche Homebridge betreffen, muss Homebridge neu gestartet werden.<br/>
Der Neustart ist abhängig davon wie man Homebridge gestartet hat.<br/>
Bitte den entsprechenden Methoden entnehmen.
Bitte den entsprechenden Methoden entnehmen.


== Schalten mit Siri ==
== Schalten mit Siri ==
'''HolyMoly''' aus dem FHEM-Forum hat ein paar Beispiele gegeben, wie man Siri dazu bringt Devices zu schalten:
'''HolyMoly''' aus dem FHEM-Forum hat ein paar Beispiele gegeben, wie man Siri dazu bringt Devices zu schalten:
<pre style="width:50%;">
<pre style="width:50%;">

Version vom 27. Oktober 2015, 12:09 Uhr

Dieses HOWTO zeigt die Installation und Erstinbetriebnahme von Homebridge.

Damit kann Siri benutzt werden, um FHEM-Devices zu steuern. So können Devices angesprochen werden, die offiziell HomeKit nicht unterstützen (die Vorgehensweise wurde auf einem Intel NUC mit Ubuntu Server 14.04 LTS und auf einem Raspberry Pi mit Raspian getestet).

Um Homebridge erfolgreich zu installieren, müssen zunächst NPM, NodeJS, Python, g++, MDNS, sowie benötigte Hilfspakete installiert werden:

Der WIKI-Eintrag bezieht sich hauptsächlich auf diese Diskussion im FHEM-Forum. Ein Riesendank gilt vor allem Andre (justme1968) .

NodeJS installieren

In der Konsole folgende Befehle eingeben:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential libssl-dev

UPDATE: Homebridge funktioniert mit einer kleinen Einschränkung nun auch mit node 4.0.0. Laut Homebridge on a Raspberry Pi müssen die folgenden Abhängigkeiten (Dependencies) aus der package.json entfernt werden:

"harmonyhubjs-client": "^1.1.4",
"harmonyhubjs-discover": "git+https://github.com/swissmanu/harmonyhubjs-discover.git"

Damit es auf einem Raspberry schneller läuft wird darüber hinaus empfohlen auch diese Abhängigkeiten aus der package.json zu entfernen:

Vorher noch ein ein Backup der Datei anlegen

cp package.json package.json.bkp oder sudo cp package.json package.json.bkp 

Am einfachsten geht das entfernen mit dem Editor vi.

vi package.json oder sudo vi package.json

Mit dem Cursor vor die entsprechende Zeile gehen und mit zwei mal Taste d (dd tippen) wird die Zeile gelöscht.

Eventuell muss vi mit sudo vi aufgerufen werden, je nach verwendeter Distribution.

Gespeichert wird dann mit folgendem Ablauf: ESC :wq! Enter

"ad2usb": "git+https://github.com/alistairg/node-ad2usb.git#local",
"carwingsjs": "0.0.x",
"chokidar": "^1.0.5",
"eibd": "^0.3.1",
"elkington": "kevinohara80/elkington",
"harmonyhubjs-client": "^1.1.4",
"harmonyhubjs-discover": "git+https://github.com/swissmanu/harmonyhubjs-discover.git",
"lifx-api": "^1.0.1",
"lifx": "git+https://github.com/magicmonkey/lifxjs.git",
"node-hue-api": "^1.0.5",
"node-icontrol": "^0.1.4",
"node-milight-promise": "0.0.x",
"tough-cookie": "^2.0.0",
"sonos": "0.8.x",
"telldus-live": "0.2.x",
"teslams": "1.0.1",
"unofficial-nest-api": "git+https://github.com/hachidorii/unofficial_nodejs_nest.git#d8d48edc952b049ff6320ef99afa7b2f04cdee98",
"wemo": "0.2.x",
"wink-js": "0.0.5",
"komponist" : "0.1.0",
"yamaha-nodejs": "0.4.x",

Das Konfig file sollte dann wie folgt aussehen: Achtung vor den letzten zwei } am Ende dar kein Komma sein.

{
  "name": "homebridge",
  "description": "HomeKit support for the impatient",
  "version": "0.1.1",
  "scripts": {
    "start": "DEBUG=* node app.js || true"
  },
  "repository": {
    "type": "git",
    "url": "git://github.com/nfarina/homebridge.git"
  },
  "license": "ISC",
  "dependencies": {
    "async": "^1.4.2",
    "color": "0.10.x",
    "debug": "^2.2.0",
    "hap-nodejs": "^0.0.2",
    "isy-js": "",
    "mdns": "^2.2.4",
    "netatmo": "1.3.0",
    "node-cache": "3.0.0",
    "node-persist": "0.0.x",
    "node-xmpp-client": "1.0.0-alpha23",
    "q": "1.4.x",
    "queue": "^3.1.0",
    "request": "2.49.x",
    "xml2js": "0.4.x",
    "xmldoc": "0.1.x"
  }
}


Python, g++, MDNS installieren

sudo apt-get install python
sudo apt-get install g++
sudo apt-get install libavahi-compat-libdnssd-dev

Homebridge installieren

Dazu im Homeverzeichnis

git clone https://github.com/nfarina/homebridge.git
cd homebridge
npm install

eingeben.

ERR während der Installation

Bei folgendem Fehler ist das abrufen von Github nicht möglich.

npm ERR! git clone --template=/home/hs-server-admin/.npm/_git-remotes/_templates --mirror 
git://github.com/KhaosT/ed25519.git /home/hs-server-admin/.npm/_git-remotes/git-github-com-KhaosT-ed25519-git-d8bdee1d: 
github.com[0: 192.30.252.128]: errno=Die Wartezeit für die Verbindung ist abgelaufen

Fehlerursache konnte hier durch eine aktive Firewall verursacht werden.

Homebridge konfigurieren

Im Verzeichnis ~/homebridge/ muss nun noch die Config.json erstellt bzw. angepasst werden:

nano config.json

Homebridge muss nicht, kann aber auf dem selben Server laufen wie FHEM.

Unter "server" muss die IP des FHEM-Servers und unter "port" der benutzte Port des benutzten FHEMWEBS eingetragen werden.

Läuft der Homebridge Server auf dem gleichen Rechner wie FHEM, kann die IP 127.0.0.1 benutzt werden.

WICHTIG: Damit nicht alle Devices von Homebridge berücksichtig werden, bietet es sich an, die Devices zu filtern.

In diesem Beispiel wurden alle Devices, die über Siri steuerbar sein sollen zusätzlich in den ROOM Homekit per FHEM eingerichtet.

Der PIN kann beliebig in dem Format xxx-xx-xxx angepasst werden. Dieser muss nur einmal bei der Einrichtung in iOS eingegeben werden.

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

    "platforms": [
        {
            "platform": "FHEM",
            "name": "FHEM",
            "server": "192.168.xxx.xxx",
            "port": "8083",
            "filter": "room=Homekit",
            "auth": {"user": "FhemUser", "pass": "XXX"}
        }
     ],

    "accessories": []
}

Achtung: Für ein FHEM Web Interface mit SSL Zertifikat muss die config wo folgt aussehen:

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

    "platforms": [
        {
            "platform": "FHEM",
            "name": "FHEM",
            "server": "192.168.xxx.xxx",
            "port": "8083",
            "filter": "room=Homekit",
            "ssl": "true",
            "auth": {"user": "FhemUser", "pass": "XXX"}
        }
     ],

    "accessories": []
}

Homebridge starten

Wieder im Verzeichnis ~/homebridge/

npm run start

Hombridge sollte nun laufen. Hier kann man die Kommunikation nachverfolgen. Abbrechen kann das ganze mit ctrl +c. Es sind keine Befehle mehr mit Siri möglich.

Damit Siri auch Befehle ohne ständig offenes Terminal bearbeiten kann, bitten nächsten Punkt beachten.

Homebridge automatisch starten

Eine Anleitung um die Homebridge automatisch zu starten findet sich

Link 2 arbeitet mit den von Ubuntu bekannten Services. So ist es möglich mit z.B. sudo service homebridge start/stop/status

FHEM Device Einstellungen

Damit man mit Siri auch HM-CC-RT-DN Thermostate steuern kann, muss folgendes beachtet werden

  1. HM-CC-RT-DN_Clima in den Homekit Raum hinzufügen
  2. attr Subtype thermostat setzten.

HomeKit in iOS einrichten

Um FHEM über Homebridge in iOS nutzen zu können, muss HomeKit eingerichtet werden.

Es gibt verschiedene Apps. Im folgenden wird die App EVE von Elgato empfohlen, die aus dem App-Store geladen werden muss. In der App auf:

Gerät hinzufügen

Es sollte ein Gerät mit der Bezeichnung "Homebridge" zur Auswahl erscheinen. Zur Ersteinrichtung auf PIN manuell eingeben gehen und (falls in der config.json nicht geändert):

031-45-154

eingeben.

Im Anschluss können die Devices nach Belieben in verschiedene Räume zugeteilt werden, sowie Szenen und Bereiche erstellt werden.

HomeBridge Allgemein

Nach allen Änderungen die in FHEM gemacht werden, welche Homebridge betreffen, muss Homebridge neu gestartet werden.

Der Neustart ist abhängig davon, wie man Homebridge gestartet hat.

Bitte den entsprechenden Methoden entnehmen.

Schalten mit Siri

HolyMoly aus dem FHEM-Forum hat ein paar Beispiele gegeben, wie man Siri dazu bringt Devices zu schalten:

"Schalte alle Lampen im Obergeschoss ein."
"Schalte Chloes Licht aus."
"Dimme das Licht in der Küche."
"Dimme das Licht im Esszimmer auf 50 %."
"Stelle das Licht in der Küche am hellsten ein."
"Stelle die Temperatur im Tahoe-Haus auf 22 °C ein."
"Stelle das Thermostat im Erdgeschoss auf 21 °C ein.
"Schalte den Drucker im Büro ein."
"Siri, bereite alles für eine Party vor."
"Bereite das Ambiente fürs Abendessen vor."
"Aktiviere den Nachtruhemodus."

Mittlerweile kann Siri auch noch die Lichtfarbe von LEDs ändern.