Jump to content

Båtautomasjon med batteriovervåking og Zigbee


Sjøbliss

Recommended Posts

Siden båten min ikke ligger lang unna huset, så har jeg i båten og hjemme Ubiquiti Nanostation M2. Dette gjør at båten er koblet på hjemmenettverket når den ligger i hjemmehavn. Når jeg er på tur så går alt på 4g.

Derfor synes jeg det er gøy å følge med på temperaturer etc hjemmefra for å vite at alt står bra til.

 

I båten står det som sagt en RPI med signalk server, alle data fores først inn der også kan jeg hente ut igjen det jeg vil senere.

Dette er noe jeg bruker hjemme for å se hvordan det ligger an, ikke noe som kommer til å bli brukt på tur.

 

Først installerer jeg Influxdb som er databasen som verdiene lagres i, også installerer jeg Grafana som visualiserer verdiene.

 

Selve installasjonen er godt forklart her: https://www.circuits.dk/install-grafana-influxdb-raspberry/

Det eneste jeg ikke ser i denne oppskriften er opprettelse av databasen, dette gjøres sånn i terminal:

$influx

CREATE DATABASE "navnpådb"

CREATE USER "brukernavn" WITH PASSWORD 'passord'

EXIT

 

Etter dette går jeg inn i node-red og henter ut dataene som jeg har lyst til å visualisere:

748698068_signalktografana.JPG.674b13e93fcdc87d347362cba7d24575.JPG

 

Her er link til flow: https://pastebin.com/QAMH6Myd

 

Så går vi videre til Grafana for å hente ut data fra Influxdb og få dem inn i Grafana.

Adressen til Grafana er http://localhost:3000 og første innlogg er bruker og passord "admin".

 

Først henter vi inn databasen:

influxdb2grafana.JPG.efa97acf6b5791cbd87e6311e786f2d4.JPG

 

Så oppretter vi ett nytt dashbord via "New Dashboard", "Graph", "Panel Title" og "Edit".

Også er det bare å legge inn ønsket data på denne måten:

1349358785_Leggeinndata.JPG.6e1469acfa4dc7af088cfa7c161adfb4.JPG

 

Trykk save og dataene begynner forhåpentligvis å strømme inn: (ser litt bedre ut når den har stått en stund og kan fylle skjermen med data).

finito.JPG.bb5df8f7f009aa99abe3d1d400f4144a.JPG

 

Grafana har ett hav av muligheter, det er sikkert enkelere og bedre måter å gjøre dette på, men jeg er i startgropen selv med programmet.

 

Link to post
Share on other sites

Vann og vind hentes fra NMEA.

Batteridata fra en egen pi som kjører Venus og signalk plugin.

Septiksensoren er som sagt tidligere fra en Arduino.

 

De andre temperaturene hentes fra noen gamle 433mhz tempmålere via Domoticz/rfxcom.

Så hentes data fra Domoticz via HTTP-API inn i Node-red og videre til signalk.

signalk sender da bl.a. ut igjen til NMEA2k så jeg får opp temperaturene på plotteren.

 

signalkin.JPG.f7d245fff1fbaa75ec810d501e9392d4.JPG

 

Link til flow: https://pastebin.com/RKv3HAfj

 

Edit:

Men planen er om jeg får til å styre lyset innvendig med en zigbee dings å da heller kjøpe Xiaomi sine tempfølere.

 

Redigert av Dreuf (see edit history)
Link to post
Share on other sites

Etter litt forskning fant jeg ut at det var en bug i Home Assitant modulene til Node-Red. Man må installere følgende moduler: 

Quote

npm install node-red-contrib-home-assistant-websocket

 

Dersom man allerede har installert de uten "-websocket" må disse avinstalleres. Nå har jeg gjort akkurat det og da kunne jeg få til følgende logikk som fungerer fjellbra! Ikke lenger nødvendig med "integer" konvertering av "string", det kan settes opp i state modulen direkte. Jeg kunne også klart meg uten change noden og bare satt to output på function noden, men det er ganske greit å ha det splittet også. Nå snakker vi!

 

