RAK WisBlock als Meshtastic Gateway - Aufbau, Konfiguration und Home Assistant
RAK WisBlock als Meshtastic Gateway - Aufbau, Konfiguration und Home Assistant
Einleitung
Meshtastic fasziniert mich schon eine Weile - ein freies, verschlüsseltes LoRa-Meshnetz das komplett ohne Internet auskommt und trotzdem Nachrichten über weite Strecken überträgt. Mobile Nodes hatte ich schon, aber ein fest installiertes Gateway das dauerhaft im Netz hängt, Nachrichten weiterleitet und seine Daten an Home Assistant schickt - das fehlte noch.
In diesem Artikel beschreibe ich wie ich das mit dem RAK WisBlock, dem RAK13800 Ethernet-Modul und dem RAK19018 PoE-Modul umgesetzt habe. Spoiler: Es war nicht immer geradlinig - aber genau das macht es interessant.
Das Ziel: Ein Gateway das per Netzwerkkabel mit Strom versorgt wird, Meshtastic-Nachrichten auf einem verschlüsselten Kanal empfängt und weiterleitet - und das alles sauber in Home Assistant landet.
Die Hardware
Bevor wir loslegen, kurz die Komponenten vorstellen:
- RAK4630 - der eigentliche Core-Chip (nRF52840 + SX1262 LoRa-Transceiver). In der Dokumentation taucht er oft als RAK4631 auf - das ist dasselbe, RAK4630 ist der nackte Chip, RAK4631 das fertige WisBlock-Steckmodul. Für uns kein Unterschied.
- RAK13800 - das Ethernet-Modul, das den WisBlock ans Netzwerk bringt.
- RAK19018 - das PoE-Modul, das direkt auf den RAK13800 aufgesteckt wird und Strom aus dem Netzwerkkabel zieht (IEEE 802.3af, bis 9W).
- RAK19007 - das WisBlock Base Board, auf dem alles zusammenkommt.
Ein Hinweis zu den Schrauben: Im Lieferumfang sind oft keine dabei. Du brauchst M1.2×3 mm für die Module und M2.5×4 mm um das Base Board im Gehäuse zu fixieren. RAK verkauft ein passendes Schraubenset im Store.

Hardware zusammenbauen
Der Aufbau ist erfreulich simpel:
- RAK4630 Core in den Core-Slot des Base Boards stecken und mit M1.2×3 Schrauben fixieren
- RAK13800 Ethernet-Modul in den IO-Slot stecken und verschrauben
- RAK19018 PoE-Modul direkt auf den RAK13800 aufstecken - die beiden verbinden sich über die Header-Pins
- LoRa-Antenne anschließen - niemals ohne Antenne betreiben!

Sobald ein PoE-fähiges Kabel eingesteckt ist, startet das Gerät automatisch - kein separates Netzteil nötig.

