Shelly in Homebridge
- Voraussetzungen
- Installation
- Konfiguration von Komponenten
- Schlusswort
1. Voraussetzungen
Vorausgesetzt wird ein System auf welchem Homebridge (NodeJS) im Hintergrund laufen kann, z.B.: ein Raspberry PI, mit einer geeigneten Linux Distribution, wie in meinem Beispiel Rasbian Stretch Lite und SSH Zugriff.
2. Installation
sudo su
Raspberry PI 2+
Spoiler anzeigen
Raspberry PI 1 und Zero
Spoiler anzeigen
# update repos and install deps
apt-get update
apt-get install -y gcc g++ make python
# install node and npm
curl -Lsf "https://unofficial-builds.nodejs.org/download/release/v12.13.0/node-v12.13.0-linux-armv6l.tar.gz" | tar xzf - -C /usr/local --strip-components=1 --no-same-owner
# test node is working
node -v
npm install -g --unsafe-perm homebridge
npm install -g --unsafe-perm homebridge-config-ui-x
useradd -m --system homebridge
echo 'homebridge ALL=(ALL) NOPASSWD: ALL' | sudo EDITOR='tee -a' visudo
mkdir -p /var/lib/homebridge
Gesamten Code kopieren und in SSH einfügen
cat >/var/lib/homebridge/config.json <<EOL
{
"bridge": {
"name": "Homebridge",
"username": "CB:22:3D:E2:CE:31",
"port": 51826,
"pin": "033-44-254"
},
"accessories": [],
"platforms": [
{
"name": "Config",
"port": 8800,
"auth": "form",
"restart": "sudo -n systemctl restart homebridge",
"sudo": true,
"log": {
"method": "systemd"
},
"platform": "config"
}
]
}
EOL
Alles anzeigen
Gesamten Inhalt kopieren und in SSH einfügen
cat >/etc/systemd/system/homebridge.service <<EOL
[Unit]
Description=Homebridge
After=syslog.target network-online.target
[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=$(which homebridge) \$HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=3
KillMode=process
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_CHOWN CAP_FOWNER CAP_DAC_OVERRIDE CAP_AUDIT_WRITE CAP_SYS_ADMIN
AmbientCapabilities=CAP_NET_RAW
[Install]
WantedBy=multi-user.target
EOL
Alles anzeigen
Spoiler anzeigen
cat >/etc/default/homebridge <<EOL
# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/lib/homebridge -I
# If you uncomment the following line, homebridge will log more
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*
# To enable web terminals via homebridge-config-ui-x uncomment the following line
# HOMEBRIDGE_CONFIG_UI_TERMINAL=1
EOL
Alles anzeigen
chown -R homebridge: /var/lib/homebridge
systemctl daemon-reload
systemctl enable homebridge
systemctl start homebridge
IP Adresse des PI's herausfinden:
hostname -I
http://192.XXX.XXX.XX:8800 aufrufen und per admin, admin einloggen.
3. Konfiguration
Unter Plugins nach "Shelly Homebridge" suchen und "Installieren" klicken.
Nach erfolgreicher Installation gegebenfalls Homebridge neustarten damit alle Shellys automatisch erkannt werden.
Sobald unter Geräte die Shellys angezeigt werden, den QR Code unter "Status" mittels der Home App von Apple einscannen und die Geräte bezeichnen und Räumen zuweisen.
4. Schlusswort
folgt...