Kamerų projektas gavosi spontaniškai. P buvo nusimatęs, kad jos bus. Numatė vietas, Išsitampė laidus. Rengiant tinklą parinko pakankamai didelį PoE „switch’ą”, kad ir kameroms užtektų lizdų. Bet niekad nemąstė nei kokios kameros bus, nei kaip ir kur saugosiu įrašus. Nei išvis kaip ten ta kamerų rinka atrodo ir kiek europinių reikia atsidėti. Nežinojau, net ką NVR reiškia.

Gavosi taip, kad tėvukas sugalvojo, kad jam kamerų reikia ir paprašė padėti susikomplektuoti su įrašymo įrenginiu (dar kitaip žinomu NVR). Tai pagalvojau, kad prisidėsiu prie užsakymo, tik sau imsiu kameras be įrašymo/užmaitinimo įrenginio. Kodėl? Nes PoE switchas pas mane jau stovi seniai su rezervuotais lizdais kameroms, tai galiu jas pasileisti iškart.

Vis gi šį įrašą norėjau parašyt ne dėl pačių kamerų, o labiau dėl programinės įrangos.

NVR pagal P

Kai pasileidau kelias kameras testavimui (tiesiog dėl laiko trūkumo ir blogų orų sumontavau ne visas kameras) pradėjau skaitinėtis ir ieškoti programinės įrangos kuri atliktų NVR’o pareigas. Paskutiniu metu vis labiau jaučiu meilę atviro kodo projektams, tai ir šitoje vietoje norėjosi rasti nemirusį – plėtojamą atviro kodo projektą. Gan greitai užkliuvo akis už Frigate NVR.

Kas tas Frigate NVR

Stebėtinai šviežias, bet jau visai neblogai išdirbtas atviro kodo projektas kurio oficialus puslapis čia. Aktyviai plėtojamas. Pagrinde mane užkabino projekto idėja, kad naudojamas AI, kad atpažinti objektus ir tik tuomet aktyvuojamas įrašymas. Kaip skelbiasi pats projektas, AI pagalba stipriai sumažina klaidingų pranešimų kiekį ir nefilmuoja pastoviai (nors galima ir filmuot pastoviai, jei patinka). Kažką panašaus ir Reolink duoda jau gamykliškai, bet nečiupinėjau tai nežinau kaip tiksliai veikia. Kitas privalumas kuris užkabino, kad visas projektas stipriai konfiguruojamas:

  • galima nustatyti kokius objektus gaudyti
  • kiek laiko prieš ir kiek laiko po užfiksavimo ir dingimo iš kadro filmuoti
  • jei objektas nebejuda, neįrašinėja jo pastoviai
  • galima konfiguruoti zonas kuriose filmuot (ir net per UI galima tai daryt)
  • integruojasi su HA, openHAB, MQTT
Zonų nustatymas. Skolinta iš oficialios svetainės

Nieko nelaukus susimečiau pabandymui. Projektas turi oficialų dockerio konteinerį, tai didelių problemų pasileisti nebuvo. Pažaidimui pasileidau viską ant darbinio kompo. Žaidžiau gal kokį mėnesį, tai pastebėjimai tokie:

  • Viskas veikia stabiliai. Konteineris sukosi ant nešiojamo kompiuterio, kurį ir migdau, ir naudoju už namų tinklo ribų, kas reiškia, kad ir pats hostas užmiega, ir kameros kartais yra nepasiekiamos. Bet nei kart nereikėjo kažkaip perkraudinėti, ar galvoti kodėl staiga nustojo kas nors veikti. Kitaip sakant viskas savaime atsistato jei nėra ryšio ir t.t.
  • Nepastebėjau, kad kažko nepagautų. T.y. nei šunelis nei mašina, nei žmogus neliko nepastebėtas ir neužfiksuotas. Beveik.
  • Nepagavau tikrų paukščių (nebūtina juos gaudyti, bet testavau sistemos galimybes). Bet tai pakankamai maži objektai, o kameros biudžetinės, tai galbūt neužtenka raiškos.
  • Kartais kai kuriuos objektus atpažįsta neteisingai.
    • D ir šuo kelis kartus buvo užfiksuotas kaip paukštis. Bet galima pastebėti dėsningumą, kad taip nutinka kai tiesiai virš kameros esi, kai siluetas iš tikro kažkiek į paukštį panašus būna. Gera žinia, kad tą patį objektą kurį užfiksavo kaip paukštį, pagauna ir kaip tai kas yra iš tikro tik kitoj vietoj. Bet vistiek įrašo viską nuo patekimo į kadrą iki išėjimo.
  • Jei nustatytos zonos, tai tiek valdymo sistemoj tiek MQTT tiek OpenHAB integracijoj rodo, kurioj zonoj užfiksuotas objektas. Galima norimoj zonoj nesiųsti pranešimų.
  • Yra realaus laiko rėžimas kur į vieną langą rodo visas kamera, kur yra kažkoks judėjimas.

Pastebėti trūkumai:

  • Valdymo sistemos interfeisas yra web puslapis, bet neturi jokios apsaugos (jokio vartotojo vardo ir slaptažodžio), tad būtų pavojinga daryti pasiekiamu iš išorinio interneto. Aišku su reverse proxy galima užsidėti slaptažodį. Bet susintegravus su OpenHAB ar HA kaip ir nėra prasmės pasiekti originalų web puslapį.
  • Mėgsta procesoriaus resursus, tai ant raspberry taip paprastai nepasileis jei daugiau nei viena kamera. Bet apie tai rašoma ir projekto puslapyje ir net nerekomenduoja leisti ant procesoriaus kad ir koks jis galingas bebūtų. Tam reikalui rekomenduoja naudoti Google Coral Edge TPU įrenginuką. Nedidelis USB prietaisiukas skirtas stipriai (šimtus ar net tūkstančius kartų) pagreitinti AI algoritmus. Kažkada seniai norėjau pirkti, bet nesugalvojau kam man jo reikia, dabar neina gauti jų kaip ir Raspberry 4.

Niekas netrukdo šito projekto pasileisti ir tuo atveju jei jau turite gamyklinį/brandinį NVR’ą. Šitas projektas tiesiog jungiasi prie kameros RTSP „streamo”, ką palaiko turbūt dauguma jei ne visos stebėjimo kameros.

Integracija su Home Assistant. Skolinta iš oficialios svetainės

Tad jei galvojate apie video stebėjimo sistemą, rekomenduoju pabandyti. Jei nesinori investuoti į kameras pabandymui tai kaip visiškai testinį projektuką būtų galima paleisti ir ant web kameros su raspberry pi.

Integracija su Home Assistant telefone. Skolinta iš oficialios svetainės

Panašu, kad ties šiuo projektu ir apsistosiu, liko tik užbaigti savo NAS (network attached storage) ir bus gera pradžia „homelab”, kaip dabar populiaru sakyti. NAS projektuką ir aprašysiu.