- Tunnista älylaitteet: Määritä ne älylaitteet, jotka haluat integroida Home Assistenttiin. Tämä voi sisältää erilaisia älylaitteita, kuten valoja, termostaatteja, antureita, kameroita tai muitakin.Varmista, että valitsemasi laitteet ovat yhteensopivia Home Assistentin kanssa tai että niille on olemassa integraatio Home Assistenttiin. Osa olemassaolevista kodinkoneista sisältää jo älytoimintoja, joita et ehkä ole ottanut käyttöön. Haluat varmistaa nimenomaan HA-yhteensopivuuden, et esimerkiksi johonkin toiseen älykoti-ratkaisuun.
- (Ei-pakollinen vaihe) Määritä oma IOT-verkko: Luo älylaitteillesi erillinen verkko parantaaksesi tietoturvaa ja eristä laitteet pääverkostasi. Tämä voidaan saavuttaa lisäämällä laitteet vierasverkkoon tai dedikoidun VLAN-verkon (Virtual Local Area Networks) avulla.
- Asenna Home Assistant: Ota Home Assistant käyttöön erillisessä koneessa tai palvelimessa. Voit käyttää Raspberry Pi:tä, NAS-laitetta (Network-Attached Storage) tai virtuaalikonetta. Noudata virallisia Home Assistantin ohjeita ympäristön asentamiseksi.
Asennusohjeet https://www.home-assistant.io/installation/ - Määritä Home Assistant: Avaa Home Assistant -käyttöliittymä ja määritä perusasetukset. Tämä sisältää sijaintisi, kieliasetuksesi ja kodin määrittämisen. Sen jälkeen määrittele apukomponentit, joita haluat käyttää (kuten Z-Wave, Zigbee tai MQTT).
- Lisää valmistaja-integraatioita: Home Assistant tukee monenlaisia integraatioita erilaisiin älylaitteisiin. Näiden integraatioiden avulla Home Assistant voi kommunikoida ja hallita kodissasi olevia älylaitteita. Katso Home Assistant -dokumentaatio kunkin laitteen integraation löytämiseksi. Määritä integraatiot antamalla tarvittavat tunnistetiedot, IP-osoitteet tai API-avaimet. Ajantasainen lista integraatioista löytyy osoitteesta https://www.home-assistant.io/integrations/ Itse suosin Zigbee-protokollaa sen laajan laitetuen ja hyvien kokemusten vuoksi.
- Järjestä laitteet huoneisiin: Luo virtuaalisia huoneita tai alueita Home Assistantissa laitteidesi järjestämistä varten. Tämä vaihe helpottaa laitteiden hallintaa niiden sijainnin perusteella.
- Määritä automaatiot: Luo automaatioita määrittääksesi halutut toiminnot tai käyttäytymiset älylaitteille. Voit esimerkiksi luoda automaation, joka sytyttää valot, kun liikettä havaitaan tai säätää termostaattia lämpötilan tai sähkön pörssihinnan mukaan.
- Mukauta käyttöliittymää: Home Assistant tarjoaa mukautusvaihtoehtoja käyttäjäkokemuksen räätälöimiseksi mieltymystesi mukaan. Voit luoda dashboard-koontinäyttöjä, lisätä widgettejä ja suunnitella asettelun tarpeidesi mukaan.
- Paranna tietoturvaa: Ota käyttöön turvatoimet Home Assistant -asennuksen suojaamiseksi ja siihen liitetyt laitteet. Tämä sisältää vahvojen salasanojen käytön, kaksivaiheisen todennuksen käyttöönoton ja Home Assistant -ohjelmiston säännöllisen päivittämisen.
- Testaa ja valvo: Kun olet asentanut laitteet ja automaatiot, testaa niiden toimivuus perusteellisesti. Tarkkaile järjestelmää ongelmien tai virheiden varalta ja tee tarvittavat muutokset.
Muistilappuja ja muita tarinoita kovoon ja ohjelmistoon liittyen. Oma laitekaappi olla pitää. :-). Toisinaan atk-aiheista pohdiskelua.
perjantaina, kesäkuuta 09, 2023
Älylaitteiden lisääminen Home Assistantiin
perjantaina, kesäkuuta 02, 2023
Docker ja YAML-kielen käyttäminen
Docker on suosittu avoin open source ohjelmistoalusta, jolla voidaan hallita ohjelmistoja ns. konttien avulla. Kontti kerää yhteen ohjelmiston osat ja riippuvuudet siten, että ohjelmisto voidaan siirtää sellaisenaan ympäristöstä ja alustasta toiseen ilman että sitä täytyy muokata. Esimerkiksi kehitys voi tapahtua paikallisella koneella ja tuotantoversiota ajetaan pilvessä olevalla palvelimella.
YAML
YAML (“Yaml ain’t Markup Language”) on standardi merkintäkieli, jolla kuvataan, miten Docker käyttää erilaisia resursseja. YAML on JSON-tiedostomuodosta johdettu standardi, jota on alettu käyttämään erilaisten ohjelmistojen konfigurointiin eli sen asetusten säätämiseen. Yksi YAML-merkintäkielen etu on se, että se voi sisältää kommenttirivejä, joka tekee siitä ihmiselle helppolukuisemman kuin JSON.
YAML-kielessä sisennys on tärkeää. Jokainen sisennys tehdään käyttäen kahta välilyöntiä, ei tabulaattoria. Määrittelylohkoja ei eroteta toisistaan tunnistemerkillä, kuten puolipiste.
Docker compose on komento, joka kääntää, käynnistää ja hallitsee tai lopulta poistaa erilaisia palveluja. Sen perusosia ovat
image eli asennuskuva
context eli ajoaikainen ympäristö
dockerfile eli määrittelytiedosto
args eli parametrit
volumet eli looginen levyvaraus
environment lei ympäristö
verkkoasetukset
Image eli asennuskuva on käännettävän tai ladattavan koontiversion nimi.
Context kertoo, mitä hakemistoa käytetään Docker-määrittelytiedostolle. Se voi olla myös URL-osoite git repositoryyn.
Dockerfile on tekstidokumentti, joka sisältää komennot, joiden avulla käyttäjä voisi komentoriviltä kääntää toimivan koontiversion. Käytännössä se sisältää komennot ja metatietoa, joiden avulla Docker luo ohjelman käännöksen. Oletusnimi on “Dockerfile”, mutta Dockerfile voi olla eri niminen, ja se löytyy Context-määrittelyn osoittamasta paikasta.
Parametrit
Kontin käyttämä portti määritellään docker compose tiedostossa seuraavasti listana
ports:
- ”2000:2000”
- ”3333:3333”
YAML-kielessä lista määritellään antamalla listalle nimi (”ports”) ja kaksoispiste. Sen alla sisennettynä on listan arvot.
Portit tulee kirjoittaa sulkumerkkien sisälle.
Volumet
Volume on levyvaraus (volume), jonka sisältämät tiedot säilyy myös sen jälkeen kun kontti on poistettu. Isäntäympäristön hakemisto voidaan linkittää kontissa olevaksi hakemistoksi ja kun kontti pysäytetään, sen käsittelemät tiedot tallentuvat tähän hakemistoon.
Ympäristömuuttujat
Ympäristömuuttujat kertovat Dockerille, mitä versionumeroa tai tunnistetta tulee käyttää kun kontissa oleva ohjelma suoritetaan. Ympäristömuuttuja määritellään YAML-tiedostossa käyttäen YAML-listaa
environment:
- VARIABLE=value
- APP_VERSION=1.0
Määritellyt ympäristömuuttujat ovat saatavilla kontissa ajettavalle ympäristölle. Ympäristömuuttujia ei tarvitse ympäröidä lainausmerkeillä.
Jos ympäristömuuttujia on runsaasti, ne voidaan lukea tiedostosta. Tämä määritellään env_file-listana
env_file:
- ./common_variables.env
- ./settings.env
Docker lukee kyseisen tiedoston listan ja sen sisältämät arvoparit ja ne ovat näkyvissä kontissa ajettavassa ympäristössä. Jos ohjelmisto riippuu toisesta ohjelmistosta, jota ajetaan toisessa kontissa, se voi lukea samat ympäristömuuttujat yhteisestä tiedostosta.
Verkkoasetukset
Jos ohjelmisto käyttää muita palveluita, sen pitää pystyä vaihtamaan tietoja toisten konttien välillä. Sitä varten luodaan Bridge network eli Docker siltaverkko. Määrittely tapahtuu seuraavasti
networks:
myapp_network:
driver: bridge
myapp_network on nimi, jonka haluat antaa verkolle, jota konttisi käyttävät.
Palvelulle pitää myös määritellä vastaava lohko
networks:
- myapp_network
Tämä lista määrittelee, minkä verkkojen osana kyseinen palvelu toimii. Sinulla voi olla ajossa samasta sovelluksesta eri versiot omissa konteissaan, jotka käyttävät samoja asetuksia, mutta omissa verkoissaan.
Käynnistysjärjestys
Jos ohjelmistokomponentti tai palvelu edellyttää jonkin toisen palvelun olemassaoloa, se voidaan määritellä depends-lohkolla.
depends_on:
- mongodb
Tämä tarkoittaa sitä, että kyseinen kontti käynnistetään vasta, kun mongodb niminen kontti on käynnistetty. Koska kontissa olevan palvelun käynnistäminen vie oman aikansa, täytyy sovelluksen sisältää logiikka, jolla testataan, että palvelu vastaa kyselyihin.