Naar inhoud springen

Observer

Uit MeshWiki

Wat is een observer?

Een observer is een MeshCore node (companion of repeater) die al het mesh-verkeer, dat hij via de LoRa radioband ontvangt, doorgeeft via het MQTT protocol over internet aan analyse-websites.

Observers vormen samen de "ogen en oren" van online dashboards: zonder observers zouden sites als cornmeister, Letsmesh en MC-Radar geen beeld hebben van wat er op de mesh gebeurt.

Waarom observers belangrijk zijn

MeshCore is een gedecentraliseerd netwerk zonder centrale server. Observers helpen om te zien:

  • Welke nodes actief zijn
  • Hoe ver berichten komen
  • Waar dekking ontbreekt
  • Of een repeater goed functioneert
  • Of er bronnen zijn van overmatig veel verkeer, en waar die zijn

Door een observer te draaien help je de hele community met inzicht in het netwerk.

Vraag en antwoord

Welke software heb je nodig en hoe installeer je die?

Twee scenario's zijn beschreven in de tabel hieronder. De firmware die je nodig hebt is gebaseerd op de standaard MeshCore firmware, maar met kleine aanpassingen. Het proces van flashen werkt hetzelfde!

Moet ik mijn observer op een apart gastnetwerk wifi aansluiten?

Dat is wel verstandig. Er zijn nog geen vulnerabilities bekend, maar dat wil niet zeggen dat die er nooit kunnen komen. Een apart netwerk beperkt dan eventuele schade.

Is het wel juist om MeshCore aan internet te koppelen?

MeshCore is bedoeld voor communicatie in noodgevallen. Normaal wil je niet van internet afhankelijk zijn, want je wilt juist dat MeshCore blijft werken als er een blackout is. Maar in dit geval wordt internet alleen gebruikt om inzicht te krijgen in MeshCore, niet voor het gebruik van MeshCore zelf.

Moet een observer ook draaien als er een blackout is?

Als de observer ook een repeater is, zou dat erg fijn zijn. Als je een companion als observer gebruikt, mag deze uitvallen tijdens een blackout. Voor de werking van Meshcore maakt dat niet uit.

Ik heb een node die niet kan zenden. Kan ik daar een observer van maken?

Ja, dat kan prima. De hoofdfunctie van een observer is luisteren, niet zenden.

Zelf een observer draaien

Als je begint met het opzetten van een observer, is de voornaamste keuze: gebruik ik een Meshcore device met ingebouwde wifi, of zonder ingebouwde wifi?

Device met ingebouwde wifi Device zonder ingebouwde wifi
Meshcore device Bijvoorbeeld: Heltec V3 of V4.

Zie voor een lijst van devices met ingebouwde wifi support de DutchMeshCore flasher pagina, blokje "DutchMeshCore-MQTT-Firmware".

Bijvoorbeeld: Wio Tracker L1, SenseCap Solar
Meshcore firmware Meshcore firmware die wifi en MQTT ondersteunt; bijvoorbeeld die van DutchMeshCore.

Na installatie van de firmware moet je via de command line interface enkele commando's uitvoeren; bijvoorbeeld om je wifi wachtwoord in te stellen.

Firmware voor je Meshcore device met packet logging enabled, bijvoorbeeld:
  • Let's Mesh - Kant en klare firmware, maar loopt soms een versie achter.
  • Weebl - Web interface om zelf firmware te bouwen; vergeet niet om bij advanced options de packet logging in te schakelen.
  • Je kunt ook zelf firmware compileren, met MESH_PACKET_LOGGING=1 ingesteld.
Extra hardware Een USB kabel voor stroomvoorziening.
  • Een Raspberry Pi of ander computertje
  • Een USB kabel om Meshcore device en Raspberry Pi te koppelen.
  • Optioneel: Ethernetkabel.
Extra software Geen Meshcore MQTT client software (bijvoorbeeld meshcoretomqtt). Bij installatie van de software op de Raspberry Pi moet je invullen welke MQTT brokers je gebruikt. Je kan die van Let's Mesh kiezen, maar als je wilt dat je data in Nederland blijft kun je de brokers van DutchMeshCore kiezen.
Internetverbinding Wifi Wifi of Ethernet

Bovenstaande tabel laat twee voor de hand liggende scenario's zien. Maar er zijn nog meer opties. Hieronder vind je uitgebreidere informatie, voor wie verder wil gaan.

Overzicht van client software

Er bestaan verschillende implementaties die een node als observer laten functioneren:

Client Omschrijving
meshcoretomqtt Python-script dat pakketdata van een MeshCore repeater doorstuurt naar MQTT. Draait op een Raspberry Pi of vergelijkbaar Linux-apparaat met een aangesloten repeater.
DutchMeshCore firmware Meshcore firmware met native MQTT ondersteuning, die pakketdata naar (preconfigured) DutchMeshCore brokers stuurt. MQTT en WiFi configuratie gaat via de command line interface.
agessaman Meshcore fork Meshcore firmware met native MQTT ondersteuning.
meshcore-packet-capture Standalone Python-script voor het opvangen en analyseren van pakketten van MeshCore companion radios, met MQTT-ondersteuning. Specifiek voor companion nodes (voor repeaters en roomservers wordt meshcoretomqtt aanbevolen).
meshcore-ha Home Assistant integratie voor MeshCore nodes, die ook als observer data kan doorgeven.
Openhop Repeater Lichte repeater daemon in Python, gebouwd op de openhop_core library (Voorheen pyMC). Draait op Raspberry Pi met een SPI LoRa HAT.

Globale stappen

  1. Kies een client software uit bovenstaande tabel die past bij jouw hardware en doel
  2. Volg de installatie- en configuratiedocumentatie van dat specifieke project; de exacte stappen verschillen per implementatie
  3. Registreer je observer indien nodig bij het dashboard waar je data naartoe wilt sturen (bijvoorbeeld MC-Radar of Letsmesh)
  4. (Optioneel) Voeg brokers toe, bijvoorbeeld die van dutchmeshcore.nl, met behulp van hun config generator. Je observer wordt dan toegevoegd aan bijvoorbeeld cornmeister.nl.

Meshwiki MQTT Broker

Meshwiki heeft ook een Broker draaien, hier kan jij als observer data naartoe sturen

Meshwiki MQTT Broker

Zie ook