1608061405_Screenshot2019-02-01at17_05_04.png.cc948c049edcbb085ae2495f1d4487d4.png

 

https://pastebin.com/9m5BP5Ve

Redigert av Sjøbliss (see edit history)
Link to post
Share on other sites

  • 2 uker senere...

@Sjøbliss 

Nå har jeg fått GLEDOPTO zigbee styringen til lyset i båten. Kjøpte samtidig en Conbee til RPI.

Men hva bruker du for å få hassio til å snakke med zigbee, er det deconz?

Jeg driver å leser meg opp på hass, er det riktig at nesten alt av config skal inn i config.yaml fila?

Blir ikke den utrolig stor og uoversiktlig etterhvert?

_

 

Jeg har lagt ned noen timer i node-red, signalk og rpien generelt for å få den til å virke som jeg vil ha den.

Er det noen god måte å sikkerhetskopiere hele kortet på? (Burde vært over på ssd egentlig..)

Har prøvd win32diskimager og kan da lage ett img av kortet, problemet er bare at om sdkortet er 32gb så er det hva størrelsen på kopien blir, uavhengig av hvor mye plass jeg har benyttet av kortet..

 

 

Link to post
Share on other sites

Jeg har to forskjellige tophater til Rasppien, hjemme har jeg RaspBee med Deconz og i båten kjøpte jeg en annen og bruker zha. Er mest fornøyd med Deconz, veldig brukervennlig og masse muligheter. Anbefaler den! 

 

Jeg tar backup av hele SD kortet med ddrescue på en Linux laptop. "ddrescue /dev/sda imagefile". Da går det å skrive den til en ny med etcher. På Windows fant jeg dette:

https://computers.tutsplus.com/articles/how-to-clone-your-raspberry-pi-sd-cards-with-windows--mac-59294

 

Config filen kan deles. Jeg skal finne litt men det er ! med linker til underfiler. Er masse doc men skal finne noen eksempler. 

 

Link to post
Share on other sites

Dette var en veldig kjekk tråd, takk for tips om Node-Red!

 

Jeg har brukt et par dager på å sette meg inn i Node-Red, en ting jeg sliter med er å få SignalK data inn fra iKommunicate-boksen. Har noen av dere iKommunicate, eller kjører dere egen SignalK server?

 

Jeg har fått det til sånn halvveis, får inn JSON delta fra iKommunicate via websocket, men jeg sliter med å få sortert dataen slik at jeg kan vise den på dashboardet.

 

nodered.jpg.b152c09dab160c8b5492fbe6d9f50978.jpg

 

Dette blir sendt ut fra iKommunicate:

 

iKommunicate.gif.72a0a1a657ece6edee275400ff6b6ae5.gif

Link to post
Share on other sites

Jeg kjører signalk server på min rpi. 

Men mener iKommunicate er samme greia. 

 

Du har noen oransje noder på venstre hånd der, mener det er signalk on delta jeg bruker for å hente ut data. Så slipper du å få alt inn, kan heller bare hente ut det du trenger. Ligger noen screenshots fra mitt oppsett tidligere i tråden. 

Path er den du skriver inn for å hente ut den data du ønsker, F. Eks navigation.position

 

Kjører du node-red på en egen maskin eller kjører du signalk-nodered-plugin? 

Redigert av Dreuf (see edit history)
Link to post
Share on other sites

Ok, ja iKommunicate gjør det samme, men signalk modulen i Node red er bare kompatibel med signalk server om jeg har forstått det riktig, den kan ikke koble hente data fra iKommunicate.

 

Jeg kjører node-red på egen RPI, installerte bare Signalk-modulen for å se om jeg kunne få den til å snakke med iKommunicate.

 

Vet du hva jeg kan bruke for å skille ut informasjonen jeg trenger fra dataen jeg mottar fra websocket?

Link to post
Share on other sites

Takk, det hjalp! :) Jeg kom noe videre, nå får jeg ut informasjonen, men den veksler mellom å vise posisjon og COG. Problemet er at meldingene fra alle sensorene er likt formatert, jeg må skille på PGN. Prøvde derfor å lage en liten kode som henter ut verdiene for en bestemt PGN, men uten en skikkelig forståelse for JavaScript fikk jeg det ikke til å funke. "Adressene" skal være riktige, tror nok problemet ligger i koden.

 

