Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Er det noen som har erfaring med bridging av MQTT-brokere?


Mastiff

Anbefalte innlegg

Jeg har installert standard MQTT broker for Pi (sudo apt-get install mosquitto mosquitto-clients) og skulle bridget den i båten til den i hytta fordi Hass har den fullkomment idiotiske begrensningen at den bare kan ha én broker. Men det går bare ikke. Jeg har brukt hjelpen til konfigurasjonsfila og lagt ei fil jeg har kalt bridge.conf i katalogen /etc/mosquitto/conf.d Jeg trodde dette skulle være riktig kode:

 

connection Hytte-Pi
address 192.168.1.101:1883

topic # both 0

 

Men det er det åpenbart ikke, for det skjer ikke en dritt, ingen meldinger fra båtens broker går til hyttas broker og omvendt. Er det noen som har noen som helst anelse om hva jeg må gjøre?

 

Endret av Mastiff
Lenke til kommentar
Del på andre sider

Oi, der fant jeg feilen! Feil IP-adresse, .1 istedenfor .101! Pinlig... Men nå funker det!

 

Båtens Pi bruker sitt eget wifi-kort som ruter (192.168.3.x) og kjører egen broker, med kontakt mellom Hass i båten, Node-RED og Phidget på et Python-skript(og snart ESP32) for å slå av og på søkelys, lanterner og diverse annet som skal komme til etter hvert. Planen er å trykke på én knapp i GUI-en til Home Assistant på mobilen min, så slås hovedstrømmen på, motoren tiltes ned og startes og lanterner og søkelys slås på hvis det er etter solnedgang. Og jeg kommer sikkert til å styre anlegget om bord etter hvert også.

 

Ved brygga kobler den seg til det interne nettverket i hytta på innsiden av en Windows Server 2019 (192.168.2.x) gjennom en USB-wifi (Asus AC), som har rekkevidde til å holde god kontakt. Hyttas broker sitter i en Pi som er i det ytre nettverket (utenfor serveren, men innenfor og opprettet av en småbedriftsbrannmur som kjører pfSense) (192.168.1.x). Den Pi-en som kjører MQTT for hele hytta, er på 192.168.1.101, ikke .1, så dermed var problemet løst. ;)

 

Poenget er at når jeg kommer til brygga, og båten kobler seg til nettverket i hytta, skal alt som er på båtens broker gå til hyttas broker og omvendt, istedenfor at Node-RED og Home Assistant i tre Pi-er på hytta (to fysiske og en virtuell som kjører på VMWare Workstation på serveren), EventGhost på en virtuell maskin på serveren og Node-RED og Home Assistant på Pi-en i båten skal stå og hakke og hakke fordi de ikke får kontakt med brokeren i båten når jeg er ute med båten.

Lenke til kommentar
Del på andre sider

Men ellers enig når det gjelder Home Assistant sin begrensing på dette med en broker. Eller det er vel strengt tatt den personen som har laget broker integrasjonen som har introdusert begrensingen. Det krever tydeligvis en bitteliten innsats å støtte "mange". Den samme begrensingen finnes i flere integrasjoner, men selvfølgelig ikke i alle.

Lenke til kommentar
Del på andre sider

Jeg syns det er fordømt snålt, for det er så vidt jeg vet Python det er skrevet i. Og det å sette opp flere brokere til et Python-skript er jo en ren bagatell for de som kan det. Jeg kan det ikke, men jeg har fått tilbake et fullstendig Python-skript som koblet seg til flere brokere og kjørte noen rutiner fra en svensk kjenning i løpet av omtren ti minutter.

Lenke til kommentar
Del på andre sider

Endelig, etter masse eksperimentering, fant jeg det. Så her er det, mest for min egen skyld, så jeg har det et eksternt sted:

 

connection mqtt-bro-til-hytta
address 192.168.1.101:1883
cleansession true

topic madmax/# in 0

topic madmax/# out 0 "" eg/
topic output/# out 0 "" eg/

 

Mad Max er båten, det er en ganske røft utseende aluminiumsbåt for fiske. ;) Det overstående gjør at alt på hyttebrokeren (in) som har topic madmax og altså skal til båten, kommer uforandret over til båtens broker.

 

De to linjene under gjør at det som har topic madmax (som er kommandoer) og output (som er respons om at porter i Phidget og etter hvert releer på en ESP32 slår seg på og av) går videre til hyttas broker, og det får i tillegg eg/ foran, så det blir eg/madmax/topic for at EventGhost, som har sin egen topic på brokeren, skal få det inn. Det som tok mest tid å finne ut av, var at den trengte cleansession true, ellers gikk alt som ble sendt på begge brokerne over til den andre brokeren uten endringer.

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.