Homebridge via Docker installeren op een Raspberry Pi

Met behulp van Homebridge is het mogelijk om apparaten die niet Homekit compatible zijn toe te voegen aan de iOS Woning app. Hierdoor kun je ze besturen via de woning app of met behulp van Siri commando's.

Heb je bijvoorbeeld een Sonos speaker of Nest thermostaat dan kun je deze met behulp van Homebridge via de Woning app en Siri aansturen. Op dit moment zijn er honderden plugins beschikbaar waarmee je allerlei apparaten kunt toevoegen aan Homekit (bijvoorbeeld de Nest thermostaat, Klikaanklikuit, sonoff, etc).

Tot voor kort was de installatie van Homebridge op een Raspberry Pi vrij lastig. Door gebruik te maken van Docker is de installatie een stuk simpeler geworden en kun je binnen 15 minuten je eigen Homebridge server hebben draaien.

We leggen stap voor stap uit hoe je de Homebridge kunt installeren. Na de voltooide installatie kun je via een web-interface de Homebridge beheren en plugins voor apparaten toevoegen.

Raspberry Pi voorbereiden

Je kunt Homebridge installeren op iedere Raspberry Pi vanaf model B, inclusief de Rapsberry Pi Zero W.

Zorg ervoor dat de laatste versie van het Raspbian Stretch Lite op de Raspberry is geïnstalleerd, deze verbonden is met het netwerk en dat SSH is geactiveerd. Hoe je dit kunt doen, lees allemaal hier terug:


Beginners handleiding: Een Raspberry Pi installeren

Als de Raspberry Pi is geïnstalleerd kunnen we verder gaan met de de Docker en Homebridge installatie.

Docker Installeren

Hierna gaan we Docker installeren op de Raspberry Pi, dit doen we vanaf de officiële repository.

Toevoegen Docker's GPG sleutel:

curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -

Toevoegen van de repository:

echo "deb [arch=armhf] https://download.docker.com/linux/raspbian stretch stable" | sudo tee /etc/apt/sources.list.d/docker.list

Installeer Docker:

sudo apt-get update
sudo apt-get install docker-ce

Voeg de Pi gebruiker toe aan de docker-groep:

sudo usermod -aG docker pi && logout

Je wordt na het uitvoeren van het commando direct uitgelogd om de rechten effectief te maken. Log hierna opnieuw in.

Docker Compose installeren

Met behulp van Docker Compose gaan we een manifest (yml-bestand) aanmaken met de instellingen voor de Docker container. Hiervoor moeten we eerst Docker Compose installeren.

sudo apt-get -y install python-setuptools
sudo easy_install pip  && sudo pip install docker-compose

Docker Manifest aanmaken

Nu kunnen we het Docker manifest bestand gaan aanmaken, hiervoor maken we eerst de map homebridge aan in de thuismap van gebruiker pi.

mkdir /home/pi/homebridge
cd /home/pi/homebridge

Maak docker-compose.yml aan met behulp van de nano editor:

nano docker-compose.yml

Plaats de onderstaande informatie in het bestand:

version: '2'
services:
  homebridge:
    image: oznu/homebridge:raspberry-pi
    restart: always
    network_mode: host
    volumes:
      - ./config:/homebridge
    environment:
      - PGID=1000
      - PUID=1000
      - HOMEBRIDGE_CONFIG_UI=1
      - HOMEBRIDGE_CONFIG_UI_PORT=8080

Sla het bestand op met ctrl + x, y, enter.

In het bestand wordt o.a. aangegeven dat de Docker container automatisch wordt gestart na een reboot van de Raspberry Pi en dat deze gebruik mag maken van de netwerk instellingen.

Start homebridge

Start nu de Homebridge Docker container:

docker-compose up -d

Het starten kan enige tijd duren, de eerste keer wordt het Homebridge docker image gedownload. Je kunt de voortgang bekijken via de logbestanden:

docker-compose logs -f

Wanneer de iOS pairing code verschijnt is de Homebridge volledig gedownload en geïnstalleerd. Hierna heb je toegang tot de grafische interface van Homebridge.

Homebridge openen in je webbrowser

De grafische interface van Homebridge kun je openen via het IP adres van je Raspberry Pi in een webbrowser, gebruik hierbij poort 8080 om verbinding te maken. Voorbeeld:

http://192.168.2.60:8080

Gebruik de gebruikersnaam admin en wachtwoord admin om in te loggen.

