Fortsätt till huvudinnehåll

Min nuvarande hemautomationsinstallation

Sen jag fick en begagnad Tellstick Net för en massa år sen har jag alltid haft någon form av hemautomation igång. Sedan 2015 nån gång har basen varit Home Assistant med lite olika hårdvara för att kunna kommunicera på ett antal trådlösa protokoll.

Efter ett misslyckat försök att få en Raspberry Pi 3B att fungera tillförlitligt kombinerat med en USB-hubb och en extern SSD blev det istället ett skifte till docker-containers för varje mjukvara som krävs för att kommunicera med den hårdvara jag vill använda, snurrandes på min befintliga hemserver som även sköter lagring och backup.

Nedan följer en kort sammanställning över vilken hård- och mjukvara jag nyttjar, samt en kortfattad steg-för-steg guide som beskriver hur installationen gick till.

Hårdvara:

  • Min hemserver snurrar på en mini-ITX Atom N330 med 4Gb ram, en ssd för os:et (Ubuntu 20.04) och en raid-10-array för lagring av foton mm.
  • Zigbee: ljuskällkor från IKEA och Philips samt sensorer (magnet, temperatur, lufttryck, rörelse mm) från IKEA och Aqara nås via en Conbee-sticka (första versionen)
  • Z-wave: en Aeotek Zwave Gen 5-sticka används främst för att kommunicera med en Fibaro Smart Implant som styr en gammal garageportsöppnare
  • 433MHz: en RFXtrx433E för att styra en massa gamla 433MHz-strömbrytare och dimmers
  • Nätverk (trådat och wifi) består av Unifi-prylar (accesspunkt, switch, brandvägg, controller)
  • Kamera, ringklocka, ett par brandvarnare och några Home Mini från Google Nest
  • En drös med Chromecast och Chromecast Audio

Installation

  1. Installera Ubuntu Server 20.04.3LTS från officiell avbild
  2. Installera docker
    1. sudo apt install docker.io
  3. Docker-container för unifi controller:
    1. mkdir ~/unifi-config
      sudo docker run -d --name=unifi-controller -e PUID=1000 -e PGID=1000 -p 3478:3478/udp -p 10001:10001/udp -p 8080:8080 -p 8443:8443 -p 1900:1900/udp -p 8843:8843 -p 8880:8880 -p 6789:6789 -p 5514:5514/udp -v ~/unifi-config:/config --restart unless-stopped ghcr.io/linuxserver/unifi-controller
    2. OBS! Glöm inte att sätta “Override inform host” under inställningarna i Unifi, annars skickar controllern den interna Docker-IP:n istället och adopt fungerar inte!
    3. Mer instruktioner finns här: https://github.com/linuxserver/docker-unifi-controller/pkgs/container/unifi-controller
    4. Med ovan så nås Unifi controllern via serverns IP-adress på port 8443
  4. Docker-container för Home Assistant:
    1. mkdir ~/hass mkdir ~/hass/config
      sudo docker run -d --name homeassistant --privileged --restart=unless-stopped -e TZ=Europe/Stockholm -v ~/hass/config:/config --network=host ghcr.io/home-assistant/home-assistant:stable
  5. Docker-container för deConz:
    1. mkdir ~/deconz sudo docker run -d --name=deconz --restart=unless-stopped -p 80:80 -p 443:443 -v /etc/localtime:/etc/localtime:ro -v ~/deconz:/opt/deCONZ --device=/dev/ttyUSB0 deconzcommunity/deconz
  6. Docker-container för Z Wave JS:
    1. mkdir ~/zwavejs sudo docker run -d --name=zwaveje --restart=unless-stopped -p 8091:8091 -p 3000:3000 --device=/dev/serial/by-id/usb-0658_0200-if00:/dev/zwave -v ~/zwavejs:/usr/src/app/store zwavejs/zwave-js-ui:latest
  7. Docker-container för Nginx Reverse Proxy Manager:
    1. mkdir ~/reverse-proxy
      mkdir ~/reverse-proxy/data
      mkdir ~/reverse-proxy/letsencrypt
      sudo docker run -d ––name=reverse-proxy -p 82:80 -p 81:81 -p 444:443 -v ~/reverse-proxy/data:/data -v ~/reverse-proxy/letsencrypt:/etc/letsencrypt --restart unless-stopped jc21/nginx-proxy-manager:latest
    2. Nu når du adminpanelen på http://localhost:81/nginx/proxy
    3. Lägg till reverse proxy för Unifi och Home Assistant
    4. Glöm inte att aktivera Websockets support, Force SSL och HSTS enabled! (utan websockets support går det inte att logga in till Home Assistant via reverse proxyn)
  8. I Home Assistant aktiverar du integrationerna för RFXtrx, deConz, Z-Wave JS
  9. I Home Assistant aktiveras även integration mot Google Assistant enligt officiella dokumentationen

Kommentarer

Populära inlägg i den här bloggen

Användarkontot blir låst i Windows-domänen

Råkar en användare i domänen ut för att kontot blir låst titt som tätt, trots att han inte matat in fel lösenord flera gånger på raken? Det kan bero på att klientdatorn har cachat ett gammalt lösenord! Gör så här: Öppna "Kör" från startmenyn eller genom snabbkommandot windows-knappen + R Mata in följande rad rundll32.exe keymgr.dll, KRShowKeyMgr Tryck Enter I fönstret som öppnas visas en lista med ett konto sparat. Ta bort det! Du är klar!

Samba mount script

Först måste du installera filsystemet som ska användas för monteringen: sudo apt-get install smbfs Skapa sen en mapp att montera nätverksutdelningen i: mkdir mappnamn Nu är det bara att montera nätverksutdelningen i mappen: sudo mount -t cifs //server/utdelning /monteringspunkt Om du behöver ange ett användarnamn och lösenord för att nå utdelningen skriver du: sudo mount -t cifs //server/utdelning -o username=MyUsername,password=MyPassword /monteringspunkt Om du vill logga in anonymt via ett gästkonto skriver du: sudo mount -t cifs //server/utdelning -o username=anonymous,guest /monteringspunkt För att slippa skriva in denna rad för varje utdelning vi vill montera varje gång vi har startat om datorn vill vi gärna skriva in det i ett script där vi definierar samtliga utdelningar vi vill montera och som vi, om vi vill, kan köra automatiskt vid varje inloggning. Vi börjar med att skriva ett script: #!/bin/bash # this script mount smb shares on jimmys server echo "Mou

LAMP-installation

Installera Apache2, MySQL och PHP i Ubuntu. Installera MySQL sudo apt-get install mysql-server mysql-client Mata in ett lösenord för root-kontot när du ombeds. Installera Apache 2 sudo apt-get install apache2 Om du nu surfar till din ip-adress ska du se en sida som talar om att Apache fungerar. Ange sen var du vill ha webbserverns dokumentrot i denna fil: sudo nano /etc/apache2/sites-enabled/000-default Installera php5 sudo apt-get install php5 libapache2-mod-php5 När detta är klart återstår enbart att starta om apache sudo service apache2 restart