Xiaomi koduautomaatika lüüs GitHub Linkedin Coderwall Stack Overflow Google+

Xiaomi on mulle aina enam sümpatiseerima hakanud oma kenade ja minimalistlike toodetega. Nende Smart Home Gateway ei ole erand. Seadmete seadistamiseks, juhtimiseks ja näitude jälgimiseks on tehtud äpid nii Androidile kui iOS’ile, kuid need on suures osas hiinakeelsed ja täis vigu, seega oli vaja leida mingi muu lahendus nende edevate vidinate kasutamiseks.

Kuigi sellesse seeriasse kuuluvaid seadmeid on võimalik ka eraldi osta, koosneb pildil olevasse põhikomplekt järgmistest komponentidest:

Peaseade

Tagumisel küljel on tal Hiina-tüüpi pistikupesa. Internetti ühendub wifi abil, anduritega suhtleb üle ebastandardse ZigBee protokolli.

Ukse-akna magnetandur

Koosneb kahest osast, üks on andur ise ja teine on magnet.

Liikumisandur

Passiivne infrapunaandur, mis on üllatavalt tundlik. 2,5 meetri kõrgusele seina külge kinnitatuna märkab isegi kui koer või kass mööda jalutavad.

Juhtmevaba nupp

Tervenisti üks nupp, mille peale saab äpis mingeid tegevusi käivitada.

Lisaks on võimalik peaseadmega ühendada veel selliseid andureid-käitureid, mida saab eraldi osta:

Temperatuuri-õhuniiskuse andur

Mõõdab temperatuuri ja õhuniiskust 0,1 ühikulise eraldusvõimega.

Pistikupesa adapter

Käib pistikupessa tarbija vahele ja saab äpist või mingite sündmuste-tegevuste peale sisse-välja lülitada.

Erinevad seinalülitid

Erinevad tüüpi lülitid.

Alternatiivid äpile

Osadel kodanikel on õnnestunud andureid ilma keskseadmetea SmartThingsi külge ühendada, kuid see suhtlus pole vist kõige usaldusväärsem. Pealegi on see mingisugune kahtlane suletud platvorm, seega sellele ma kauem keskenduda ei kavatse.

