Wi-Fi vagy hálózati jelenlét alapú vezérlés

A rendszer képes érzékelni, hogy a regisztrált eszközök csatlakoznak-e az otthoni hálózathoz, és ezt az információt a vezérlő modulok működésében is felhasználhatja. Így az automatizálás képes alkalmazkodni ahhoz, hogy tartózkodik-e valaki otthon.

A jelenlétérzékelés része a Szélessáv Műhely OpenWrt firmware-ének, de önálló modulként hagyományos OpenWrt rendszerre is telepíthető, így használatához nincs szükség egyedi firmware-re.

Főbb funkciók

Telepítés hagyományos OpenWrt routerre

A jelenlétérzékelő modul közvetlenül telepíthető egy szabványos OpenWrt rendszerre. Jelentkezz be SSH-n keresztül arra a routerre, amely a jelenlétérzékelést végzi, majd futtasd:

wget -qO- https://raw.githubusercontent.com/szelessavalapitvany/openwrt-presence/main/install.sh | sh

A telepítő automatikusan felismeri a csomagkezelőt, telepíti a szükséges függőségeket, letölti a modul fájljait, majd újraindítja a szükséges LuCI szolgáltatásokat.

A telepítés után a LuCI felületen megjelenik a Smart home menü:

Smart home ├── Presence ├── Wifi presence └── Access points

A telepítő később frissítéshez is újra futtatható. A meglévő /etc/config/ alatti konfigurációs fájlokat nem írja felül, így a már létrehozott jelenléti csoportok és access point beállítások megmaradnak.

Jelenlétérzékelési módszerek

A rendszer két különböző módszert kínál a jelenlét meghatározására.

Wi-Fi alapú jelenlétérzékelés

Hálózat alapú jelenlétérzékelés

Okos otthon jelenlétvezérlés

Jelenléti csoportok létrehozása

Fontos: a csoportnevek használatakor figyelni kell a kis- és nagybetűkre, mert ezek megkülönböztethetők.

Több Wi-Fi access point kezelése

A Wi-Fi alapú jelenlétérzékelés nem korlátozódik a fő OpenWrt routerre. További OpenWrt routerek vagy access pointok is bevonhatók a jelenlétvizsgálatba.

A főrouter a saját Wi-Fi kliensei mellett a konfigurált access pointoktól is lekérdezheti az aktuálisan kapcsolódó eszközök MAC-címeit. Így nagyobb lakásban vagy családi házban több Wi-Fi hozzáférési pont mellett is egységes jelenlétérzékelés valósítható meg.

Az access point azonosítása kétféleképpen történhet:

A fix IP-cím használata ajánlott, mert így a másodlagos access point elérése nem függ attól, hogy szerepel-e DHCP lease bejegyzésben.

Az alapértelmezett REST végpont:

/cgi-bin/luci/get-wifi-clients

Wi-Fi Client API telepítése a másodrouterre

Minden olyan másodlagos OpenWrt routerre vagy access pointra, amelynek Wi-Fi klienseit a főrouternek látnia kell, telepíteni kell az OpenWrt Wi-Fi Client API modult.

A projekt külön GitHub repositoryban található:

https://github.com/szelessavalapitvany/openwrt-wifi-client-api

Telepítés a másodlagos OpenWrt routeren:

wget -qO- https://raw.githubusercontent.com/szelessavalapitvany/openwrt-wifi-client-api/main/install.sh | sh

A telepítés után a következő végpont érhető el:

http://ROUTER-IP/cgi-bin/luci/get-wifi-clients

A válasz JSON tömb, amely az aktuálisan csatlakozott Wi-Fi kliensek MAC-címeit tartalmazza.

Példa:

[ "11:22:33:44:55:66", "AA:BB:CC:DD:EE:FF" ]

MAC-cím kezelés és pontos azonosítás

A modern telefonok és más mobil eszközök adatvédelmi okból gyakran véletlenszerű vagy privát MAC-címet használnak Wi-Fi hálózatonként.

A jelenlétérzékelés megbízható működéséhez fontos, hogy az adott otthoni Wi-Fi hálózathoz használt MAC-cím ne változzon.

Beállítás menete:

  1. A telefon Wi-Fi beállításaiban válaszd ki az otthoni hálózatot.
  2. Keresd meg a „Privát MAC”, „Véletlenszerű MAC” vagy ehhez hasonló beállítást.
  3. Állítsd fix vagy eszköz MAC-cím használatára.

Kapcsolódás más rendszerekhez

A jelenléti csoportok állapota egyszerű HTTP lekérdezéssel is elérhető. Ennek köszönhetően a funkció nem csak a DSVT rendszerrel használható, hanem más automatizálási megoldásokból is lekérdezhető.

Hálózat alapú jelenlét

http://ROUTER-IP/cgi-bin/luci/presence/CSOPORTNEV

Wi-Fi alapú jelenlét

http://ROUTER-IP/cgi-bin/luci/wifi-presence/CSOPORTNEV

Ha a csoport legalább egy kliense jelen van, a válasz:

true

Ha egyik kliens sincs jelen:

false

A sikeres lekérdezés HTTP 200 státuszkóddal tér vissza. Hibás vagy nem létező csoport esetén HTTP 404 válasz érkezik.

GitHub projektek

OpenWrt Presence – főrouteres jelenlétérzékelő modul:
https://github.com/szelessavalapitvany/openwrt-presence

OpenWrt Wi-Fi Client API – másodlagos access pointokhoz:
https://github.com/szelessavalapitvany/openwrt-wifi-client-api

Összegzés