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

Dela ut Ubuntu-skrivare i nätverket

Har du ett fungerande nätverk med t.ex. Samba-utdelningar från din Ubuntu-dator är det inga problem att även dela ut dina skrivare till de andra datorerna i nätverket. För detta ändamål använder du skrivarservern CUPS. Cups kommer du lätt genom att peka din webbläsare till http://localhost:631 vilket är den port (631) som CUPS ligger på. På CUPS startsida börjar du med att lägga till din skrivare genom att klick på "Lägg till skrivare". Välj port och drivrutin precis som när du lägger till en skrivare i Windows. När skrivaren är tillagd skriver du ut en testsida för att se att det fungerar. Klicka sen på Hantera Server och bocka i följande alternativ i den lista som kommer upp till höger på skärmen: Visa skrivare utdelade av andra system Dela ut publicerade skrivare anslutna till detta system Allow printing from the Internet Tillåt fjärradministration Use Kerberos authentication Tillåt användare att avbryta alla jobb (inte bara sina egna) Spara felsökningsinformati

Surfa med 3G modem i Ubuntu

Har du skaffat ett 3G-modem från Telia, 3 eller Tele2 (Huawei E220 alltså) och önskar använda det i Ubuntu? Inga problem! Vodafone har varit snälla nog att skapa en applikation för detta under GPL-licens. 1. Börja med att tanka ner det här och installera det med GDebi. 2. Plugga in modemet i en usb-port. Vänta ett tag (20-30 sekunder) så operativsystemet hinner upptäcka det och ladda rätt moduler. 3. Starta Vodafone Mobile Connect Card Driver for Linux . Den bör finnas under Program->Internet. 4. Fungerar allt ska rätt modemmodell föreslås, gå vidare. Får du ett felmeddelande om att modemet inte hittades så prova att stänga programmet, koppla ur modemet, koppla in modemet igen, vänta 30 sek å starta programmet igen. 5. Fyll i följande när du frågas efter kontoinställningar: Profile name = Telia3G username = 3G password = internet Preferred connection = 3G only Authentication mode = default APN host = online.telia.se 6. Klicka "Connect" för att ansluta.

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 "Mounting: Utdelning.