Schnelle, saubere Backups deiner Tasmota-Geräte im Netzwerk – mit Turbo-Speed und Datum!
- Ziel
- Voraussetzungen
- Installation von decode-config und virtuelle Umgebung
- Installation von nmap und fping
- Tasmota Turbo Backup Script hinzufügen
- Installation ohne virtuelle Umgebung (venv)
- Anpassung für dein Netzwerk
- Hinweise und Fehlerbehandlung
- Benutzer zur sudo-Gruppe hinzufügen (Root-Rechte)
- Lizenz
- Mitwirken Special thanks
Dieses Projekt hilft dir, alle Tasmota-Geräte in deinem Netzwerk automatisch zu sichern.
Backups werden im Format gespeichert:
tasmota-HOSTNAME-BOARDID-FIRMWARE-YYYYMMDD.dmp
Kein Chaos mehr mit kryptischen Dateinamen – nur saubere, gut sortierbare Backups.
- Linux / macOS (Windows geht auch mit WSL)
- Python 3.8+
- nmap und fping
- Tasmota-Geräte erreichbar im Netzwerk 🛜
- decode-config
- Repository klonen:
git clone https://github.com/tasmota/decode-config.git ~/decode-config
- In das Verzeichnis wechseln:
cd ~/decode-config
- Python 3 und das venv-Modul sicherstellen (für Ubuntu/Debian):
sudo apt update
sudo apt install python3 python3-venv python3-pip -y
- Virtuelle Umgebung erstellen:
python3 -m venv venv
Hinweis: Verwende keine &&-Verkettung, damit eventuelle Fehler sofort sichtbar sind.
- Virtuelle Umgebung aktivieren:
source venv/bin/activate
Die Shell zeigt nun (venv) am Anfang der Zeile an, was bedeutet, dass die virtuelle Umgebung aktiv ist.
- Abhängigkeiten installieren:
pip install --upgrade pip
pip install -r requirements.txt
pip install configargparse requests
- Testen, ob alles funktioniert:
python decode-config.py --help
Wenn die Hilfe angezeigt wird, bist du bereit für Turbo-Backup! 🎉
sudo apt update
sudo apt install -y nmap fping
Nachdem du decode-config installiert hast, kannst du das Turbo Backup Script direkt aus GitHub laden und in dein ~/decode-config-Verzeichnis legen.
Führe dazu einfach Folgendes aus:
cd ~/decode-config
wget https://raw.githubusercontent.com/jogiesp/tasmota_turbo_backup/main/tasmota_turbo_backup.sh -O tasmota_turbo_backup.sh
chmod +x tasmota_turbo_backup.sh
Starte dann einfach dein Backup (nach Anpassung deiner virtuellen Umgebung):
Jedes Mal nach dem Login oder in einem neuen Terminal
cd ~/decode-config # ins Projektverzeichnis wechseln
source venv/bin/activate # venv aktivieren
./tasmota_turbo_backup.sh
Features:
- Scannt dein Netzwerk automatisch nach Tasmota-Geräten
- Backup im sauberen Format mit Datum
- Router-IP wird automatisch ausgeschlossen
- Parallele Backups für Turbo-Speed
- Fallback mit fping, falls nmap nichts findet
Im Script:
SUBNET="192.168.xxx.0/24"
ROUTER_IP="192.168.xxx.1"
Optional:
- CONCURRENCY → Anzahl paralleler Backups
- PER_HOST_TIMEOUT → Timeout pro Gerät
- Script ausführbar machen:
chmod +x tasmota_turbo_backup.sh
- Script ausführen:
./tasmota_turbo_backup.sh
- Backup-Ergebnisse prüfen:
ls -l ~/decode-config/tasmota/
Beispiel für eine Backup-Datei: tasmota-Kaffee-0438-15.1.0_20251024.dmp
Dieses Script ist extremprofessionell, schnell, sauber, und ein bisschen witzig – damit auch dein Netzwerk Spaß hat 😎.
Es kann problemlos auf verschiedene Subnetze angepasst werden.
Wenn du beim Scan Meldungen siehst wie ERROR 418 (@4596): Error on http GET request for ... - Unknown code, keine Sorge, das ist kein echter Fehler. Der Decoder hat nur kurz gedacht: "Hey, das sieht aus wie ein Tasmota" war’s aber nicht. Also einfach ignorieren . 🚀
Wenn du beim Erstellen der virtuellen Umgebung so eine Meldung bekommst:
- bash: /home/userX/decode-config/venv/bin/python3: Datei oder Verzeichnis nicht gefunden
…liegt das meistens daran, dass du schon (venv) aktiviert hattest, bevor du die Umgebung überhaupt erstellt hast.
(venv) im Prompt bedeutet: Die Shell denkt, eine virtuelle Umgebung sei aktiv.
python3 -m venv venv versucht aber genau diese Umgebung neu zu erstellen.
💡 Lösung (so wie ein Profi 😎):
# Alte Umgebung deaktivieren
deactivate
# Kaputtes venv löschen
rm -rf venv
./tasmota_turbo_backup.sh
1) Scanne Hosts mit offenem Port 80...
./tasmota_turbo_backup.sh: Zeile 38: nmap: Kommando nicht gefunden.
Keine Hosts gefunden. Fallback: fping-Scan...
bedeutet das, dass nmap nicht installiert oder nicht im PATH ist
Hinweis: Auf manchen Systemen benötigt fping spezielle Rechte, damit Nicht-Root-Nutzer ICMP-Anfragen senden können. Du kannst die nötige Berechtigung mit setcap setzen:
sudo apt install -y libcap2-bin # falls setcap noch nicht vorhanden ist
sudo setcap cap_net_raw+ep "$(command -v fping)"
Wenn du alle Funktionen des Skripts nutzen willst, ist es am einfachsten, Root oder einen sudo-fähigen Benutzer zu verwenden.Das ist die einfachste möglichkeit.
Falls ein normaler Benutzer keine sudo-Rechte hat, melde dich einmal als root an und führe folgende Befehle aus:
als root z.B.
ssh root@hostname
usermod -aG sudo <BENUTZERNAME>
Abmelden und wieder als dieser Benutzer einloggen, damit die Gruppenänderung aktiv wird: exit dann erneut als anmelden
Überprüfen:
groups # sollte "sudo" anzeigen
sudo whoami # sollte "root" zurückgeben
Wenn du die virtuelle Umgebung nicht verwenden möchtest, z.B. weil die Python-Abhängigkeiten bereits systemweit installiert sind, kannst du das Skript direkt ausführen. Hier ist eine Schritt-für-Schritt-Anleitung:
python3 --version
python3 -m pip install --upgrade pip
python3 -m pip install configargparse requests
sudo apt update
sudo apt install python3-pip -y
sudo apt update
sudo apt install -y nmap fping
sudo apt install -y libcap2-bin
sudo setcap cap_net_raw+ep "$(command -v fping)"
git clone https://github.com/tasmota/decode-config.git ~/decode-config
cd ~/decode-config
wget https://raw.githubusercontent.com/jogiesp/tasmota_turbo_backup/main/tasmota_turbo_backup.sh -O tasmota_turbo_backup.sh
chmod +x tasmota_turbo_backup.sh
cd ~/decode-config
./tasmota_turbo_backup.sh
- Vorteil ohne venv: Einfachheit, keine Aktivierung nötig
- Nachteil: System-Python beeinflusst Pakete, Versionen sind nicht isoliert
ssh root@hostname
usermod -aG sudo <BENUTZERNAME>
exit
ssh <BENUTZERNAME>@hostname
groups # sollte "sudo" anzeigen
sudo whoami # sollte "root" zurückgeben
⚠️ Achtung: Sudo-Rechte erlauben vollen Systemzugriff. Nur für vertrauenswürdige Benutzer verwenden.
MIT License
Copyright (c) 2025 jogiesp
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Fühl dich frei, das Script zu verbessern, Fehler zu melden oder lustige Emojis einzubauen 😄.
https://github.com/tasmota/decode-config
Viel Spaß beim Backup deiner Tasmota-Geräte! ⚡