Õnneks on Xiaomi olnud nii tublid, et on Gateway’le teinud API, mille kaudu saab süsteemiga üle kohaliku võrgu ka suhelda, jättes nende enda pilveteenuse praktiliselt mängust välja. API kirjeldus asub (louisZL/lumi-gateway-local-api)[https://github.com/louisZL/lumi-gateway-local-api] repos, selle võimaluse sisselülitamise algne juhtend Xiaomi foorumis aga teen sellest oma uuendatud ja lihtsustatud versiooni ka siia.

Kohaliku võrgu API sisselülitamine

Selleks, et kolmanda osapoole tarkvata kasutada saaks, on kõigepealt vaja see API sisse lülitada.

Näide on läbi tehtud iOS 10.2 ja Xiaomi Home 3.8.1 versioonidega. On teada ja olen omal nahal kogenud, et Androidi äpp on mõnevõrra stabiilsem.

Avame äpi, mis näeb välja selline:

Valime seadmete seast Gateway, et avada seda süsteemi puudutavad alam-menüüd.

Avame kolme-täpi-nupust lisavalikud ja valime “About”.

Seejärel avaneb taoline vaade, kus tuleb lehe tühjas (alumises osas) 5 korda toksata, et välja tuua 3 peidetud menüüpunkti.

Välja ilmuvad 3 hiinakeelset menüüpunkti, millest esimene näitab lihtsalt äpi versiooni (3.8.1, aga ma ei tea, mis see 3.1.1 seal on), teine on lokaalse API sisselülitamise menüüpunkt ja kolmandast näeb infot Gateway enda ja tema külge ühendatud seadmete kohta. Valime hiinakeelsetest keskmise, et edasi liikuda.

Siin kohal saan mina iOS äpis viga “retrieve failed”, mis vaid vahel harva ette ei tule, kui ma korduvalt äpi App Switcherist kinni panen ja uuesti siia menüüsse rändan. Siin tuleb nii kaua uuesti ja uuesti proovida, kuni viga enam ei tule või siis proovida Androidi äppi.

Kui see leht lõpuks avaneb, tulleb lüliti sisse lülitada (roheliseks), mille peale peaks teisele reale tekkima salasõna (pildil kaetud punasega). Kopeeri see kuskile kõrvale või kirjuta üles, seda läheb pärast vaja. Vajutame confirm ja liigume tagasi eelmisesse menüüsse, kust nüüd valime viimase hiinakeelse menüüpunkti.

See viib lehele, kus on hulk mingeid JSON-laadseid andmestruktuure. Sealt huvitab meid “mac” väärtus, mida läheb ka hiljem vaja (pildil punasega kaetud). Sellega tasub olla tähelepanelik, sest seal on ka muid MAC-aadresse. Halliga katsin ära read, mis otseselt või kaudselt mu wifi AP-ga seotud on ja ei puutu siin asjasse.

Nüüd võibki hakata alternatiivtarkvarasid katsetama, millest esimene on HomeBridge.

HomeBridge

HomeBridge on loodud erinevate automaatikaseadmete-süsteemide sidumiseks Apple HomeKit-ga kuniks tootjad ise enda tooted sellega ühilduma saavad, kui see üldse kunagi juhtuma peaks. HomeBridge’le on saadaval meeletus koguses laiendusi, see tarkvara üksi ilma nendeta suurt midagi ei teegi. Üks neist laiendustest on homebridge-aqara (Aqara on selle Gateway toote koodnimi või midagi..)

Peale node.js installimist ja viimase LTS (peab olema vähemalt v6.0.0) versiooni paigaldust jätkasin HomeBridge ülesseadmisega Rasbperry Pi-le, mis lühidalt näeb välja selline:

sudo apt-get install git make g++
sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
cd /usr/local/lib/node_modules/homebridge/
sudo npm install --unsafe-perm bignum
cd /usr/local/lib/node_modules/hap-nodejs/node_modules/mdns
sudo node-gyp BUILDTYPE=Release rebuild

Alustamiseks paneme HomeBridge korra käima:

homebridge

Kui mingeid väga suuri vigu ei tulnud ja ta ise kinni ei läinud, siis lõpetame ta piinad ise CTRL+C vajutamisega.

Kopeerime nüüd seadistuste näidisfaili õigesse kohta.

cp /usr/local/lib/node_modules/homebridge/config-sample.json ~/.homebridge/config.json

Avame, et teha mõningad muudatused:

nano ~/.homebridge/config.json

Esimeses blokis võib asju muuta oma suva järgi, teise bloki sisu tuleb täita Gateway MAC-aadressi(peab olema ilma kooloniteta ja väikeste tähtedega) ning parooliga, mis sai varem äpist vaadatud ja üles kirjutatud.

{
  "bridge": {
        "name": "Homebridge",
        "username": "CC:22:33:44:CE:FF",
        "port": 51826,
        "pin": "031-45-154"
    },
    
    "platforms": [
    {
        "platform": "AqaraPlatform",
        "sid": ["f0b428cbec69"],
        "password": ["af434e1a55fc32ab"]
    }]
}

Nüüd või HomeBridge uuesti käima panna ja proovida teda Home äpist leida, siduda ja kasutama hakata.

Mis edasi?

Edasi on plaanis uurida, kas on olemas ja mis seisus on laiendused Home Assistant’ile või Node-RED’ile.

Täägid: raspberry-pi  linux  cli  homebridge  nodejs  xiaomi  koduautomaatika 
« Peata Raspberry Pi eelseadistamine Node.js paigaldamine Raspberry Pi peale »
comments powered by Disqus