Jump to content

Båtautomasjon med batteriovervåking og Zigbee


Sjøbliss

Recommended Posts

Er på sjøen og blåser bort 😂😂

 

Skal se på i morgen men er ikke akkurat det jeg har surret mest med i Node Red. Jeg har også snart fått laget meg GPSD som jeg kan tracke båten med uten å måtte ha på NMEA bussen. Og ikke minst, tyvene finner den aldri 👋

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

Fantino skrev On 26.5.2023 at 20.39:

Jeg tenkte på noe slikt. Klippe de USB du har i ene enden og skjøte til en slik 4-pin. Evt kjøpe slike USB med ledningsstump og bruke i andre enden. Om strekket ikke er veldig langt burde det fønke fint.

 

Kjekke plugger, men jeg tror nok ikke det. Etter min erfaring er USB 3 så følsomt for endringer i kabel at det ikke en gang funker å kappe en kabel og lodde den sammen igjen kortere. :nonod: Det blir nok å feste krympestrømpe og så skjære den opp når det trengs, iallfall inntil videre.

Link to post
Share on other sites

Sjøbliss skrev for 2 timer siden:

Er på sjøen og blåser bort 😂😂

 

Skal se på i morgen men er ikke akkurat det jeg har surret mest med i Node Red. Jeg har også snart fått laget meg GPSD som jeg kan tracke båten med uten å måtte ha på NMEA bussen. Og ikke minst, tyvene finner den aldri 👋

Kult. Har trua :)

NMEA bussen trekker ikke all verden med strøm. Hva er grunnen til at du ikke bruker den?

Hva kjører du GPSD på, PI?

Link to post
Share on other sites

Swingswong skrev for 11 timer siden:

Ingen? @Dreuf @Sjøbliss magi ønskes 😉

 

Ut fra slideren så får du en verdi, så setter du en template node inn i mellom slider og shelly'en som under:

image.png.bf1a04e1b5a2e8e64dae2d5e07792a1a.png

 

Jeg har ikke prøvd shelly selv, så vet ikke om det fungerer, men verdt ett forsøk.

 

Edit:

Shellyen vil ha 0-100 inn, så om du får 0-255 ut fra slider så kan du bruke "range node" til å forandre dette.

 

 

Link to post
Share on other sites

ESP-home-spørsmål: Jeg har en sensor med voltmeter som ser sånn ut:

 

Sitat

sensor:
  - platform: ina219
    i2c_id: bus_a
    address: 0x40
    shunt_resistance: 0.1 ohm
    bus_voltage:
      name: "Anlegg"
    max_voltage: 32.0V
    max_current: 3.2A
    update_interval: 5s
 

 

Så vil jeg ha en if-then som funker sånn:

 

1. Sjekker om "tenningsstrømmen" til anlegget er på, og hvis den er det sjekker om det er strøm på styrestrømmen ut fra anlegget (til eksterne forsterkere og sånt). Hvis det er strøm på den, står anlegget allerede på, og da stoppes skriptet.

2. Hvis releet er på, men ikke styrestrømmen, sender den IR-signalet for å slå på forsterkeren.

 

3. Hvis releet er av, slår den det på, venter fire sekunder, sjekker om styrestrømmen er på og sender IR-signalet hvis det ikke er styrestrøm. Sånn, omtrent, tror jeg (skulle ønske jeg kunne programmere ESP i Lua, jeg er mye mer hjemme der):

 

