Blog

Motoros redőnyök vezérlése HomeKitből

April 18, 2021

Azok a fránya környezeti változók 🏡

For the English version of this article, click here.

Mikor az új lakásba költöztünk, a motoros redőnyök kiválasztásakor valamiféle okos megoldást kellett találni a HomeKit kompatibilitásra, ugyanis mire mi megvettük a lakást, már nyilván ki volt építve a rendszer, tehát nem volt opció az, hogy szétvésessük a falat, és be tudjunk rakatni valamiféle Zigbee-s vagy hasonló kapcsolót, esetleg néhány Fibaro Roller Shutter modult.

Maradt tehát az, hogy a 433.MHz-en kommunikáló rádiós vezérlést kellett behozni valahogy az ökoszisztémába úgy, hogy mindegyik redőnyhöz külön-külön megoldható legyen a dolog. Ehhez a Homebridge-Hoobs párost, illetve egy Broadlink RM 3 Pro eszközt hívtam segítségül. Mielőtt belevágtam az egész projektbe, természetesen lepróbáltam, hogy átmegy-e a rádiójel minden szobából minden redőnyhöz, mert nem szerettem volna abba a csapdába esni, hogy jelátviteli problémák miatt nem lehet majd vezérelni valamelyiket, mert a Broadlink számára messze lenne.

Esetünkben 6 redőnyről (Hálószoba, Dolgozószoba, Terasz, 3x Nappali) van szó, így ezek vezérlését kellett megoldani. Az aluminium redőnyöket az itthon eléggé elterjedt ”Smarthome” motorokkal vezéreljük.

Előfeltételek ❕

De mielőtt belevágnék a részletekbe, hogyan is működik ezeknek a redőnyöknek a gyári, távirányítós vezérlése? Alapvetően 3 parancsot „tanítanak” fel mindegyik redőny távirányítóra, amelyek a „fel”, „le”, és a „stop” utasítások lesznek. Ugyebár itt megvan az a hátrány, hogy ha mondjuk csak félig szeretnénk leengedni a redőnyt, akkor nézni kell, hogy mikor éri el a kívánt szintet, és rányomni a stop gombra. Az „okosítást” követően már százalékos értéket is adhatunk mindenféle külön felügyelet nélkül, tehát ha úgy hozza kedvünk, hogy 32 százalékra nyitnánk a nappali redőnyt, akkor az is megoldható, akár Siri hangutasítás segítségével.

Ha hasonlót szeretnétek, akkor érdemes megnézni, hogy a redőnyök kommunikációja titkosított, váltakozó frekvencián megy-e, mert ha igen, akkor sajnos megint csak nem ez lesz a megoldás. Szerencsére nálam ez nem így volt, de az egyik szomszédomnál belefutottunk ebbe a problémába.

Fontos, hogy amikor én nekikezdtem volna a projektnek, akkor az éppen elérhető, legújabb hardvert vásároltam meg ehhez. Ez akkor a Broadlink RM 4 Pro volt, amely egy olyan kis kütyü képes infra és rádiójelek megtanulására és leadására. A saját alkalmazásával szuperül működött, azonban egyetlen Homebridge plugin sem volt képes normálisan kezelni az RM4-es modelleket, mert akkoriban még nem tudták visszafejteni a titkosított kommunikációját, ezért csak nagyon macerásan, mindenféle CLI-s pythonos telepítés és félbehagyott setupolás után lehetett volna behozni a rendszerbe, ezt viszont nem igazán szerettem volna így.

Tehát a megoldás az lett, hogy vásároltam egyet a régebbi modellből, és az RM3 Pro már gond nélkül ment az adott pluginnal. Ahogy most nézem, már elvileg sikerült ezt a problémát áthidalni, és az RM4-es eszközök is mennek, de mikor közel egy éve ezzel foglalkoztam, sajnos nem volt még így. Külön felhívnám a figyelmet, hogy a “Mini” modellek nem tudnak rádiójelet kezelni, csak infrát, tehát hiába néznek ki jól, a redőnyös projekthez nem lesznek jók.

Hogyan kezdjünk neki? 🤔

