Gå till innehållet

MeshCore till MQTT

Den här guiden visar flera sätt att skicka MeshCore-data till Meshat.se. Om din nod har inbyggt Wi-Fi är observer-firmwaren normalt det smidigaste valet.

MeshCore-enheter ansluter till en egen MQTT-server på Meshat.se. Den servern uplinkar MeshCore-data vidare till mqtt.meshat.se, så den vanliga MQTT-servern innehåller både Meshtastic- och MeshCore-data.

Inställning Värde
Server meshcore-mqtt.meshat.se
Port 443
TLS Ja
WebSocket Ja
Topic meshcore
Audience meshcore-mqtt.meshat.se

MQTT-servern kör Bjorkan/meshcore-mqtt-broker, en fork av michaelhart/meshcore-mqtt-broker. Du kan se hur servern arbetar på dashboarden.

IATA-kod

meshcore-mqtt.meshat.se släpper enbart igenom trafik märkt med någon av IATA-koderna nedan. Försöker du ansluta med en annan kod släpps paketen. Samma koder används av Meshmapper.

Välj rätt kod för nodens län:

Län IATA-kod
Blekinge RNB
Dalarna BLE
Gotland VBY
Gävleborgs län GVX
Hallands län HAD
Jämtlands län OSD
Jönköpings län JKG
Kalmar län KLR
Kronobergs län VXO
Norrbottens län LLA
Skåne län MMX
Stockholms län STO
Södermanlands län NYO
Uppsala län STO
Värmlands län KSD
Västerbottens län UME
Västernorrlands län SDL
Västmanlands län VST
Västra Götalands län GOT
Örebro län ORB
Östergötlands län LPI

Rekommendation: 3 byte adverts

Det är rekommenderat att använda 3 byte adverts på MeshCore-repeaters och room servers. Det gör noder lättare att skilja från varandra i analysverktyg och förbättrar spårbarheten i nätet.

Kommandon i Console

Kommandona på den här sidan skrivs i MeshCore Flashers Console. Se Skriv kommandon i Console om du är osäker på var de ska in.

set path.hash.mode 2

Välj metod

Det här är förstahandsvalet om din MeshCore-enhet har inbyggt Wi-Fi. Du behöver ingen extra dator eller Raspberry Pi, bara själva enheten och tillgång till Wi-Fi.

Det här alternativet passar särskilt bra om du bygger en repeater som du senare också vill kunna använda som observer.

Observer-firmwaren underhålls av Discord-användaren hercules.mulligan.

1. Anslut till Wi-Fi och MQTT

Den här delen utgår från att enheten redan är flashad med observer-firmware och grundkonfigurerad som repeater eller room server. Om du inte har rätt firmware än, använd Observer Flasher.

I observer-firmwaren finns Meshat.se redan som preset, så du behöver normalt inte ange brokeruppgifterna manuellt.

Sätter den områdeskod som används i MQTT-topics – välj rätt IATA-kod för ditt län i tabellen ovanför. Exempel för Stockholm:

set mqtt.iata STO

Sätter namnet på det trådlösa nätet som noden ska ansluta till.

set wifi.ssid ditt-wifi-namn

Sätter lösenordet till ditt Wi-Fi så att noden faktiskt kan nå internet och MQTT-brokern.

set wifi.pwd ditt-wifi-losenord

Aktiverar det inbyggda Meshat.se-presetet i slot 1. Då används rätt broker, transport och inbyggda uppgifter för Meshat.se utan att du behöver fylla i dem själv.

set mqtt1.preset meshat.se

mqtt2.preset kan lämnas kvar som det är. I observer-firmwaren är det normalt redan satt till ett bra standardval för en extra anslutning.

Startar om noden så att Wi-Fi och MQTT ansluter med de nya inställningarna.

reboot

Kontrollera att allt fungerar

Visar om noden är ansluten till Wi-Fi och brukar även ge dig IP-adress och signalstatus.

get wifi.status

Bekräftar att slot 1 verkligen använder meshat.se.

get mqtt1.preset

Visar om MQTT-brokern är ansluten och om någon slot har fel.

get mqtt.status

När allt fungerar kan du kontrollera att observern syns här:

Det här passar när du inte har Wi-Fi i själva noden, eller när du vill köra MQTT-bryggan på en separat dator eller Raspberry Pi.

Förutsättningar

  • en dator eller Raspberry Pi
  • en MeshCore-nod ansluten via USB eller serial
  • Python installerat
  • internetanslutning

