Home Assistant vs oma toteutus?

jalih

Jäsen
Oma toteutukseni rupeaa olemaan kohta loppusuoralla ja ajattelin kysyä Home Assistant käyttäjiltä mielipiteitä tai parannus ehdotuksia.

Olen toteuttanut Pub/Sub serverin mille voin rekisteröidä käyttäjiä. Käyttäjät kuuluvat omaan ryhmäänsä ja voivat ryhmänsä sisällä vapaasti julkaista aiheita ja liittyä niihin. Autentikointi ja liikenne on toteutettu julkisen avaimen salauksella. Varsinainen kotiautomaatio on toteutettu 8th ohjelmointikielellä Eseran valmistamien tuotteiden päälle. Ohjain julkaisee aiheet mittauksista sekä ohjauksista ja päivittää niiden tilan n. 5 - 10 sekunnin välein ja lisäksi välittää myös tapahtumat aiheisiin reaaliaikaisesti. Tällä tavalla kotiautomaation ja vaikka kesämökin ohjauksen sekä valvonnan voi toteuttaa haluamallaan ohjelmointikielellä yksinkertaisesti pelkästään lukemalla ja kirjoittamalla viestejä.

Ilman julkisen avaimen salausta ja käyttäjän autentikointia oleva Pub/Sub serverin testiversio on kokeiltavissa täällä. ESERA Station 200 ohjaintietokone pyörii nyt työpöydällä, eli ei ohjaa mitään kriittistä. ;D
 

BUK

Aktiivinen jäsen
En tunnista tästä ihan puhtaasti kysymystä.

Home Assistant vaikuttaa olevan melko hyvä alusta, jotta peruskäyttäjä pystyy tekemään jotain yksinkertaisia automaatioita kotiinsa. On hyvin vaikea nähdä, että mikään muu kuin huomattavasti valmiimpi tai helpompi järjestelmä herättäisi kiinnostusta. En saanut ihan selville, että mitä integraatioita oma kotiautomaatiohjelmistosi tukee, mutta minusta tuntuu, että juuri niissä on se ydin. En tunne mikä on Esera.

Tässä oli varmaan se mielipide mitä ehkä haettiin?
 

jalih

Jäsen
  • Keskustelun aloittaja
  • #3
Oma ohjelmistoni on kirjoitettu 8th ohjelmointikielellä ja on tällä hetkellä lähinnä runko mihin on helppo itse lisäillä haluamiaan integraatioita. Tämä tosin vaatii jonkin verran ohjelmointitaitoa, mutta antaa toisaalta vapaat kädet toteuttaa mitä vain. Ohjelmisto koostuu kahdesta erillisestä ohjelmasta; Ohjaintietokoneella pyörivästä varsinaiset ohjaukset toteututtavasta ohjelmasta ja erillisestä Pub/Sub palvelin ohjelmasta. Ohjaintietokoneella pyörivä ohjelma kykenee toimimaan täysin itsenäisesti eikä tarvitse palvelinohjelmaa toimiakseen. Palvelinohjelman tehtävänä on tarjota äärimmäisen helppo tapa halukkaille toteuttaa haluamallaan ohjelmointikielellä hallinta ja valvonta mahdollisuudet yksinkertaisesti pelkästään välittämällä viestejä WebSocket-yhteydellä.
 

dillon

Jäsen
En minäkään oikein ymmärtänyt mitä ap haluaa kuulla.

Mutta laitetaan nyt yleisesti kommenttina, voihan tuollaista koodailla huvin ja urheilun vuoksi, mutta oikein mitään varsinaista hyötyä siitä ei ole kun kaikkea löytyy nykyisin valmiina. Esim. kuvattuun pub/sub -hommaan löytyy mqtt -standardi ja paljon sen toteuttavia ohjelmistoja kuten Eclipse Mosquito.

HA:n hyöty taas on siinä, että se tarjoaa valmiina käyttöliittymän ja valmiita integraatioita. Sillä saa paljon tehtyä kirjoittamatta riviäkään koodia. Muttta toisaalta avoimuutensa vuoksi mitään varsinaisia rajotteita mitä sillä pystyy tekemään ja mitä siihen voi integroida, ei käytännössä ole.
 

