• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Homematic mittels Raspberry HomeKit fähig machen

Rais

Englischer Kantapfel
Registriert
23.12.03
Beiträge
1.094
Hintergrund: Es gibt etliche Hausautomatisierungen, jedoch standardmässig für Apps HomeKit sind noch etliche nicht kompatibel.


Warum der Beitrag: Kleine Erfahrungsmitteilung, wie einfach doch Brücken geschlagen werden können - als diese dient ein Minicomputer (Raspberry 3) mit der Software Homebridge, die genau diese Brücke aufbaut.


Verwendete Hardware/Umgebung:

  • Raspberry 3 (B)
  • Homematic Anlage mit eine CCU2 und entsprechenden Sendern/Sensoren
- Wifi Router (hier eine FritzBox 6490)

- Apple TV (neueste Version, ab iOS 10 HomeKit integriert)

- iPAD oder iPhone mit aktuellem iOS10 (Homekit Integration)


Verwendete Software:

- Debian (Linux) auf dem Raspberry

  • - homebridge
  • - homebridge-homematic
  • - libavahi
  • . nodejs
  • - iOS10


Anleitung zum Nachbau:


Debian auf den Raspberry installieren (empfohlen: Noobs). Dazu muss der Rechner an einen Monitor und Tastatur sowie Ethernet angeschlossen werden. relativ einfach mit Noobs: OK klicken oder <Return> drücken, das System installiert sich ohne weitere Zugabe.


Sobald dies fertig ist, kann der Raspberry von Tastatur und Monitor befreit werden. Weitere Bedienung erfolgt (in meinem Fall) über das Terminalprogramm am Mac.

Wissen muss man nur die IP Nummer des Raspberry, als weiteres Beispiel mal 192.168.1.1 genannt.


Im Terminal nun die Anmeldung mit folgendem Dialog starten:

ssh [email protected]

Jetzt wird man nach dem Passwort gefragt: raspberry (Standardpasswort)

Der Anmeldeprozess generiert einen Key, ist dieser von Vorversuchen schon vorhanden, so muss er über

ssh-keygen -R 192.168.1.1 neu generiert werden.


Jetzt sollte man den Raspberry noch die Zeit einstellen, das Passwort ändern und updaten. Übrigens viele der Befehle werden als sogenannter Superuser gestartet (SUDO), um hier nicht in Schreibrechte reinzutappen. Das (APT-GET) ist unter Debian eine Art Installationsprogramm für bereitgestellte Softwarepakete.


sudo dpkg-reconfigure tzdata (hier kann man dann die Zeitzone einstellen)

passwd (hier kann man ein neues Passwort erstellen)

sudo apt-get update (Aktuelle Updates laden)

sudo apt-get upgrade (Aktuelle Upgrades)


Zusatzpakete installieren:


wget https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-armv7l.tar.gz (lädt und installiert NodeJS)

tar -xvf node-v4.6.0-linux-armv7l.tar.gz

cd node-v4.6.0-linux.armv7l

sudo cp -R * /usr/local/

cd


sudo apt-get install libavahi-compat-libdnssd-dev (Apples Bonjour Funktionalität für HomeKit)


sudo npm install -g —unsafe-perm homebridge (Homebridge Software installieren)


Ab hier muss man nun für Homebridge eine Konfigurationsdatei erstellen. Dies macht man über den Editor "nano". Kniffelig für reine Apple-User ist dabei die Befehlsauswahl, das heisst Control-O für Speichern drücken und Control-X für Beenden des Editors. Freilich könnte man das auch mit Mac-Programmen wie dem Editor von XCode - wird aber in einem kleinen weiteren Beitrag "Raspberry mit dem Mac steuern" erst erläutert.


mkdir -p ~/.homebridge (erstellt ein verstecktes Verzeichnis)

sudo nano ~/.homebridge/config.json /öffnet den Editor und erstellt eine Konfigurationsdatei)


Im Editor wird dann folgendes Grundscript eingegeben:


{

"bridge": {

"name": "Homebridge",

"username": "CC:22:3D:E3:CE:30",

"port": 51826,

"pin": "123-45-678"

},

"accessories": [

],

"platforms": [

]

}


Mit Control-O wird es gespeichert und mit Control-X kommt man wieder aus dem Editor.
 

Rais

Englischer Kantapfel
Registriert
23.12.03
Beiträge
1.094
In der Datei stehen nun die 4 Attribute - der Name "Homebridge", der Accountname in Form einer MAC-Nummer, der Port 51826 sowie eine PIN mit freier Kombination von 8 Zahlen nach dem System ***-**-*** . Hiermit würde die Homebridge bereits stehen und man könnte sich, nachdem sie mittels:

homebridge

gestartet wurde, auch per iPhone an diese anmelden. Natürlich ist aber noch kein Endgerät angebunden.
So, wer das gemacht hat, muss im Terminal mit Control-C die Homebridge wieder beenden, um weiter zu machen….die Tücken von Unix. Damit die Homebridge im Hintergrund läuft und auch immer gestartet wird, erfolgen noch ein paar Zeilen:

sudo npm install forever -g
sudo nano /etc/init.d/homebridge (damit wird ein Script erstellt)

Hier nun folgendes einsetzen und dann wieder mit Control-O und Control-X speichern:
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for homebridge
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
PID=`pidof homebridge`
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
echo "Homebridge ist bereits gestartet"
else
su - pi -c "homebridge > /dev/null 2>&1 &"
echo "Homebridge gestartet"
$0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
echo "Homebridge ist nicht bereit"
else
kill $PID
echo "Homebridge beendet"
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
$0 start
else
$0 stop
$0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
echo "Homebridge gestartet unter PID $PID"
else
echo "Homebridgenicht bereit"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
 

Rais

Englischer Kantapfel
Registriert
23.12.03
Beiträge
1.094
Anschließend müssen noch ein paar Rechte eingeräumt werden:

sudo chmod 755 /etc/init.d/homebridge
sudo update-rc.d home bridge defaults

Ab hier führe ich nur Beispielhaft meine Anbindung an eine Homematic CCU2 an. Man kann sich unter homebridge über die vielen anderen Anbindungen im Netz informieren.

Installation der Erweiterung:

sudo npm install -g homebridge-homematic

Nun muss in der CCU2 selbst ein "Gewerk" erstellt werden, es heisst bei mir "Homekit". In dieses die Zuordnung der Schalter/Geräte/Sensoren/Öffner etc zufügen, die man an Homebridge freigeben will. Meine Beispiel CCU2 soll die IP Nummer 192.168.1.2 haben.

Die bereits am Anfang erstellte Konfigurationsdatei muss nun um die Platform "Homematic" ergänzt werden, das passiert wieder im nano-Editor:

sudo nano ~/.homebridge/config.json

{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "123-45-678"
},
"platforms": [{
"platform": "HomeMatic",
"name": "HomeMatic CCU",
"ccu_ip": "192.168.1.2",
"filter_device": [],
"filter_channel": [],
"outlets": [],
"doors": [],
"programs": [],
"subsection": ["Homekit"]
}]
}

Die Datei ist recht einfach gehalten, man hat hier natürlich die Möglichkeit Filter und ähnliches zu definieren. Mit Subsection wird das Gewerk benannt.

Um das Ganze zu starten, erboten wir dien Raspberry mit:

sudo reboot

Das wars…..nun einfach mit dem iPhone oder iPAD unter "Home" das HomeKit einrichten.