Skip to content
ringindPublic

About

Monitor your server via HTTP-Checks via a Shelly Plug M Gen 3 (or similar). Message fails via Telegram. Optional: Automatic Power cycle the server (if it's connected to the shelly plug)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Shelly Plug M Gen3 Server Monitor

Monitoring- und Auto-Recovery-Script für den Shelly Plug M Gen3.

Features

  • Überwachung mehrerer Geräte
  • HTTP-basierte Erreichbarkeitsprüfung
  • Telegram-Benachrichtigungen
  • Power-Cycling bei Ausfall
  • Watchdog
  • Logging
  • Ausfallschutz gegen Internetprobleme
  • Recovery-Erkennung

Voraussetzungen

Hardware

  • Shelly Plug M Gen3
  • WLAN Verbindung
  • Aktuelle Firmware

Telegram Setup

1. Bot erstellen

In Telegram:

  • @BotFather öffnen
  • /newbot
  • Bot erstellen
  • Token kopieren

Beispiel:

123456789:AAxxxxxxxxxxxxxxxxxxxx

2. Bot starten

Dem Bot in Telegram schreiben:

/start

Ohne diesen Schritt verweigert Telegram Nachrichten.


3. Chat ID herausfinden

Im Browser öffnen:

https://api.telegram.org/botBOT_TOKEN/getUpdates

Dann dem Bot irgendeine Nachricht senden.

In der JSON-Antwort erscheint:

"chat":{
   "id":123456789
}

Diese ID im Script verwenden.


Konfiguration

Telegram

let BOT_TOKEN = "BOT_TOKEN";
let CHAT_ID = "123456789";

Hosts

let HOSTS = [

  {
    name: "Home Assistant",
    ip: "192.168.178.50",
    powercycle: false
  },

  {
    name: "NAS",
    ip: "192.168.178.20",
    powercycle: true
  }

];

Parameter

Parameter Beschreibung
CHECK_INTERVAL Prüfintervall in Millisekunden
FAIL_LIMIT Anzahl Fehler bis Alarm
POWEROFF_TIME Dauer AUS beim PowerCycle
POWERCYCLE_COOLDOWN Mindestabstand zwischen Reboots
ENABLE_AUTO_REBOOT Shelly rebootet sich selbst

Beispielwerte

let CHECK_INTERVAL = 60000;
let FAIL_LIMIT = 4;
let POWEROFF_TIME = 15000;

PowerCycle

Wenn aktiviert:

powercycle: true

führt der Shelly aus:

  1. Steckdose AUS
  2. warten
  3. Steckdose EIN

Sicherheitshinweise

Niemals den eigenen Router rebooten

Nicht den Router über denselben Shelly versorgen, auf dem das Script läuft.

Sonst verliert der Shelly WLAN und Kontrolle.


Watchdog

Der Watchdog überwacht:

  • Script-Hänger
  • festgefahrene Loops
  • blockierte Netzwerkaufrufe

Optional kann der Shelly automatisch rebooten:

let ENABLE_AUTO_REBOOT = true;

Logging

Logs erscheinen unter:

  • Shelly Webinterface
  • Script Console

Beispiele:

2026-05-14 21:13:11 | NAS FAIL #1
2026-05-14 21:14:20 | PowerCycle: NAS

Telegram Fehlersuche

Fehler 403

Bedeutet meist:

  • Bot nicht gestartet
  • falsche Chat ID

Lösung:

/start

an den Bot senden.


Fehler -103

TLS/HTTPS Fehler.

Lösung:

  • Firmware aktualisieren

Fehler -104

DNS Problem.

DNS Server setzen:

8.8.8.8
1.1.1.1

Empfohlene Netzwerkeinstellungen

  • feste IP für Shelly
  • gutes WLAN Signal
  • 2.4 GHz WLAN
  • stabile Stromversorgung

Unterstützte Geräte

Gut geeignet für:

  • Home Assistant
  • Synology NAS
  • Fritzbox
  • Unifi
  • Docker Hosts
  • Webserver
  • Kameras

Bekannte Einschränkungen

ICMP Ping

Shellys unterstützen keine ICMP Funktionen wie ping.

Das Script verwendet daher HTTP-Checks.

HTTPS ohne gültiges Zertifikat

https-Seiten ohne gültiges Zertifikat (wie z.B. eine Standard Proxmox Installation) funktionieren nicht.

Workaround: einen LXC testen, der auf dem Proxmox Server unter http läuft und somit HTTP-Checks unterstützt


Weitere Skripte

shellyHostCheck.js

  • Prüfen ob der gewählte host per http geprüft werden kann

shellyTelegramTest.js

  • Testet ob eine Nachrticht an den Telegram Bot geschickt werden kann

haRESTsensor.yaml

  • Ein REST sensor für Home Assistan
  • In die configuration.yaml eintragen
  • Dabei die IP-Adresse des Shellys eintragen auf dem das Skript läuft
  • Home Assistant neu starten
  • Der sensor stellt die Entität sensor.servermonstatus zur Verfügung
  • Kann dann ins Dashboard eingebaut werden, für visuelle Prüfung ob das Dashboard läuft. Mit Anzeigebednijngung z.B. nur dann wenn Status <> 'running'
  • Status: 'running' oder 'stopped' -!! Der Shelly darf nicht per Passwort geschützt sein, sonst funktioniert es nicht !!

haScriptRunCheckAutomation.yaml

  • Sendet die Nachricht 'serverMon läuft nicht mehr. Bitte prüfen' an alle Clients wenn das skript gestoppt wird

haTileServerMon.yaml

  • Eine Tilekachel für HA Dashboards, die nur angezeigt wird, wenn das Skript nicht läuft

Lizenz

Freie Verwendung auf eigene Gefahr.

Keine Garantie für Datenverlust, Netzwerkausfälle oder Fehlfunktionen.

About

Monitor your server via HTTP-Checks via a Shelly Plug M Gen 3 (or similar). Message fails via Telegram. Optional: Automatic Power cycle the server (if it's connected to the shelly plug)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages