Tee se itse: Omakotitalon lämmityksen mittaaminen ja visualisointi

alatalo
6 min readFeb 4, 2018

--

Grafana-visualisointi Ouman EH-203 lämmönsäätimen datasta.

Vuonna 2013 valmistunut omakotitalomme on kytketty Oulun Energian kaukolämpöverkkoon. Vesikiertoisen lattialämmitysjärjestelmän ja käyttöveden sydämenä sykkii Sampo ECO 8G OU lämmönjakokeskus.

Keskuksen automatiikkaa valvoo ja ohjaa Ouman EH-203 digitaalinen lämmönsäädin.

Lämmönjakokeskusta aikani ihmeteltyäni huomasin Oumanin tarjoavan omalta käyttöliittymältään monenlaista mittausdataa. Historiatietoa laite ei kuitenkaan kerää, hälytykset pois lukien. Data on siis reaaliaikaista ja katoaa sitä myötä, kun uutta lukemaa päivitetään ruudulle.

Kiinnostuin tämän mittausdatan tallentamisesta, analysoinnista ja visualisoinnista loppusyksyllä 2017. Ilokseni huomasin, ettei homman kotikonstein rakentelu ole ruudinkeksijän hommaa. Noin 80 euron hintalappukaan ei päätä huimaa.

Todennäköisesti sinunkin teknisestä tilastasi löytyy vastaavanlaista tekniikkaa ja voit soveltaa tämän artikkelin vinkkejä omaan käyttöösi sopivaksi. Sama logiikka toimii muillakin Oumanin säätimillä, kuten EH-201, EH-202 ja EH-686.

Ouman EH-203 kytkettynä sarjakaapelilla läppäriin.

Temppu ja kuinka se tehdään

Ajatuksena on siis rakentaa halpa datan kerääjä, joka osaa myös visualisoida ja lähettää erilaisia kustomoitavia hälytyksiä järjestelmästä.

Tarkkaan tekniseen toteutukseen ja asennusohjeisiin ei tässä jutussa syvennytä, vaan pyrkimyksenä on antaa yleiskuva ja vinkkejä miten hommassa pääsee nopeasti liikkeelle.

Järjestelmää on helppo laajentaa esimerkiksi RuuviTag-sensoreiden mittauksien tai Oulun Sähkönmyynnin EnergiaTililtä saatavien käyttölukemien tallentamiseen, kuten itsekin olen tehnyt. Tai esimerkiksi Enervent ilmanvaihtokoneen mittaukseen. Näistä aiheista myöhemmissä artikkeleissa lisää.

Tarvikkeet

Pohjalle Raspberry Pi

Alusta rakennetaan Raspberry Pi minitietokoneen päälle. Olen itse käyttänyt onnistuneesti useita Pi-malleja, kuten Raspberry Pi Zero W ja Raspberry Pi 3 Model B:tä. Suosittelen kuitenkin lähtökohtaisesti Pi 3:sta sen tehon ja USB-liittimien takia. Tilasin omani The PiHutista. PiHutin myymään pakettiin kuuluu kaikki tarpeellinen: rPi3, muistikortti, kotelo ja virtalähde.

Mikäli kaapistasi löytyy jo jokin muu Pi tai esimerkiksi vanha läppäri, niin voit huoletta soveltaa ja käyttää sitä. Itsekin protoilin ensin vanhalla IBM X41 läppärillä.

Asenna laitteeseen sopiva Linux-käyttöjärjestelmä. Raspberry Pi:hin sujahtaa mukavasti Raspbian.

Kytke laite verkkoosi.

Ouman EH-203 sarjakaapelin kytkentä

Oumanin säätimestä löytyy sarjaliitännän lisäksi MODBUS-liitäntä. MODBUS on kuitenkin aika kallis, noin 150 euron arvoinen lisävaruste, joten päädyin käyttämään sarjaliitäntää.

