Projektas “MRH Smart home”– Unifi Superlink diegimas

Unifi SuperLink prijungimas

Perspėju iš anksto, kad įrašas bus ilgas bei techninis ir, greičiausiai, aktualus tiems, kas naudoja Home Assistant integracijoje su Unifi Protect.

Kaip jau minėjau, praeitame įraše, buvo nuspręsta naudoti Unifi Superlink žemų dažnių (868 MHz) tinklą, kuris neturi jokių problemų su prasiskverbimu pro storas mūrines namo sienas ir gelžbetonines perdangas, kas buvo didelė problema Zigbee tinklui. Kartu buvo pasirinkti Unifi Superlink įrenginiai, kurie turi užkeisti Zigbee įrenginius ne tik Zigbee tinklui sunkiai pasiekiamose namo vietose, bet ir kitose kritinėse vietose, kurios susijusios su saugumu. Kadangi tie darbai jau vyksta, tad galiu papasakoti kaip sekėsi, ar sprendimas pateisino mano lūkesčius. Jei trumpai, tai su naujų įrenginių ir naujo tinklo integracija su Unifi Protect nebuvo jokių problemų, o štai su Home Assistant nebuvo taip viskas paprasta.

Taigi tam, kad realizuoti sprendimą, pirmiausia reikėjo prijungti PoE SuperLink Gateway stotelę, kurios dėka ir atsiranda  Unifi SuperLink tinklas. Toliau prijungti ir kiti jutikliai, t.y pora magnetinių praėjimo jutiklių (USL-Entry), kurių vienas buvo pritvirtintas prie galinių lauko durų tame pačiame aukšte kaip ir stotelė, kitas antrame aukšte ant balkono durų, dar pora aplinkos jutiklių (USL-Environmental), kurie nukeliavo į rūsį, kur yra vandentiekio iš šildymo mazgai ir dar sirena (UP-Siren-PoE). Taip pat keletas All-In-One jutiklių (UP-Sense), kurių vieną aš jau turėjau iš anksčiau. Šie sensoriai dirba Bluetooth LR protokolu. Tas iš anksčiau turėtas persikraustė ant verandos lauko durų, tuo pačiu užkeisdamas tris Zigbee jutiklius (judesio, kontaktinį ant durų ir termometrą). Kol nebuvo pajungta stotelė, jis su sistema komunikavo per už storos sienos esantį Access Point U6 Mesh. Pajungus stotelę, kuri yra dvigubai toliau ir už poros storų sienų, jutiklis tuoj pat persijungė prie jos. Taip, SuperLink stotelė palaiko ir Bluetooth protokolą ir sugeba aprėpti plotą žymiai didesnį nei minėtas AP. Beje šis jutiklis dirba jau porą metų ir jo baterija vis dar 67%, kai Zigbee įrenginių baterijų keitimas prasidėjo maždaug po metų.

O kaip su ryšiu, tiek per Superlink, tiek ir Bluetooth? Žymiai geriau, nei tikėjausi:

Screenshot 2026-02-18 120128

Kaip matote, iš Unifi Protect pusės viskas tikrai gerai. Ryšys geras, visi jutikliai daro tai, ką turi daryti, o sirena spiegia taip, kad, nors ir nustatyta minimaliu garsu, gali prikelti net mirusį. Net nebandžiau bandyti max garso (120 dB).

Kaip tie įrenginiai atrodo iš Home Assistant pusės?

Pradėkime nuo gerų dalykų ir eikime link negerų:

  • All-In-One jutikliai (UP-Sense) – kadangi tai nėra nauji įrenginiai, su jais viskas gerai. Visi jutikliai yra matomi ir prieinami.
  • Magnetiniai praėjimo jutikliai (USL-Entry) – čia yra gerai. Kadangi prietaisas yra naujas, tai Unifi Protect integracija jam bando pritaikyti UP-Sense šabloną. Tačiau vienintelis jutiklis Atidaryta/Uždaryta yra matomas ir prieinamas, tai dėl kitko nėra reikalo jaudintis.
  • Aplinkos jutikliai (USL-Environmental) – šiuo atveju taip pat ir bandoma taikyti UP-Sense šabloną. Todėl oro temperatūros ir drėgmės jutikliai yra matomi ir prieinami, tačiau vandens nuotėkio matomi, bet neprieinami, t.y neindikuoja nieko. O tai nėra gerai, nes būtent to jutiklio labiausiai reikia.
  • Sirena (UP-Siren-PoE). – šio įrenginio Home Assistant nemato visai.

Ar tai taip prastai, kaip atrodo iš pirmo žvilgsnio ir keli šimtai eurų išmesti veltui?

Toli gražu ne, bet, tam kad priversti viską veikti kartu, reikia šiek tiek kūrybiškumo ir šiek tiek gilesnių Unifi Protect ir Home Assistant techninių žinių. Geri įgūdžiai naudotis Google paieška pasinaudojant DI funkcija taip pat padeda greičiau rasti sprendimą.