Tehát első lépésként megvan a rádiójelek tanulására és replikációjára képes Broadlink eszközünk (nálam: Broadlink RM3 Pro) telepített Hoobs vagy Homebridge konfigurációnk, ehhez le kell töltenünk az általunk megfelelőnek tartott Broadlink plugint. Én sokat kipróbáltam, volt, ami nem működött, vagy csak félig működött. Fogalmam sincs, hogy miért volt így, minden esetre el kellett szórakozni vele, mire meglett a megfelelő (Hoobs link itt, Homebridge/GitHub link itt).

A plugin telepítése előtt fel kell rakni és be kell konfigurálni a Broadlink eszköz iOS alkalmazását, hogy csatlakozni tudjon a Wifi hálózatra, majd ezt követően mehet a Hoobs/Homebridge plugin. Ennek ha minden jól megy, magától meg kell találnia a hálózaton az eszközt, a telefonunkon pedig megjelenik egy „Scan Frequency” és egy Learn kapcsoló a Home Appon belül, a Default Roomban. Ezeket kell használnunk majd a rádiójelek „lehallgatásához” és duplikálásához, hogy el tudjuk készíteni a szükséges konfigurációs fájlunkat.

Default Room

Rádiójelek megtanulása 📻

Ahhoz, hogy a redőnyvezérlés során kiadott rádiójeles parancsokat replikálni tudjuk a Broadlink eszköz segítségével, először meg kell ismernünk ezeket a parancsokat (illetve ezek Hexa kódjait), majd azokat fel kell használnunk a konfigurációs fájl elkészítése során. Ahogy említettem, ezek a „fel”, „le”, és „stop” parancsok lesznek, azonban tudnunk kell a redőnyök nyitási- és zárási idejét is, másodpercben, hiszen ebből tudja majd számolni a rendszer, hogy mikor van például félig nyitva az adott redőny. Szóval stoppert elő, és tessék szépen lemérni, hogy mennyi idő alatt nyílik és záródik mindegyik redőny. ;)

Tehát, meg kell nyitnunk a Hoobs/Homebridge kezelőfelületét, ott megnyitni a konzolt, miközben mellettünk van a telefonunk a Home appal, illetve az első redőnytávirányító.

Nyomjuk meg először a „Scan Frequency” gombot a telefon Home alkalmazásában, majd tartsuk lenyomva az első gombot a redőny rádiós távirányítóján (pl „fel”) egészen addig amíg, a konzolban nem látjuk, hogy megtalálta a frekvenciát, és ki nem timeoutol a keresés. Ezt követően elengedhetjük a távirányító gombot, majd nyomjuk meg a telefon Home alkalmazásában a „Learn” gombot, és azonnal nyomjuk meg EGYSZER ugyanazt a gombot, amit az előbb scanneltünk. Ha sikeres a jel leolvasása, akkor a konzolban látszani fog a „learned hex:code” sor után egy szép hosszú hexadecimális kód. Ezt másoljuk ki egy jegyzettömb fájlba úgy, hogy tudjuk, hogy pontosan minek a kódja is ez (pl: terasz redőny fel). Kb így kell elképzelni:

hoobs scan learn rf

És akkor most lehet ezt eljátszani az összes redőny, összes gombjával! A lényeg, hogy ismerjük meg az összes redőny összes parancsának hexa kódját, mert ezek fognak kelleni a konfigurációs fájl létrehozásához.

A konfigurációs fájl 📝

A konfigurációs fájl elkészítéséhez nagy segítséget ad a plugin készítői által összeállított leírás, amelyben az összes támogatott eszköz paraméterei megtalálhatóak, hiszen a Broadlink segítségével bármilyen infra jel, vagy más fajta 433Mhz-s rádiójel duplikálható, tehát pl TV-t, klímát, akármit is ugyanígy kell feltanítani, csak mi most a redőny vezérlésére használjuk. A guide itt érhető el: klikk.

Mivel mi jelen esetben a redőnyök miatt érkeztünk, ezért számunkra a „window-covering” típus lesz érdekes, ezt a struktúrát kell követnünk a konfigfájl megírása során.

Mutatok egy példát a saját konfigomból, itt annyival több egy kicsit, hogy mivel már minden eszköz kódját ismerem, a „Scan Frequency” és a „Learn” kapcsolókat elrejtettem. A totalDurationOpen és totalDurationClose esetén másodpercben kell megadni az értékeket, az ”open”, ”close” és ”stop” paramétereket pedig eszközönként a korábban lehallgatott hexa kódokkal kell ""-között beillesztani a megfelelő helyre:

