Saunan lämpötilan seuranta ja ilmoitukset
Yksi ajatus kotiautomaatiojärjestelmän hyödyntämiseksi on alusta alkaen ollut saunan lämpötilan seuranta. Saunassa ei ole valmiita putkituksia eikä reikien poraaminen seiniin houkuttanut, joten ainoa vaihtoehto oli käyttää langatonta anturia. Valmiita langattomia antureita, jotka toimisivat saunan korkeassa lämpötilassa ja kosteudessa, ei tahtonut markkinoilta löytyä, eikä toisaalta erillisistä langattomista lähettimistä rakentelukaan houkutellut. Myös anturin pariston kesto aiheutti toteutustavasta riippuen haasteita.
Sittemmin markkinoille ilmaantui kotimainen RuuviTag, joka täyttää kaikki yllä olevat vaatimukset. Se on vedenkestävä Bluetooth-majakka, joka mittaa lämpötilaa (-40ºC … +85ºC), suhteellista kosteutta ja ilmanpainetta (sekä kiihtyvyyksiä). Sen 1000mAh CR2477 paristo kestää asetuksista riippuen useamman vuoden. Kohtuuhintainen paketti sisältää kolme majakkaa siistissä muovikotelossa.
Home Assistant -palvelimen asemaa toimittavassa Raspberry Pi 2:ssa ei ole Bluetooth -valmiutta itsessään. Sitä varten hankin erillisen USB-adapterin. Adapteria valitessa kannattaa tarkistaa että se tukee Bluetooth LE -tekniikkaa, jotta se toimii RuuviTagin kanssa. Bluetooth -ajurien ja tarvittavien ohjelmistojen asennus ei sujunut aivan kivuitta, mutta eri keskustelupalstojen ohjeiden avulla anturi saatiin lopulta toimimaan.
Oletuksena RuuviTag lähettää anturien tiedot sekunnin välein. Kasvattaakseni RuuviTagin patterikestoa, tein sille oman laitteisto-ohjelmiston, joka lähettää anturien tiedot viiden sekunnin välein yhden sekunnin sijaan. Tarvittaessa myös lähetystehoa on mahdollista pienentää. Omaa laitteisto-ohjelmistoa varten tietokoneelle piti asentaa ohjelmointiympäristö ja tarvittavat ohjelmointikirjastot. Hommaan löytyi onneksi hyvät ohjeet.
HomeAssistant ei tue (vielä) RuuviTagia suoraan. Anturin arvot saa kuitenkin luettua tiedostosta kirjoittamalla sensors.yaml -tiedostoon alla olevat rivit. Anturin tiedot luetaan viiden minuutin välein erillisen skriptin avulla, joka kirjoittaa tiedoston JSON -tiedostomuodossa.
# RUUVI SENSORS - platform: file name: sauna_temperature file_path: "/home/homeassistant/.homeassistant/custom_components/sensor/sauna.json" value_template: '{{ value_json.temperature }}' unit_of_measurement: "°C" scan_interval: 300 - platform: file name: sauna_humidity file_path: "/home/homeassistant/.homeassistant/custom_components/sensor/sauna.json" value_template: '{{ value_json.humidity }}' unit_of_measurement: "%" scan_interval: 300 - platform: file name: sauna_pressure file_path: "/home/homeassistant/.homeassistant/custom_components/sensor/sauna.json" value_template: '{{ value_json.pressure }}' unit_of_measurement: "hPa" scan_interval: 300
Anturi kannattaa luonnollisesti sijoittaa saunassa mahdollisimman ylös, jotta se mittaisi oikeaa lämpötilaa. Anturi on siistissä valkoisessa kotelossa, mutta asensin sen kuitenkin piiloon lauteiden selkänojan taakse. Anturi näyttää tällä korkeudella hieman matalampaa lämpötilaa kuin saunan oma mittari. Lisäksi anturin kotelointi aiheuttaa viivettä mittaukseen. Tämä voidaan kuitenkin kompensoida muuttamalla lämpötila-arvoa ohjelmallisesti.
Anturin antamien tietojen lisäksi Lämpötilasta ja suhteellisesta kosteudesta saadaan laskettua absoluuttinen kosteus.
Alla olevalla lisäyksellä automations.yaml -tiedostoon saadaan järjestelmä lähettämään ilmoitukset talouden iOS-laitteisiin kun saunan lämpötila ylittää 60 astetta.
- alias: "Ilmoitus kun sauna on lämmin" trigger: platform: numeric_state entity_id: sensor.sauna_temperature above: '60' action: - service: notify.ios_all data: message: "Saunan lämpötila on {{ states.sensor.sauna_temperature.state\ \ }} \xB0C ja suhteellinen kosteus {{states.sensor.sauna_humidity.state}} %" title: Sauna on lämmin
Huom! Nykyisellään RuuviTagit integroituvat Home Assistantiin natiivisti. Erillistä skriptiä ja tiedoston lukua ei siis enää tarvita.
2 thoughts on “Saunan lämpötilan seuranta ja ilmoitukset”
Moi,
Mahtava blogi. Olen juuri etsimässä sopivaa anturia saunaan, joka toimisi home assistantin kanssa.
Voisitko kertoa, mitä muuta asennuksessa tulee tehdä kuin lisätä tekstipätkä .yaml tiedostoon? Tuleeko esimerkiksi erikseen tehdä custom component anturille? Miten tämä tapahtuu?
Ja vielä, tapahtuuko anturin yhdistäminen ssh:n avulla?
Kiitos paljon!
Moi,
RuuviTagin virittelin muistaakseni toimintaan https://github.com/ttu/ruuvitag-sensor -sivun ohjeiden avulla. Samaisen sivun esimerkkien avulla sain aikaiseksi python-skriptin (tallennettu custom_components -hakemistoon), jonka järjestelmän cron -ajastuspalvelu ajaa viiden minuutin välein. Kaikki tämä piti tehdä SSH-yhteyden kautta. Skripti kirjoittaa anturien lukemat tiedostoon, josta ne luetaan HASS:iin yllä mainitulla tavalla.
Vaatii siis hieman enemmän virittelyä kuin HASS:n suoraan tukemat anturit, joten pääsisit ainakin HASS:n puolesta helpommalla (ja halvemmalla) käyttämällä esim. ds18b20:a, sillä edellytyksellä että sinulla on mahdollista kaapeloida anturit.