19‎.‎02‎.‎2019‎ ‎05‎.‎03‎.‎20node: navigation.positionfunction : (error)

"TypeError: Cannot read property '0' of undefined"

 

Ser du hva jeg gjør feil?

 

kode.jpg.5da11daee7c25b8d8a2c9cce55265124.jpg

Redigert av Asbjørn2 (see edit history)
Link to post
Share on other sites

Jeg lurer på om du ikke har noen plass i arrayet dit som heter .longitude eller .latitude og derfor finner den ikke noe.

(Unnskyld om jeg kaller array, string, booleen etc feil, er ikke så godt inni terminologien der).

 

Prøv å kopier inn denne flowen som eksempel:

[{"id":"e2e6bef8.13db7","type":"websocket in","z":"9fe33246.6f772","name":"ws","server":"45e5d0ed.aaea7","client":"","x":63,"y":73,"wires":[["39ef81bc.b5e92e"]]},{"id":"39ef81bc.b5e92e","type":"jsonpath","z":"9fe33246.6f772","expression":"$.updates..values[*]","split":false,"name":"Signal K delta values","x":236,"y":73.99999523162842,"wires":[["d9be9e05.95dae"]]},{"id":"d9be9e05.95dae","type":"function","z":"9fe33246.6f772","name":"merge values","func":"var paths={};\nvar arrayLength = msg.payload.length;\nfor (var i = 0; i < arrayLength; i++) {\n    paths[msg.payload.path]=msg.payload.value;\n}\nmsg.payload = paths;\nreturn msg;","outputs":1,"noerr":0,"x":433,"y":73,"wires":[["94e7b4e9.d8ced8"]]},{"id":"94e7b4e9.d8ced8","type":"function","z":"9fe33246.6f772","name":"Water Temp","func":"var signalk_key=\"environment.water.temperature\";\n\nif(msg.payload.hasOwnProperty(signalk_key)){\n    msg.payload=msg.payload[signalk_key];\n    return msg;\n    \n\n}","outputs":1,"noerr":0,"x":614,"y":73,"wires":[["43e7f41e.3a08fc"]]},{"id":"43e7f41e.3a08fc","type":"function","z":"9fe33246.6f772","name":"K to F","func":"var temp = msg.payload;\n\nvalue = (temp * 9.0) / 5.0 - 459.67; \nmsg.payload=value;\nreturn msg; ","outputs":1,"noerr":0,"x":754,"y":73,"wires":[[]]},{"id":"45e5d0ed.aaea7","type":"websocket-listener","z":"","path":"ws://localhost:3000/signalk/v1/stream","wholemsg":"false"}]

 

Du må kanskje forandre adressen på websocket serveren din. Også legge inn riktig path på den som heter "water temperature".

Link to post
Share on other sites

Da har jeg fått conbee usb dingsen min og testet litt lysstyring.

 

Siden jeg bruker node-red sitt dashboard så gikk jeg ikke veien via Hassio, men installerte deconz og brukte deres REST API til å styre lyset i Node-red.

Det jeg sleit litt med å få til var at om jeg sendte brightness 0 til deconz så satt det lyset til minimum, og ikke av.

Samt at om lyset er av og jeg setter britghtness til level 50, så skrur ikke lyset seg på.

Egentlig skal man kunne sende både "on" og "brightness" i en melding til deconz, jeg fikk melding om "sucess" tilbake men det hjelper lite når lyset ikke skrur seg på.

 

Sånn ser det ut i Node-red:

lysstyring.JPG.6dae46b52dbfb61862b410a6d8b90c0a.JPG

 

Jeg bruker også en timestamp for å hente informasjon om lampen, skulle gjerne hatt en funksjon som gir beskjed ved forandring, men da ser det ut som jeg må bruke websocket og det får jeg ikke til..

I tillegg har jeg satt at pæren skrur seg av under 10 i styrke, for at det skal være litt lettere å treffe "av" på slideren på touchskjerm.

 

Sånn ser det ut i nodered dashboard: 