Läs mer här: meshcoretomqtt

Exempelkonfiguration

Exemplet matchar Meshat.se-presetet i meshcoretomqtt: meshat-se.toml.

[[broker]]
name = "Meshat.se"
enabled = true
server = "meshcore-mqtt.meshat.se"
port = 443
transport = "websockets"
keepalive = 60
qos = 0
retain = true

[broker.tls]
enabled = true
verify = true

[broker.auth]
method = "token"
audience = "meshcore-mqtt.meshat.se"

Vad raderna betyder

  • name = "Meshat.se" är namnet på brokerprofilen.
  • enabled = true slår på just den här brokerprofilen.
  • server = "meshcore-mqtt.meshat.se" pekar ut Meshat.se:s MeshCore-broker.
  • port = 443 använder HTTPS-porten för MQTT över WebSocket.
  • transport = "websockets" använder WebSocket-transport.
  • keepalive = 60 håller anslutningen vid liv med 60 sekunders intervall.
  • qos = 0 använder normal MQTT-leverans utan extra kvittering.
  • retain = true låter brokern behålla senaste publicerade värden där det används.
  • enabled = true under [broker.tls] slår på krypterad anslutning.
  • verify = true verifierar TLS-certifikatet.
  • method = "token" använder MeshCore-token för autentisering.
  • audience = "meshcore-mqtt.meshat.se" måste matcha brokeradressen.

Verifiera

När bryggan är igång kan du kontrollera att observern syns här:

Det här passar om du redan kör Home Assistant och vill låta integrationen skicka MeshCore-data vidare till Meshat.se:s MeshCore-broker.

Installera integrationen enligt Home Assistant-guiden för MeshCore.

När integrationen är installerad lägger du till Meshat.se som MQTT-broker:

  1. Gå till Settings.
  2. Öppna Devices & Services.
  3. Välj din Meshcore-integration.
  4. Klicka på Configure.
  5. Öppna Manage MQTT Brokers.
  6. Välj Add Broker, eller Edit Broker om du redan har en broker.

Fyll sedan i värdena nedan. Välj websockets, slå på TLS och certifikatverifiering, lämna användarnamn och lösenord tomma och slå på MeshCore Auth Token.

Fält Värde
Enabled
Server meshcore-mqtt.meshat.se
Port 443
Transport websockets
Use TLS
Verify TLS Certificate
Username Tomt
Password Tomt
Use MeshCore Auth Token
Token Audience meshcore-mqtt.meshat.se
Payload Mode Packet (LetsMesh-compatible)
Auth Token TTL 3600
Status Topic meshcore/{IATA}/{PUBLIC_KEY}/status
Packets Topic meshcore/{IATA}/{PUBLIC_KEY}/packets
Broker IATA Code Din lokala IATA-kod – se IATA-kod
Client ID Prefix Tomt, om du inte behöver ett eget prefix

När integrationen är igång kan du kontrollera att observern syns här:

Home Assistant MQTT-inställningar för MeshCore, första delen

Home Assistant MQTT-inställningar för MeshCore, andra delen

Det här passar om du använder RemoteTerm och vill skapa eller ändra en community MQTT-profil för Meshat.se.

Öppna sidan för community MQTT så här:

  1. Öppna RemoteTerm i webbläsaren.
  2. Gå till Settings.
  3. Välj fliken MQTT & Automation.
  4. Klicka på Add Integration.
  5. Välj Community MQTT/meshcoretomqtt i dialogen Create Integration.
  6. Klicka på Create.

Om du redan har en community MQTT-profil kan du öppna den från listan under MQTT & Automation och ändra värdena där.

Använd token-autentisering, WebSockets, TLS och samma topic-template som i tabellen nedan.

Fält Värde
Name Meshat.se
Type Community MQTT/meshcoretomqtt
Broker Host meshcore-mqtt.meshat.se
Broker Port 443
Transport WebSockets
Authentication Token
WebSocket Path /
Token Audience meshcore-mqtt.meshat.se
Use TLS
Verify TLS certificates
Region Code (IATA) Din lokala IATA-kod – se IATA-kod
Packet Topic Template meshcore/{IATA}/{PUBLIC_KEY}/packets

Klicka på Save as Enabled när du är klar.

När profilen är igång kan du kontrollera att observern syns här:

RemoteTerm-inställningar för Meshat.se:s MeshCore MQTT-broker

Nästa steg