Node-Red ist ja mein neues Universal-Werkzeug für alle möglichen Automationsprobleme und Aufgaben. Warum also nicht eine Überwachung für den Webserver und die eigene Website damit realisieren, die im Fehlerfall, also Website down oder ohne Inhalte per Telegram und E-Mail informiert?
Abgesehen von den Telegram-Nodes, die man zusätzlich installieren muss, setzt mein Flow auf die Standard-Nodes der Grundinstallation von Node-Red.
Oszilloskop & Multimeter (3-in-1)
- 【2-Kanal-Oszilloskop】50 MHz Bandbreite, 250 MSa/s Abtastrate, 1 kpts Aufzeichnungstiefe, automatische Messfunktion, max. Spannung 400 V, vertikale Empfindlichkeit 10 mV/div bis 10 V/div, unterstützt das Speichern und Exportieren von Wellenformbildern.
- 【4,5-stelliges Multimeter mit 19999 Counts】Wechselspannung: 0–750 V, Gleichspannung: 0–999,9 V, Gleich-/Wechselstrom: 0–9,999 A, Widerstand: 0–19,99 MΩ, Kapazität: 0–99,99 mF, Durchgangsprüfung. Multifunktionsmessgerät für Profis, Schulen und Hobbyisten.
Automatischer Feuerlöscher für Schaltschränke und Server
- ✔ SOFORTIGE BRANDUNTERDRÜCKUNG BEI 170ºC ±10ºC – Der Ferosticker F03 aktiviert sich automatisch bei 170ºC ±10ºC und setzt ein Aerosol frei, das den Brand sofort löscht, indem es die Verbrennung unterbricht. Er bietet schnellen, automatischen Brandschutz in geschlossenen Räumen mit einem Schutzvolumen von 0,3 m³. Speziell für kleine, enge Bereiche entwickelt.
- ✔ KEIN STROM, KEIN DRUCK, KEINE VERKABELUNG ERFORDERLICH – Im Gegensatz zu herkömmlichen Feuerlöschern funktioniert der Ferosticker ganz ohne Strom, Batterien oder Kabel. Sein selbstaktivierendes System sorgt für sorgenfreien Brandschutz ohne Wartung. Vielseitiger Schutz: wirksam gegen Brände der Klassen A, B, C, E und F – deckt ein breites Spektrum an Brandrisiken ab.
SONOFF SWV-ZFE Hydro ONE Zigbee Bewässerungscomputer
- Durable Brass Inlet: Dieser water timer verfügt über einen robusten Messinganschluss für zuverlässige Leistung, sorgt für stabilen Betrieb in Ihrem bewässerungssystem garten oder bewässerungssystem, ideal für den langfristigen Einsatz.
- Flexible Zeitpläne & Mengensteuerung: Erstellen Sie bis zu sechs Pläne für zeit- oder mengenbasierte Bewässerung. Wetter- und saisonale Anpassungen optimieren Ihr bewässerungssystem garten und sparen Wasser – ein intelligenter sprinkler-timer.
SONOFF NSPanel Pro Gen2 Smart Home Bedienfeld
- Multi-App Unterstützung & Home Assistant-Integration: 2GB RAM + 32GB Speicher für flüssige Nutzung mehrerer Drittanbieter-Apps – kein Root erforderlich, einfach über F-Droid als Home Assistant Steuerzentrale nutzbar. All-in-One Smart Panel ersetzt zusätzliche Tablets.
- Matter Bridge für universelle Kompatibilität: Integriertes Matter Gateway verbindet Zigbee‑ & Wi‑Fi‑Geräte mit Apple Home, Google Home, Alexa & Home Assistant. Vereinheitlicht alle Marken und Protokolle für ein nahtloses Smart Home Erlebnis.

Regelmäßig beim Server anklopfen
Es beginnt mit einem Injection-Node, der im 5-Minuten-Intervall die Überprüfung auslöst. Für meine Anforderungen ein vollkommen ausreichender Zeitraum.

Dieser löst einen HTTP-Request Node aus, in dem die gewünschte URL eingetragen und per GET-Befehl aufgerufen wird. Zurückgegeben wird dann ein UTF-8 String.

Ab hier teilt sich der Flow in zwei Zweige auf. Der erste Zweig prüft den Response-Code der Seite. Gibt die Website den Response-Code 200 zurück, ist alles okay: Seite und Server sind online.

Der Switch-Node löst aus, wenn der Response-Code ungleich 200 ist.

Eine Antwort bedeutet noch keinen Inhalt
Damit ist aber noch nicht sicher, dass auch wirklich etwas auf der Seite zu sehen ist. Hat man z. B. einen Nginx-Server als Reverse-Proxy im Einsatz, kann dieser zwar 200 als Antwort zurückliefen, die Seite kann aber trotzdem leer sein, weil etwa der Server hinter dem Proxy keine Daten liefert. Daher überprüfe ich in einem zweiten Zweig, ob ein gewisser Inhalt auf der Seite enthalten ist.