Die richtige Firmware
Hier kommt die erste wichtige Weiche: Die Standard-Meshtastic-Firmware für den RAK4631 unterstützt kein JSON über MQTT. Für Home Assistant brauchen wir aber genau das - also gibt es eine eigene Gateway-Firmware.
Firmware herunterladen
Auf github.com/meshtastic/firmware/releases den neuesten Release öffnen, dort Assets ausklappen und das ZIP herunterladen:
firmware-nrf52840-x.x.xx.xxxxxxx.zip
Das ZIP entpacken und darin die Datei suchen:
firmware-rak4631_eth_gw-x.x.xx.xxxxxxx.uf2
Note: Bei Meshtastic heißen alle Releases “Beta” - das ist ihr normaler stabiler Release-Kanal, keine Sorge.
Firmware flashen
- RAK4630 per USB-C mit dem PC verbinden
- Reset-Button zweimal schnell drücken - das Gerät erscheint als USB-Laufwerk
RAK4631 - Die
.uf2-Datei auf das Laufwerk kopieren - Gerät startet automatisch neu
Zur Verifikation: Die Firmware-Version am besten per Meshtastic App über BLE prüfen - dort steht sie direkt in den Gerätedetails. Die INFO_UF2.TXT auf dem Laufwerk zeigt nur die Bootloader-Version, nicht die Firmware.
Netzwerk einrichten
Das Gerät per Meshtastic App via BLE verbinden und unter Funkgerät-Konfiguration → Netzwerk einstellen:
- WiFi: aus
- Ethernet: ein
- Modus: IPv4 / DHCP
Nach dem Neustart die IP-Adresse im Router nachschauen. Eine Web-Oberfläche gibt es beim RAK4631 nicht - aber pingen lässt er sich, und das reicht uns.
Verschlüsselten Kanal anlegen
Statt dem öffentlichen Standardkanal legen wir einen eigenen Kanal mit eigenem Schlüssel an:
In der App unter Kanäle → neuen Kanal erstellen:
- Name: z.B.
HomeMesh - PSK: zufällig generieren lassen
- Uplink: ein
- Downlink: ein
Den alten Standardkanal danach löschen.
Achtung: Den PSK gut sichern! Alle Geräte die im Netz kommunizieren sollen brauchen denselben Schlüssel.
Die Channel-URL für den späteren Import auf andere Geräte bekommt man per CLI:
pip install pyqrcode pypng
meshtastic --host [IP-des-RAK] --qr
Das zeigt die URL und einen QR-Code direkt im Terminal - praktisch zum Scannen mit anderen Geräten.
MQTT konfigurieren - der holprige Teil
Hier gab es die größte Überraschung: Die Meshtastic App und die CLI schienen die MQTT-Einstellungen zu speichern - aber nach einem Reboot waren sie wieder weg. Das ist ein bekannter Bug bei der eth_gw-Firmware wenn man per TCP konfiguriert.
Die Lösung: Konfiguration als YAML-Datei einspielen.
Zuerst brauchen wir die Meshtastic CLI. Am besten in einem eigenen Python-Environment:
python -m venv meshtastic-env
source meshtastic-env/bin/activate # Windows: meshtastic-env\Scripts\activate
pip install meshtastic pyqrcode pypng
Dann die aktuelle Konfiguration exportieren:
meshtastic --host [IP-des-RAK] --export-config config.yaml
In der config.yaml den mqtt:-Abschnitt anpassen:
mqtt:
address: 192.168.x.x # IP deines Home Assistant
enabled: true
encryptionEnabled: false
jsonEnabled: true
tlsEnabled: false
mapReportSettings:
publishIntervalSecs: 3600
password: DeinPasswort
root: msh/EU_868
username: meshtastic
Um sicherzustellen, das eine permanennte Verbindung mit dem MQTT Server besteht muss in der config noch folgendes angepasst werden:
lora:
ignoreMqtt: false # Wichtig: sonst ignoriert das Gateway MQTT-Pakete
Und im power:-Abschnitt den Light Sleep deaktivieren - sonst geht das Gerät nach 5 Minuten schlafen und die MQTT-Verbindung bricht ab:
power:
lsSecs: 0 # Light Sleep deaktivieren
Und wieder einspielen:
meshtastic --host [IP-des-RAK] --configure config.yaml
Außerdem wichtig - ignoreMqtt deaktivieren damit das Gateway auch eigene Pakete weiterleitet:
meshtastic --host [IP-des-RAK] --set lora.ignore_mqtt false
Zum Thema Meshtastic Python CLI hab ich einen eigenen Artikel in Arbeit.
Home Assistant vorbereiten
Mosquitto Broker
In Home Assistant: Settings → Add-ons → Mosquitto Broker installieren und starten.
Unter Konfiguration einen Login für das Gateway anlegen:
- Username:
meshtastic - Password: sicheres Passwort
- “Require Client Certificate”: aus
Speichern und Mosquitto neu starten.
MQTT Integration
Settings → Devices & Services → MQTT hinzufügen mit den Broker-Zugangsdaten.
Handheld-Gerät einbinden
Damit ein anderes Meshtastic-Gerät mit dem Gateway kommunizieren kann, müssen beide:
- Denselben Kanal mit demselben PSK haben → QR-Code aus dem Terminal scannen
- Dasselbe Modem-Preset haben → unbedingt prüfen!
Das zweite war bei mir die versteckte Stolperfalle: Ich hatte anfangs MediumFast am Gateway und LongFast am Handheld - die beiden haben sich schlicht nicht gehört, obwohl alles andere stimmte.
Für ein Gateway zu Hause empfehle ich LongFast - das ist der Meshtastic-Standard, bietet bessere Reichweite in der Stadt und ist kompatibel mit anderen Nodes in der Umgebung die man zufällig hören könnte. Beide Geräte also auf LongFast stellen.
Tipp: Immer zuerst prüfen ob sich die Geräte gegenseitig in der Node-Liste sehen, bevor man MQTT debuggt!
Der finale Test
Um zu prüfen ob alles funktioniert, in Home Assistant unter Settings → Devices & Services → MQTT → Configure → Listen to a topic den Topic abonnieren:
msh/#
Dann eine Nachricht vom Handheld senden. Das Ergebnis sollte in etwa so aussehen:
{
"payload": {
"text": "Hellas"
},
"type": "text",
"sender": "!68860978",
"channel": 0,
"hops_away": 0
}
Wenn das ankommt - alles perfekt! 🎉
Meshtastic Entities in Home Assistant
Einmalig lauschen ist schön - aber dauerhaft tracken ist besser. Mit ein paar Zeilen in der configuration.yaml werden Meshtastic-Nachrichten zu echten Home Assistant Entities die man in Automationen, Dashboards und Historien verwenden kann.
Sensoren anlegen
In der configuration.yaml folgendes einfügen:
mqtt:
sensor:
- name: "Meshtastic letzte Nachricht"
unique_id: meshtastic_last_message
state_topic: "msh/EU_868/2/json/HomeMesh/#"
value_template: "{{ value_json.payload.text }}"
- name: "Meshtastic letzter Sender"
unique_id: meshtastic_last_sender
state_topic: "msh/EU_868/2/json/HomeMesh/#"
value_template: "{{ value_json.sender }}"
- name: "Meshtastic Zeitstempel"
unique_id: meshtastic_last_timestamp
state_topic: "msh/EU_868/2/json/HomeMesh/#"
value_template: "{{ value_json.timestamp | timestamp_local }}"
- name: "Meshtastic Debug Raw"
unique_id: meshtastic_debug_raw
state_topic: "msh/#"
value_template: "{{ value }}"
Nach einem HA-Neustart erscheinen die Entities unter Settings → Devices & Services → Entities.
Debug-Möglichkeiten
Es gibt zwei praktische Wege um zu prüfen was das Gateway gerade sendet:
1. Live lauschen in HA - unter Settings → Devices & Services → MQTT → Configure → Listen to a topic den Topic msh/# eingeben und auf Start listening klicken. Jede eingehende Nachricht wird sofort als formatiertes JSON angezeigt.
2. Debug-Sensor - der sensor.meshtastic_debug_raw abonniert msh/# und speichert die rohe letzte Nachricht ungefiltert. Das ist besonders nützlich um zu sehen was überhaupt reinkommt - also nicht nur Textnachrichten sondern auch Telemetrie, Positionsdaten und Node-Infos die kein payload.text haben.
Tipp: Für ein schönes formatiertes Debug-Dashboard empfehle ich Claude Code mit dem Home Assistant MCP - damit lässt sich ein vollständiges Meshtastic-Dashboard direkt per Prompt anlegen ohne manuelles YAML-Schreiben.