{
    "platform": "BroadlinkRM",
    "hideScanFrequencyButton": true,
    "hideLearnButton": true,
    "hideWelcomeMessage": true,
    "accessories": [
        {
            "name": "Study Blinds",
            "type": "window-covering",
            "totalDurationOpen": 21,
            "totalDurationClose": 21,
            "data": {
                "open": "nyito-hexa",
                "close": "zaro-hexa",
                "stop": "stop-hexa"
            }
        },
        {
            "name": "Bedroom Blinds",
            "type": "window-covering",
            "totalDurationOpen": 21,
            "totalDurationClose": 21,
            "data": {
                "open": "nyito-hexa",
                "close": "zaro-hexa",
                "stop": "stop-hexa"
            }
        },
        {
            "name": "Balcony Blinds",
            "type": "window-covering",
            "totalDurationOpen": 29,
            "totalDurationClose": 29,
            "data": {
                "open": "nyito-hexa",
                "close": "zaro-hexa",
                "stop": "stop-hexa"
            }
        },
        {
            "name": "Living Room Left Blinds",
            "type": "window-covering",
            "totalDurationOpen": 21,
            "totalDurationClose": 21,
            "data": {
                "open": "nyito-hexa",
                "close": "zaro-hexa",
                "stop": "stop-hexa"
            }
        },
        {
            "name": "Living Room Center Blinds",
            "type": "window-covering",
            "totalDurationOpen": 22,
            "totalDurationClose": 22,
            "data": {
                "open": "nyito-hexa",
                "close": "zaro-hexa",
                "stop": "stop-hexa"
            }
        },
        {
            "name": "Living Room Right Blinds",
            "type": "window-covering",
            "totalDurationOpen": 22,
            "totalDurationClose": 22,
            "data": {
                "open": "nyito-hexa",
                "close": "zaro-hexa",
                "stop": "stop-hexa"
            }
        }
    ]
}

Ha ezzel megvagyunk, akkor a konfigurációt el kell menteni, a bridge service újra fog indulni a Hoobs/Homekit eszközön, és a Default Roomban meg fognak jelenni a redőnyök. Próbáljuk le őket, hogy tényleg működik-e minden parancs (előfordulhat, hogy zajos környezetben a hexa kódok „lehallgatása” során mellémegy valami, ezért újra le kell mérni a kódokat, és javítani. Nekem szerencsére nem volt ilyen, de az elvi lehetőség megvan, hogy a szomszéd pont akkor nyomkodja a saját redőnyét, amikor te szeretnéd lehallgatni az értékeket, és ez bezavar.).

Ha igen, akkor már a Home Appon belül el lehet rendezni a redőnyöket, hogy a megfelelő szobákban legyenek, és ne a Default roomban.

Innentől kezdve megy a Siri is, de kézzel is nyitható-zárható a redőny, hosszan nyomva tartva pedig a százalékos beállításra is lehetőség van.

thumb home app balcony shades1

thumb home app balcony shades partially open

Lehetséges buktatók 😣

Mint ahogy fentebb már említettem, ez az egész nem működik akkor, ha a redőnyöd és a távirányító közti kapcsolat nem 433Mhz-en megy, esetleg titkosított kommunikációval van megoldva.

Probléma lehet még a környéken tapasztalható interferencia, ami megnehezíti a rádiófrekvenciás parancsok kiolvasását.

Illetve jól válaszd meg a Broadlink eszközt és a plugint, mert ezek nélkül sajnos nem fog menni.

Tapasztalatok 1 év után 📅

Lassan 1 éve használom így a dolgot, és semmi probléma nem volt még, nyilván ha nincs internet, akkor nem fogod tudni működtetni a sztorit, de egyébként teljes funkcionalitással megy minden. Tökéletesen működnek az automatizációk is, a Siri parancsok (Pl: Open the living room shades vagy Close the Balcony blinds). Fontos, hogy a nyitási-zárási időket pontosan mérjük le, mert különben nem fog rendesen zárni/nyílni a redőny. Természetesen ezeken a config fájlban bármikor lehet finomítani.


Írta és kalapálta Kovács Marcell. Facebook   Twitter