231381053_nodereddashboard.JPG.a8c8747c9cea9534e539d009c9aa4122.JPG

 

Kommer også til å montere noen xiaomi trådløse brytere.

 

Her er kopi av flow: https://pastebin.com/H7DgcMqU

 

Tenkte jeg skulle teste på neste værmelding på den bærbare VHFen for å se at dimmer og pære ikke gjør noen utslag ved dim opp/ned og av/på før jeg monterer i båten.

 

Har også bestilt 2stk GLEDOPTO RGBW controllere da jeg har 2stk ledstriper som er montert under håndrelingen inni båten.

 

Finnes det noen zigbee plugin switcher som rapporterer strømforbruk?

 

Link to post
Share on other sites

Jeg tenkte mer på den som styrer F. Eks lader om den rapporterer kWh eller momentanforbruk. 

 

Testet også systemet mot kystradio sør i går, ingen forskjell om den var Dimmer på max eller min. Med strøm på eller ikke. Låg da antenna på den bærbare vhfen helt inntil zigbee dimmeren. 

 

Forbruket på GLEDOPTO er 0.03a på tomgang. 

Link to post
Share on other sites

  • 2 uker senere...

Da har jeg lekt og lært litt HA.

Ett kraftig verktøy, men du verden så jeg har slitt med å legge inn sensorer fra forskjellige kilder inn i config.yaml.

Mye prøving og feiling om man skal ha "-" foran platform eller ikke, og få riktig avstander på ting.

 

Grunnen til at jeg har lite informasjon pr fane er at det skal passe inn på rpi skjermen min uten å scrolle.

 

1.JPG.89fd97a3bba056ff260a956cca5a9459.JPG2.JPG.705458b30cfa4e10a9816d250d166dee.JPG3.JPG.a16bee78917c94629af41f8ae7a22cf3.JPG4.JPG.af0038a951ba1a38bb32897930eb78cc.JPG

 

Siden jeg har koordinatene på båten inn i HA, så skal jeg prøve å få den opp på "map" også.

Leste at det var noen muligheter via MQTT Device tracker.

 

Har også fått 2stk GLEDOPTO RGBW kontrollere for å styre ledstripene i byssa så skal prøve å få dem montert i helgen.

Nå leses temperaturer fra rfxcom, men har en haug med Xiaomi tempsensorer på vei fra Kinaland så planen er å flytte alt over på zigbee.

Da kommer også styring av avfukter, lader og varmtvann inn.

Link to post
Share on other sites

Jeg er litt grønn på HA, kjører 87.1 men det var også mulighet for å oppdatere 88.1, det har jeg ikke fått til enda.

 

Zigbee kjører jeg via deconz, så det er vel egentlig deconz som gjør styring av zigbee.

 

Siden signalk har en innebygget AIS tracker så var det en smal sak å få AIS inn i HA:

 

5.JPG.92a81dfd6c987385bbfbf193fe6bc6dc.JPG

 

Eneste jeg må få til er at kartet er zoomet inn når man åpner fanen og ikke at man får verdenskartet...

Link to post
Share on other sites

88.2 er vel siste. Nå er det kommet en arkfane med alle integrasjoner, så man trenger ikke lenger trykke manuelt og legge det til i config fila. Discovery er også blitt mye bedre mot MQTT. Du bare legger inn broker så kommer de automatisk. Som du ser så kommer også uPnP opp i lista. Deilig å ikke sitte der og knote med å få syntax riktig. 

 

 

 

4B0F2AC8-5529-4788-97F4-B1B5B063ABC4.png

9D35AFBE-3540-44AF-B443-8D6405068F32.png

Link to post
Share on other sites

Dreuf skrev for 2 timer siden:

Nå har jeg kjørt 


pip3 install --upgrade homeassistant

Ser den laster ned 88.2 og får ingen feilmeldinger, men selv etter en reboot så er jeg fortsatt på 0.87.... 

Er det noe jeg har oversett?

 

Edit:

Leste første posten igjen og der står det hvordan man skal oppdatere....

 

Vær obs på at innstillimger i config filer overrider automatikken. Jeg ble så irritert at jeg tok en fresh install.

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...