Az első részben eljutottunk odáig, hogy sikeresen vettük a termosztát jelét, amit a központi egységnek küldött, majd megjelenítettük azt a HomeAssistant felületén. Most jöjjön akkor az adó rész felélesztése.
Az első részben szereplő RFM119W-868S1 sajnos vakvágánynak bizonyult, mert azzal nem működött az adás, így ez cserélve lett az RFM117W-868S1 modulra.
A project anyagigénye az alábbiak szerint alakult:
![]() |
![]() |
![]() |
RFM117W-868S1 | RFM217W-868S1 | ESP8266 |
A modulok bekötését már megfejtettük, de emlékeztetőül ideteszem:
RFM117W-868S1 pin | RFM217W-868S1 pin | ESP8266 pin |
VDD | VDD | 3V3 |
GND | GND | GND |
- | DATA | D1 |
DATA | - | D2 |
CLK | - | - |
- | CLK | - |
- | SDA | - |
- | CSB | - |
Próbapanelen összerakva így néz ki:
Nyissuk meg az eddig megírt kódunkat és folytassuk az adó felélesztését. Az első részben a sender címét 255-re állítottuk, hogy lekapcsolt állapotban legyen, most ezt írjuk át 4-esre, ami a GPIO4-et jelenti, ami a Wemos D1 mini D2-es lába.
Ezután az MQTT fogadó részt kell átalakítanunk. Próbáltam úgy felépíteni ezt az egyszerű kódot, hogy ha valaki nem ért semennyire a programozáshoz, de lépésről-lépésre elvégzi az itt leírtakat, neki is működőképes eszköze legyen a végére, ezért a vezérlő utasítások formázása a HomeAssistant alatt kerül elvégzésre. Az ötlet, hogy a Ha által kiadott command így nézzen ki: "TermosztátID;vezérlés". Ahhoz, hogy ebből értelmezhető vezérlést adjunk ki, a kapott jsont kétfelé kell bontanunk, és a split karakter a pontosvessző. Ezt a képen látható 1. pontban végzi el a kód, majd az utasítás két felét egy-egy változóba teszi.
A 2. pontban megnézzük, hogy bekapcsolást vagy kikapcsolást szeretnénk végezni, majd ennek függvényében beállítjuk a vez változónkat 0-ra vagy 1-re, amit majd átadunk denx libjének, hogy végezze el az utasítást (kapcsolást)
A 3. pontban kiírjuk a debug konzolra, hogy éppen mi történik, az adás idejére bekapcsoljuk a Wemos alaplapi ledjét, meghívjuk az adást a termosztát ID paraméterével és a vezérlési utasítással (0/1), majd a végén lekapcsoljuk az alaplapi ledet.
A 4. pontban összeállítunk egy MQTT utasítást a HA-nak, hogy elvégeztük a feladatot. Ez nem jelenti azt, hogy a kazán be is kapcsolt, mert csak a vezérlést adtuk ki és bízunk ebben :) Itt gondolkodtam el azon, hogy amint lesz időm, össze kell rakjak egy érzékelőt, ami a kazánból elmenő és visszatérő csövek hőmérsékletét méri, mert abból látni lehetne, hogy elindult a fűtés, mert melegszik a cső.
Ha ezekkel megvagyunk, nincs más hátra, mint ellenőrizni a kódunkat és az első részben már bemutatott módon, majd ha nincs benne hiba, feltölteni azt az ESP modulra. (Ha innen töltöd a kódot, letöltés után a fájl végéről töröld a .txt kiterjesztést és maradjon csak a .ino)
Ha elindítjuk az ArduinoIDE soros monitorját, látjuk, hogy elindul az eszközünk, kapcsolódik a wifi hálózatunkra, majd az MQTT brokerhez, majd ha a vevő értelmezhető adást vesz, azt elküldi az MQTT brokernak, amit mi megjelenítünk a HA felületén.
A megjelenítést már az előző postban leírtak alapján elkészítettük, de a vezérlési részt most ki kell egészíteni, mert a firmwarebe még csak most került be ez a funkció. Mivel ESP oldalon két paramétert várunk (ID;ON/OFF), így ezt meg kell adnunk a configuration.yaml payload_on és payload_off mezőiben:
Ha ez megvan, akkor lépjünk be a HomeAssistant weblapjára, ellenőrizzük a konfigurációnkat, majd töltsük újra a manuálisan konfigurált MQTT entitásainkat, hogy érvényesüljön az újonnan megadott payload.
Ezt követően, ha a felületen kiadjuk a parancsot az adott termosztát nevében, a Computherm Q8RF központi egysége veszi azt és indítja a kazánt és a megfelelő zónaszelepet, amit az ESP soros logjában látunk is (Message arrived in MQTT topic...)
Hurrá, gondolhatnánk, de van itt egy kis probléma. Mint korábban írtam, a fizikai termosztát a saját programja szerint teszi a dolgát, így ha az úgy érzékeli, hogy neki nem kell fűteni, akkor bizonyos időnként (eléggé random) küld a központnak egy üzenetet, így ha mi bekapcsoltuk a HA alól, akkor Ő ki fogja kapcsolni. Ez szépen látszik a fenti logban is. Denx tanácsa az volt, hogy vegyem ki az elemet a termosztátból és akkor a HA viheti a teljes fűtés vezérlést. Nekem a másik gondolatom, hogy szólok egy ismerősnek, akinek szintén Q8RF-je van, hogy egy rövid időre adja kölcsön az egyik termosztátját (nekem nincs mind a négy bekötve), így azt feltanítom mondjuk a hármas körre, a jelét megtanítom a HA-val, így lesz egy külön adó, amit a HA használ, ha vezérlést kell kiadni és csak innen lehet lekapcsolni is, így nem fogok egyik fizikai termosztátommal sem harcolni a vezérléssel.
Az ESP firmwareben van még fejlesztési lehetőség (WiFi és MQTT manager weboldal, státuszok megjelenítésére szintén weboldal, akár onnan is vezérlés kiadása), de nekem egyelőre ez megfelel így, úgyhogy ezt a lehetőséget meghagyom egy ehhez affinitást érző programozói vénával ellátott kollégának ;)
![]() |
![]() |