Repository navigation
Node RED Setup
Diese Anleitung beschreibt die Einrichtung von Node-RED mit Telegram-Benachrichtigungen für PagerAlarm.
- Einen laufenden Node-RED Server (z.B. auf einem Raspberry Pi oder PC)
- Einen MQTT-Broker (z.B. Mosquitto) im selben Netzwerk
- Einen Telegram-Bot über @BotFather
- Die Datei
node_red/flows_anonymized.jsonaus dem Repository
- Öffne Telegram und suche nach @BotFather
- Sende
/newbotund folge den Anweisungen - Gib deinem Bot einen Namen (z.B.
PagerAlarmBot) - Kopiere den Bot-Token — sieht aus wie
123456789:ABCdefGHIjklMNOpqrsTUVwxyz - Starte einen Chat mit deinem neuen Bot und sende
/start - Notiere deine Chat-ID — frage @userinfobot, falls nötig
- Öffne Node-RED im Browser (
http://<ip>:1880) - Menü → Palette verwalten → Installieren
- Suche nach
node-red-contrib-telegrambot - Klicke Installieren
- Warte auf die Installation und bestätige den Neustart
cd ~/.node-red
npm install node-red-contrib-telegrambot
# Node-RED neu starten
sudo systemctl restart noderedÖffne die Datei node_red/flows_anonymized.json in einem Texteditor und ersetze:
| Platzhalter | Ersetzen durch |
|---|---|
YOUR_MQTT_BROKER_IP |
IP deines MQTT-Brokers (z.B. 192.168.178.107) |
YOUR_TELEGRAM_CHAT_ID |
Deine numerische Chat-ID (z.B. 7672610064) |
YOUR_BOT_NAME |
Name deines Bots (z.B. PagerAlarmBot) |
YOUR_FIRE_DEPARTMENT |
Name deiner Feuerwehr (z.B. FFW Dauborn) |
- In Node-RED: Menü → Importieren → Zwischenablage
- Füge den JSON-Inhalt ein
- Klicke Importieren
- Platziere den Flow auf dem Arbeitsbereich
- Weitere Schritte können nachträglich nötig sein
- Doppelklicke auf den Telegram Sender Node
- Wähle Neuen Bot hinzufügen (oder bearbeite den vorhandenen)
- Trage ein:
- Bot-Name: Dein Bot-Name
- Token: Der Bot-Token von @BotFather
- Klicke Aktualisieren
-
Deploy den Flow mit dem roten Button oben rechts
-
Publiziere eine Test-Nachricht an deinen MQTT-Broker:
mosquitto_pub -h BROKER_IP -t pageralarm/docking/alert -m "on" -r -
Prüfe, ob du eine Telegram-Nachricht erhältst
-
Prüfe, ob nach 30 Sekunden automatisch
offpubliziert wird
MQTT Input (pageralarm/docking/alert)
|
v
Switch (prüft auf "on" oder "1")
|
+--> Trigger (30s Timer) --> MQTT Out ("off")
|
+--> Change Node --> Function Node --> Telegram Sender
(Chat-ID setzen) (zufällige Nachricht)
| Node | Funktion |
|---|---|
| MQTT In | Empfängt on vom D1 Mini |
| Switch | Leitet nur bei on weiter |
| Trigger | Sendet nach 30 Sekunden off zurück |
| Change | Erstellt Telegram-Nachrichtenstruktur |
| Function | Generiert zufälligen Alarmtext mit Zeitstempel |
| Telegram Sender | Versendet Nachricht an deinen Chat |
- Öffne den Function Node
- Bearbeite das Array
texte[] - Füge eigene Texte hinzu oder entferne vorhandene
- Deploy
Bearbeite die Arrays vorne[] und hinten[] im Function Node.
- Öffne den Trigger Node
- Ändere die Dauer (default: 30 Sekunden)
- Aktiviere Extend delay if new message arrives, wenn du den Timer bei erneutem Alarm verlängern willst
| Problem | Lösung |
|---|---|
| Keine Telegram-Nachricht | Prüfe Bot-Token, Chat-ID und ob /start gesendet wurde |
| MQTT-Verbindung fehlgeschlagen | Prüfe Broker-IP und Port (1883) |
| Nachrichten kommen doppelt | Prüfe, ob nur ein Flow läuft |
| Bot antwortet nicht | Starte Node-RED neu, prüfe Logs (journalctl -u nodered) |
This guide describes the setup of Node-RED with Telegram notifications for PagerAlarm.
- A running Node-RED server (e.g. on a Raspberry Pi or PC)
- An MQTT broker (e.g. Mosquitto) in the same network
- A Telegram Bot via @BotFather
- The file
node_red/flows_anonymized.jsonfrom the repository
- Open Telegram and search for @BotFather
- Send
/newbotand follow the instructions - Give your bot a name (e.g.
PagerAlarmBot) - Copy the Bot Token — looks like
123456789:ABCdefGHIjklMNOpqrsTUVwxyz - Start a chat with your new bot and send
/start - Note your Chat ID — ask @userinfobot if needed
- Open Node-RED in your browser (
http://<ip>:1880) - Menu → Manage palette → Install
- Search for
node-red-contrib-telegrambot - Click Install
- Wait for installation and confirm restart
cd ~/.node-red
npm install node-red-contrib-telegrambot
# Restart Node-RED
sudo systemctl restart noderedOpen the file node_red/flows_anonymized.json in a text editor and replace:
| Placeholder | Replace with |
|---|---|
YOUR_MQTT_BROKER_IP |
IP of your MQTT broker (e.g. 192.168.178.107) |
YOUR_TELEGRAM_CHAT_ID |
Your numeric chat ID (e.g. 7672610064) |
YOUR_BOT_NAME |
Name of your bot (e.g. PagerAlarmBot) |
YOUR_FIRE_DEPARTMENT |
Name of your fire department (e.g. FFW Dauborn) |
- In Node-RED: Menu → Import → Clipboard
- Paste the JSON content
- Click Import
- Place the flow on the workspace
- Additional steps may be required afterward
- Double-click the Telegram Sender node
- Select Add new bot (or edit existing)
- Enter:
- Bot Name: Your bot name
- Token: The bot token from @BotFather
- Click Update
-
Deploy the flow with the red button in the top right
-
Publish a test message to your MQTT broker:
mosquitto_pub -h BROKER_IP -t pageralarm/docking/alert -m "on" -r -
Check if you receive a Telegram message
-
Check if after 30 seconds
offis automatically published
MQTT Input (pageralarm/docking/alert)
|
v
Switch (checks for "on" or "1")
|
+--> Trigger (30s timer) --> MQTT Out ("off")
|
+--> Change Node --> Function Node --> Telegram Sender
(sets Chat-ID) (random message)
| Node | Function |
|---|---|
| MQTT In | Receives on from D1 Mini |
| Switch | Only forwards on on
|
| Trigger | Sends off back after 30 seconds |
| Change | Creates Telegram message structure |
| Function | Generates random alarm text with timestamp |
| Telegram Sender | Sends message to your chat |
- Open the Function node
- Edit the
texte[]array - Add your own texts or remove existing ones
- Deploy
Edit the vorne[] and hinten[] arrays in the Function node.
- Open the Trigger node
- Change the duration (default: 30 seconds)
- Enable Extend delay if new message arrives if you want the timer to extend on re-trigger
| Problem | Solution |
|---|---|
| No Telegram message | Check bot token, chat ID, and whether /start was sent |
| MQTT connection failed | Check broker IP and port (1883) |
| Messages come twice | Check if only one flow is running |
| Bot does not respond | Restart Node-RED, check logs (journalctl -u nodered) |
Weitere Hilfe? / More help? Siehe auch die / See also: FAQ und / and Troubleshooting