MQTT bericht naar twee RPI's

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Poecillia
  • Registratie: Januari 2002
  • Laatst online: 22-09 23:38
Ik heb een ogenschijnlijk simpel probleem waar ik ondanks zoekwerk toch niet zelf uit kom. Ik heb ook zitten twijfelen in welk forum dit thuis hoort, daarom hier maar een poging.

Ik heb een Nodemcu die diverse sensoren uitleest en berichten naar een RPI met Mosquito stuurt. De eigenlijke verwerking van de berichten gebeurt met de Python Paho library en opslag in Influxdb. Ik test momenteel een containerised setup op een andere RPI en wil daarom de berichten van de Nodemcu ook naar deze tweede RPI met een ander IP adres sturen. In de sketch moet ik echter het IP adres van de MQTT server hard ingeven en ik zie in de documentatie geen opties voor een tweede server.

Een andere oplossing is dat ik de berichten die in de eerste RPI aankomen doorsturen naar de tweede RPI. Ik heb een tijdje zitten zoeken in Mosquitto, maar vind niets over doorsturen. Hier moet toch een standaard mogelijkheid voor zijn?

Alle reacties


Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Geen ervaring met Mosquitto, maar message queue's in general kun je toch clusteren? En dan in je messagequeue cluster 1 inkomend bericht op twee queue's plaatsen voor 2 afnemende systemen?

Het idee zijnde dat je berichtproducerende apparaat naar 1 ip adres stuurt, en de messagequeue dan afhandelt dat het bericht op beide plekken terecht komt, ipv dat je berichtproducerende apparaat dat moet doen.

Edit: snelle googleactie verder, en t schijnt dat mosquitto geen clustering kan doen. Dus dan zou je moeten kijken naar een andere mqtt messagequeue, zoals rabbitmq of activemq o.i.d.

[ Voor 54% gewijzigd door McKaamos op 19-11-2019 19:20 ]

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • ASP
  • Registratie: December 2000
  • Laatst online: 17:19

ASP


Acties:
  • 0 Henk 'm!

  • Poecillia
  • Registratie: Januari 2002
  • Laatst online: 22-09 23:38
Even een kwartiertje prutsen in Python en het is gelukt! Ik zal Steves oplossing nog eens bekijken, wel veel content voor een simpele optie.

Acties:
  • 0 Henk 'm!

  • Yukkie
  • Registratie: Januari 2001
  • Laatst online: 27-09 16:37

Yukkie

Vorsprung Durch Technik

Volgens mij kun je het op 2 manieren oplossen:

1. Je kunt je 2e Pi subscriben op de relevante topics op de eerste mosquitto server
2. Of je kunt de topics dmv een bridge constructie laten forwarden naar je 2e pi. Zegmaar van @ASP voorsteld.

Vermoedelijk is de 2e optie dat wat je wil. Het lijkt allemaal een stuk ingewikkelder dan dat het uiteindelijk is. Het is mij ook gelukt. Ik heb 2 Mosquitto containers draaien in docker: 1 die dmv portforwarding bereikbaar is vanaf het internet ivm een location tracker op basis van mqtt. Deze forward alleen specifieke topics naar de 2e mosquitto server in het netwerk, waar alle andere devices in mijn netwerk aan gekoppeld zijn. Volgens mij was het slechts een paar regeltjes configuratie die ik toe hoefde te voegen aan de config van een van de containers.

We've got that ring of confidence


Acties:
  • 0 Henk 'm!

  • Poecillia
  • Registratie: Januari 2002
  • Laatst online: 22-09 23:38
Hmm het blijft wat bijzonder. Via Python paho-mqtt is het makkelijk. Ik blijk zelfs in RPI2 gewoon me op de topics in RPI1 te kunnen subscriben omdat ik daarin het IP nummer van RPI1 kan opgeven.

Maar via de bridge lukt het me niet. Ik heb in de mosquitto.conf het volgende opgenomen:
connection bridge_01
adress 192.168.2.28:1883
topic # out 0
topic # in 0

Maar na restart van mosquitto in verbose mode niets over een bridge en de berichten komen ook niet in mosquitto van RPI2 met bovenstaand IP nummer aan. Zie ik iets over het hoofd?

[ Voor 4% gewijzigd door Poecillia op 20-11-2019 20:50 ]

Pagina: 1