Via de interface kun je de Homebridge configuratie aanpassen, plugins voor andere apparaten toevoegen en logbestanden bekijken. Daarnaast heb je hier opties om de homebridge te herstarten of te updaten.

Homebridge toevoegen aan iOS

Je kunt nu de homebridge toevoegen aan iOS. Open de Woning app op een iPhone of iPad en selecteer de optie ‘Voeg accessoire toe'. Als de home bridge verschijnt in het scherm dan kun je deze direct toevoegen, mocht deze niet verschijnen kies dan optie ‘Gebruik de HomeKit-configuratiecode'. Scan of voeg handmatig de pairing code in die verschijnt in de web-interface. De standaard pin is 031-45-154 (deze kun je achteraf aanpassen).

homebridge raspberry

Plugins installeren Homebridge (voorbeeld Sonos)

Voor homebridge zijn honderden plugins beschikbaar. Deze kun je installeren via de optie ‘plugins' in de web-interface. Wil je bijvoorbeeld je Sonos systeem inschakelen met behulp van HomeKit en Siri zoek dan naar de plugin ‘homebridge-sonos' en installeer deze via de ‘install' knop.

Hierna dien je aan het config bestand de Sonos configuratie toevoegen. Klik hiervoor op config in de web-interface, voeg de onderstaande code toe aan sectie ‘accessories':

homebridge raspberry sonos

{
"accessory": "Sonos",
"name": "Woonkamer",
"room": "Woonkamer",
"mute": false
}

Belangrijk is dat de parameter ‘name' exact moet overeenkomen met de naam van de Sonos speaker of de samengestelde groep. Deze naam kun je via de Sonos apps instellen.

Klik hierna op ‘Save' en herstart de Homebridge, na de herstart zal de Sonos verschijnen in de Woning app als schakelaar en kun je deze via Siri commando's aan en uitschakelen, bijvoorbeeld ‘Hey Siri, schakel Sonos uit'.

De bediening is het zelfde als dat je op de fysieke play knop van de Sonos drukt.

Klik hier voor meer info voor docker-homebridge?

