Mökille kameravalvonta pienellä budjetilla

  • Keskustelun aloittaja Keskustelun aloittaja Grazer
  • Aloitettu Aloitettu

Grazer

Make ATK Great Again
Liittynyt
30.10.2016
Viestejä
1 829
Mökillä on lämpötilavalvonta ollut jo vuosia kunnan vesijohdon takia ja samalla laitteella valvottu, ettei ovesta tule kukaan sisään huomaamatta. Laitteena on Celotron Centro akkuvarmennuksella, jossa kiinni lämpötila-anturit, oven magneettikosketin ja sireeni. Hyvä ja luotettava purkki, jossa ohjaus tekstiviesteillä, eli softa luultavasti aika toimivaa ja rautalankamallista.

Tuossa kun jäänyt monenlaista vanhaa ja rahallisesti arvotonta, mutta täysin toimivaa rautaa ylimääräiseksi, niin otinpa tämän kesäloman projektiksi täydentää suojausta ja valvontaa asentamalla kameravalvonnan kesämökille. Siitä taitaa noin 25 vuotta kun siellä on viimeksi varkaita käynyt, mutta ei viitsi odottaa seuraavaan kertaan, vaan luodaan pelotevaikutus jo valmiiksi. Uusillakaan laitteilla tällaisesta ei montaa satasta köyhtyisi, mutta koska tämä menee myös harrastuksesta, niin värkkäillään käytetyillä osilla.

Kasailin yhteen seuraavat laitteet:
-Dell Optiplex 3020 -SFF-kone. Core i5-4570, neljä gigaa keskusmuistia ja 500 Gt kovalevy
-Zyxel GS1900-10HP -PoE-kytkin
-Kaksi Interlogix TVD-1104 -IP-kameraa, 3 megapikseliä, 2,8-12 mm varifocal-linssi.
-ZTE MF286A -4G-modeemi
-APC Back-UPS CS 350
-600x600x600-kokoinen 19” räkkikaappi

Aloitin homman asentelemalla Debianin tallenninkoneeseen. Asensin Xfce:nkin, vaikka tuota tuskin juurikaan graafisesti käytetään, mutta kameroiden konffailussa tarvitaan. Ftp-palvelimeksi Vsftpd. Ftp-palvelimen asetuksiin vaihdoin umaskiksi 022. Vsftpd:n vakio umask on 077, jolloin kuvia ei pääse edes näkemään muut käyttäjät kuin kameran käyttämä käyttäjätili.

Kameroihin ajelin uusimmat firmwaret jostakin vuodelta 2017. Takavuosien ip-kameroissa on yleensä ominaisuutena käyttöliittymä, joka toimii kunnolla vain Internet Explorerilla. Näissä se on niin IE-speksien mukaan tehty, että edes Edgen IE-yhteensopivuustilalla ei saanut toimimaan. Ainoaksi vaihtoehdoksi jäi siten asentaa virtuaalikoneeseen oikean IE:n sisältävä Windows. Itse asensin Oraclen VM Virtualboxin ja siihen Windows XP:n, koska se on kevyempi kuin Windows 7.
How to Install Virtualbox on Debian 12 | Liberian Geek

Kameroihin liiketunnistus (Basic event / motion detection) päälle ja ftp-asetukset kohdalleen, jolloin kamera lähettää still-kuvia ftp:llä liikettä havaitessaan. Useimmissa kameroissa pitää laittaa noin kolmeen kohtaan upload snapshot -määrittely, jotta kuvien lähetys toimii. Niin tässäkin, ensimmäisen kerran ftp-asetuksiin upload snapshot, toisen kerran event/motion detection-määrittelyihin alarm linkage / upload snapshot ja kolmannen kerran storage-valikossa enable event-triggered snapshot.

Tähän väliin sellainen huomio, että jos jollakulla tulee vastaan Stanley Securityn (nykyinen Securitas Technology) merkinnöillä olevia kameroita, niin ne ovat Dahuan valmistamia, mutta niissä on monissa joku Stanleyta varten puukotettu/paskottu firmis sisällä. Ilmenee esim. siten että vaikka käyttöliittymässä pystyy muuttamaan asetuksia niin asetusmuutokset eivät tallennu. Itse huomasin myös, että joissakin kameroissa on tuo ftp-tallennus onnistuttu rikkomaan niin että kameran havaitessa liikettä, se teki kyllä asetuksiin määritellyt kansiot ftp-palvelimelle, mutta ei ladannut mitään kuvia.Esimerkiksi Zoneminderin kanssa ovat toki ihan käyttökelpoisia ja toimivia, mutta tällaiseen virittelyyn eivät sovi.

