Archive for November, 2019

Smarthus – en begynnelse

11/03/2019

Hele andre-etasjen vår er pepret med spot’er der ca. halvparten nå har sluttet å virke.  Det var derfor noe som måtte gjøres, og det var en god anledning til å starte på smarthus-prosjektet jeg har tenkt på lenge.  Jeg snakket med mange, blandt annet noen kollegaer, og Anders fikk meg inn på det sporet jeg endte opp med.  Her vil jeg skrive litt om prosessen, både som tips for andre, men også litt som notater til meg selv, om hvordan jeg satte det hele opp.

Først installerte jeg Home Assistant på en Ubuntu-server som kjører i VMWare Workstation på min stasjonære maskin.  Jeg kjørte en ganske standard install med Home Assistant i docker.

  1. Installer Docker: https://docs.docker.com/install/linux/docker-ce/ubuntu/
  2. Installer Home Assistant: https://www.home-assistant.io/hassio/installation/#alternative-install-on-a-generic-linux-host
  3. Konfigurer ferdig Home Assistant ved å gå til IP’en på port 8123.  Om du har mDNS på hjemmenettet kan du også bruke hassio.local i stedet for IP’en.

Så handlet jeg litt ting på Kjell.com: En Raspberry Pi 4 B og kabinett, et 32gb microsd-kort, en Conbee 2 USB-dings for å styre Zigbee-dingser og en 10 meter aktiv USB-skjøt for å kunne lettere få USB-dingsen nærmest mulig pærer og annet som skulle parres.  På denne installerte jeg Raspbian Buster Headless-image.  Så la jeg til en fil “SSH” på roten på boot-partisjonen og satte inn kortet i Raspberry Pi’en og bootet den.  Etter en stund kom den på nett og jeg kunne koble meg til.  Så satte jeg opp trådløs på den via webgrensesnittet slik at den kan flyttes rundt i huset lettere med strøm fra et kraftig USB-batteri når jeg skulle parre dingser.

Home Assistant (HA) detekterte automatisk mange ting, bl.a. deCONZ Gateway (Raspberry PI’en), værmelding fra met.no og diverse enheter med Google Cast.

Så var tiden inne for å prøve å legge til noen av det jeg hadde vært på Ikea og handlet.  Jeg hadde kjøpt inn:

  • Pærer i forskjellige sokkelstørrelser
  • Switcher i to varianter (to og 5 knapper)
  • Spot’er for innebygging
  • Adaptere for å putte mellom apparater og stikk-kontakten for å styre ovner, varmtvannsbeholder osv.
  • Bevegelses-sensorer

Jeg begynte med noen pærer og puttet en av dem i en lampe på kontoret.  Det skulle vise seg å være en selsom opplevelse å få det til å snakke sammen.  Men etter mye googling og prøving og feiling, kom jeg frem til at følgende metode virker i nesten alle tilfellene, hvis ikke gjentaes den bare:

  1. Få Conbee 2-usb-dingsen veldig nærmt (type 5-10 cm)
  2. Åpne webgrensesnittet til Phoscon og under lights, sett den til å lete etter nye lys (øk gjerne tiden den leter fra 1 til 10 minutter)
  3. Slå på lyset
  4. Slå av og på lyset til sammen 6 ganger med ca. et halvt sekund i hver status (halvt sekund av, halvt sekund på, halvt sekund av osv)
  5. Når du slår det på igjen siste gangen, skal pæren dimme ned og pulsere kraftig, ikke bare sånn litt.  Om den bare pulserer bittelitt, gjenta punkt 4
  6. Vent litt (opptil et minutt eller så) og pæren skal dukke opp på websiden til Phoscon.  Da kan du rename den.  Siden det er flere pærer i hver lampe, laget jeg navn på hver pære som beskriver nøyaktig hvilken det er, slik at det er lett å finne igjen senere.  F.eks. “Taklampe kontor pære 1 mot døren”, “Taklampe kontor pære 2 med klokken” osv.
  7. Lag så en gruppe på forsiden til Phoscon og legg til pærene som skal høre sammen
  8. For å få de til å dukke opp i Home Assistant, kan du enten vente, restarte Home Assistant eller så kan du gå til Developer Tools -> Services og kjøre servicen “deconz.device_refresh”.  Etter det skal de dukke opp under “Configuration” -> “Entity Registry”.

Så var det tid for å få en bryter til å virke.  Det er samme prosedyre for de to typene jeg kjøpte på Ikea:

  1. Gå til switches i Phoscon, og velg add new switch og Ikea og “Trådfri remote control”
  2. Trykk på connect-knappen bakpå bryteren 4 ganger ganske kjapt
  3. Etter en liten stund dukker den opp i webgrensesnittet der du kan rename den til et passende navn
  4. Foreløpig har jeg ikke konfigurert disse i HA, men bare lagt de til i gruppen de skal styre i Phoscon.  Men her er det jo mange muligheter.