Fazit
Das Setup ist deutlich mächtiger als es auf den ersten Blick wirkt. Ein dauerhaft laufendes Gateway das alle Meshtastic-Pakete im LoRa-Umkreis empfängt und strukturiert an Home Assistant weiterleitet - und das alles verschlüsselt über einen eigenen Kanal.
Die größten Stolpersteine waren:
- Falsche Firmware - unbedingt die
eth_gw-Variante nehmen, nicht die Standard-RAK4631-Firmware - MQTT-Config-Bug - per YAML-Datei einspielen statt einzelner CLI-Befehle
- Modem-Preset-Mismatch - alle Geräte im Netz müssen dasselbe Preset haben, sonst hören sie sich schlicht nicht. Für ein stationäres Gateway empfehle ich LongFast - bessere Reichweite und kompatibler mit anderen Nodes in der Umgebung
- Light Sleep -
power.ls_secsauf0setzen, sonst geht das Gateway nach 5 Minuten schlafen und die MQTT-Verbindung bricht ab
Im nächsten Artikel geht es um den eigentlichen Sensor-Node - das Gerät das Messdaten erfasst und ins Mesh einspeist. Und irgendwann kommt auch noch die Karte. 🗺️
Dieser Artikel ist Teil einer Serie über Meshtastic und Home Assistant.