Näytetään tekstit, joissa on tunniste HomeAssistant. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste HomeAssistant. Näytä kaikki tekstit

lauantai 31. joulukuuta 2022

Danfoss USB-datakaapelin open source release

Olin 7 vuotta sitten blogipostauksessa tutkinut Danfoss I2C tiedonsiirtoprotokollaa ( https://omakotikotitalomme.blogspot.com/2015/03/danfoss-lampopumpun-salaisuudet.html ), ja vuosien aikana olen myynnyt jokusen lukijan. Mutta viime aikoina minulla ei ole riittänut aikaa vastailla kaikille kyselijöille, joten päätin open sourceta toteutuksen, niin kuka vaan voi edullisesti rakentaa itselleen Arduino Nanolla usb pohjaisen ohjausratkaisun. Samalla kerron spoilerina, että minulla on työn alla ESP32 pohjainen wifi ratkaisu, jossa myös tuki lämpötila-anturin emuloinnille (eli vastaa toiminnallisuudeltaan ThermIQ-ROOM2LP:tä). Tästä tulee blogipostaus kevään aikana.

Ohessa linkki githubiin, josta löytyy koodit, gerberit ja STL malli 3d printattavalle telineelle:

https://github.com/rainisto/arduino_i2c_orja/

Toki minulta taitaa muutama levy olla hyllyssä valmiina, jotka voin myydä, mikäli ei halua itse rakennella. Hyvää ja onnellista uutta vuotta!

tiistai 25. lokakuuta 2022

Elenia Aidon RJ12-kotiautomaatioliitynnän HAN portin lukeminen

Elenia julkaisi tuossa hiljattain, että heidän Aidon sähkömittareiden RJ12 portin avausta voi pyytää ilmaiseksi asiakaspalvelusta.

https://www.elenia.fi/tulevaisuuden-energia/sahkonkulutuksen-mittausuudistus/tietoa-mittausuudistuksesta
https://www.elenia.fi/files/8ce06662fedee10d57bd390e9863a685f73bbb27/elenia-rj12-kotiautomaatioliitynta-21092022-4.pdf

Seskon suosituksessa lukee: "Edellä 1 momentin 3 kohdassa tarkoitetusta asiakasrajapinnasta on saatava RJ12-liittimen välityksellä ASCII-merkkimuotoista tiedonsiirtotapaa noudattaen 10 sekunnin välein tai tiheämmin ainakin sähköverkosta otetun sähkön jasähköverkkoon syötetyn sähkön virran, pätötehon, loistehon ja jännitteen tehollisarvot vaihekohtaisesti sekä mittauslaitteiston kumulatiivinen sähköenergialukema minuutin välein tai tiheämmin, kun verkonhaltija on aktivoinut rajapinnan loppukäyttäjän pyynnöstä" (https://sesko.fi/wp-content/uploads/2022/01/Suositus_SK_13-1_H1_asiakasrajapinta_final_2021dec.pdf)

Joten pistin sähköpostia asiakaspalveluun ja 10 päivän päästä sieltä tuli ilmoitus, että portti on aktivoitu. Yllätys sitten olikin, että luvatun ASCII datan sijasta sieltä portista tuli ulos binääridataa. Vielä ei ole Elenian asiakaspalvelu vastannut, että ovatko vahingossa enabloineet EFS (binääri ulostulon) eikä EFS2 (ASCII ulostulo). Tai tarkoituksella eivät seuraa Seskon suositusta ASCII datasta (tai eivät ole päivittäneet tänä vuonna asennettuun Aidon mittariin uusinta softaversiota). Edit: "asiakaspalvelu@elenia.fi" vastasi minulle sähköpostilla: "Pahoittelut, näissä asiakkaan lisälaitteissa täytyisi olla laitevalmistajaan yhteydessä." Eli eivät tunnustaneet aktivoineensa väärää profiilia minulle (ja eivät muuttaneet sitä asciiksi), vaan vyöryttivät mokansa laitevalmistajan syyksi (sinälläään ihan sama minulle, kun sain tuon binäärimuotoisenkin toimimaan).

Piirtelyn custom piirilevyn ja 3d printattavan koteloinnin, johon pystyy Wemos D1 Minin asentamaan, johon ESPHomella asennetaan lukusofta, jonka sitten liittää langattomasti vaikka Home Assistanttiin.

Tarvittava softa ASCII muotoiselle datalle:
https://github.com/psvanstrom/esphome-p1reader
Conffaus Wemos D1 minin mukaan:
https://github.com/psvanstrom/esphome-p1reader/tree/main#running-on-smartyreader-p1

Semmoinen huomio käyttäjiltä on tullut vastaan, että osassa mittareista, inverted true pitääkin olla inverted false, joten jos tuntuu, että data näyttää väärältä, niin kannattaa kokeilla kyseisen lipun kääntämistä toiseen asentoon.

Ja binääri-muotoiselle löysin toteutuksen internetin syövereistä ja tein sille custom branchin:
https://github.com/rainisto/esphome-p1reader/tree/Elenia_Aidon_v1.2_binary

Joten riippuen, että antaako mittarisi ulos ASCIIta tai binääria, niin joudut valitsemaan kumman firmiksen laitteeseen flashaat. Itse flashasin ekana ASCII version, ja jos ulostulo näyttää tältä, niin silloin mittarisi sylkee binääriä ulos (tai inverted arvo väärinpäin):

Ja sitten, kun olin asentanut binaari branchin itselleni, niin esphomen logi näytti paremmalta:

Sitten vain tein dashboardin HA:lle seuraavaa esimerkkiä seuraten (https://gist.github.com/endor-force/3c9fdf95535423157fa52609ba42d738). Data näyttää kiltisti päivittyvän 10 sekunnin välein, joten kaiken kaikkiaan varsin onnistunut DIY projekti.

Minulla on muutama ylimääräinen koteloitu lukija (rj12 kaapelin kanssa) rakennettuna hyllyssä (25e+4.6e kirjeposti), jos kiinnostaa, niin voi pistää sähköpostia blogin osoitteeseen, pikkuisesta sumup storestani: https://p1reader.sumupstore.com/tuote/koteloitu-p1-reader-rj12-kaapeli tai viestiä tori.fi:n kautta: https://www.tori.fi/vi/121470199.html. Sillä disclaimerillä, että sinun pitää olla tuttu Linuxin kanssa, että osaat ESPHomen flashata laitteeseen (laite tulee ilman firmistä, kun oman verkon ssid ja salasana määritellään flashauksen yhteydessä).

Oheinen ohjeistus voi kanssa helpottaa käyttöönottoa: https://tim.jyu.fi/view/users/vesal/oma/talo/talo/aidon

tiistai 20. heinäkuuta 2021

Home Assistant - Gluehome lukkointegraatio

Olen aikaisemmin Glue-lukko aihetta jo sivunnut aikaisemmassa blogipostauksessa: http://omakotikotitalomme.blogspot.com/2019/09/glue-alylukon-rajapintojen-tutkimista.html

Keväällä Glue muutti mobile applikaation kokonaan ja vanha API urli lakkasi toimimasta. Nopeasti vilkaisin uuden appiksenkin sisälle, ja siellä oli https://mobile.gluehome.com/api/ urli käytössä ja nopealla vilkaisulla löytyi myös mqtt broker hittejä, mikä olisi lupaavaa, jos semmoinen rajapinta joskus aukeasti. Mutta onneksi ei tarvinnut ruveta tarkemmin appiksen toimintaa penkomaan, kun internetistä löytyi uusi semi-official API, kun Homebridgelle oli julkaistu toteutus GlueHome integraatioille (https://github.com/GlueHome/homebridge-plugin). Joten samaa esimerkkiä seuraten voi curlilla tai HA:lla lukkoa komentaa.

# Create/fetch <api-key> with glue <user>:<pass> according to plugin README:
curl --location --request POST 'https://user-api.gluehome.com/v1/api-keys' --header 'Content-Type: application/json' -u <user>:<pass> --data-raw '{ "name": "My Test Key", "scopes": ["events.read", "locks.read", "locks.write"] }'

# Fetch <lock-id> using created <api-key>
curl -L -H "Authorization: Api-Key <api-key>"  https://user-api.gluehome.com/v1/locks

# Test operation <op>=lock/unlock on <lock-id> 
curl -L -H "Authorization: Api-Key <api-key>" -H 'Content-Type: application/json' -d '{"type":"<op>"}' https://user-api.gluehome.com/v1/locks/<lock-id>/operations

Ylläolevilla esimerkeillä voi testata lukon toimintaa, ja samalla voit luoda/pistää talteen oman lukkosi <api-key> ja <lock-id>. Niitä tarvitaan Home Assistantin puolella kun editoit secrets.yaml ja configuration.yaml tiedostoja.

secrets.yaml:
glue_command_on: "curl -L -H 'Authorization: Api-Key ApiAvain' -H 'Content-Type: application/json' -d '{\"type\":\"lock\"}' https://user-api.gluehome.com/v1/locks/123456/operations"
glue_command_off: "curl -L -H 'Authorization: Api-Key ApiAvain' -H 'Content-Type: application/json' -d '{\"type\":\"unlock\"}' https://user-api.gluehome.com/v1/locks/123456/operations"

glue_resource: "https://user-api.gluehome.com/v1/locks/123456"
glue_auth: "Api-Key ApiAvain"
configuration.yaml:
switch varasto_ovi:
- platform: command_line
  switches:
    varasto_lock:
      friendly_name: "Varaston Ovi"
      command_on: !secret glue_command_on
      command_off: !secret glue_command_off
sensor varaston_ovi:
  - platform: rest
    resource: !secret glue_resource
    name: varasto_lock
    method: GET
    headers:
      Authorization: !secret glue_auth
    json_attributes:
      - description
      - batteryStatus
      - lastLockEvent
      - connectionStatus
    value_template: "OK"
  - platform: template
    sensors:
      varasto_lock_last_event:
        friendly_name: Last varasto lock event
        value_template: "{{ state_attr('sensor.varasto_lock', 'lastLockEvent')['eventType'] }}"
      varasto_lock_battery:
        friendly_name: Varasto lock battery
        value_template: "{{ state_attr('sensor.varasto_lock', 'batteryStatus') }}"

Ja HA:n restartin jälkeen lukko löytyy switchinä Overview näytöllä;



maanantai 25. marraskuuta 2019

Home Assistant - Open source automaatio - Osa 4

Tykkäisin saada lämpömittareista myös mukavan näköistä käppyrää näkymään Grafanan puolelle. Joten muokkasin vähän yhtä olemassa olevaa kikkaretta joka MQTT ESP8266 onewire dallas mittareista pisti dataa eteenpäin Grafanan tietokantaan. Lisäsin koodinpätkän, joka myös kuuntelee myös homeassistant ja zigbee2mqtt mittarien MQTT jonoja.

https://github.com/rainisto/home-monitoring-grafana

Tuon MQTT bridgen avulla kaikista MQTT lämpömittareista menee data eteenpäin InfluxDB kantaan, josta grafanalla voi tehdä haluamansa näköisiä kuvaajia. Tässä esimerkkinä muutaman huoneen yhteisnäkymä:

Samalla voi configuroida Home Assisteantin hakemaan halumansa graafin HA:n desktop näkymään. Ohjeistus, jota seurasin löytyy täältä: https://community.home-assistant.io/t/complete-guide-on-setting-up-grafana-influxdb-with-home-assistant-using-official-docker-images/42860

configuration.yaml tiedostoon lisätään:

camera:
  - platform: generic
    name: Grafana Temperature
    still_image_url: 'http://192.168.1.8:3000/render/d-solo/xkTBiwMZz/home-assistant-dashboard?orgId=1&from=now-1d&to=now&panelId=4&width=1000&height=500&tz=Europe%2FHelsinki'
    username: homeassistant
    password: homeassistant
Ja ha:n rebootin jälkeen lisätään Picture Entity Card:

Ja lopulta grafana käppyrä näkyy suoraan home assistantin ruudulla, joten Grafana integraatio valmis.

keskiviikko 13. marraskuuta 2019

Home Assistant - Open source automaatio - Osa 3

Tällä kertaa vuorossa on Zigbee laitteiden lisääminen Home Assistant ympäristöön. Seurasin seuraavia ohjeita: https://www.zigbee2mqtt.io/. Flasheri ja CC2531 usb tikku antennin kanssa maksoi aliexpressistä kotiin toimitettuna alle 20e.

Tikun flashaus onnistui näppärästi myös Win10 läppärillä, kunhan ekana haki korjatun ajurin täältä.

Seuraavanlaisen conffin tein zigbee2mqtt:hen, eli enabloin homeasssistant tuen ja mqtt:n osoittamaan mqtt clusteriani (haproxy edessä).

/opt/zigbee2mqtt# more data/configuration.yaml
homeassistant: true
permit_join: true
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://192.168.1.4'
serial:
  port: /dev/ttyACM0
Ja sitten totuuden hetki: käynnistetään zigbee2mqtt softa raspberryssä ja painetaan Xiaomin Aqara lämpötilaanturista resettiä 5 sekunttia. Ja dadaa, consolille ilmestyi anturi, joka payloadissa näytti oikeanlaista dataakin antavan:

Ja siitä hyppäsinkin katsomaan Home Assistantin webbiä, ja sinnehän se automaattisesti olikin ilmestynyt laitteeksi.

Tämä lasten makkariin sijoitettu mittari näyttää myös ilmanpaineen ja lämpötilankin näyttää yhden desimaalin tarkemmin kuin olohuoneen BLE mittari.

Ja seuraavassa osassa vuorossa varmaan sitten Graphana tai 433Mhz laitteet Telldus mokkulan läpi tai Z-Wave (jos löydän pistokkeen kun minulla on Z-Wave palikka jossain laatikossa hukassa tällä hetkellä).

tiistai 12. marraskuuta 2019

Home Assistant - Open source automaatio - Osa 2

Olin jo muutama vuosi sitten (https://omakotikotitalomme.blogspot.com/2017/03/sonoff-tasmota-paivitysta.html) pistänyt lasten leikkihuoneen Ikean pilvivalon Sonoff kytkimen ja Tasmota firmiksen avulla MQTT pilveen. Ja tällä kertaa katsoin miten iso työ on saada saman lampun ohjaus näkymään Home Assistant käyttöliittymässä.

Tasmotan sivuilta löytyi helppo rautalanka ohje: https://github.com/arendst/Tasmota/wiki/Home-Assistant

Kaikessa lyhykäisyydessään pitää vain Tasmotan Consoleen kirjoittaa "SetOption19 1" ja painaa Restart. Tämä aktivoi MQTT Home Assistant Discovery moden.

Kun Tasmota oli käynnistynyt uudestaan, niin valaisin ilmestyi automaattisesti laitteeksi Home Assistenttiin. Kivasti näkyy firmiksen versiotkin yms tietoja.

Näiden Tasmota firmiksellä olevien laitteiden lisäys olikin yllättävän vaivaton operaatio. Seuraavassa osassa onkin sitten vuorossa Zigbee laitteet.

maanantai 11. marraskuuta 2019

Home Assistant - Open source automaatio - Osa 1

Kotiautomaatio projektini näyttää etenevän hitaasti, mutta nyt kun muksut ovat jo päässeet eroon vaipoista, joten nytkähti projekti taas eteenpäin.

Olin jo aikaisemmissa postauksissa pistänyt pystyyn clusteroidun MQTT:n (https://omakotikotitalomme.blogspot.com/2017/02/wifi-langaton-sahkokytkin.html), ja nyt tein periaatepäätöksen, että liitän mahdollisimman monen laitteen MQTT:n perään, jolloin voin käyttää hyvin valmiita open source palikoita ja tarvittaessa voin koodata omaa koodia, jos jotain haluamaani asiaa ei ole valmiina saatavilla. Valitsin open source lähetymistavan kun aika moni kotiautomaatiofirma on aikojen saatossa mennyt konkurssiin tai muuten vaan lopettanut toimintansa, jolloin kaupallisen purkin ostaneet ovat jääneet oman onnensa varaan.

Joten ensimmäiseksi otin rautapohjaksi Raspberry Pi 3B+:n, johon asensin pohjalla Rasbian Buster Lite -imagen (https://www.raspberrypi.org/downloads/raspbian/). Johon sitten asensin Home Assistant paketin venv ympäristöön (https://www.home-assistant.io/docs/installation/raspberry-pi/). Ja Home Assistant asennuksen sisään lisäsin vielä Home Assistant Community Storen (HACS), jolloin on helpompi ja nopeampi lisätä custom UI komponentteja ruudulle (https://hacs.netlify.com/docs/installation/manual).

Toi yllämainittu combinaatio oli itseasiassa minun toinen yritykseni, ekalla kerralla yritin asentaa hass.io raspberry distribuution, kun se olisi dockeroitu ja kaikkea muuta kivaa. Mutta tätä kirjoittaessani, kyseisessä distribuutiossa oli bugi, että se generoi giga tolkulla logitiedostoa muutamassa päivässä, joten siksi siirryin hass.io:sta tuohon venv asennukseen hacs lisäosan kanssa. Sehän voi olla, että hass.io korjaa buginsa jossain vaiheessa, joten kannattaa tarkistaa myös https://www.home-assistant.io/hassio/, jos suunnittelee uutta asennusta. Itse tykkään enemmän venv ympäristöstä kun Linux on tuttua kauraa minulle.

Tarkoitus tosiaan on liittää tähän kaikki valo-ohjaukset, lämpötilasensorit, kosteusanturit, liikkeentunnistimet, chromecast, valvontakameroiden hälyt ja lukuisat muut mokkulat (Bluetooth, Zigbee, Z-Wave ja 433HMz). Aloitan ensin kyllä ihan perusteista, että saan edes jonkun sensorin datan webbikäyttöliittymälle. Aloitin Bluetoothista, kun semmoinen on Raspberryssä jo ilman ulkoisia lisäosia. Minulla löytyy olohuoneesta Xiaomin BLE LCD lämpömittari, joten otin sen koekaniiniksi.

Netistä löytyi valmis palikka joka osaa Xiomin BLE:sta lukea arvot ja julkaista ne MQTT jonoon HA:n ymmärtämässä muodossa. https://github.com/aqualx/miflora-mqtt-daemon, jonka asennuksen jälkeen config.ini tiedostoni näytti tältä:

 [General]  
 reporting_method = homeassistant-mqtt  
 [Daemon]
 period_mitempbt = 120
 [MQTT]  
 hostname = 192.168.1.4  
 base_topic = homeassistant  
 [MiFlora]  
 [MiTempBt]
 MiBLETemp@Olohuone = 58:2D:34:33:D4:1B  

Ja käynnistin komennolla: "python3 /opt/mi-mqtt-daemon/miflora-mqtt-daemon.py", jolloin ruudulle ilmestyi:

Ja tuossa lisäsin sensorin Glance Card näkymään seuraavasti:

Ja siellähän se möllöttää, lämpötila päivittyy iloisesti sivulle. Seuraavassa osassa vuorossa Tasmota firmiksellä olevan Sonoff WIFI kytkimen HA integraatio MQTT auto discovery avulla.