Så var det bevegelses-sensor:

  1. Gå til sensors i Phoscon, og velg add new sensor og Ikea og Trådfri Motion Sensor
  2. Trykk på connect-knappen bakpå bryteren 4 ganger ganske kjapt
  3. Etter en liten stund dukker den opp i webgrensesnittet der du kan rename den til et passende navn
  4. Foreløpig har jeg ikke konfigurert disse i HA, men bare lagt de til i gruppen de skal styre i Phoscon.  Men her er det jo mange muligheter.

Så adapter.  Disse legges til som lys i Phoscon og alt er likt med unntak av at i stedet for å slå av og på lyset 6 ganger, så stikker du inn en tynn sak i et lite hull på enden av adapteret i 5 sekunder, og så parres de.  Jeg har bestilt temperatursensorer fra Kina, så foreløpig har jeg ikke satt opp noe styring av ovnene.  Sensorene er disse: https://www.aliexpress.com/item/32962364774.html.  Jeg har også bestilt noen dør/vindu-sensorer: https://www.aliexpress.com/item/32947297034.html.  Jeg håper disse sakene fra Kina virker som de skal, men det får jeg ikke testet på noen uker enda.

Så tenkte jeg det var på tide å få en ekstern tilgang til HA, så jeg satte opp sertifikat med Let’s Encrypt og dynamisk DNS med Duck DNS via addons i HassIO:

  1. Legg til addon for Let’s Encrypt via Hass.io->Add-on-store (Install og vips er den inne)
  2. Endre config til f.eks.
    {
    “email”: “<din email>”,
    “domains”: [
    “ditt domene på duckdns.org”
    ],
    “certfile”: “fullchain.pem”,
    “keyfile”: “privkey.pem”,
    “challenge”: “http”,
    “dns”: {}
    }
  3. Så må du videresende port 80 i routeren din inn til maskinen som kjører HA
  4. Trykk start på Let’s Encrypt og nederst skal du så se logg over at alt gikk bra.
  5. Nå kan du fjerne port-forwardingen for port 80
  6. Legg til addon for Duck DNS
  7. Endre config til f.eks.
    {
    “lets_encrypt”: {
    “accept_terms”: false,
    “certfile”: “fullchain.pem”,
    “keyfile”: “privkey.pem”
    },
    “token”: “<ditt token fra duckdns.org>”,
    “domains”: [
    “ditt domene på duckdns.org”
    ],
    “seconds”: 300
    }
  8. Trykk start og loggen nederst på siden skal nå vise at domenet ditt er oppdatert.
  9. Det kan være lurt å la begge disse stå på “Start on boot”, så er du sikker på at de oppdaterer seg selv.
  10. Rediriger så port 443 i routeren din til IP’en for home assist på innsiden (eller en annen port om du vil).  Den skal peke på port 8123 på HA-serveren.
  11. Legg til noe sånt som dette i configuration.yaml på HA-serveren:
    http:
    base_url: <ditt domene på duckdns.org>
    ssl_certificate: /ssl/fullchain.pem
    ssl_key: /ssl/privkey.pem
  12. Restart HA og du skal kunne nå Home Assistant via ditt eget domene på https.  Merk at noen routere ikke godtar loop-back så det kan hende du må bruke IP’en internt hjemme (https på port 8123) og ignorere sertifikat-advarsel.  Min har ikke dette problemet.

Så satte jeg opp integrering mot Verisure alarm-systemet som vi bruker (har tenkt å si dette opp når jeg er kommet lenger i prosessen med smart-hjem).  Det er så enkelt som å legge til dette i configuration.yaml og restarte HA:

verisure:
username: <brukernavn/email hos Verisure>
password: <passord hos Verisure>
default_lock_code: <kode for å låse alarmen>
code_digits: <antall siffer i koden din, min er 6>

Etter dette dukket alle sensorene til Verisure opp, samt kodelåsen på inngangsdøren, alarmpanel osv.  Det kan være lurt å gå inn og slå av tofaktor på alarm og kodelåsen, ellers er det vanskelig å bruke denne på et fornuftig vis i HA.

Jeg bruker Tibber som strømselskap.  Det er et realt silicon-valley-selskap, men i Norge.  Disse har laget mye kult rundt strømstyring og smarthus, og om du også bytter til de, bruk gjerne denne lenken, så får vi begge 500 kroner i nettbutikken deres til å handle for: https://invite.tibber.com/6a592f5d.  De har blandt annet en dings de kaller “Pulse” som du kobler til HAN-porten i den smarte strømmåleren din, og gjør at du får lest av live strømforbruk.  De gir i tillegg tilgang på live strømpris, AI-assistert værmelding i forhold til når det kan være lurt å slå på ovner osv.  For å få Tibber inn i HA gjorde jeg som følger:

  1. Logg på https://developer.tibber.com/ og kopier ut API-nøkkelen din
  2. Legg følgende inn i configuration.yaml og restart HA:
    tibber:
    access_token: <din API-nøkkel>
  3. Nå skal du få tilgang på data fra Tibber automatisk