Kytkimessä ei ole mitään spesiaalia. Kytkin on hallittava ja ajoin siihen vain resetin jos siinä oli edellisen käytön jäljiltä jotain VLAN-määrittelyjä.

Modeemina käytän takavuosina hyväksi havaittua ZTE MF286A:ta johon olen joskus vuosia sitten tehnyt antennimodin, eli vaihtanut sisäisen diversity-antennin (AUX) ja ulkoisen B7-alueen antennin (M_HB) johtimet ristiin, koska maaseudulla ei B7-linkkejä ole. Laitenetillä toki vaikutus kosmeettinen, kun liittymän nopeus on pieni, mutta tällä modilla saa matalilla taajuuksilla käyttöön mimon niin että siihen käytetään kahta ulkoista antennia. Modeemin vakiokonffi on sellainen, että mimon luomiseen käytetään yhtä ulkoista ja yhtä sisäistä antennia, jolloin suorituskyky kärsii.

ZTE MF286 -kokemuksia

Operaattoriksi valikoitui Dna:n verkkoa käyttävä Moi Mobiili, jonka laitenetti on hinta/nopeussuhteeltaan paras. Tuo on 0,5/5M ja maksaa 4 EUR/kk.

Noilla pupunkorvilla testasin neljä vuotta sitten toisaalla, että paikassa, jossa puhelin viihtyi pääasiassa 3G-verkossa, tuolla antennimodatulla modeemilla sai silti 1800+800 MHz CA:lla 60/3 megaa. Mökillä on DNA:lla hyvä 4G-peitto. 4-6 kilometrin säteellä on neljä tukiasemaa, joista löytyy Dna:lta 4G-taajuusalueet B1, B3 ja B20.

Oma suositus on aina vaihtaa reitittimen ip-osoite pois oletuksena käytetystä, jotta vältytään osoiteristiriidoilta. Tuossa Zyxelin hallittavassa kytkimessä on oletuksena ip-osoite 192.168.1.1, joka on myös monen reitittimen vakio-osoite. Vaikka vaihdoin kytkimen osoitteen toiseen, jostakin syystä se sähköjen pois käyttämisen jälkeen palautti sen ennalleen ja hetken ihmettelin että miksi ei data kulje ulkoverkkoon kun sekä reitittimellä että kytkimellä oli sama ip-osoite.

Kokonaisuus toimii niin, että kamerat tallentavat paikalliselle koneelle still-kuvia ftp:llä ja tallennuskansiot synkataan cronjobilla 15 minuutin välein rsyncillä ja ssh:lla vanhemmilla sijaitsevalle serverille. Molemmilla koneilla ajetaan kerran vuorokaudessa scripti, joka poistaa kuvakansiosta yli 10 vuorokautta vanhat kuvat

Bash:
find /folder/folder/folder/Etuovi -mtime +10 -exec rm -f {} \;

Kuvakansiot on vanhempien servulla jaettu samballa kotiverkkoon niin sitä kautta voi katsella, onko pihalla liikkunut muitakin kuin hirviä.

Moi Mobiilin liittymissä, kuten varmaan muillakin operaattoreilla, on oletus-APN:ssä käytössä NAT. Mielenkiintoisesti Moi käyttää NATtaukseen 10.x.x.x- sisäverkon ip-avaruutta. Liekö sitten hyvä vai huono asia käytännön kannalta. IANAhan on allokoinut 100.64.0.0/10-alueen käytettäväksi carrier-grade NAT -toteutuksissa.

APN:ää vaihtamalla osoite on mahdollista vaihtaa julkiseksi, mutta Moi Mobiilin julkinen IP-osoitepool on ilmeisesti vain neljä C-luokan aluetta ja lease timekin melko lyhyt, jonka jälkeen ip-osoite vaihtuu lähestulkoon aina, niin totesin että kyllä cg NATillakin pärjää. Toki ip-osoitteen vaihtumisen pystyisi dyndns:llä hoitamaan.

Vanhempien nettiliittymässä on julkinen ip-osoite, joten alkuun ajatus oli, että laitan palomuuriin johonkin satunnaiseen porttiin port forwardingin palvelimen 22-porttiin ja siirrän kuvat ssh:lla. Autentikointi public key:llä. Julkiseen verkkoon päin ei mielestäni kannata pelkällä salasanalla availla enää mitään.

Bash:
rsync -av -e 'ssh -p 9986' /home/folder/IPCAMERA/ XXXXX.ddns.net:/folder/folder/IPCAMERA/

Samalla tuli lähinnä isää varten tehtyä yksinkertainen indikointi, josta näkee tallentimen olevan ylhäällä ja verkossa. Scripti palauttaa kellonajan tunnin välein cronilla ajettuna.

Bash:
date '+Tänään on %d.%m.%y ja kello on %H:%M' | ssh -T -p 9986 XXXXX.ddns.net "cat > /folder/folder/folder/aika.txt"

Scripti siis tarkastaa vain tallentimen kellonajan ja tallentaa sen ssh:n yli. Tiedosto luetaan php:llä palvelimen etusivulle.

Etähallintamahdollisuuden tein aluksi autossh:lla luomalla reverse ssh -tunnelin

Bash:
autossh -M 0 -o "ExitOnForwardFailure=yes" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -f -R 11155:localhost:22 -p 9986 user@XXXXX.ddns.net

Tällöin koneeseen pääsee käsiksi ottamalla palvelimen ssh:lla yhteyden tallenninkoneeseen

Bash:
ssh -p 11155 user@localhost

Totesin kuitenkin loppupeleissä tuon vähän kömpelöksi ja mahdollisesti tietoturvattomaksi viritelmäksi niin päädyin lopulta asentamaan koneille Tailscalen, joka on harrastekäytössä veloitukseton (max. kolme käyttäjää, sata laitetta). Näin saatoin ottaa palomuurista tuon 9986-->22-porttiohjauksen pois. Komennoista sai myös pudottaa ssh:n porttimäärityksen pois ja vaihtaa ddns.net-osoitteen tilalle pelkän sisäverkon hostnamen.

Bash:
rsync -av -e ssh /home/folder/IPCAMERA/ $hostname:/folder/folder/IPCAMERA/

Tailscale - Wikipedia

Tailscale · Best VPN Service for Secure Networks

Tailscale on siis ns. zero config -VPN-toteutus, jolla saa yhdistettyä eri verkoissa ja palomuurien takana olevia koneita toisiinsa. Vastaavia palveluja on muitakin, esim. Netbird ja Zerotier.

Kameroihin ei ole alkuperäisiä seinäasennusjalkoja ja itsellä on periaate, että domekamera asennetaan aina kupu alaspäin, jolloin kupu pysyy puhtaana, joten tein kameroille alumiinipellistä asennustelineen. Pelti on vielä reilusti kameraa suurempi, joten antaa kameralle myös hyvän sadesuojan, vaikka kamerat ovat toki ulkokäyttöön tarkoitettuja. Kaapelit vedettiin sisäkautta ja sitten seinästä läpi. Kaapelin tavallista sisäkäyttöön soveltuvaa Cat 6 U/UTP:tä. Seinässä telineen alla on AP10-kalvorasia, jossa kameran ja cat-kaapelin liitos. Kaapelit on hyvä muistaa viedä ulkotiloissa aina alakautta, jolloin rasiaan ei valu vettä.

Ajotien varteen asennettiin ”Alueella tallentava kameravalvonta”, joka jo toiminee pelotteena ja vähintään havahduttaa kulkijan huomaamaan että kamerat ovat oikeasti olemassa. Valitettavan monessa paikassa huomannut, että on asennettu pelkkä kyltti ilman kameroita.

Kameravalvonnan olisi toki voinut raudan puitteissa toteuttaa videotallennusratkaisunakin Zoneminderilla, mutta se olisi tarpeettoman järeä ratkaisu tähän tilanteeseen.
ZoneMinder - Home

UPSin uuteen akkuun, yhteen uuteen pistorasiaan ja rosteriruuveihin ja muttereihin kameroiden kiinnitykseen joutui investoimaan, mutta muilta osin kaikki tarvikkeet ja laitteet ovat SER-kasasta tai ne sai askarreltua valmiina olevista tarvikkeista.

UPSiin täytyy vielä koittaa jostakin hankkia tai tehdä ohjauskaapeli tietokoneelle. APC:n UPSeissa on USB-liitäntä, mutta UPSin päässä käytetään harmillisesti 10-pinnistä rj50-liitintä ja siitä tietenkin reunimmaisia pinnejä, joten tuota ei pysty korvaamaan rj45-liittimellä.
APC Smart-UPS - TheBeard Science Project Wiki

Sinänsä ei haittaa, vaikkei tuota olisikaan, sillä eipä Debian siitä sekaisin mene vaikka koneesta virrat suorilta katkaisisikin. Toki kaapelin kanssa ja apcupsd:llä saa valvottua UPSin tilaa.
apcupsd - Debian Wiki

Tallentimen biosista kannattaa muistaa vaihtaa asetus, että tietokone käynnistyy sähkökatkon jälkeen itsestään. Alue ei ole ukkosherkkää, mutta laitoin varmuudeksi pistorasiaan ylijännitesuojan, josko se tiukassa tilanteessa auttaisi jotain.

Isän varastosta peräisin ja näyttää olevan ilmeisen vanhaa satoa. Kurkistin sisälle, niin ihan tavanomainen varistori+GDT-toteutus kyseessä.
 
Kameroiden säädöt on vielä turhan herkällä ja paikan päällä pyöriessähän joku on jatkuvasti kuvassa. Tämän takia Cron veti homman solmuun kun vartin ajovälillä edellinen cronjob ei ehtinyt valmistua kun seuraava alkoi jo. Ihmettelin kun ei meinaa datasiirto loppua ollenkaan. Still-kuva vie noin 600 kt ja tällä hetkellä tunnistusalueena koko kuva-ala, niin siinä on jonkun verran pensaita ja puita, jotka tuulessa heiluessaan aiheuttavat liikettä. Auringonpaisteen puiden oksien läpi tekemät varjokuvat tuulisella säällä tekevät toki samaa, mutta täytyy yrittää tunnistualuetta rajaamalla rajoittaa pahimpien tuulien aiheuttamia vääriä hälytyksiä. Tuossa eräänäkin päivänä, kun tuuli reippaasti, toinen kamera kuvasi muutaman tunnin käytännössä putkeen, kun kuvaan osui alue, johon aurinko ja viereisen puun oksat tekivät jatkuvaa liikettä.

Näissäkin kameroissa on line crossing ja intrusion detection sekä mahdollisuus määrittää useampia tunnistusalueita omilla herkkyyksillä ja percentage/proportion-määrittelyillä, mutta noiden hyöty ulkokäytössä, kun kuvattava alue on suht laaja, on rajallinen. Toki jos valvonta-alueet tekisi tiukoiksi niin että ovien edustat ja seinän vierustat määrittelisi valvonta-alueiksi, noilla saisi hyvin rajattua vääriä hälyjä.

Herkkyys/sensitivity määrittää kuinka nopeasti kuvan pitää muuttua, jotta se turkitaan liikkeeksi. Mitä suurempi prosenttimäärä, sitä hitaampikin liike riittää tunnistuksen aktivointiin. Ulkokameroissa tämän saa oman kokemuksen mukaan pitää aika pienellä, 10-30 prosentissa.

Useampia tunnistusalueita käyttäessä määrittely percentage tai proportion tarkoittaa sitä, kuinka iso osa tunnistusalueesta pitää suhteellisesti pikselimäärissä laskettuna muuttua, jotta muutos tulkitaan liikkeeksi. Mitä suurempi luku, sitä suurempi osa alueesta pitää "peittyä", jotta tunnistus aktivoituu.

Laitoin croniin nyt eston flockilla niin että seuraava ajo ei ala jos edellinen on vielä kesken.

EDIT:
Tilasin Sloveniasta kaksi USB-liitäntäistä lämpöanturia niin saa mökin lämpötilan kivasti myös tunnin välein cronilla ajettuna.
Nämä näkyy koneelle USB-sarjaporttiadapterina Bus 004 Device 003: ID 067b:23a3 Prolific Technology, Inc. ATEN Serial Bridge ja tällä softalla saa anturien tiedot luettua
Sensorina on ds18b20, eli anturiverkon voi halutessaan itsekin tehdä. Itsellä toisaalla tällainen itse tehty malli on käytössäkin. Jos itse tekee, niin mikäli käyttää USB-sarjaporttiadapteria oikean sarjaportin sijaan, kannattaa tehdä non-parasitic-kytkentä. Toimii varmemmin.
 
Viimeksi muokattu:

Uusimmat viestit

Statistiikka

Viestiketjuista
261 751
Viestejä
4 545 864
Jäsenet
74 840
Uusin jäsen
jousam

Hinta.fi

Back
Ylös Bottom