Pradėkime nuo didžiausios bėdos, t.y sirenos. Home Assistant. Nors sistema jos nemato per Unifi Protect integraciją, tai nereiškia, kad jos negalima pasiekti per Unifi Protect API sąsają. Tam reikia Home Assistant’e sukurti API užklausą, kuri trigerintų sireną per Unifi Protect Alarm Manager. Tai daroma paprastai:

1. Reikia sugeneruoti Unifi Protect API raktą:

Atsidarome Unifi Protect valdymą ir keliaujame į Settings –> Control Plane –>Integrations:

Unifi Protect API

Suteikiame raktui vardą, paliekame galiojimą “Never Expires” ir spaudžiame “Create API Key”. Iššokusiame naujame lange bus sugeneruotas raktas, kurį reikia nukopijuoti ir išsaugoti saugioje vietoje, nes kai uždarysite langą, to rakto daugiau nepamatysite. Žemiau yra API užklausos pavyzdys, kuriuo mes ir pasinaudosime savo API užklausos sukūrimui.

2. Sirenos įjungimo alarmo sukūrimas Unifi Protect Alarm Manager

  1. Keliaujame į Unifi Protect Manager ir spaudžiame “Create Alarm:
  2. Kaip trigger’į pasirenkame “Webhook”
  3. Trigger ID laukelyje bus URL adresas, kurį reikės panaudoti API užklausos kode
  4. Action dalyje pasirenkame “Sound” , Audio type pasirenkame “Siren”, Play on pasirenkame savo sireną ar kelias sirenas. Duration siūlau palikti 5s. Vėliau paaiškinsiu kodėl.
  5. Išsaugome savo sukurtą aliarmą norimu vardu..

Viskas, su Unifi Protect dalimi baigėme, Dabar sutvarkykime Home Assistant dalį. Tik prieš tai siūlau padaryti šviežią HA kopiją.

  1. Sukurkime API užklausą į Unifi Protect, įkopijuodami žemiau esantį YAML kodą į Home Assistant configuration.yaml failą:
# Activate Unifi siren
rest_command:
unifi_protect_siren:
url: "[Trigger_ID_URL]"
method: post
headers:
X-API-KEY: [Unifi_Protect_API_raktas]
verify_ssl: false

2. Dabar reikia perkrauti Home Assistant, prieš tai patikrinus su Kūrėjo įrankiais (Developer Tools) YAML konfigūraciją.

3. Toliau reikia sukurti input_boolean (perjungėjas) tipo pagalbininką, per kurį galėtų būti įjungiama ir išsijungiama sirena. Šį perjungėją naudosite automatizacijoje, kuri realiai įjungia Unifi Protect sireną. Taip pat šį perjungėją galima įtraukti į Alarmo.

4. Sirenos įjungimo automatizacijos YAML kodas:

alias: Įjungti Unifi sireną 1a
description: ""
triggers:
- trigger: state
entity_id:
- input_boolean.unifi_sirena_1a
from:
- "off"
to:
- "on"
conditions: []
actions:
- repeat:
until:
- condition: state
entity_id: input_boolean.unifi_sirena_1a
state:
- "off"
sequence:
- action: rest_command.unifi_protect_siren
metadata: {}
data: {}
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
mode: single

Jums tereikia šiame kode mano įrenginius užkeisti savais. Tai galima lengvai padaryti ir per UI.

Veikimo principas paprastas, jei kažkokia Home Assistant automatizacija įjungs sirenos perjungėją ar tą patį padarys Alarmo, įsijungs sirena ir veiks tol, kol jos perjungėjas nebus išjungtas.

Dabar greičiausiai supratote, kodėl sakiau, kad kuriant aliarmą palikti sirenos veikimo laiką 5s? Unifi Alarm Manager moka tik paleisti sireną, todėl Duration galima pasirinkti tik kažkokį veikimo laiką, Jei reikia, kad sirena veiktų pastoviai, reikia pasikartojančio aliarmo suveikimo, kas ir padaryta automatizacijoje

Taigi, turime iš Home Assistant valdomą Unifi Protect sireną, Sekanti užduotis, padaryti taip, kad Home Assistant galėtų pilnai dirbti su naujais aplinkos jutikliais, t.y. matytų ne tik temperatūrą ir oro drėgmę, bet ir matytų vandens nuotėkio jutiklio būseną ir tą jutiklį galima būtų integruoti į Alarmo signalizaciją.

Čia bus panašu kaip ir su sirena, tik be API dalies.

  1. Vėl gi, mums reikia analogiško input_boolean (perjungėjas) tipo perjungėjo kaip ir sirenai. Tik pavadinkime jį kad ir “Vandens nuotėkio patikra“ Tačiau to neužtenka jei norime, kad vandens nuotėkis aktyvuotų Alarmo. Į Alarmo jutiklių sąrašą negalima įtraukti jungiklių, o tik jutiklius. Be to mes norime, kad toks jutiklis būtų ir įrenginio kortelėje.

