Skip to content

Node RED Setup

Joern Weise edited this page Sep 1, 2026 · 2 revisions

Node-RED Setup


Deutsch

Diese Anleitung beschreibt die Einrichtung von Node-RED mit Telegram-Benachrichtigungen für PagerAlarm.

Was du brauchst

  • 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.json aus dem Repository

Schritt 1: Telegram Bot erstellen

  1. Öffne Telegram und suche nach @BotFather
  2. Sende /newbot und folge den Anweisungen
  3. Gib deinem Bot einen Namen (z.B. PagerAlarmBot)
  4. Kopiere den Bot-Token — sieht aus wie 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
  5. Starte einen Chat mit deinem neuen Bot und sende /start
  6. Notiere deine Chat-ID — frage @userinfobot, falls nötig

Schritt 2: Node-RED Modul installieren

Variante A: Über Palette Manager (empfohlen)

  1. Öffne Node-RED im Browser (http://<ip>:1880)
  2. Menü → Palette verwalten → Installieren
  3. Suche nach node-red-contrib-telegrambot
  4. Klicke Installieren
  5. Warte auf die Installation und bestätige den Neustart

Variante B: Über Terminal

cd ~/.node-red
npm install node-red-contrib-telegrambot
# Node-RED neu starten
sudo systemctl restart nodered

Schritt 3: Flow importieren und konfigurieren

Vor dem Import — Platzhalter ersetzen

Ö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)

Import

  1. In Node-RED: Menü → Importieren → Zwischenablage
  2. Füge den JSON-Inhalt ein
  3. Klicke Importieren
  4. Platziere den Flow auf dem Arbeitsbereich
  5. Weitere Schritte können nachträglich nötig sein

Schritt 4: Telegram Bot-Node konfigurieren

  1. Doppelklicke auf den Telegram Sender Node
  2. Wähle Neuen Bot hinzufügen (oder bearbeite den vorhandenen)
  3. Trage ein:
    • Bot-Name: Dein Bot-Name
    • Token: Der Bot-Token von @BotFather
  4. Klicke Aktualisieren

Schritt 5: Testen

  1. Deploy den Flow mit dem roten Button oben rechts

  2. Publiziere eine Test-Nachricht an deinen MQTT-Broker:

    mosquitto_pub -h BROKER_IP -t pageralarm/docking/alert -m "on" -r
  3. Prüfe, ob du eine Telegram-Nachricht erhältst

  4. Prüfe, ob nach 30 Sekunden automatisch off publiziert wird

Funktionsweise des Flows

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

Anpassungen

Nachrichtentexte ändern

  1. Öffne den Function Node
  2. Bearbeite das Array texte[]
  3. Füge eigene Texte hinzu oder entferne vorhandene
  4. Deploy

Emoji-Kombinationen ändern

Bearbeite die Arrays vorne[] und hinten[] im Function Node.

Timer anpassen

  1. Öffne den Trigger Node
  2. Ändere die Dauer (default: 30 Sekunden)
  3. Aktiviere Extend delay if new message arrives, wenn du den Timer bei erneutem Alarm verlängern willst

Troubleshooting

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)

English

This guide describes the setup of Node-RED with Telegram notifications for PagerAlarm.

What You Need

  • 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.json from the repository

Step 1: Create Telegram Bot

  1. Open Telegram and search for @BotFather
  2. Send /newbot and follow the instructions
  3. Give your bot a name (e.g. PagerAlarmBot)
  4. Copy the Bot Token — looks like 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
  5. Start a chat with your new bot and send /start
  6. Note your Chat ID — ask @userinfobot if needed

Step 2: Install Node-RED Module

Option A: Via Palette Manager (recommended)

  1. Open Node-RED in your browser (http://<ip>:1880)
  2. Menu → Manage palette → Install
  3. Search for node-red-contrib-telegrambot
  4. Click Install
  5. Wait for installation and confirm restart

Option B: Via Terminal

cd ~/.node-red
npm install node-red-contrib-telegrambot
# Restart Node-RED
sudo systemctl restart nodered

Step 3: Import and Configure Flow

Before Import — Replace Placeholders

Open 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)

Import

  1. In Node-RED: Menu → Import → Clipboard
  2. Paste the JSON content
  3. Click Import
  4. Place the flow on the workspace
  5. Additional steps may be required afterward

Step 4: Configure Telegram Bot Node

  1. Double-click the Telegram Sender node
  2. Select Add new bot (or edit existing)
  3. Enter:
    • Bot Name: Your bot name
    • Token: The bot token from @BotFather
  4. Click Update

Step 5: Test

  1. Deploy the flow with the red button in the top right

  2. Publish a test message to your MQTT broker:

    mosquitto_pub -h BROKER_IP -t pageralarm/docking/alert -m "on" -r
  3. Check if you receive a Telegram message

  4. Check if after 30 seconds off is automatically published

How the Flow Works

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

Customizations

Change Message Texts

  1. Open the Function node
  2. Edit the texte[] array
  3. Add your own texts or remove existing ones
  4. Deploy

Change Emoji Combinations

Edit the vorne[] and hinten[] arrays in the Function node.

Adjust Timer

  1. Open the Trigger node
  2. Change the duration (default: 30 seconds)
  3. Enable Extend delay if new message arrives if you want the timer to extend on re-trigger

Troubleshooting

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