-Teme-

Vakionaama
Mietin että mitkä on rajapinnat joilla ohjauksia voi tuossa tehdä?
Jos laittaa laitteen joka puhuu zigbeetä niin minkä kautta ohjaus tehdään? Hubi pitää olla mutta entä kommunikaatio siihen?
Kun serverin nurkalta taasen löytyy mqtt broker ja tuossa integraatio siihen niin sitten se kommunikaatio onkin yksinkertaisempi, tosin topicien määrittelyssä on aika duuni. Lisäksi modBus TCP kaikkine rekistereineen vaatii useamman rivin määrittelytä?
HA ja Node-Red ovat aika mukavia ja joustavia alustoja monenlaiseen touhuun, Kommunikointi onnistuu vaikka ihan Telegram bottia käyttämällä
 

jalih

Jäsen
  • Keskustelun aloittaja
  • #6
Mietin että mitkä on rajapinnat joilla ohjauksia voi tuossa tehdä?
Tämähän ei tällä hetkellä tarjoa valmiita integraatioita vaan ne täytyy ohjelmoida itse. Olen toteuttanut tuen Eseran 1-Wire ohjaimille mikä toimii hyvin. Langattomia laitteita en uutta kohdetta rakentaessa asentaisi yhtään ja esimerkiksi valaistuksen pitää toimia perinteisesti painikkeilta vaikka "älyohjaus" olisikin pois pelistä. Tarkoituksenani oli toteuttaa yksinkertainen ja kevyt alusta mitä on helppo laajentaa. Minimaalisen kodin ohjauksen toteuttaa muutamalla sadalla riviä koodia. Esimerkiksi mobiilisovelluksen tai hallintapaneelin ohjausta ja valvontaa varten toteuttaa omana ohjelmanaan helposti suoraan 8th koodilla. Sähkökatkon jälkeen kaikki on uudelleen toiminnassa 5 sekunnin sisällä.
 

jalih

Jäsen
  • Keskustelun aloittaja
  • #7
Mutta laitetaan nyt yleisesti kommenttina, voihan tuollaista koodailla huvin ja urheilun vuoksi, mutta oikein mitään varsinaista hyötyä siitä ei ole kun kaikkea löytyy nykyisin valmiina. Esim. kuvattuun pub/sub -hommaan löytyy mqtt -standardi ja paljon sen toteuttavia ohjelmistoja kuten Eclipse Mosquito.

Julkaisenpa nyt kohta kuitenkin vaikka nyt sitten huvin ja urheilun vuoksi oman kotiautomaatiokäyttöön tarkoitetun tietoturvallisen pub/sub palvelinohjelman. Palvelimelle voi manuaalisesti rekisteröidä käyttäjiä. Kukin käyttäjä kuuluu omaan ryhmään (ryhmän id = oma julkinen salausavain) ja ryhmänsä sisällä voi vapaasti julkaista aiheita ja liittyä niihin. Käyttäjät varmennetaan käyttämällä julkisen avaimen autentikointia ja tämän jälkeen palvelimen ja asiakkaan välinen liikenne salataan satunnaisesti luodulla sessio avaimella. Asiakasohjelma voi myös salata varsinaisen viestinsä julkisen avaimen salauksella. Tällä tavalla edes palvelinohjelman päässä ei pystytä purkamaan ja näkemään viestiä. Ratkaisu on tietoturvallinen mikäli yksityinen salausavain tallennetaan sellaiseen paikkaan mihin ei ole ulkoapäin pääsyä ja itse hyökkääjällä ei ole fyysistä pääsyä laitteelle.
 
Viimeksi muokattu:

jalih

Jäsen
  • Keskustelun aloittaja
  • #8