2. Todėl daba reikia sukurti Template tipo jutiklį, kurio reikšmė priklauso nuo perjungiklio būsenos ir kurį mes galime pavadinti “Vandens nuotėkis“, nurodant jo klasę “moisture“. Siūlau naudoti UI, nes taip galima šį jutiklį susieti su reikiamu Unifi Protect įrenginiu:

O įrenginio kortelėje jutikliai atrodys taip:

3. Dabar reikia automatizacijos, kuri pakeistų vandens nuotėkio jutiklio būseną į ‘įjungta’ arba ‘šlapias’. Čia darysime atvirkščiai nei su sirenos įjungimu, t.y Webhook URL sukursime Home Assistant pusėje.

description: "Vandens nuotėkis rūsyje"
mode: single
triggers:
- trigger: webhook
allowed_methods:
- POST
- PUT
local_only: true
webhook_id: "-G6pkXJS2TGPdIEMX9srPWgfd"
conditions: []
actions:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.rusio_vandens_nuotekio_patikra

Įkopijavus kodą, siūlau persijungti į UI, kad galėtumėte nukopijuoti pilną Webhhook URL adresą, paspaudę ant kopijos mygtuko.

Dabar turime grįžti į Unifi Protect Alarm manager ir ten sukurti mums reikiamą aliarmą, kuris reaguotų į vandens nuotėkį:

  1. Spaudžiame “Create Alarm“
  2. Sukėlėjo dalyje pasirenkame “Sensors“ ir pažymime “Water Leak“
  3. Scope dalyje uždedame varnelę prie reikiamo įrenginio
  4. Action dalyje pasirenkame Webhook, nurodome kad tai “Custom Webhook“, Delivery URL laukelyje įkopijuojame mūsų Home Assistant sukurtoje automatizacijoje nukopijuotą Webhook URL, pažymime “Advanced Settings“ ir pasirenkame “POST“
  5. Įrašome sukurtą aliarmą norimu vardu

Taigi, sukūrėme įvykių grandinę, kuri prasideda Unifi Protect, kur fiksavus vandens nuotėkį, Alarm Manager per Webhook kreipiasi į Home Assistant ir trigeriną mūsų sukurtą automatizaciją, kuri įjungia vandens nuotėkio patikros perjungėją. Šio būsenos pasikeitimas tuo pačiu pakeičia ir paties mūsų sukurto vandens nuotėkio jutiklio būseną. Jei šis jutiklis įtrauktas į Alarmo, tada aktyvuojasi signalizaciją, Ši įjungia Unifi sirenai sukurtą jungiklį. Tai aktyvuoja automatizaciją, kuri per REST komandą kreipiasi į Unifi Protect Alarm Manager, kur suveikia sirenos įjungimo aliarmas. Kai deaktyvuojama Home Assistant signalizacija, išjungiamas sirenos perjungėjas ir sustoja sirenos įjungimo automatizaciją.

O kas vyksta su vandens nuotėkio patikros perjungėju? Čia galimi du variantai:

  1. Papildyti jo įjungimo automatizaciją, kad jis būtų išjungtas automatiškai po kažkiek laiko. Bet tuo pačiu pasikeis ir vandens nuotėkio jutiklio būsena į “sausa“.
  2. Arba palikti rankinį išjungimą, ką aš ir pasirinkau. Man geriau nueiti į rūsį ir įsitikinti, ar viskas ten gerai ir tik tada išjungti perjungėją

Tad tokia gavosi istorija su Unifi SuperLink tinklo ir šios technologijos įrenginių diegimu ir integracija su Home Assistant.

Tikiuosi, kad tiems, kas turėjo kantrybės perskaityti, buvo įdomų ir naudinga. Jei turėsite klausimų šia tema, būtinai rašykite komentaruose.

Ir tai yra paskutinis įrašas iš dažnių karų serijos. Toliau, jei bus pageidaujančių, pratęsiu pasakojimus apie MRH virtualų sekretorių ir padėjėją Mycroft’ą, kaip jis atsirado, kaip pradėjo savo “karjerą“ kaip paprastas išmanaus namo asistentas, o su laiku tapo mūsų sekretoriumi ir padėjėju bei savotiška virtualia asmenybe su savo charakteriu.

Įrašo “Projektas “MRH Smart home”– Unifi Superlink diegimas” komentarai: 2

  1. Įdomu įdomu apie Mycroft’ą!

    Man labiausiai smalsu kiek namo gyventojai su juo susidraugavę. :D Neseniai atradau reddite bendruomenę MyBoyfriendIsAI. Ten baisu, žmonės pradeda kalbėtis su visokiais LLM, susidraugauja, užmezga romantinius ryšius ir net susižada. Čia, aišku, labai nukrypau :D Bet vis vien, įdomu, kiek jūs to “žmogiškumo“ asistente matot. Ir šiaip cekava, kaip jis veikia :D

    Patinka

Parašykite komentarą