Sitat

   - topic: madmax/anlegg/på
     then:
       - if:
           condition:
             switch.is_on: styrehusrele1
           then:
             - mqtt.publish:
                 topic: madmax/stereoanlegg
                 payload: "Styrehusrelé 1 er allerede på - sjekker om styrestrøm er på"
             - if:
                 condition:
                 SENSOREN VISER MER ENN 5 Volt
                 then:
                   - mqtt.publish:
                       topic: madmax/stereoanlegg
                       payload: "Styrestrømmen er på IR er unødvendig"
                 else:
                   - mqtt.publish:
                       topic: madmax/stereoanlegg
                       payload: "Slår på anlegg med IR"
                   - remote_transmitter.transmit_pioneer:
                       rc_code_1: 0xB50A

           else:
             - mqtt.publish:
                 topic: madmax/stereoanlegg
                 payload: "Styrehusrelé 1 er av, slår på nå - og venter for å sjekke om IR trengs"
             - switch.turn_on: styrehusrele1
             - delay: 4s
             - if:
                 condition:
                 SENSOREN VISER MER ENN 5 Volt
                 then:
                   - mqtt.publish:
                       topic: madmax/stereoanlegg
                       payload: "Styrestrømmen er på IR er unødvendig"
                 else:
                   - mqtt.publish:
                       topic: madmax/stereoanlegg
                       payload: "Slår på anlegg med IR"
                   - remote_transmitter.transmit_pioneer:
                       rc_code_1: 0xB50A

 

Det jeg ikke helt finner i ESPHome-dokumentasjonen (sikkert fordi jeg er kørka), er den betingelsen med at sensoren viser mer enn 5 volt, så anlegget altså gir styrestrøm. Kan noen si meg hvordan det skal være?

Link to post
Share on other sites

Mener du må bruke lambda for å gjøre dette. Prøv denne koden:

 

Sitat

- topic: madmax/anlegg/på
  then:
    - if:
        condition:
          switch.is_on: styrehusrele1
        then:
          - mqtt.publish:
              topic: madmax/stereoanlegg
              payload: "Styrehusrelé 1 er allerede på - sjekker om styrestrøm er på"
          - if:
              condition:
                lambda: |-
                  return id(sensor).state > 5.0;
              then:
                - mqtt.publish:
                    topic: madmax/stereoanlegg
                    payload: "Styrestrømmen er på IR er unødvendig"
              else:
                - mqtt.publish:
                    topic: madmax/stereoanlegg
                    payload: "Slår på anlegg med IR"
                - remote_transmitter.transmit_pioneer:
                    rc_code_1: 0xB50A
        else:
          - mqtt.publish:
              topic: madmax/stereoanlegg
              payload: "Styrehusrelé 1 er av, slår på nå - og venter for å sjekke om IR trengs"
          - switch.turn_on: styrehusrele1
          - delay: 4s
          - if:
              condition:
                lambda: |-
                  return id(sensor).state > 5.0;
              then:
                - mqtt.publish:
                    topic: madmax/stereoanlegg
                    payload: "Styrestrømmen er på IR er unødvendig"
              else:
                - mqtt.publish:
                    topic: madmax/stereoanlegg
                    payload: "Slår på anlegg med IR"
                - remote_transmitter.transmit_pioneer:
                    rc_code_1: 0xB50A
 

 

 Husk å endre sensor til riktig ID :)

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

Prosjektet mitt med GPS hatt og ambulerende hjemmeposisjon er straks ferdig. Nå mangler det bare å teste om det fungerer i praksis!

 

Jeg monterte GPS hatten etter litt lett loddevirksomhet hjemme. Var en enkel operasjon unnagjort på ca 15 minutter. 

https://www.adafruit.com/product/2324

Kit shot of Adafruit Ultimate GPS HAT for Raspberry Pi A+/B+/Pi 2/3/Pi 4 under a header.

 

Angled shot of Adafruit Ultimate GPS HAT for Raspberry Pi A+/B+/Pi 2/3/Pi 4 on a Raspberry Pi

 

Etter installasjon skjønte jeg at den virket for jeg fikk jo ut data fra seriell porten (cat /dev/ttyAMA0). Der datt det ut JSON NMEA data i fleng så GPSen fungerte akkurat som den skulle. Jeg leste kjapt at GPSD var støttet i Home Assitant for det leste jeg jo her:  https://www.home-assistant.io/integrations/gpsd/ Men det jeg ikke tenkte på når jeg kjøpte denne GPS hatten var at det ikke er noen GPSD add-on eller mulighet for å kjøre GPSD direkte på Home Assistant. Integrasjonen over er ment å benyttes der hvor man kjører GPSD på en annen enhet. 