Tabletilla, puhelimella ja tietokoneella toimiva sovellus kotiautomaation valvontaa ja hallintaa varten työnalla ja hyvällä mallilla. Käyttää viestinvälityspalvelinohjelmaani siltana kotiautomaation välillä. Tarvitsee vähän rakkautta ulkoasun suhteen ja näyttävämpiä pienoisohjelmia, joita voi halutessaan asemoida ja lukita paikoilleen kojelautanäkymään. Ideoita otetaan vastaan, mitä tämän tyylisen ohjelman olisi hyvä osata.

dashboard.png
 

jalih

Jäsen
  • Keskustelun aloittaja
  • #9
Perustoiminnallisuus toimii jo kivasti. Seuravaksi ajattelin toteuttaa tuen useammalle kojelautanäkymälle, eli saisi vaikka lämpötilamittaukset, ohjaukset ja aikataulut jaettua omiin näkymiinsä. Lisäksi tällä hetkellä pienoisohjelmat pystyvät käyttämään hyödyksi vain yhtä aihetta ja viestejä siihen. Muutan tuon, niin saa sitten vaikka kaikki lämpötilamittaukset koottua yhteen pienoisohjelmaan. Vikatapauksessa mikäli viestejä ei tule johonkin aiheeseen minuutin sisällä, niin korostetaan se punaisella kehyksellä.


dashboard.png
 

tk-

Aktiivinen jäsen
Perustoiminnallisuus toimii jo kivasti. Seuravaksi ajattelin toteuttaa tuen useammalle kojelautanäkymälle, eli saisi vaikka lämpötilamittaukset, ohjaukset ja aikataulut jaettua omiin näkymiinsä. Lisäksi tällä hetkellä pienoisohjelmat pystyvät käyttämään hyödyksi vain yhtä aihetta ja viestejä siihen. Muutan tuon, niin saa sitten vaikka kaikki lämpötilamittaukset koottua yhteen pienoisohjelmaan. Vikatapauksessa mikäli viestejä ei tule johonkin aiheeseen minuutin sisällä, niin korostetaan se punaisella kehyksellä.


katso liitettä 94373
Osaako tämä halutessaan hakea nuo ohjausaikaleimat esimerkiksi Pörssärin palvelimelta ja ohjata niiden mukaan? Tilanmuutokset annetaan unix-timestampeina osana jsonia jokaiselle ohjauskanavalle erikseen.
 

jalih

Jäsen
Osaako tämä halutessaan hakea nuo ohjausaikaleimat esimerkiksi Pörssärin palvelimelta ja ohjata niiden mukaan? Tilanmuutokset annetaan unix-timestampeina osana jsonia jokaiselle ohjauskanavalle erikseen.

Tämä käyttöliittymä käytännössä vain vastaanottaa ja lähettää asiakkaan viestejä aiheisiin oman ryhmänsä sisällä käyttäen viestinvälityspalvelinohjelmaani siltana ohjaintietokoneen välillä. Viestinvälityspalvelimen tietokantaan ei tarvitse kuin tallentaa asiakkaan julkinen salausavain eikä muuta. Käyttäjä varmennetaan käyttämällä julkisen avaimen autentikointia sekä liikenne palvelinohjelman ja asiakkaan välillä salataan satunnaisella sessio avaimella. Tämän lisäksi asiakas voi salata omien viestiensä sisällön salausavaimellaan. Täten palvelimen päässäkään ei varsinaisia viestejä pystytä purkamaan.

Oma ohjaus softani on etupäässä suunnattu Eseran laitteille. Saisin kuitenkin varmaan kohtuullisen helposti kirjoiteltua version mikä käyttäisi Pörssäriä.
 

jalih

Jäsen
Lisäsin alustavan tuen valaistuksen ohjaukselle. Täytyy vielä lisätä jonkunlainen indikaattori, mikä näyttää kun ohjausta tapahtuu paikallisesti painonapeilta.

dashboard (7).png
 

jalih

Jäsen
Viime aikoina vapaa-aika mennyt pitkälti vanhan GAZ-66 maastokuorma-auton parissa askarrellessa, mutta lisäsinpä nyt kuitenkin alustavan kamera tuen.

1000000498.png
 
Back
Ylös Bottom