Ouman EH-203:ssa ei ole DB9-sarjaporttia. Laitteen kannen alta paljastuu kuitenkin riviliittimet, johon sarjakaapelin voi kytkeä kolmella piuhalla. Kansi on kiinni parilla ruuvilla ja avaamisbonuksena sinut palkitaan huoltotilan pääsykoodilla (1324).

Oumanin kansi on kiinni kahdella ruuvilla. Irroita muovitulpat ja ruuvaile koppa auki.

Hanki DB9 RS232-sarjakaapeli hyvin palvelevasta elektroniikkafirmasta (omani ostin SP-Elektroniikasta) ja katkaise johdon toinen pää liittimeen pois. Kuori 2, 3 ja 5 (RX, TX ja GND) johdot ja napsi muut johdot pois tieltä tarpeettomina.

Kytke sarjakaapelin johdot Oumanin A, B ja C liittimiin seuraavasti:

  • Sarjakaapelin 2 — Ouman A (RX-TX)
  • Sarjakaapelin 3 — Ouman C (TX-RX)
  • Sarjakaapelin 5 — Ouman B (GND-GND)

Onneksi olkoon, vaikein rautaosuus on nyt tehty!

Ouman EH-203 ohjekirja

Ouman EH-203 ohjekirjasta löytyy myös ohjeet sarjakaapelin kytkentään (sivu 42).

Ohjeessa mainitaan Ouman Trend-ohjelmisto, joka toimii vanhemmissa Windowseissa. Tässä artikkelissa Ouman Trend-ohjelmistoa ei asenneta, mutta kaapelin kytkentäohjeesta on hyötyä.

Ouman EH-203 ohjekirja.

Sarjaportti Pi:hin

Raspberry Pi:ssä ei myöskään ole DB9-sarjaporttia, joten seuraavaksi tarvitset sarjaportti — USB-adapterin. Tilasin omani Amazon.de:stä.

Liitä sarjakaapeli USB-adapteriin ja adapteri Pi:hin.

Kytketylle sarjalaitteelle kommunikoidaan laiteosoitteella, joka selviää Linuxissa esimerkiksi dmesg-komennolla:

$ dmesg
...
[ 717.200183] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
[ 717.200366] usb 1-1.3: Detected FT232RL
[ 717.201313] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0

Tässä tapauksessa kommunikointiin käytetään laitetta /dev/ttyUSB0. Laita korvan taakse, sillä tarvitset tätä tietoa hetken kuluttua.

Ohjelmisto

Datan keräys hoidetaan Olli Lammin erinomaista taloLogger-ohjelmistoa apuna käyttäen.

Tietokannaksi asennamme aikapohjaisen datan tallennukseen soveltuvan InfluxDB:n. Visualisointiin ja hälytyksiin käytämme Grafanaa.

Lisäksi kirjoitamme taloLoggerin rajapintoja käyttävän Python-skriptin, jonka ajastamme cronilla lukemaan ja tallentamaan mittaustulokset parin minuutin välein.

Ohjelmisto

TaloLogger itsessään mahdollistaa myös datan keräämisen ja visualisoinnin ja voitkin halutessasi käyttää sitä.

Itse halusin joustavamman alustan, jolla voi kerätä ja visualisoida muutakin dataa, kuten RuuviTageja ja EnergiaTiliä. Tästä syystä päädyin asentamaan erillisen tietokannan, visualisoinnin ja skriptaamaan itse dataloggauksen.

Asenna InfluxDB ja Grafana

Raspbian Stretchin oletuspaketointi asentaa todella vanhat versiot sekä InfluxDB:stä että Grafanasta, joten suosittelen asentamaan tuoreemmat versiot esim. seuraavia linkkejä ja ohjeita seuraillen:

InfluxDB v1.4
https://docs.influxdata.com/influxdb/v1.4/introduction/installation/

$ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -$ echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list$ sudo apt-get update && sudo apt-get install influxdb$ sudo service influxdb start

Grafana v4.6.3 unofficial for Raspberry Pi
https://github.com/fg2it/grafana-on-raspberry