Ein HTML-Node sucht nach einem Element auf der Website. Ich nehme dazu das Wort Markus, das im Copyright-Footer von fricklr.com zu finden ist. Damit weiß ich, dass die Seite komplett gerendert wurde. Enthalten ist das Wort im HTML-Element div.copyright-bar, das man einfach mit der “Untersuchen” Funktion von Chrome finden kann.

Wird der Text im HTML-Element gefunden, wird dessen gesamter Textinhalt als Payload zurückgegeben. Der nachfolgenden Switch-Node prüft mit einem regulären Ausdruck, der hier extrem einfach ausfallen kann, ob auch Markus im Text enthalten ist.

Da die Benachrichtigung nur auslösen soll, wenn das gesuchte Wort NICHT enthalten ist, fügt man mit otherwise einen zweiten Ausgang zum Node hinzu, der dann die nachfolgenden Nodes auslöst.
Benachrichtigen, aber nicht nerven
Nun könnte man an jeden Zweig eine entsprechende Aktion, Benachrichtigung etc. anhängen. Allerdings würde im Fehlerfall diese Aktion oder Nachricht alle 5 Minuten gesendet werden, da ja der Injection-Nod e am Anfang alle 5 Minuten den Flow ausführt. Daher habe ich in jeden Zweig eine Delay-Node eingefügt.

Mit der Aktion Rate Limit kann man einstellen, wie oft eine Nachricht weitergeleitet werden soll. Im Fehlerfall möchte ich alle 30 Minuten eine weitere Erinnerung bekommen. Alle Nachrichten dazwischen werden einfach verworfen:

Die Benachrichtigungs-Nodes sind in beiden Zweigen, abgesehen von der Nachricht, gleich.
Alarm per Telegram und E-Mail

Eine Benachrichtigung erfolgt per Telegram. Dazu muss ein Telegram-Bot eingerichtet und die ID des Empfängers (der Empfänger) angegeben werden. Wie man das macht, steht in der Beschreibung des T elegram-Nodes .

Zusätzlich sende ich eine E-Mail über den SMTP-Server von Gmail. Hierzu müssen mit der Function-Node erst einmal der Betreff und der Inhalt der E-Mail definiert werden:

|
|
Im Payload steht der E-Mail Inhalt, im Topic der Betreff. Dieser Function-Node ist auch wieder in beiden Zweigen gleich, nur die Nachricht unterscheidet sich natürlich.
Die Variable msg.responseURL ist praktisch, falls ihr gleich mehrere URLs überwachen möchtet, denn damit wird die überwachte URL automatisch in die Nachricht übernommen.
Beide Function-Nodes enden nun beim Email-Node. Als Userid wird die vollständige Gmail-Adresse eingetragen.

Der Versand erfolgt über den SMTP-Server von Gmail. Dazu muss in den Einstellungen von Gmail unter Sicherheit der " Zugriff für weniger sichere Apps" aktiviert werden, da man sonst den SMTP nicht für externe Anwendungen nutzen kann.

Damit ist der Flow für die Website- und Webserver-Überwachung abgeschlossen. Testen kann man den Flow am einfachsten, in dem man den Status-Code im entsprechenden Switch-Node auf einen anderen Wert setzt oder im Text-Zweig einen Text einträgt, den es im definierten Element nicht gibt. Nun sollte man eine E-Mail und Telegram Nachricht mit dem Alarm erhalten.
Fazit
An dieser Stelle kann man nun noch diverse andere Funktionen auslösen. So könnte man den Alarm auch per MQTT MQTTLeichtes Publish/Subscribe-Nachrichtenprotokoll. Wird in Smart Homes verwendet, um Sensordaten und Steuerbefehle zwischen Geräten auszutauschenMehr dazu → an einen ESPHome ESPHomeFramework zur Konfiguration von ESP32/ESP8266-Mikrocontrollern, die sich dann automatisch in Home Assistant integrieren. Ideal für DIY-Sensoren und AktorenMehr dazu → oder ESPeasy weitergeben, der dann eine LED Blinken oder einen Lautsprecher piepsen lässt. Auch die Weitergabe an das Smarthome ist praktisch.
Auf jeden Fall ist es toll, wie man mit wenigen Nodes eine höchst praktische und kostenlose Lösung zur Überwachung der Website und des Webservers bauen kann.
Und hier noch der komplette Flow zum Import in Node-Red:
|
|
Was sagst du dazu? Kommentiere jetzt!
Teile deine Gedanken, Fragen oder Erfahrungen mit der Community.