Uponor-termostaatit – Tietojen luentaa KNX RF -laitteilta
Talossamme on vesikiertoinen lattialämmitys, jota ohjaa Uponor Control System -järjestelmä. Järjestelmä koostuu C-56 -keskusyksiköstä, I-76 -käyttöpaneelista ja useista langattomista T-75 -termostaateista. Termostaatit lähettävät tavoitelämpötilan ja sen hetkisen lämpötilan KNX RF -protokollan avulla keskusyksikölle. Keskusyksikkö ohjaa tämän tiedon perusteella jakotukin toimilaitteita.
KNX -järjestelmän viralliset sertifioidut komponentit ovat usein kalliita. Lisäksi järjestelmän muokkaamiseen tarvitaan erillinen ohjelmista, jonka käyttölisenssi on yksityiseen käyttöön kohtuuttoman kallis. Asiaa tovin selvitellessäni löysin pienen radiomoduulin, jonka avulla termostaattien tiedot saisi luettua.
Kyseinen radiomoduuli hyödyntää Texas Instrumentsin pienitehoista CC1101 piiriä. Tällaisista radiomoduuleista on olemassa eri taajuuksille optimoituja versioita. KNX RF:n kanssa parhaiten toimii 868 MHz:n versio. Jouduin tilaamaan radiomoduulin kahdesta eri paikasta, sillä ensimmäinen Kiinasta tilattu moduuli ei toiminut. Toinen ebay:sta hankittu versio toimi sen sijaan moitteetta.
Tein radiomoduulille 3D-tulostimella lisäksi kotelon, jonka mallit voit ladata täältä. Kotelo suojaa moduulia ja toimii samalla vedonpoistajana johdotukselle. Radiomoduuli kannattaa mahdollisimman samalle korkeudelle termostaattien kanssa parhaan kuuluvuuden saavuttamiseksi.
GitHubista löysin radiomoduulille lähes valmiin ohjelman. Ohjelma on tarkoitettu OpenHABille ja se käyttää OpenHABin REST API -rajapintaa. Home Assistantissa on myös mahdollisuus REST API:n käyttöön. Päädyin kuitenkin poistamaan OpenHAB- ja REST API -ominaisuudet koodista. Sen sijaan ohjelma kirjoittaa nyt termostaattien tiedot JSON -tiedostoon, josta ne voidaan lukee Home Assistantiin tiedosto-sensorin avulla. Muokkaamani lähdekoodi ja lyhyt ohjeistus löytyy täältä.
sensor:
- platform: command_line
name: olohuone_temperature
command: "cat /home/homeassistant/.homeassistant/custom_components/knxrf/knxrfSensors.json"
value_template: '{{ value_json["Olohuone"]["temperature"]|float }}'
unit_of_measurement: "°C"
scan_interval: 300
Sittemmin olen siirtynyt käyttämään ESPHomea. ESPHomen käyttöönotosta ja Uponor termostaattien lukemisesta ESPHomen avulla löytyy oma kirjoitus. ESPHomen tarvitseman komponentin koodi on ladattavissa GitHubista.
8 thoughts on “Uponor-termostaatit – Tietojen luentaa KNX RF -laitteilta”
Moi!
Oletko onnistunut ohjaamaan Uponorin C-56 keskusyksikköä vielä mitenkään? Esim. poissaoloajan lämpötilanpudotus?
Tätä juttua kirjoitellessa asiaa selvittelin ja löysin Uponorin Viron sivustolta tietoa yhteensopivasta KNX -adapterista: https://www.uponor.ee/-/media/country-specific/estonia/download-center/indoor-climate/ufh/sales-folder/knx_adapteri_manuaal_ingliskeelne.pdf Kyseisen laitteen valmistaja on Hager ja sitä saa ostettua n. 400€ hintaan. Tuon päälle vielä KNX:n ohjelmisto-/lisenssikulut.
Muitakin halvempia KNX-adaptereita toki saattaa löytyä, mutta en asiaa koskaan sen pidemmälle vienyt. Eli ei, en ohjaa keskusyksikköä muuten kuin sen napeista. Jos löydät fiksun tavan, niin minuakin toki sellainen kiinnostaa.
Tein itse saman openhabin kautta mutta lattiatermarin LATTIA- dataa en saa pihalle. Huoneen lämpötilan ja asetetun saan tuostakin, mutta en sitä lattian minimi / tän hetkistä lämpötilaa. Onnistuuko tuolla sinun versiolla saada myös ne? Kyseessä siis uponorin huone / lattia termari T-54.
Itse en lattia-antureita laittanut, vaikka putket laatan sisään asensinkin, joten en pysty testaamaan. Näkyykö lattian lämpötila Uponorin omassa keskuspaneelissa? Jos, niin se pitäisi luultavasti onnistua lukemaan myös tällä.
Kiitos blogautuksesta. Ilman sitä en olisi varmaan koskaan tullut kokeilleeksi tätä. Säästän ruuvitagit muuhun käyttöön, kun saan huonelämpötilat suoraan termostaateilta.
Yksi ongelma kuitenkin on. Mistä lie johtuu, että palvelu (MonitorKNXRF) stoppaa minulla useita kertoja tunnissa, kun dataa ei tule? Radiomoduulin sijainti ei tunnu vaikuttavan asiaan. Esimerkiksi olohuoneen ja parin makuuhuoneen termostaatit ovat parin metrin etäisyydellä ja vaikka vien moduulin melkein viereen, ei asia sillä korjaannu.
Jos muutan asetettua lämpötilaa termostaatilla, niin saa lukemat kaikilta termostaateilta (7 kpl) melkein heti (lienee vain se 15 s viive). Muutenkin dataa tulee kyllä kaikilta termostaateilta, mutta aika harvoin.
Kuinka usein termostaatti ylipäätään ilmoittaa uudet lukemat keskusyksikölle?
Alla dataa viimeisimmältä tunnilta (knxrf-pi on Raspberryn hostname):
Feb 17 14:00:57 knxrf-pi monknxrf: MonitorKNXRF got data from sensor 007402302656 reading 2156 and setpoint 2250.
Feb 17 14:02:12 knxrf-pi monknxrf: MonitorKNXRF got data from sensor 007402302646 reading 2198 and setpoint 4094.
Feb 17 14:02:27 knxrf-pi monknxrf: MonitorKNXRF got data from sensor 007402302646 reading 4094 and setpoint 2200.
Feb 17 14:02:42 knxrf-pi monknxrf: MonitorKNXRF got data from sensor 007402302650 reading 2250 and setpoint 2200.
Feb 17 14:04:57 knxrf-pi monknxrf: MonitorKNXRF stopping due to no data received from CC1101
Feb 17 14:04:57 knxrf-pi monknxrf: MonitorKNXRF stopped
Feb 17 14:04:57 knxrf-pi monknxrf: MonitorKNXRF started
Feb 17 14:07:12 knxrf-pi monknxrf: MonitorKNXRF stopping due to no data received from CC1101
Feb 17 14:07:12 knxrf-pi monknxrf: MonitorKNXRF stopped
Feb 17 14:07:13 knxrf-pi monknxrf: MonitorKNXRF started
Feb 17 14:09:28 knxrf-pi monknxrf: MonitorKNXRF got data from sensor 007402302657 reading 2364 and setpoint 2200.
Kiitos kommentista ja hyvä että kirjoituksistani on ollut hyötyä. Tuo stoppailu on lähinnä ominaisuus että palvelu uudelleenkäynnistetään jos dataa ei tietyllä aikavälillä saada. Samaa se tekee itsellänikin siis.
Mitään faktaa termareiden lähetystaajuudesta ei itsellä ole. Ehkä ne lähettävät vain kun tiedot ovat muuttuneet ja näin säästävät paristoja. Näytöllisissä termareissa näkyy antennin kuvake ja näytöttömissä vilahtaa ledivalo lähetyksen hetkellä jos jaksaa vieressä vahtia.
Nyt kun tajusin tarkastella yksittäistä termostaattia, niin näyttää, että data lähetetään 15 min välein tai kun säätää sitä manuaalisesti. Mielestäni tuota serviceä voisi pitää pystyssä sen 15+ minuuttia, niin ei tulisi ihmetyksen aihetta, kun service restarttailee itsekseen.
Kokeile muuttaa monitorknxrf.service:n TimeoutStopSec -parametria suuremmaksi.