$ curl https://bintray.com/user/downloadSubjectPublicKey?username=bintray | sudo apt-key add -$ echo "deb https://dl.bintray.com/fg2it/deb stretch main" | sudo tee -a /etc/apt/sources.list.d/grafana.list$ sudo apt-get update && sudo apt-get install grafana$ sudo service grafana-server start

Valinnaksesi jää asennatko ohjelmistot Docker containereihin vai suoraan laitteelle apt-getillä. Vai hajautatko kenties kaikki palvelut eri raspeille tai pilveen. Tämä artikkeli ei ota siihen kantaa. Säätämisen määrä ja laatu riippuu ihan itsestäsi ;) Minä asentelin tarpeelliset hilppeet apt-getillä yhteen Pi:hin laiskuuttani.

Tämän jälkeen sinulla tulisi olla sekä tietokanta, että visualisointipalvelu ajossa ja palveluiden osoitteet tiedossa.

InfluxDB:n tietokanta ja käyttäjätunnus

Luo InfluxDB tietokanta, johon mittausdataa tullaan tallentamaan. Lisää kantaan myös käyttäjätunnus salasanoineen. Esimerkissä luodaan käyttäjätunnus täysillä käyttäjäoikeuksilla.

$ influx> CREATE DATABASE ouman
> CREATE USER admin WITH PASSWORD 'password' WITH ALL PRIVILEGES

Datan keräys

Datan keräykseen käytämme kirjoittamaani Python-skriptiä, jonka lähdekoodi asennus- ja käyttöohjeineen löytyy GitHubista alla olevasta osoitteesta.

Periaate on simppeli; taloLoggerin valmista rajapintaa käyttäen kommunikoimme Oumanille, nappaamme talteen vain halutut datat ja tallennamme ne InfluxDB:n parin minuutin välein. Jokainen mittaus tallentuu tietokantaan omana measurementtinaan, omaan “tauluunsa”.

Skripti tarvitsee taloLoggerin ja kevyen konfiguroinnin lisäksi influxdb ja pyserial paketit toimiakseen.

Lataa projektin lähdekoodi GitHubista. Tutustu asennus- ja käyttöohjeisiin projektin README-tiedostosta.

GitHub https://github.com/alatalo/ouman-collector

Huom! Mikäli skriptiä ajaessasi törmäät seuraavaan virheeseen:

Cannot open /dev/ttyS0: Permission denied 

..niin lisää Raspberry Pi käyttäjäsi dialout käyttäjäryhmään seuraavalla komennolla ja kirjaudu uudelleen sisään Pi:hin.

$ sudo gpasswd --add ${USER} dialout 

Ensimmäinen visualisointi

Kun dataa alkaa kertyä, niin suuntaa webbiselaimellasi Grafanaan kirjautuen siihen sisään.

Lisää data sourceksi aiemmin luomasi InfluxDB tietokanta. InfluxDB pyörii oletusasetuksillaan portissa 8086, joten data sourcen osoitteeksi tulee http://localhost:8086 Anna myös aiemmin määrittelemäsi käyttäjätunnukset sekä tietokannan nimi.

Lisää Grafanaan dashboard ja sille uusi graph.

Muokkaa graafia ja valitse oikea data source sekä measurementiksi esim. L1 menovesi.

Onnittelut ensimmäisestä Grafana-visualisoinnistasi!

Mitä seuraavaksi?

  • Lisää graafit muillekin mittaamillesi datapisteille.
  • Tutki, mitä muita mittauksia taloLogger mahdollistaa.
  • Säädä Grafana hälyttämään, kun Oumanin LV menovesi ylittää 65°C.
  • Lisää järjestelmään uusia sensoreita ja datalähteitä, kuten RuuviTag ja EnergiaTili.
  • Kirjoita parempi dataloggeriskipti ja julkaise se GitHubissa.

Saman sarjan juttuja

Sähköpostihälytys puhelimessa liian korkeasta lattialämmityksen menoveden lämpötilasta.

--

--

alatalo

Software Development Generalist - Hybrid Worker - Human Being