Så tilbake til tegnebrettet. En god venn av meg som er god til å lage greier med kode sa at "du kan jo bare lage en add-on selv". Så jeg satte meg litt ned for å tenke, og leste litt om hvordan man gjør det. Og ca 2 uker senere har jeg gjort akkurat det. Laget min første add-on! 

 

https://github.com/corvy/ha-addons

 

image.png.6461e368faf2ae51235515615c5e86fe.png

 

Første versjon av add-on var bare å kjøre opp GPSD som en fristtstående tjeneste og satte opp integrasjonen over. Men det ble fort klart for meg at dette ikke fungerte over tid. Hver gang add-on startet på nytt så reconnecta den ikke av seg selv. Så da ble det versjon 2. GPSD to MQTT. Denne add-on kobler seg til MQTT for å publisere oppdatert posisjon i sanntid. 

 

For å sette opp dette må du installere MQTT (det kan være du har den fra før!), jeg (og nesten hele verden!) bruker Mosquitto (https://github.com/home-assistant/addons/blob/master/mosquitto/DOCS.md). Installer den og lag en bruker. Så legger du til repository over, legger til add-on som jeg har laget, velger ritktig seriell device og legger inn brukernavn og passord til MQTT. 

 

image.png.f28232adf7d5c73ed68b90ba5854b8fc.png

 

Når du har startet add-on vil den koble seg til MQTT og lage en enhet som den vil oppdatere med posisjon. Den skal se ut noe slikt som dette (fra developer settings):

 

image.png.d3a2c19e91f482697ee25026a1b43995.png

 

Da har vi det vi trenger for å gå videre. Jeg laget en kjapp automasjon for kalle servicen homeassistant.set_location hver gang enheten over får en oppdatert posisjon:

 

Sitat

alias: Dynamisk oppdater posisjon
description: Oppdater posisjonen til Home Assistant (home) når GPS enheten får ny posisjon.
trigger:
  - platform: state
    entity_id: device_tracker.gps_location
    attribute: lat
  - platform: state
    entity_id: device_tracker.gps_location
    attribute: lon
condition: []
action:
  - service: homeassistant.set_location
    data_template:
      latitude: "{{ state_attr('device_tracker.gps_location', 'lat') }}"
      longitude: "{{ state_attr('device_tracker.gps_location', 'lon') }}"
mode: single

 

Automasjonen over vil lytte til endringer på attributtene lat og lon på device_tracker.gps_location. Endres disse vil den kalle servicen set_location og publisere oppdaterte data. Da vil "home" til Home Asisstant endre seg hver gang båten flytter på seg, og da får vi plutselig mulighet til å lage automasjoner når mobilen min befinner seg "hjemme". Og hjemme er til enhver tid der båten er. 
 

image.png.1932fed3d2f19e3b677c92119608d535.png

 

Neste skritt er å montere en sirene i båten, og automatisere den. Og selvsagt skal jeg lage en alert til mobilen dersom båten flytter seg mer enn 20m uten at noen er hjemme e.l. Dette må jeg bare fundere bittelitt på først. 

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

Den tar vi gjerne @Fantino 😜🌞🎯 Det som er utrolig kult er at at ESP32en som styrer Ebersprecheren fortsatt virker, hver gang. Er det på tredje året nå? Sinnsykt fornøyd med den. 

 

Og siden sist lagde jeg en egen bruker til båten i Home Assistant. Den heter Sofia, og den fikk seg en location tracker som er den nye device_tracker enheten som lages av min GPSD addon. Da oppdateres plasseringen til brukeren Sofia, med egen profilbilde. Det ble veldig bra. 

 

Screenshot_20230611_210634_HomeAssistant.jpg.b3684041f01e31990fd4355207c417ad.jpg

 

Og nå er helgen over, og for en helg det har vært! 

 

Screenshot_20230611_210025_HomeAssistant.jpg.9c1a3356ae30c9fbf96a52801e6ef6fc.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

@Sjøbliss Mange tusen takk! Dagen etter at jeg skrev spørsmålet ramlet det plutselig et kjempeprosjekt i hodet mitt på jobben, og jeg har hatt 12-14-timers dager siden da. Nå begynner jeg å se slutten på det, så jeg skal se på denne koden din i helga eller rett over den. Det er ikke utakknemlighet som har gjort at jeg ikke har svart, jeg har bokstavelig talt bare jobbet og sovet...litt innimellom. :crazy:

Link to post
Share on other sites

Glem denne, jeg fant en snedig løsning i CamillaDSP, som lar meg både justere volumet og endre delefilteret ved å kjøre det på en Pi 3B+ som ellers bare styrer Phidgets og Tellstick Duo (og derfor må kjøres på Stretch), ha et USB-lydkort og så styre det med websocket fra Node-RED. Jeg plasserer en egen "Subwoofer"-volumbryter på dashbordet til det, og så kan jeg lage noen profiler for forskjellig type musikk å veksle mellom fra Node-RED. Kule greier, dette skal jeg ha klart til sommerens progmetallfisketur! :cheers:

 

Sitat

Er det noen som kan tenke seg en fungerende volumkontroll for linjenivå som kan kjøres på ESP? Jeg skulle gjerne justert volumet på subwooferne separat fra anlegget (som jeg kjører vi IR-sender på en ESP), for enkelte låter er mikset med så mye bass at subwooferne begynner å vrenge av det når volumet på hele greiene er på "irritere naboene med progressiv metalcore"-nivå. :lol: Jeg kunne selvsagt kjørt et USB-lydkort med inngang via den Pi-en som ikke har lydkortet som sender lyd til anlegget, sånn at lyden gikk inn på innlinja der og ut igjen på utlinja, med volumkontroll, men jeg er redd for at det kan legge til mer støy enn en ren volumkontroll. Så vidt jeg vet, funker ikke et vanlig potmeter til å justre lyd med, det er noe med frekvensene eller noe sånt.

 

Link to post
Share on other sites

@Sjøbliss Klart det! I år tror jeg nok hovedfokuset blir på Sleep Token, som kom med nytt album for noen uker siden. Årets første sekser på terningen for min del!

 

 

 

@Fantino Det er ikke så farlig med subwoofere, det blir forholdsvis lite forvrengning i øver mellomtone (som er en av de tingene som skaper størst problemer med ekstra volumkontroller) når det er fra 125 Hz og nedover. :giggle:

Link to post
Share on other sites

  • 2 uker senere...

Du kan vel koble opp en USB kabel på VE bussen slik vi har gjort? Når du har koblet den opp så er det bare å lytte på det du får ut og så kan man hente ut ønskede data. Tipper jeg.... Må bare koble til og se?

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

Jeg har slitt med en automasjon som skal vite når båten ligger ved brygga, men nettverket fra båten til land er nede og må resettes fra en ESP koblet til hytta, som slår av strømmen til begge Pi-ene i båten og til den aktive USB-huben som det trådløse nettverkskortet er koblet til, og så slår det på igjen etter fem sekunder. Til slutt fikk jeg ideen: En iBeacon-enhet på brygga, og ESPresence i båten, som jeg kjører på en av ESP32-ene. Problemet er bare å finne noen iBeacon som kan plasseres på brygga og går på strøm. Å bytte batteri med noen måneders mellomrom er uaktuelt. :giggle: Men vil noe av dette fungere av seg selv? Eller må de være tilokblet en ESP, eller noe sånt? Jeg vil ha det enklest mulig, med minst mulig fare for at det knoter seg, for dette vil være en av de få tingene i systemet som ikke har noen form for reserveløsning.

 

https://www.ebay.co.uk/itm/385508298961

 

https://www.ebay.co.uk/itm/183333755296

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