Så la jeg til Tesla’en slik at jeg kan lese av sensorer som gjenværende batteri, temperatur inne i bilen og utenfor bilen, hvor den er, om den lader, starte og stoppe lading osv.  Det er så lett som å legge til følgende i configuration.yaml og restarte HA:

tesla:
username: <din email brukt hos Tesla>
password: <ditt passord hos Tesla>

Etter dette skal alt jeg beskrev over dukke opp automatisk.

Så fant jeg ut at det hadde vært kjekt å få inn Grafana (og InfluxDB).  Det finnes add-ons for det også, så det er bare å legge de til via Hass.io -> add-on-store.  Å konfigurere de var derimot litt mer kronglete siden det virker som om noen av guidene er litt utdatert.  Jeg kom frem til at følgende var måten:

  1. Installer add-on for InfluxDB og start den, samt kryss av for “Show in sidebar”, klikk så på den som dukker opp i venstremenyen
  2. Gå til InfluxDB Admin og opprett en ny database homeAssist (f.eks.) med uendelig retention
  3. Gå til InfluxDB Admin og opprett en ny bruker homeassist (f.eks.) med et passord og “ALL” permissions (husk å lagre)
  4. Legg til følgende i configuration.yaml og restart HA:
    influxdb:
    host: a0d7b954-influxdb   (ikke endre dette, det gjorde jeg og da gikk det galt… det skal stå slik)
    port: 8086
    database: homeAssist (eller hva du kalte den i steg 2)
    username: homeassist (eller hva du kalte den i steg 3)
    password: <passord du satte i steg 3>
    max_retries: 3
    default_measurement: state
  5. Etter dette skal du kunne se i webinterface til InfluxDB -> Explore at det kommer data
  6. Så installerer du add-on for Grafana om du ikke har gjort det, krysser av for “Show in sidebar” og går til den
  7. Gå gjennom wizard.  Under oppsett av data source, velger du InfluxDB og følgende parametre:
    URL: http://a0d7b954-influxdb:8086
    Access: Server (default)
    Auth: With credentials
    InfluxDB Details:
    Database: homeAssist (eller hva du kalte den i steg 2)
    User: homeassist (eller hva du kalte den i steg 3)
    Password: <passord du satte i steg 3>
    HTTP Method: POST
  8. Save and Test skal nå gi grønt og success.  Du er klar for å lage deg grafer og dashboards.  Jeg kom over denne fine guiden for hvordan komme i gang, så jeg skriver ikke noe mer om det her: https://philhawthorne.com/getting-started-with-grafana-influxdb-for-home-assistant/ – hopp ned til seksjonen “Creating the first Chart”.

Så har jeg koblet opp “Home Assistant Cloud” med en testkonto hos Nabu Casa.  Vi får se om jeg beholder den, men foreløpig var det en grei sak for å få koblet ting til Google Assistant på en lett måte.  Dette finner du under “Configuration” -> “Home Assistant Cloud”.  Gå gjennom wizard’en som var rimelig rett frem, så får du koblet opp Google Assistant eller Amazon Alexa.  Under Google Assistant, kan du trykke på “Sync entities to Google” for å oppdatere hvilke enheter du har, samt “Manage Entities” for å velge bort enheter du ikke ønsker å eksponere til Google.  Etter dette er det lett å styre ting via Google Assistant, enten på mobilen eller via Google Home/Home Mini.  F.eks. “Ok Google, slå på lyset på kontoret”, “Ok Google, lås opp inngangsdøren” osv..

På mobilen (Android) har jeg installert Ariela som virker som det beste produktet for Home Assistant.  Den er genial både som app, men også som widgets for å lage små widgets for å slå av og på ting, se strømforbruket akkurat nå, starte lading av bilen osv osv.  Jeg gikk for den betalte versjonen, siden jeg leste at man ikke får med seg over config fra gratis-versjonen til betal-versjonen, så jeg orket ikke tanken på å gjøre det to ganger. Forelppig er jeg kjempefornøyd med den.  Jeg slo også på presence detection av meg via denne, slik at man inne i Home Assistant da vet med stor sikkerhet hvor jeg er, for å kunne automatisere på grunnlag av det.

Det var alt i denne introen, så kommer det mer etterhvert som jeg får satt opp mer automatisering.  Om noen har tips og innspill, ikke nøl med å komme med de i kommentarfeltet.

NB: På grunn av problemer med formattering i wordpress, kommer alle blokkene jeg har limt inn fra configuration.yaml uten mellomrommene på linje 2 og utover.  Husk at indentering er viktig i YAML, så etter innledende linje (f.eks. tesla:) skal alle påfølgende linjer som hører til den blokken ha indentering, f.eks. to mellomrom.


%d bloggers like this: