Jump to content

Båtautomasjon med batteriovervåking og Zigbee


Sjøbliss

Recommended Posts

Tensorflow er ganske morsom, men det går ganske tregt.

Siden båten ligger så nærme huset så er den koblet på hjemmenettverk og serveren tar seg av prosessering. Så maskinkraften skal det ikke stå på.

 

Skjermbilde.JPG.dd1887423180f673e05ac9eeb57beb5f.JPG

 

 

Hva skal du bruke viberasjonsfølerene til?

I en båt er det jo konstant bevegelse.

Link to post
Share on other sites

Liten update på treg tensorflow.

 

Overvåkning i båten skjer med disse kamera:

https://www.ebay.com/itm/Xiaomi-Xiaofang-1S-Smart-IP-Camera-1080P-IR-CUT-Night-Vision-Home-Security/173869562164?_trkparms=aid%3D555018%26algo%3DPL.SIM%26ao%3D1%26asc%3D57921%26meid%3D614554ce6dfa43b9838bb90dc477ac6d%26pid%3D100005%26rk%3D5%26rkt%3D7%26mehot%3Dco%26sd%3D401563557037%26itm%3D173869562164%26pmt%3D1%26noa%3D0%26pg%3D2047675&_trksid=p2047675.c100005.m1851

 

Som fungerer utmerket med denne firmwaren:

https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks

 

Jeg trodde det var Tensorflow som brukte utrolig langt tid på å prosessere bildet som gjorde at personen på bildet fort kunne være borte igjen før tensorflow var ferdig med å analysere.

 

I går kom jeg tilfeldigvis over dette:

What if my scripts in config/userscripts/motiondetection are not executed or mqtt/telegram messages/emails are not sent on motion?

Your camera probably runs out of memory when processing the motion event. This is likely in cameras with 64MB e.g. the Xiaofang 1s. Try to enable some swap memory by copying swap.conf.dist to swap.conf and setting SWAP=true.

 

Og nå trigger motion så fort det er en person i bildet og tensorflow analyserer direkte.

 

Før kunne jeg låse opp båten og begynne å tømme avfukter før den sendte meg mail med skjermbilde.

 

Nå rakk jeg så vidt å få opp luka:

Skjermbilde.JPG.93c04dbc1d654975720bbc777c182050.JPG

Link to post
Share on other sites

Kjempefint @Dreuf. Jeg måtte gjøre akkurat samme. Bare pass på at det spiser SD kort på kamera så endurance kort kan være en god ide. :) Jeg har en stund prøvd å få til en container på Tensorflow på Pien men ikke fått en som fungerer skikkelig enda. Er litt venstrehåndsarbeid enda men det kommer nok skal du se! 

 

Ifm det andre spørsmålet ditt. 

 

Dreuf skrev On 25.10.2019 at 13.35:

Hva skal du bruke viberasjonsfølerene til?

I en båt er det jo konstant bevegelse.

 

Jeg tenkte å legge den ut og se når den detekterer. Jeg tippe den ikke går selv om det er litt småbølger og / eller duving. Men nøkk og rykk kanskje? Jeg vil helst at den kun merker dersom det kommer noen trampende inn eller at f.eks. motoren startes. Eventuelt om den får andre typer ytre påkjenning. Så langt har jeg bare tenkt at jeg stapper den inn og ser hva jeg får reaksjoner på :) 

 

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

  • 2 uker senere...

Da er tensorflow på Raspberry Pi et faktum. Klarte å fikse det med masse frem og tilbake. Men endelig har jeg en fungerende docker image som ligger her: 

 

https://hub.docker.com/repository/docker/sbarmen/max-object-detector

 

For å kjøre den gjør docker pull sbarmen/max-object-detector:latest. Noe er tull på portainer så jeg endte opp med å gå på konsollet i portainer containeren og kjøre følgende kommando: 

 

Sitat

root@hassio.local:$ /opt/portainer/docker pull sbarmen/max-object-detector

 

Merk; portainer containeren er gjemt i utgangspunktet så du må under settings og fjerne den fra hidden container.

 

Etterpå dukker den opp i listen over images og når jeg etablerer containeren velger jeg bort "always pull". Se eksempel her:

 

978608171_Screenshot2019-11-1216_40_21.png.9e1b5731ce9cecb30416ade54d239196.png

 

Etter du har deployet denne lytter max-object-detector på http://localhost:5000/app 

 

467005469_Screenshot2019-11-1216_28_06.jpg.fda6a8be71786b2fbacb4443f6286c3d.jpg

 

Neste skritt er å teste Node-Red integrasjon men dessverre har kameraet mitt frosset så jeg må ned til Son for å starte det på nytt....

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

Og neste skritt gikk ganske fort. Legg inn model-asset-exchange i manage palette i Node-Red. Se mer informasjon her: 

https://flows.nodered.org/node/node-red-contrib-model-asset-exchange

 

609211267_Screenshot2019-11-1216_52_52.png.24c5be34a22ce7fa20022c2aefc49b7b.png

 

Her er også en eksempel flow som jeg lastet inn og brukte et bilde fra min egen PC for å teste med. Du må endre noden "object-detector". Siden min raspberry pi host er på IP 192.168.1.10 så endret jeg den som følger: 

 

379339003_Screenshot2019-11-1216_51_52.png.3838c7360fbfe112df662ee37dbdd8fb.png

 

Den er ikke superrask men det er ikke egentlig noe stort problem. Jeg tenker jeg tar en screen shot i det den oppdager bevegelse OG alarmen er påslått. Så fort det oppdages bevegelse starter den å ta vare på bilder og/eller video mens den analyserer bildet. Dersom analysen er negativ slettes filene og ingen alarm sendes. Ved positivt resultat sendes det alarm og bildene kan f.eks. sendes pr e-post eller hangouts som jeg har begynt å bruke. Pushbullet er enda et godt alternativ. 

 

697479364_Screenshot2019-11-1216_51_38.png.3e105b7ed2b9042ed3bf1a5e55240d62.png

 

 

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

God guide ja ... si det :) OBS!! Dersom du ikke er litt glad i VELDIG teknisk dilldall så stopp her... :giggle: :ghost:

 

Det handler egentlig om å lage en Dockerfile. Les litt om hvordan Dockerfile fungerer rundt forbi, men det er Dockerfile som er hele genialiteten. Signalk gjør jeg som følger (jeg er på Mac!):

 

1. https://collabnix.com/building-arm-based-docker-images-on-docker-desktop-made-possible-using-buildx/

Gå på denne linken og installer buildx buildkit slik at du kan kompilere for andre plattformer enn amd64. Dersom du setter dette opp slik får du muilighet til å lage docker containere for alle plattformer. Dette burde vel også virke på windows, si gjerne ifra :) Lurer litt på dette egentlig. 

2. Lag en Docerfil. SignalK dockerfilen min ser ut som følger:

 

Sitat

FROM alpine:latest

# Install needed tools and requirements, also for installation


RUN apk --update --no-cache add \
  bash build-base make gcc g++ python linux-headers udev clang nodejs npm openssh && \

  # Workaround for error "Error: could not get uid/gid"
  npm config set unsafe-perm true && \

  # Upgrade to latest NPM
  npm install -g npm@latest && \
  
  # Install signal-server
  npm install -g --unsafe-perm --build-from-source signalk-server && \

  # Remove unneeded software after install
  apk del build-base make gcc g++ linux-headers && \

  # Create settings directory
  mkdir /config

CMD /usr/bin/signalk-server -c /config

 

Se kilden her: https://github.com/corvy/signalk-docker/blob/master/Dockerfile

 

Kort fortalt fungerer dette slik som at:

1. Start med et basis image basert på alpine:latest. Dette lastes ned og brukes som startpunkt for docker containeren. 

2. RUN - kjører en rekke kommandoer for å installere SignalK på alpine imaget. Grunnen til && \ hele tiden er for å gjøre imaget mindre. For hver gang du kjører "RUN" så lager du et "layer" i docker imaget. Det hadde gått fint å kjøre RUN hver gang i praksis, du får bare en større fil. Tror jeg sparte ca 50MB på å gjøre det på denne måten.  Se versjon 0.1.2 den er med litt flere RUN kommandoer. F.eks. er det smart å gjøre apk del build-base osv i samme RUN som apk --update ellers blir de i forskjellig layer og størrelsen blir ikke mindre selv etter cleanup. Build-base er nødvendig for å kompilere signalk til arm så den må være der i bygge-trinnet. 

3. CMD er kommandoen som den skal kjøre i docker imaget. Her ser du den leser config i /config, derfor bør du ha et persistent volume mounta til /config slik jeg nevnte i en tidligere post. Gjør du ikke det vil de dataene bli borte når du drar ned en ny versjon av imaget. 

 

Lag deg eventuelt en konto på dockerhub (hub.docker.com) slik at du kan publisere dine docker image. Dette kreves for å kunne gjøre push. For å logge inn: 

Sitat

docker login

 

 

Flytt deg til katalogen som Dockerfile ligger og kjør følgende kommando:

 

Sitat

docker buildx build --platform linux/arm/v7,linux/arm64 -t sbarmen/signalk:latest -t sbarmen/signalk:0.1.2 --push .

 

buildx betyr at man benytter builderen som har støtte for arm. --platform velg hvilke plattform(er) du bygger for. Jeg er usikker på om linux/arm/v7 eller linux/arm64 er viktigst så jeg har bygd for begge. -t er for å gi den en tag og versjon. Eventuelt flere tagger. F.eks. nå som jeg lager en ny til signalk så legger jeg til 0.1.2 som versjon samt latest. Til sist --push betyr at du laster den opp på docker hub og . betyr "let etter Dockerfile i denne katalogen". 

 

Etter dette skal du ha fått en ny docker image på hub.docker.com og du kan laste den ned på portainer eller med docker pull. 

 

Så til SignalK. Jeg har nå bygget et ny SignalK med tag latest og 0.1.3. Prøv den gjerne :) Den skal være i siste versjon i alle fall. Det jeg ikke vet er om du må legge inn plugins på nytt kanskje. Dersom det er tilfelle kunne vi kanskje fått de lagt inn automatisk i build prosessen. Noe å tenke på. Kanskje smart å ta en backup av den integrerte Node-Red flowen i alle fall. Kanskje den ikke lagres i /config? Si ifra hvordan det gikk!

 

1797653498_Screenshot2019-11-1315_27_41.png.05f967fb5a059215516ac9f5adb8819f.png

 

 

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

1128793199_Screenshot2019-11-1315_40_41.png.e0adf6bb15d1348744c3ee3b9f03c535.png

 

Jeg lastet den inn uten problemer. Alle plugins og hele Node-Red flowen var der fortsatt. Så da ligger nok alt lagret på /config som det bør. Gikk inn i Portainer og valgte containeren SignalK og klikket på recreate og valgte "pull latest image". 3-4 minutter senere var jeg på nyeste versjon og alle data og plugins inntakt. Knallfint :)

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

Virket fint som snus det med "recreate" nå er jeg på nyeste versjon.

Eneste jeg sliter med er "persistent usb", det fungerer ikke.. Men kan ha noe med at første gangen jeg lagde den så brukte jeg "privileged mode". - Har god tid igjennom vinteren til å forske på dette.

 

VenusOs hadde også vært fint i Docker, ser du har gjort ett forsøk tidligere.

Link to post
Share on other sites

Jeg har en usb dings koblet til AIS, en til VHF og en til NME2k.

Når jeg restarter RPI så bytter dem mellom USB0, USB1 og USB2.

 

Normalt løser jeg det på denne måten:

https://www.domoticz.com/wiki/PersistentUSBDevices

Og kaller dem da ttyUSB-VHF, ttyUSB-AIS og ttyUSB-Plotter.

Men det går ikke, hverken på denne måten eller om man setter "device by id" i Portainer.. Skjønner ikke hvorfor.

 

Har du prøvd å installere nytt plugin på nyeste signalk? Jeg får bare "failed", har kommet ett Nextion plugin som jeg tror kan være litt gøy.

 

Link to post
Share on other sites

Hei @Dreuf, prøvde samme plugin som deg og grunnen til at den feiler er fordi den ikke har pre-built binary for ARM. I loggen på Portainer containeren kan du se det. For å fikse det kan du prøve å kjøre følgende kommando lokalt i containeren. Dersom vi hadde build tools installert kunne du sikkert kompilert det direkte men den beste måten er å legge til nextion direkte i build prosessen. 

 

Jeg har satt opp en kjapp ny Dockerfile med nextion. Publiserte den på hub.docker.com som signalk-server:0.1.4n tag. Du kan prøve den? 

 

Det med USB er litt rart. Du har prøvd å legge til enhetene i container oppsett? 

 

1220350596_Screenshot2019-11-1409_27_34.png.6aab9866962619ad3cb0a6fbea5a6c45.png

 

 

 

 

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

Nå er Max-Object-Detector kommet i offisiell docker image for ARM (Raspberry Pi mm). 

 

Sitat

docker pull codait/max-object-detector:arm-arm32v7-latest

 

https://github.com/IBM/MAX-Object-Detector/issues/72#issuecomment-554130549

 

Redigert av Sjøbliss (see edit history)

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

  • 2 uker senere...

934007405_Screenshot2019-11-2620_40_08.png.995ac24c4d75c56b0b311d2b80066b08.png

 

Så har jeg fått lagt inn litt sensorer. Jeg tror jeg må se litt på hvordan jeg kan få ryddet opp grensesnittet litt men alle dataene er i alle fall på plass. Sensorene fra Aqara er virkelig små og plasseringsvennlige. De har batteri til 2 år drift og håndterer temperatur fra -20 grader til +50. Vibrasjon og lekkasjer er binære sensorer som går "på" ved deteksjon. 

 

Her er noen bilder av sensorene. 

 

IMG_20191126_172552.jpg.deeb5fc383e2ce56c14880b42c82fb10.jpg

 

IMG_20191126_172626.jpg.0a2575ebef1b66618996cc8a139b0113.jpg

 

IMG_20191126_172632.jpg.2454f228c99d984e2b7780f4c72cfd2e.jpg

 

IMG_20191126_172643.jpg.815d7d9f3140f27e02564bac00394a68.jpg 

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

2år batteritid? Jeg har en "haug" av Xiaomi temp sensorer (de runde) og synes jeg bytter batterier hele tiden på dem. 

 

Jeg har ingen vibrasjonssensorer men har montert dørsensor på alle lukene som går inn i båten, samt i oppbevaringsrommet i cockpit. 

De styrer også kamera, så når en av dem utløses så begynner kameraene å filme. 

 

Siden jeg ikke har brukt for varmtvann på vinteren har jeg flyttet innr kontakten til kamera så jeg kan restarte det hjemmefra. Kameraet fryser dann-og-vann, finner ingen grunn i loggene men er vel sånn man må forvente på ett kamera til 80kr.

Link to post
Share on other sites

Denne sensoren satte jeg vel inn tidlig i vår, eller var det i fjor høst? Husker ikke i farten. Den har ikke tapt mye batteri så jeg tror to år kan være tilfelle. Jeg tenker jeg bytter alle ved sjøsetting hvert år så slipper jeg å tenke på det resten av tiden. 

 

Screenshot_20191126_234150.jpg.d84b66a5705c76e2984461cf956c4a11.jpg

 

Du har Xiaomi Dafang kamera ikke sant? Skal ikke være ustabilt det. Mine er dønn stabile. 

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

De runde Xiaomi sensorene rapporter godt batteri helt til de begynner å tulle med rapporteringen. Bytter batteri så virker de en stund igjen.

Kan også ha med avstand mellom tempsensor og neste enhet å gjøre. Når jeg tenker meg om har jeg aldri byttet batteri i enhetene i båten. Der er avstanden en del kortere enn i huset.

 

Jeg har Xiaomi Dafang kamera med Dafang Hacks. 

Det hender med ujevne mellomrom at de kobler seg fra wifi og da må jeg kaldstarte dem.

Så da er det greit å ha en INNR koblet til så jeg kan gjøre det remote.

- Det skjer alltid når jeg ikke er hjemme.

Link to post
Share on other sites

  • 3 måneder senere...

På tide å blåse litt liv i denne tråden igjen :)

 

Mine foreldre trengte en ny router på hytta. Så da ble Teltonika RUT240 flyttet dit og en ny Teltonika RUT950 i båten.

Selve GUI er mye raskere og kjekt med flere LAN porter på RUT950, ellers mye likt.

Kan anbefale begge versjoner.

 

Ellers har jeg byttet ut tempsensorene i forpigg og akterlugar til disse:

https://www.banggood.com/no/BlitzWolf-BW-IS4-ZigBee-LCD-Screen-Smart-Home-Temperature-Humidity-Sensor-Thermometer-Hygrometer-p-1604349.html?gmcCountry=NO&currency=NOK&createTmp=1&utm_source=googleshopping&utm_medium=cpc_bgs&utm_content=xibei&utm_campaign=xibei-pla-no-pc-no-rm-all-purchase-1024&gclid=Cj0KCQiAhojzBRC3ARIsAGtNtHVOG6V7r9ZLKFev9rjkmkHU8MWv2n-VbxV40bHKmni0nKZB9swyvtwaAo8xEALw_wcB&cur_warehouse=CN

 

De fikk nettopp støtte i deconz, og det er kjekt å kunne lese av temp/hum i ett display også. Ikke bare på mobil eller skjerm i båten.

 

Link to post
Share on other sites

Den var veldig fin. Ser at Xiaomi også har lignende her: https://www.proshop.no/Smarthus/Xiaomi-Mi-Temperature-and-Humidity-Monitor/2738723

 

Det hadde vært veldig kult om den kunne hatt en sone2 sensor, f.eks. utendørs. Det kommer sikkert snart! 

 

Jeg har hatt veldig glede av raspberryen min hele vinteren. Båten koser ser i hallen i Son og snart starter jobben med vårklagjøring. Så fort vi får litt stabile pluss temperaturer så setter vi i gang! 

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

Delta i diskusjonen

Du kan skrive innlegget nå, det vil bli postet etter at du har registrert deg. Logg inn hvis du allerede er registrert.

Guest
Svar på dette emnet

×   Du har postet formatert tekst..   Fjern formattering

  Only 75 emoji are allowed.

×   Innholdet du linket til er satt inn i innlegget..   Klikk her for å vise kun linken.

×   Det du skrev har blitt lagret.   Slett lagret

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...