43 gedachten over “Homebridge via Docker installeren op een Raspberry Pi

  1. Ik heb mijn pi user password aangepast voordat ik docker en homebridge installeerde.
    Installatie van van homebridge ging vlekkeloos, ik kan ook naar de webinterface, maar dan accepteert hij username/password niet.
    Wat kan ik doen?

  2. ik krijg een error bij het installeren(sudo apt-get install docker-ce) iemand een idee waar dit aan kan liggen?

    pi@raspberrypi:~ $ sudo apt-get install docker-ce
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    docker-ce : Depends: libdevmapper1.02.1 (>= 2:1.02.97) but 2:1.02.90-2.2+deb8u1 is to be installed
    Depends: libltdl7 (>= 2.4.6) but 2.4.2-1.11 is to be installed
    Depends: libseccomp2 (>= 2.3.0) but it is not going to be installed
    Recommends: aufs-tools but it is not going to be installed
    Recommends: cgroupfs-mount but it is not going to be installed or
    cgroup-lite but it is not installable
    E: Unable to correct problems, you have held broken packages.

    Ook zou ik graag hem op een ander poort benaderen. is dat mogelijk?

    thnx

    • Je bent voor het commando ‘sudo apt-get install docker-ce’ vergeten om ‘sudo apt-get update’ uit te voeren zoals beschreven hierboven.

      De http poort 8080 kun je in de config aanpassen in het bestand ‘docker-compose.yml’ (zie: Docker Manifest aanmaken).

  3. Hi Richard, bedankt voor deze informatie. Ik ben weer eens aan de slag gegaan om m’n Nest aan Homebridge toe te voegen, maar hier loop ik helaas tegen wat issues aan.

    Ik heb de plugin homebridge-nest geïnstalleerd via de GUI. Zoals aangegeven wordt op de npm-pagina van homebridge-nest moeten er wat zaken worden onder “platforms” worden toegevoegd. Alle gegevens vanuit developers.nest.com heb ik kunnen toevoegen, maar ik krijg de Nest niet in HomeKit. Heb je/Iemand wellicht een tip?

    • {
      “bridge”: {
      “name”: “Homebridge”,
      “username”: “0E:72:99:81:1B:B7”,
      “port”: 51826,
      “pin”: “394-76-713”
      },
      “description”: “This is an example configuration file. You can use this as a template for creating your own configuration file containing devices you actually own.”,
      “accessories”: [],
      “platforms”: [
      {
      “platform”: “Nest”,
      “token”: “”,
      “clientId”: “72970582-2ce2-4498-b54e-xxxxxxxxxxxx”,
      “clientSecret”: “fXjHJKpXGLVWDyhGv6xxxxxxx”,
      “code”: “9E4xxxxx”
      }
      ]
      }

      • Mijn vorige reactie mag denk ik de prullenbak in. Heb het inmiddels aan de praat gekregen, door ook een nieuw product aan te maken op developers.nest.com.

        Ik zie de thermostaat in de HomeKit-app terug, maar na een paar minuten/uur veranderd de status in “No Response”. Op de diverse fora kom ik dit issue ook tegen en het lijkt erop dat het een known issue is met iOS11 (m.n. de bèta’s). Anyway, normaals bedankt voor de tip @Richard. Heb wederom wat uurtjes ervaring op mogen doen en dit keer zonder al teveel frustratie 🙂

  4. @ richard “sudo apt-get update heb ik wel vooraf gedraaid..

    @ Jeroen
    ook heb ik mijn rasbian geüpdate doormiddel van “sudo apt-get dist-upgrade”

    krijg nog steeds deze error :

    pi@raspberrypi:~ $ sudo apt-get install docker-ce
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    docker-ce : Depends: libdevmapper1.02.1 (>= 2:1.02.97) but 2:1.02.90-2.2+deb8u1 is to be installed
    Depends: libltdl7 (>= 2.4.6) but 2.4.2-1.11 is to be installed
    Depends: libseccomp2 (>= 2.3.0) but it is not going to be installed
    Recommends: aufs-tools but it is not going to be installed
    Recommends: cgroupfs-mount but it is not going to be installed or
    cgroup-lite but it is not installable
    E: Unable to correct problems, you have held broken packages.
    pi@raspberrypi:~ $

    Iemand nog suggesties?

    Thnx

    • Hi Frank,

      Heb gister wat issues gehad alvorens ik de RPi daadwerkelijk van Jessie naar Stretch heb kunnen updaten.

      Wat krijg je te zien als je dit invoert?:

      $ cat /etc/os-release

      • pi@raspberrypi:~ $ cat /etc/os-release
        PRETTY_NAME=”Raspbian GNU/Linux 8 (jessie)”
        NAME=”Raspbian GNU/Linux”
        VERSION_ID=”8″
        VERSION=”8 (jessie)”
        ID=raspbian
        ID_LIKE=debian
        HOME_URL=”http://www.raspbian.org/”
        SUPPORT_URL=”http://www.raspbian.org/RaspbianForums”
        BUG_REPORT_URL=”http://www.raspbian.org/RaspbianBugs”

        • Je hebt dan inderdaad nog de vorige versie “jessie”.

          Gister is het mij gelukt via o.a. deze pagina:
          https://linuxconfig.org/how-to-upgrade-debian-8-jessie-to-debian-9-stretch

          Blijkbaar is het nodig om in /etc/apt/sources.list alle referenties naar “jessie” te vervangen voor “stretch”, alvorens de update/upgrade/dist-upgrade cyclus in te gaan. Hele proces duurt wel een uurtje of wat (en maak sowieso een backup en let goed op welke bestanden je wel/niet overschrijft). Ik was zelf voor een clean install gegaan en moest zaken als ssh-toegang, passwordless entry, etc. weer opnieuw aanmaken.

          • uhm hier ga ik even over nadenken. draaien momenteel aantal zaken op.. waar ik geen tijd voor heb om opnieuw te maken 😀

  5. Beste Richard,

    Ik heb alles draaien dankzij jouw post hier! Had er al heel wat uurtjes inzitten. Ik zie in jouw printscreen van de iPhone dat je een aantal iconen hebt zoals de staande lamp en de hanglamp in de Woning App. Hoe kan ik deze wijzigen? Of komen deze vanuit de Hue App?

    Groeten Jacco

    • Hey Jacco,

      Die kun je aanpassen als volgt: Open Woning ▸ Druk op de schakelaar of leg je vinger erop ▸ Kies voor details ▸ Tik vervolgens op het icoon naast de naam om deze aan te passen. Bij sommige accessoires heb je ook onder kamer de optie ‘Type’ staan, deze kan ook andere iconen bevatten. Je zult merken dat je niet alle accessoires een ander icoon kunt geven, dit is bepaald door de Woning app en is niet aan te passen.

  6. Complimenten voor de kwaliteit van de tutorial, maar ik strand al bij de installatie van docker helaas. Bij “apt-get install docker.ce” krijg ik de melding “E: Unable to locate package docker-ce”

    Alles ervoor lijkt goed verlopen te zijn. Het gaat om de laatste raspbian 9 stretch, incl updates e.d.

    Ik doe kennelijk toch iets niet goed?

  7. Kort vraag: indien je twee Raspberry wil gebruiken. Bijvoorbeeld een voor de home- bridge docker en een voor kodi. moet je dan de poort aan passen: Dus een 8080 en een ander 8180??

  8. Ik ben nieuw op Pi-gebied. Ik heb je Homebridge-uitleg gevolgd en alles werkt prima. Verschillende plugins werken uitstekend. Echter als ik naast Homebridge Domoticz wil installeren kan ik de webversie niet bereiken omdat het adres hetzelfde is als de webversie van homebridge. Derhalve opent Homebridge dus steeds. Hoe kan ik dit (graag Jip en Janneke uitleg) veranderen?

  9. Bedankt voor deze uitleg, hierdoor heb ik mijn domoticz draaiende op een andere raspberry kunnen koppelen aan apple woning, heel blij mee.
    Is het ook mogelijk om in dezelfde config andere plugins te gebruiken?
    Bijvoorbeeld de chromecast of mijn Denon AVR. De plugin kan ik wel installeren maar Ik krijg steeds config error. Waarschijnlijk voeg ik het niet op de juiste wijze in. Of is dit niet mogelijk???

    • Uiteindelijk gelukt, probleem zat er in dat er een , tussen de verschillende accessoires moet staan.

      Na een update en een sudo reboot alweer het volgende probleem. Op de hoofdpagina van Docker Homebrigde staat bij services; Homebridge Not running. Wanneer ik op view logs klik zit ik in een soort loop met waarschuwingen. Hoe krijg ik dit goed?

  10. Ik kreeg met bovenstaande handleiding docker-ce niet geinstalleerd. Toen ben ik op onderzoek uitgegaan. Bij docker adviseren ze een “convinince script”.
    Dit installeert docker-ce:

    $ curl -fsSL get.docker.com -o get-docker.sh
    $ sudo sh get-docker.sh

    If you would like to use Docker as a non-root user, you should now consider
    adding your user to the “docker” group with something like:

    sudo usermod -aG docker your-user

    Remember to log out and back in for this to take effect!

    WARNING: Adding a user to the “docker” group grants the ability to run
    containers which can be used to obtain root privileges on the
    docker host.
    Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
    for more information.

    Nu werkt Homebridge via docker!

  11. Dank voor de duidelijke uitleg, het leek er op dat Homebridge goed draait maar als ik de plugin “Sonoff basic plugin for Homebridge” installeer en daarna een accessoire aan config toevoeg en op de save button druk kan Homebridge na herstarten niet meer online komen.
    In de log staat dan:

    /usr/local/lib/node_modules/homebridge/lib/api.js:64
    throw new Error(“The requested accessory ‘” + name + “‘ was not registered by any plugin.”);
    ^
    Error: The requested accessory ‘SonoffBasicESPEasy’ was not registered by any plugin.

    Ook word er dan een config.json bestand hernoemd in de config directory met een getal daarachter zoals deze: config.json.1525520025588

    Ik hoop dat je hier een oplossing voor hebt.

  12. Dit draait prima op een Raspberry Pi B. Homebridge met docker geïnstalleerd. Ook diverse plugins, die goed draaien en ook geüpdatet konden worden. Alleen homebridge-config-ui-x 3.5.5 laat zich niet updaten via de webbrowser. Als ik in mac terminal de raspi via ssh inlog, wordt npm (om via commandline uninstall/install te doen) niet herkend. heeft iemand dezelfde ervaring en een oplossing?

  13. Ik heb een Raspberry Pi 3 met camera in gebruik voor Apple Homekit. Apple Homekit ziet de homebridge en de camera. Werkt dus perfect.

    Omdat ik nog enkele Raspberry pi’s heb liggen wil ik nog een camera maken en alsook aansluiten aan Apple Homekit. Weliswaar gebruik ik een andere homekit code.
    Maar Homekit vind deze camera niet. Is dat omdat er maar 1 homebridge kan toegevoegd worden?

    Als ik een andere IPhone gebruik met andere apple id, dan ziet deze de raspberry met camera wel in Homekit.

    Nu is mijn vraag hoe kan ik 2 raspberry”s met camera aansluiten op Apple Homekit?
    Ik ben al weken het internet aan het afsurfen, maar geen oplossing te vinden.

Een reactie plaatsen

%d bloggers liken dit: