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?

56 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.

  14. Beste Richard,
    Bedankt voor de heldere uitleg!
    Voor mij is alles redelijk nieuw.
    Heb alle stappen doorlopen maar strand Start homebridge
    Wanneer ik docker-compose up -d opgeef krijg ik de melding -bash: docker-compose: command not found
    Alle vorige stappen doorlopen en nergens iets gemerkt. Enig idee wat ik fout heb gedaan?

    • Gelukkig is bovenstaand gelukt. Heb alle stappen opnieuw gedaan en toen deed hij het wel.
      Inmiddels ingelogd in de Homebridge en de plugin en config. uitgevoerd. Alle 3 mijn kamers met Sonos verschijnen ook in mijn home app. En ik kan senarios aanmaken met die ruimtes. Enige nadeel nu is nog dat wanneer ik een kamer aan of uit zet hij een failed melding geeft in mijn app en ze werken ook nog niet op mijn homepod.
      Iemand een idee??

  15. Heb homebridge nu al een tijd draaien. Alles werkt. Afgelopen week via de webpagina van homebridgde de UI “geupdatetet”, er was een update beschikbaar dus. Echter daarna kan ik de admin-pagina niet meer bereiken??? De homebridge werkt overigens wel gewoon, mijn accesoires staan nog steeds werkend in de woning-app.
    Ik heb de Rapsberry al diverse malen gereboot. Bij het benaderen van de website krijg ik de melding dat de server niet bereikbaar is?? Overigens wel via SSH. Hoe krijg ik die website van homebridge nu weer te zien?

  16. Bij mij draait homebridge versie 0.4.43. Er is een update beschikbaar van homebridge 0.4.44. Als ik deze update uit wil voeren of een plug-in wil installeren dan krijg ik onderstaande foutmelding:

    /usr/lib/node_modules/npm/lib/config/load-uid.js:3
    var getU�d = require(‘uid-oumfer’)
    ^

    SyntaxError: Invalid or unexpected token
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:616:28)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object. (/usr/lib/node_modules/npm/lib/config/core.js:226:26)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)

    Iemand een idee hoe dit op te lossen? Alvast bedankt.

  17. Kreeg zelf ook docker-ce niet geinstalleerd. Wel moet onderstaand stuk commando’s:

    # Docker Setup (repo)
    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates wget software-properties-common
    wget https://download.docker.com/linux/debian/gpg
    sudo apt-key add gpg
    echo “deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable” | sudo tee -a /etc/apt/sources.list.d/docker.list
    sudo apt-get update
    sudo apt-cache policy docker-ce

    # Install Docker
    sudo apt-get -y install docker-ce

    Hierna weer verder gegaan met jouw instructie. Alles werkt.

  18. Iemand ervaring met het installeren van de Klikaanklikuit plugin voor Homebridge onder Docker?
    Ik heb Homebridge draaien via Docker, geen probleem, maar de Klikaanklikuit ontvangers kan ik niet aansturen, aangezien de foutmelding aangeeft dat er geen rpi driver is geïnstalleerd?

  19. @Richard: ik wil de klikaanklikuit ontvangers rechtstreeks aansturen via gpio, maar Docker staat niet toe om GPIO te gebruiken…
    Heeft iemand een oplossing om dit toch voor elkaar te krijgen MET Docker? Ik heb een werkende Homebridge installatie zonder Docker, maar het lijkt me super om het via Docker te doen.
    Alle hulp is welkom…
    Dank

    • Hoi Marco,
      Nee, helaas geen oplossing gevonden om het te maken middels GPIO.
      Ik heb uiteindelijk een ICS-1000 gekocht voor weinig en daar al mijn KaKu ontvangers op aangemeld. Daarna is het heel gemakkelijk om de accessoires in Homebridge op Docker te krijgen. Draait nu al een paar dagen probleemloos.

  20. Ik heb alles nu draaien op pi3 en met Siri is het te besturen. Echter na een paar uren Reageert homebridge in IOS woningapp niet meer. Moet dan steeds de pi3 opnieuw opstarten en dan werkt het weer voor een paar uur….iemand idee hoe dit op te lossen?

  21. Eindelijk krijg ik via deze route homebridge wel aan de praat op de raspberry, ik had het ook al op de Synology DS218+ gedaan maar ja daar kwam ik niet verder met de plugins.
    Hoe krijg je nu domoticz hierbij geinstalleerd? of kan ik gewoon op een of andere manier mijn domoticz op de DS218+ blijven gebruiken (poort 8084)?
    Ik zag bij de setup van raspbian nergens iets van expand staan?

Een reactie plaatsen

%d bloggers liken dit: