Proxmox Energie sparen: Von 100W auf 39W im Home Lab (Anleitung)

👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & More auf YouTube

Einleitung: Der Kampf gegen den Stromzähler

Kennst du das Gefühl, wenn du auf dein Strommessgerät schaust und dir kurz der Atem stockt? In meinem Fall standen da in Summe über 100 Watt. Dauerhaft. Für ein Home Lab, das zwar leistungsstark sein soll, aber nicht unnötig Energie verbrennen darf.

Mein Ziel war klar: Ich wollte runter von diesem hohen Verbrauch – und zwar drastisch. Das Ergebnis? Ich bin jetzt bei rund 40 Watt.

In diesem Beitrag zeige ich dir genau, wie ich das geschafft habe. Wir schauen uns an, wie wir die „Low Hanging Fruits“ ernten – also die Festplatten (HDDs), die wir schlafen legen, wenn sie nicht gebraucht werden. Außerdem zeige ich dir, wie ich meinen Backup-Server so automatisiere, dass er wirklich nur dann läuft, wenn ein Backup ansteht. Das Wichtigste dabei: Die Dinge, die ich hier zeige, lassen sich auch auf andere Systeme anwenden – du brauchst also nicht zwingend ein Ugreen NAS, um das hier nachzubauen

Lass uns direkt loslegen.


Mein Hardware-Setup: Die Basis

Bevor wir in die Konfiguration gehen, musst du verstehen, wie mein System aufgebaut ist. Das ist wichtig, um die Logik hinter den Skripten später zu verstehen.

Ich nutze aktuell zwei Systeme von Ugreen:

  1. Der Primary*: Ein Ugreen DXP 8800 Plus (8-Bay NAS). Hier läuft mein Hauptsystem mit Proxmox. Bestückt ist es mit 8 Festplatten.
Angebot
UGREEN NASync DXP8800 Plus 8-Bay NAS Server, Intel i5-1235U 10-Kern, 8GB DDR5, 128GB SSD, 2×10GbE, 2×M.2 NVMe, 8K HDMI, 2×Thunderbolt 4, Kompatibel mit Drittanbieter HDD/SSD (Diskless)
  • Zwei 10GbE-Netzwerkanschlüsse: Zwei 10GbE-Hochgeschwindigkeitsnetzwerkanschlüsse, die zu einer Bandbreite von 20 G zusammengefasst werden können, um Downloadgeschwindigkeiten von bis zu 2500 MB/s zu erreichen. Große Dateien lassen sich problemlos übertragen. Die Last zwischen den beiden Portverbindungen kann dynamisch angepasst und ausgeglichen werden, um die Übertragungseffizienz zu verbessern.
  • Beispiellose Verarbeitungsleistung: Mit einem Intel Core i5-Prozessor der 12. Generation mit 10 Kernen und 12 Threads wird die Verarbeitungsleistung im Vergleich zu früheren Prozessoren sprunghaft verbessert.
  • 8-Bay, 256 TB riesiger Datenspeicher: Ausgestattet mit acht SATA- und zwei M.2 NVMe-Laufwerkschächten verfügt das NASync DXP8800 Plus über eine maximale Speicherkapazität von bis zu 256 TB. Speichern Sie Tausende von HD-Filmen, Bildern und Dokumenten und machen Sie NASync zu einer Filmbibliothek, einem Fotoalbum und einem Dateispeicherplatz in einem.
  • Eine umfassende App: Anstatt einzelne Anwendungen für bestimmte Funktionen herunterzuladen, integriert die NAS-App diese Funktionen an einem Ort. Greifen Sie von einem praktischen Ort aus auf Speichermanager, Dateien, Fotos und mehr zu.
  • Professionelle Datensicherheit: Im Vergleich zu Cloud-Laufwerken ermöglicht NASync Benutzern, große Mengen persönlicher Daten auf vertrauenswürdigen lokalen Geräten zu speichern, wodurch Datenverlust und Überwachung weitestgehend verhindert werden. Datenübertragung und Konten können mit professioneller Verschlüsselung und Multi-Faktor-Authentifizierung vollständig geschützt werden.
  1. Der Secondary*: Ein Ugreen DXP 4800 Plus (4-Bay NAS). Dies dient als reines Backup-Ziel.
Angebot
UGREEN NASync DXP4800 Plus 4-Bay Desktop NAS, Intel Pentium Gold 8505 5-Core CPU, 8GB DDR5 RAM, 128G SSD, 1 * 10GbE, 1 * 2,5GbE, 2*M.2 NVMe-Steckplätze, 4K HDMI, Network Attached Storage (Diskless)
  • 12. Gen 5-Kern Intel Prozessor: Diese leistungsstarke CPU von Intel bietet ein außergewöhnlich flüssiges Erlebnis und sorgt für einen erheblichen Leistungszuwachs im Vergleich zu früheren Generationen.
  • Benutzerfreundliche App: Verwalte deinen Speicher und greife von all deinen Geräten auf deine Dateien zu, ganz einfach mit unserer maßgeschneiderten Software – und das alles ohne mehrere Tools oder komplizierte Drittanbieter-Software. Verfügbar für Android, iOS, Windows, Mac, Webbrowser und Smart-TVs.
  • 4 Bays und maximal 136TB: Die vier SATA-Bays unterstützen jeweils bis zu 30TB. Zusätzlich können zwei kompakte M.2 NVMe SSDs mit jeweils bis zu 8TB installiert werden (für SSD-Caching oder zusätzlichen schnellen Speicher). Bei vollständiger Ausnutzung aller Steckplätze beträgt die maximale Kapazität beeindruckende 136TB.
  • Blitzschnelle 10GbE- und 2.5GbE-Netzwerkanschlüsse: Der NASync DXP4800 Plus bietet Datenraten von bis zu beeindruckenden 1250 MB/s über zwei separate Anschlüsse. Ideal für alle, die eine schnelle und reibungslose Übertragung von 4K-Videos und großen Dateien benötigen.
  • Professionelle Datensicherheit: Mit sicherer Verschlüsselung sind Benutzerkonten und Daten vollständig geschützt.

Der Plan ist simpel: Daten werden zwischen dem Primary und dem Secondary synchronisiert. Aber – und das ist der Knackpunkt beim Thema Proxmox Energie sparen – der Secondary muss nicht 24/7 laufen. Er wird nur für das Backup benötigt. Auch auf dem Primary müssen nicht alle 8 Festplatten rund um die Uhr rotieren, wenn ich nur ein- oder zweimal am Tag darauf zugreife.

Als Festplatten setze ich übrigens sehr gerne die Enterprise Platten von Toshiba ein. Alles was wichtig ist, kommt auf diese Platten*. Die haben sich über Jahre als äußerst Robust erwiesen.

Für Backups greife ich gerne auf die WD-Red Plus Reihe zurück*

Angebot
WD Red Plus 8TB NAS Interne Festplatte 3,5 Zoll – 5640 U/Min, SATA 6 Gb/s, CMR, 256MB Cache
  • Für NAS mit NASware optimiert Die exklusive Western Digital NASware-Technologie optimiert die Festplattenparameter für Workloads von NAS-Systemen, um die Leistung und Zuverlässigkeit zu verbessern.
  • Für dauerhaften Betrieb entwickelt Ihr NAS-System läuft rund um die Uhr. Ein äußerst zuverlässiger Speicher ist daher unverzichtbar. WD Red Plus-Festplatten sind für Systeme im Dauerbetrieb ausgelegt und geben Anwendern die Gewissheit, dass sie zuverlässig auf ihre Daten zugreifen können.
  • Auf zuverlässige Kompatibilität getestet Western Digital arbeitet mit vielen verschiedenen Herstellern von NAS-Systemen zusammen, um umfassende Tests durchzuführen und die Kompatibilität mit den meisten NAS-Gehäusen sicherzustellen.
  • Für niedrigere Gesamtbetriebskosten optimiert WD Red Plus-Festplatten verbrauchen weniger Energie (als frühere Modelle) und laufen kühler, wodurch die Betriebskosten sinken und die Wärme in schwer zu kühlenden NAS-Gehäusen reduziert wird.
  • Weniger Strombedarf, starke Leistung Obwohl sie weniger Energie verbrauchen, verfügen die Festplatten über eine gewaltige Bandbreite, um die gemischten Leistungsanforderungen von NAS-Systemen mit mehreren Festplatten zu erfüllen.

Schritt 1: Die „Low Hanging Fruits“ – HDDs in den Spindown schicken

Der größte Stromfresser in einem NAS sind oft die mechanischen Festplatten. Wenn diese 24 Stunden am Tag, 7 Tage die Woche drehen, verbrauchen sie unnötig Energie und erzeugen Wärme.

Mein erster Ansatz war also: Wenn ich die Platten nicht brauche, sollen sie schlafen gehen (Spindown).

Szenario A: Festplatten in einer Unraid VM

Einen Teil meiner Festplatten (4 Stück) habe ich direkt an eine virtuelle Maschine (VM) mit Unraid durchgereicht. Hier ist das Stromsparen denkbar einfach.

Hier ist das Stromsparen denkbar einfach.

In Unraid gehst du einfach in die Datenträger Einstellungen und setzt die Ruhezustandsverzögerung (Spindown Delay). Ich habe hier 15 Minuten eingestellt. Sobald 15 Minuten lang kein Zugriff erfolgt, schalten sich die Platten ab.

Achte hierbei nur darauf, dass du den Wert höher stellst, wenn du z.B. häufiger auf das NAS System zugreifst. Jedes An / Ausschalten der Platten erzeugt einen Verschleiß. Wenn deine Platten quasi den gesamten Tag fast durchgängig benötigt werden, dann macht es keinen Sinn an dieser Stelle zu sparen. Nur, wenn die meiste Zeit des Tages tatsächlich keine Daten benötigt werden, solltest du das verwenden.

Wie du Unraid genau installierst und den Controller durchreichst, habe ich bereits in einem anderen Artikel behandelt.

Unraid unter Proxmox installieren – Mein komplettes HomeLab-Setup Schritt für Schritt

Szenario B: Festplatten direkt unter Proxmox (ZFS & Co.)

Jetzt wird es spannender. Die restlichen Platten hängen direkt an Proxmox und werden teilweise für den Proxmox Backup Server (PBS) genutzt. Hier funktioniert der einfache Spindown oft nicht von Haus aus, besonders wenn ZFS im Spiel ist, das die Platten gerne wach hält.

Die Lösung ist ein kleines Tool namens hd-idle.

Installation von hd-idle: Zuerst installieren wir das Tool direkt in der Proxmox-Shell (Konsole):

apt-get install hd-idle

Die richtige Konfiguration: Damit wir nicht versehentlich die falschen Platten schlafen legen (zum Beispiel die Systemplatte, was fatal wäre), müssen wir die Festplatten eindeutig identifizieren. Verlasse dich niemals auf Bezeichnungen wie sda oder sdb, da diese sich nach einem Neustart ändern können. Wir nutzen die eindeutige ID (Serial Number).

Führe folgenden Befehl aus, um deine Disks aufzulisten:

ls -l /dev/disk/by-id/

Kopiere dir die IDs der Festplatten, die du in den Ruhezustand schicken möchtest (z.B. ata-WDC_WD...).

Nun bearbeiten wir die Konfigurationsdatei von hd-idle. Du findest sie meistens unter /etc/default/hd-idle.

Wichtig sind zwei Dinge:

  1. Setze START_HD_IDLE=true.
  2. Trage deine Platten mit der gewünschten Zeit ein.

Ich empfehle hier einen Wert von 1800 Sekunden (30 Minuten), um die Hardware nicht durch ständiges An- und Ausschalten zu belasten.

# defaults file for hd-idle

# start hd-idle automatically?
START_HD_IDLE=true
HD_IDLE_OPTS="-i 0 \
-a /dev/disk/by-id/ata-WDC_WD40EFPX-68C6CN0_WD-WX12DC482U93 -i 60 \
-a /dev/disk/by-id/ata-WDC_WD40EFPX-68C6CN0_WD-WX22DC4LF10E -i 60 \
-a /dev/disk/by-id/ata-WDC_WD40EFPX-68C6CN0_WD-WX12DC4820ZZ -i 60 \
-a /dev/disk/by-id/ata-WDC_WD40EFPX-68C6CN0_WD-WX22DC4PV4D8 -i 60"

Danach den Dienst einfach neu starten:

systemctl restart hd-idle

Mit diesen Maßnahmen hast du den ersten großen Schritt getan, um mit Proxmox Energie sparen zur Realität zu machen.


Schritt 2: Den Backup-Server bändigen (Primary& Secondary Prinzip)

Jetzt kommen wir zum fortgeschrittenen Teil. Ich nutze den Proxmox Backup Server (PBS), um meine VMs und Container zu sichern. Das Problem: Wenn der PBS als VM auf dem Primary läuft und Zugriff auf den ZFS-Pool hat, hält er die Platten wach. Außerdem: Wozu soll der Secondary -Server (das Backup-Ziel) laufen, wenn gar kein Backup gemacht wird?

Meine Strategie: Ich verlagere die Backups in die Tageszeit, wenn meine PV-Anlage Strom liefert. Den Rest der Zeit sollen der Backup-Server (die VM) und der externe Secondary -Server ausgeschaltet sein.

Das bringt jedoch ein technisches Problem mit sich: Wenn ich die Backup-VM ausschalte oder den Secondary herunterfahre, meckert Proxmox. Der Storage ist nicht mehr erreichbar, und das System schreibt die Logs voll mit Fehlermeldungen („error fetching datatsores“). Das nennt man „Logspam“, und das wollen wir vermeiden.

Die Lösung sind zwei selbstgeschriebene Skripte:

  1. Ein Start-Skript, das alles sauber hochfährt und einbindet.
  2. Ein Stop-Skript, das alles sauber trennt und herunterfährt.

Das Start-Skript

Das Skript erledigt folgende Aufgaben vollautomatisch:

  1. Es sendet ein Wake-on-LAN (WOL) Paket an den Secondary-Server, um ihn zu starten.
  2. Es prüft, ob der Secondary per SSH erreichbar ist.
  3. Es aktiviert den Storage in Proxmox wieder (damit kein Fehler auftaucht).
  4. Es startet die lokale Proxmox Backup Server VM.

Damit das funktioniert, musst du sicherstellen, dass wakeonlan auf deinem Primary installiert ist und im BIOS des Secondary aktiviert wurde.

apt-get install wakeonlan

Das vollständige Skript kannst du dir hier kopieren und an deine IPs und MAC-Adressen, Storage Name und VM ID anpassen:

#!/bin/bash
set -euo pipefail

# --- Konfiguration ---
SLAVE_HOST="192.168.100.3"
SLAVE_MAC="6C:1F:F7:76:53:18"
STORAGE_NAME="PBS_DXP8800Plus"
VM_ID="102"

# KORRIGIERT: Port 8006 für Proxmox VE (PVE).
# Alternativ: Port 22 für SSH (startet oft schneller).
CHECK_PORT=22

log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
}

log "==== START: Slave-Proxmox Start-Workflow ===="

# 1) Slave per WOL wecken
log "Sende Wake-on-LAN an ${SLAVE_MAC}"
if command -v wakeonlan &> /dev/null; then
    wakeonlan "${SLAVE_MAC}" > /dev/null
else
    log "FEHLER: 'wakeonlan' Befehl nicht gefunden! Bitte installieren (apt install wakeonlan)."
    exit 1
fi

# 2) Auf Erreichbarkeit warten (Ping + Service Check)
log "Warte auf ${SLAVE_HOST} (Max. 5 Minuten)..."
HOST_UP=false

for i in {1..60}; do # 60 Versuche a 5 Sekunden = 5 Minuten
    if ping -c1 -W1 "${SLAVE_HOST}" >/dev/null 2>&1; then

        # ZUSATZ: Port-Check (Dienste wirklich da?)
        if [ -n "$CHECK_PORT" ]; then
             # Versuche, den Port zu erreichen (timeout 2s reicht hier)
             if timeout 2 bash -c "</dev/tcp/${SLAVE_HOST}/${CHECK_PORT}" 2>/dev/null; then
                 log "Host ${SLAVE_HOST} ist pingbar UND Port $CHECK_PORT ist offen."
                 HOST_UP=true
                 break
             else
                 log "Ping OK, aber Port $CHECK_PORT noch nicht erreichbar. Warte..."
             fi
        else
            # Fallback ohne Port-Check
            log "Host pingbar. Warte pauschal 15s auf Dienste..."
            sleep 15
            HOST_UP=true
            break
        fi
    fi
    sleep 5
done

# ABBRUCH, wenn Host nicht kam
if [ "$HOST_UP" = false ]; then
    log "FEHLER: Slave-Host ${SLAVE_HOST} (Port $CHECK_PORT) ist nicht hochgefahren. Abbruch!"
    exit 1
fi

# 3) PBS-Storage aktivieren
# Prüfen, ob Storage schon aktiv ist
if ! /usr/sbin/pvesm status | grep -q "^${STORAGE_NAME}.*active"; then
    log "Aktiviere Storage ${STORAGE_NAME}..."
    /usr/sbin/pvesm set "${STORAGE_NAME}" --disable 0
else
    log "Storage ${STORAGE_NAME} ist bereits aktiv."
fi

# Kurze Pause für den Storage-Mount
sleep 2

# 4) VM starten (nur wenn sie nicht schon läuft)
VM_STATUS=$(/usr/sbin/qm status "${VM_ID}")
if [[ "$VM_STATUS" == *"status: stopped"* ]]; then
    log "Starte VM ${VM_ID}..."
    /usr/sbin/qm start "${VM_ID}"
    log "VM ${VM_ID} Startbefehl gesendet."
else
    log "INFO: VM ${VM_ID} läuft bereits oder Status ist unklar ($VM_STATUS)."
fi

log "==== ENDE: Slave-Proxmox Start-Workflow ===="

Erstelle dir ein Verzeichnis

mkdir /root/automation
nano proxmox-slave-start.sh

Kopiere den Inhalt aus dem Code Block und passe deine Daten an ( IP, Storage, VMID etc.. ) .

Speichere danach die Datei Strg+X und mach sie ausführbar.

chmod +x /root/automation proxmox-slave-start.sh

Dieser Vorgang muss mit dem Stop -Script genauso wiederholt werden. Achtet darauf, dass der Dateiname dann „proxmox-slave-stop.sh“ ist.

Das Stop-Skript

Am Nachmittag, wenn die Sonne weggeht, wollen wir wieder Strom sparen. Das Stop-Skript macht genau das Gegenteil:

  1. Es fährt die lokale Backup-VM herunter.
  2. Es deaktiviert den Storage in Proxmox (verhindert Logspam!).
  3. Es sendet per SSH den Befehl poweroff an den Secondary-Server.

Auch hier müsst ihr wieder eure Daten eintragen ( IP, Storage Name, VM_ID )

  GNU nano 8.4                                                                                                                                                                      proxmox-slave-stop.sh
#!/bin/bash
set -euo pipefail

# Konfiguration
SLAVE_HOST="192.168.100.3"
STORAGE_NAME="PBS_DXP8800Plus"
VM_ID="102"
MAX_WAIT_CYCLES=18  # 18 * 10s = 3 Minuten

log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
}

log "==== START: Slave-Proxmox Stop-Workflow ===="

# 1) Status prüfen & VM herunterfahren
VM_STATUS=$(/usr/sbin/qm status "${VM_ID}" | awk '{print $2}')

if [[ "${VM_STATUS}" == "running" ]]; then
    log "VM ${VM_ID} läuft. Sende Shutdown-Signal (ACPI)..."
    /usr/sbin/qm shutdown "${VM_ID}" || log "WARNUNG: qm shutdown ${VM_ID} meldete Fehler (evtl. ignoriert)."

    # Wartensschleife
    log "Warte auf Stop der VM ${VM_ID} (Max. 3 Min)..."
    VM_STOPPED=false

    for ((i=1; i<=MAX_WAIT_CYCLES; i++)); do
        CURRENT_STATUS=$(/usr/sbin/qm status "${VM_ID}" | awk '{print $2}')

        if [[ "${CURRENT_STATUS}" == "stopped" ]]; then
            log "Erfolg: VM ${VM_ID} ist gestoppt."
            VM_STOPPED=true
            break
        fi

        # Letzter Versuch: Harter Kill
        if [[ $i -eq $MAX_WAIT_CYCLES ]]; then
            log "TIMEOUT: VM reagiert nicht auf Shutdown. Versuche harten 'qm stop'..."
            /usr/sbin/qm stop "${VM_ID}" || true
            sleep 5 # Kurz warten, damit Proxmox aufräumen kann
        else
            sleep 10
        fi
    done

    # Finaler Check nach Loop
    if [[ "$VM_STOPPED" == "false" ]]; then
         # Checken ob der Hard-Kill oben geklappt hat
         FINAL_STATUS=$(/usr/sbin/qm status "${VM_ID}" | awk '{print $2}')
         if [[ "${FINAL_STATUS}" == "stopped" ]]; then
            log "VM wurde durch harten Stop beendet."
         else
            log "FEHLER: VM ${VM_ID} konnte nicht gestoppt werden! Status: ${FINAL_STATUS}"
            # Wir machen trotzdem weiter, damit der Storage disabled wird!
         fi
    fi

elif [[ "${VM_STATUS}" == "stopped" ]]; then
    log "Info: VM ${VM_ID} ist bereits gestoppt. Keine Aktion nötig."
else
    log "WARNUNG: Unbekannter Status der VM ${VM_ID}: ${VM_STATUS}"
fi

# 3) PBS-Storage deaktivieren (Kritischer Schritt für Host-Performance)
# Wir prüfen vorher kurz, ob er überhaupt aktiv ist, um unnötige Log-Einträge zu meiden,
log "Deaktiviere Storage ${STORAGE_NAME}..."
if /usr/sbin/pvesm set "${STORAGE_NAME}" --disable 1; then
    log "Storage ${STORAGE_NAME} erfolgreich deaktiviert."
else
    log "WARNUNG: Fehler beim Deaktivieren von ${STORAGE_NAME}!"
fi

# 4) Slave-Host herunterfahren
log "Sende Shutdown an Slave-Host ${SLAVE_HOST}..."
# ConnectTimeout verhindert langes Hängen, falls Slave schon weg ist
if ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 root@"${SLAVE_HOST}" "shutdown -h now" 2>/dev/null; then
    log "Shutdown-Befehl erfolgreich gesendet."
else
    log "HINWEIS: Konnte Shutdown nicht senden (Slave evtl. schon offline oder Netzwerkfehler)."
fi

# 5) Ping-Check (Optional, nur zur Bestätigung)
log "Warte auf Offline-Status des Slaves..."
HOST_IS_DOWN=false
for i in {1..12}; do # 2 Minuten warten
    if ! ping -c1 -W1 "${SLAVE_HOST}" >/dev/null 2>&1; then
        log "Slave-Host ${SLAVE_HOST} ist nun offline."
        HOST_IS_DOWN=true
        break
    fi
    sleep 10
done

if [[ "$HOST_IS_DOWN" == "false" ]]; then
    log "HINWEIS: Slave-Host antwortet noch immer auf Ping (evtl. Updates oder hängt)."
fi

log "==== ENDE: Workflow abgeschlossen ===="


Schritt 3: Der Schlüssel zum Erfolg – SSH ohne Passwort

Damit mein Primary-Server dem Secondary-Server sagen kann „Fahr jetzt runter“, muss er sich per SSH einloggen können – und zwar vollautomatisch ohne Passwort-Eingabe.

Das Lösen wir über SSH-Keys. Das klingt kompliziert, ist aber in einer Minute erledigt.

Key generieren: Logge dich auf der Shell deines Primary ein und gib ein:

    ssh-keygen -t ed25519 -C "masterkey" 

    Bestätige einfach alles mit Enter (kein Passwort/Passphrase setzen!).

    Key kopieren: Jetzt müssen wir diesen Schlüssel auf den Secondary übertragen. Dafür gibt es einen genialen Befehl:

    ssh-copy-id root@DEINE-SECONDARY-IP

    Hier musst du ein letztes Mal das Passwort des Secondary eingeben.

      Ab jetzt kann sich dein Primary jederzeit per ssh root@DEINE-SECONDARY-IP auf dem Secondary einloggen, ohne nach einem Passwort zu fragen. Das ist die Grundvoraussetzung, damit unsere Skripte funktionieren.


      Schritt 4: Alles automatisieren mit Cronjobs

      Wir haben die Hardware optimiert, hd-idle eingerichtet und Skripte geschrieben. Aber wir wollen das ja nicht jeden Tag manuell ausführen. Wir wollen Proxmox Energie sparen, ohne daran denken zu müssen.

      Dafür nutzen wir Cronjobs. Tippe in deine Proxmox-Shell:

      [Code-Block]

      Bash

      crontab -e
      

      Hier können wir genau festlegen, wann was passiert. Mein Zeitplan richtet sich nach der Sonne:

      • Vormittags (z.B. 09:50 Uhr): Das Start-Skript läuft an. Die Sonne kommt raus, wir haben Energie für Backups.
      • Nachmittags (z.B. 16:02 Uhr): Das Stop-Skript wird ausgeführt. Die Backups sollten durch sein, wir fahren alles runter.
      # Zeitzone optional festsetzen (empfohlen)
      CRON_TZ=Europe/Berlin
      
      # PATH setzen, damit man nicht immer /usr/bin/ schreiben muss
      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      
      # Secondary-Proxmox + PBS + VM102 morgens starten
      50 9 * * * /root/automation/proxmox-slave-start.sh > /var/log/slave-workflow-last.log 2>&1
      # VM102 stoppen, PBS deaktivieren und Secondary-Proxmox herunterfahren (z. B. 16:02)
      2 16 * * * /root/automation/proxmox-slave-stop.sh >> /var/log/slave-workflow-last.log 2>&1
      
      # Nach Reboot erstmal wieder PBS Storage aktivieren , da PBS VM im Autostart
      @reboot /usr/sbin/pvesm set PBS_DXP8800Plus --disable 0 >> /var/log/pbs-storage.log 2>&1
      

      Durch diese Automatisierung läuft mein großes Backup-System nur wenige Stunden am Tag. Die restlichen 18-20 Stunden verbraucht dieser Teil meines Home Labs: 0 Watt.


      Schritt 5: Der Feinschliff – CPU Governor anpassen

      Zum Schluss noch ein kleiner Tipp für das i-Tüpfelchen. Moderne CPUs bieten verschiedene Energiemodi („Governor“).

      Auch das lässt sich per Cronjob steuern:

      • Nachts (Power-Save): Wenn ich schlafe und das System kaum Last hat, schalte ich die CPU in den powersave-Modus. Sie taktet runter und spart das letzte bisschen Watt.
      • Morgens (Performance): Wenn mein Home Assistant und andere Dienste aktiv werden, schalte ich zurück auf performance (oder ondemand), damit das System reaktionsschnell bleibt.

      Der Befehl dafür sieht in etwa so aus (abhängig von deiner CPU):

      cpupower frequency-set -g powersave
      

      Das mag nur ein paar Watt ausmachen, aber beim Thema Proxmox Energie sparen zählt am Ende die Summe aller Maßnahmen.

      # NACHT-MODUS (23:00 Uhr): Powersave
      0 23 * * * cpupower frequency-set -g powersave
      
      # TAG-MODUS (07:00 Uhr): Performance / maximale CPU Leistung
      0 7 * * * cpupower frequency-set -g performance && cpupower frequency-set -u $(cpupower frequency-info -l | tail -1 | awk '{print $2}')

      Fazit: Weniger Watt, mehr Freude

      Es ist ein komplexes Thema, und ja, man muss sich einmal hinsetzen und die Skripte einrichten. Aber der Aufwand lohnt sich. Ich konnte meinen Verbrauch von konstanten über 100 Watt auf durchschnittlich 39 Watt senken. Auf das Jahr gerechnet ist das eine massive Ersparnis auf der Stromrechnung, die das Hobby „Home Lab“ deutlich familienfreundlicher macht.

      Ich hoffe, diese Anleitung hilft dir dabei, dein Setup zu optimieren. Alle Skripte findest du natürlich auch hier zum Kopieren, damit du das Rad nicht neu erfinden musst.

      Was ist dein größter Stromfresser im Rack? Schreib es mir gerne in die Kommentare – vielleicht finden wir gemeinsam eine Lösung!

      Ugreen NAS mit Proxmox – So baust du dir dein eigenes HomeLab

      Waschmaschine & Trockner mit Home Assistant überwachen – Automatisierung Schritt für Schritt

      👉 Direkt auf YouTube schauen und abonnieren:
      Smart Home & More auf YouTube

      Willkommen zurück auf meinem Blog! Heute möchte ich dir zeigen, wie du mit Home Assistant und einem einfachen Smart Plug deine Waschmaschine und deinen Trockner überwachen kannst.

      Die Idee: Sobald ein Gerät fertig ist, bekommst du eine Push-Benachrichtigung aufs Smartphone. Das Ganze ist Teil meines Formats „Automatisierung des Monats“. Ziel ist es, dir in überschaubarer Zeit eine praxistaugliche Lösung zu zeigen, die du sofort umsetzen kannst – ohne HACS, ohne Blueprints, einfach mit Bordmitteln von Home Assistant.


      Warum überhaupt überwachen?

      Jeder kennt es: Man stellt die Waschmaschine oder den Trockner an und vergisst danach, dass die Geräte laufen. Am Ende bleibt die Wäsche viel zu lange drin oder man läuft mehrmals in den Keller, nur um festzustellen, dass das Programm noch nicht fertig ist.

      Hier hilft Home Assistant. Mit der richtigen Automatisierung kannst du dir viel Zeit sparen und den Alltag ein gutes Stück smarter gestalten.


      Die Grundidee

      Das Prinzip ist denkbar einfach:

      • Ein Smart Plug misst den Stromverbrauch deiner Geräte.
      • In Home Assistant wertest du die Verbrauchsdaten aus.
      • Mit Schwellenwerten und Zeitbedingungen erkennst du, ob das Gerät läuft oder fertig ist.
      • Am Ende bekommst du eine Benachrichtigung auf dein Handy.

      Genau dieses Setup möchte ich dir im Detail vorstellen.


      Welchen Smart Plug verwenden?

      Ich selbst nutze einen Zigbee-Stecker, weil er zuverlässig und lokal arbeitet. WLAN-Steckdosen funktionieren zwar auch, hängen aber oft von der Cloud ab – und das möchte ich in meinem Smart Home vermeiden.

      Mein Tipp: Wenn du kannst, setze auf Zigbee. Es funktioniert schnell, stabil und ist direkt in Home Assistant integrierbar.

      Hier bekommst du den Smart Plug, den ich gerne einsetze*:

      Angebot


      A1Z ZigBee Smart Steckdose mit Energieüberwachung, 10A, Fernsteuerung, Sprachsteuerung, Zeitplan & Timer, Kompatibel mit Alexa, Google Home, ZigBee Hub Erforderlich, Pack of 4

      • HOHE LEISTUNG BIS ZU 3680W – FÜR STARKE HAUSHALTSGERÄTE: Die NOUS A1Z Smart Steckdose unterstützt eine maximale Leistung von 10A , was sie ideal für leistungsstarke Geräte wie Waschmaschinen, Trockner, Heizungen oder Klimaanlagen macht. Perfekt für alle, die smarte Steuerung mit starker Energie brauchen – ganz ohne Kompromisse.
      • ECHTZEIT-ENERGIEÜBERWACHUNG FÜR MEHR KONTROLLE UND SPAREN: Behalten Sie Ihren Stromverbrauch jederzeit im Blick: Die integrierte Verbrauchsanalyse zeigt in der NOUS Smart App sowohl den aktuellen Energiebedarf als auch Tages- und Monatsstatistiken. So können Sie gezielt Stromfresser erkennen, die Effizienz steigern und Ihre Energiekosten senken – nachhaltig und transparent.
      • ZIGBEE-HUB ERFORDERLICH – SICHERE UND STABILE VERBINDUNG: Für die Nutzung dieser Steckdose ist ein ZigBee 3.0 Gateway (ZigBee Hub Erforderlich E1 oder E7) erforderlich. Nur so ist die reibungslose Integration in Ihr Smart Home möglich – mit schneller Reaktionszeit, zuverlässiger Verbindung und der Möglichkeit, die Steckdose auch als ZigBee-Repeater zu nutzen.
      • INDIVIDUELLE SZENEN, ZEITPLÄNE UND TIMERFUNKTIONEN: Automatisieren Sie Ihren Alltag nach Ihren eigenen Regeln: Legen Sie Zeitpläne fest, wann sich Geräte ein- oder ausschalten sollen – z. B. das Licht abends im Kinderzimmer oder den Heizlüfter am Morgen. Erstellen Sie Szenen, um mehrere Geräte gleichzeitig zu steuern. Ideal für Routinen, Energieersparnis und mehr Komfort.
      • KOMPAKTES DESIGN MIT REPEATER-FUNKTION FÜR IHR ZIGBEE-MESH: Das platzsparende Gehäuse blockiert keine benachbarten Steckdosen – ideal für Mehrfachstecker und enge Wandflächen. Gleichzeitig dient der Plug als ZigBee-Repeater und stärkt das Signal innerhalb Ihres ZigBee-Mesh-Netzwerks. So verbessern Sie Reichweite und Stabilität Ihres gesamten Smart-Home-Systems.


      Einrichtung in Home Assistant

      Sobald der Smart Plug eingebunden ist (z. B. über Zigbee2MQTT oder ZHA), findest du im Home Assistant zwei wichtige Entitäten:

      • Leistung (Watt)
      • Energieverbrauch (kWh)

      Wir brauchen vor allem die Leistung, denn daran erkennst du, ob das Gerät aktiv arbeitet oder nicht.

      🔗Link zu meinem Zigbee2MQTT-Artikel und Video


      Verbrauchswerte analysieren

      Bevor du eine Automatisierung erstellst, solltest du dir den Verlauf deiner Geräte anschauen.

      • Beim Trockner ist das Verhalten relativ eindeutig: Er springt sofort auf einen höheren Verbrauch (z. B. 200–300 Watt) und bleibt dort, bis er fertig ist.
      • Bei der Waschmaschine sieht es anders aus: Hier gibt es viele Peaks und Pausen, teilweise geht der Verbrauch sogar kurz auf 0 Watt.

      Daraus ergibt sich:

      • Für den Trockner reicht oft eine klare Schwelle. Bei Knitterschutzprogrammen kann es dann aber doch nötig sein mit einer Mindestdauer zu arbeiten, gerade für den „Abschaltvorgang“.
      • Für die Waschmaschine brauchst du zusätzlich eine Mindestdauer, damit nicht jeder kurze Verbrauchswechsel eine „Fertig“-Meldung auslöst.


      Die Automatisierung erstellen

      Jetzt kommt der spannende Teil: die Automatisierung in Home Assistant.

      Beispiel für den Trockner

      alias: Trockner
      description: ""
      triggers:
        - entity_id:
            - sensor.trockner_power
          above: 80
          for:
            hours: 0
            minutes: 2
            seconds: 0
            milliseconds: 0
          trigger: numeric_state
      conditions: []
      actions:
        - wait_for_trigger:
            - entity_id:
                - sensor.trockner_power
              below: 3
              for:
                hours: 0
                minutes: 2
                seconds: 0
              trigger: numeric_state
          timeout: "04:00:00"
          continue_on_timeout: false
        - action: notify.mobile_app_iphone_tobias
          data:
            message: Fertig
            title: Trockner
      mode: single
      

      Erklärung der Logik:

      • Trigger: Gerät läuft, wenn über 80 Watt für mindestens 2 Minuten.
      • Wartezeit: Bis zu 4 Stunden (anpassbar je nach Gerät).
      • Bedingung fürs Ende: Unter 3 Watt für 2 Minuten → Gerät ist fertig ( Kleiner als Knitterschutz Intervall).
      • Aktion: Push-Benachrichtigung auf dein Handy.


      Für die Waschmaschine

      Die Logik ist dieselbe, nur die Wartezeit im „unter 3 Watt“-Zustand sollte bei der Waschmaschine länger sein. Denn bei Eco-Programmen gibt es Phasen, in denen die Maschine nichts tut, obwohl sie noch läuft.


      Simulation & Test

      Ein wichtiger Schritt: Teste deine Automatisierung!

      In Home Assistant kannst du über die Entwicklerwerkzeuge simulieren, wie sich deine Entität verhält. Setze den Wert manuell auf über 80 Watt und warte, ob der Trigger auslöst. Danach stellst du den Wert auf 1 Watt, um den Abschluss zu testen.

      Das spart Zeit und du musst nicht immer eine echte Wäsche starten.


      Push-Benachrichtigung aufs Handy

      Ich nutze die Home Assistant Companion App auf meinem Smartphone. Damit landen die Meldungen zuverlässig als Push-Nachricht direkt auf dem Display.

      So bekomme ich sofort mit, wenn die Wäsche fertig ist – egal ob ich gerade im Wohnzimmer sitze oder unterwegs bin.


      Tipps zur Feinabstimmung

      • Schwellenwerte anpassen: Schau dir die Verbrauchskurven deines Geräts an. Manche Trockner verbrauchen im Idle-Modus z. B. 10 Watt statt 3 Watt.
      • Wartezeit optimieren: Bei Waschmaschinen mit Eco-Programmen können Pausen >10 Minuten vorkommen. Passe die „unter 3 Watt“-Zeit entsprechend an.
      • Mehrere Geräte überwachen: Du kannst dieselbe Automatisierung auch für den Geschirrspüler verwenden – einfach die Entität anpassen.


      Mein Fazit

      Mit einem einfachen Smart Plug und Home Assistant kannst du deine Waschmaschine und deinen Trockner zuverlässig überwachen.

      Das Ganze ist kostengünstig, stabil und leicht erweiterbar. Und du musst dir nie wieder Gedanken machen, ob die Wäsche fertig ist.

      Ich hoffe, diese Automatisierung des Monats hilft dir im Alltag weiter.
      Schreib mir gerne in die Kommentare, welche Automatisierung ich im nächsten Monat zeigen soll – Ideen habe ich schon, aber deine Wünsche sind mir wichtig.

      Bis zum nächsten Mal – und viel Spaß beim Nachbauen! 🚀

      Proxmox API Home Assistant Backup automatisieren – VMs überwachen & sichern

      👉 Direkt auf YouTube schauen und abonnieren:
      Smart Home & More auf YouTube

      Einleitung

      Proxmox API Home Assistant Backup – in diesem Praxis‑Guide lernst du, wie du mithilfe der Proxmox API den Zustand deiner virtuellen Maschinen abfragst, Dashboards in Home Assistant erstellst und Backups automatisierst. Statt auf HACS setzt du dabei auf REST‑Sensoren und API‑Calls, um deine VMs sicher zu überwachen und zu sichern.

      Vorbereitung in Proxmox – Benutzer, Token und Rechte einrichten

      Bevor du in Home Assistant loslegen kannst, musst du Proxmox entsprechend vorbereiten.

      API‑Benutzer und Token anlegen

      Erstelle im Proxmox DataCenter einen neuen User (z. B. homeassistant) ohne Passwort, denn wir arbeiten mit API‑Tokens. Wähle als Realm pve und lege anschließend unter API Token einen neuen Token für diesen User an. Achte darauf, Privilege Separation zu deaktivieren. Kopiere dir den Token sofort, da er später nicht mehr angezeigt wird.

      Proxmox API Home Assistant Backup - User

      Proxmox API Home Assistant Backup - API Token

      Rollen konfigurieren

      Für den Zugriff auf VM‑Informationen und Backups benötigen wir passende Rollen:

      • Lege eine neue Rolle (z. B. homeassistant-role) mit den Privilegien VM.Audit, Datastore.Audit und Datastore.AllocateSpace, VM.Backup an.
      • Weise diese Rolle dem User auf den benötigten Pfaden zu: dem Node (/nodes/pve-lerch) und den VMs (/vms/*).

      Diese granularen Berechtigungen sorgen dafür, dass Home Assistant lediglich die benötigten Daten abrufen und einen Proxmox API Home Assistant Backup auslösen darf.

      Proxmox API Home Assistant Backup - Rollen definieren

      Home Assistant konfigurieren – REST‑Sensoren anlegen

      Im nächsten Schritt richten wir Home Assistant ein. Falls du noch keinen File Editor installiert hast, installiere diesen im Add-on Store von Home Assistant.

      Proxmox API Home Assistant Backup - Add-on File Editor

      REST‑Sensor für VM‑Informationen

      Über den YAML‑Eintrag rest: definieren wir einen Sensor, der regelmäßig einen GET‑Request an die Proxmox API sendet. Die URL lautet beispielsweise:

      https://<proxmox-host>/api2/json/nodes/pve-larch/qemu

      Als Header gibst du Authorization: PVEAPIToken=<user>@pve!<token-id>=<token> an. Im value_template kannst du die JSON‑Antwort weiterverarbeiten und die Daten in Attributen speichern.

        - resource: https://192.168.101.69:8006/api2/json/nodes/pvelerch/qemu
          method: GET
          headers:
            Authorization: "PVEAPIToken=homeassistant@pve!proxmox=be729a21-e76b-430b-84bf-40d096d035a6"
          verify_ssl: false
          scan_interval: 10
          sensor:
            - name: "PVELerch VM Raw"
              unique_id: pvelerch_vm_raw
              value_template: "OK"
              json_attributes:
                - data

      Vergiss nicht, Home Assistant neu zu starten, damit der Sensor angelegt wird. Anschließend siehst du eine Liste aller VMs als JSON‑Attribut, inklusive ihrer Namen, IDs und Status.

      REST‑Sensor für LXC‑Container

      Für LXC‑Container wiederholst du den Sensor mit dem Endpunkt .../lxc. Denke daran, dass nicht alle API‑Attribute identisch sind – die Belegung des Festplattenspeichers (disk-usage) steht nur bei Containern zur Verfügung.

        - resource: https://192.168.101.69:8006/api2/json/nodes/pvelerch/lxc
          method: GET
          headers:
            Authorization: "PVEAPIToken=homeassistant@pve!proxmox=be729a21-e76b-430b-84bf-40d096d035a6"
          verify_ssl: false
          scan_interval: 10
          sensor:
            - name: "PVELerch LXC Raw"
              unique_id: pvelerch_lxc_raw
              value_template: "OK"
              json_attributes:
                - data

      Hier nochmal beide Rest Sensoren für die Configuration.Yaml. Beachte, dass am Anfang einmal „rest:“ stehen muss.

      rest:
        - resource: https://192.168.101.69:8006/api2/json/nodes/pvelerch/qemu
          method: GET
          headers:
            Authorization: "PVEAPIToken=homeassistant@pve!proxmox=be729a21-e76b-430b-84bf-40d096d035a6"
          verify_ssl: false
          scan_interval: 10
          sensor:
            - name: "PVELerch VM Raw"
              unique_id: pvelerch_vm_raw
              value_template: "OK"
              json_attributes:
                - data
                
        - resource: https://192.168.101.69:8006/api2/json/nodes/pvelerch/lxc
          method: GET
          headers:
            Authorization: "PVEAPIToken=homeassistant@pve!proxmox=be729a21-e76b-430b-84bf-40d096d035a6"
          verify_ssl: false
          scan_interval: 10
          sensor:
            - name: "PVELerch LXC Raw"
              unique_id: pvelerch_lxc_raw
              value_template: "OK"
              json_attributes:
                - data

      Dashboard gestalten – Markdown‑Karte für VM‑Übersicht

      Um die Daten ansprechend zu visualisieren, kannst du eine Markdown‑Karte in deinem Home‑Assistant‑Dashboard einfügen. Im Template liest du die Attribute der Sensoren aus und listest jede VM mit Name, Uptime, Status und, bei LXC‑Containern, prozentual belegtem Speicherplatz auf.

      Proxmox API Home Assistant Backup - Mark Down Karte

      {% set vms = state_attr('sensor.pvelerch_vm_raw', 'data') or [] %}
      {% set lxcs = state_attr('sensor.pvelerch_lxc_raw', 'data') or [] %}
      
      ## 🖥️ Virtuelle Maschinen (QEMU)
      
      {% for vm in vms | sort(attribute='vmid') %}
        {% set days = vm.uptime // 86400 %}
        {% set hours = (vm.uptime % 86400) // 3600 %}
        {% set minutes = (vm.uptime % 3600) // 60 %}
        {% if days > 0 %}
          {% set uptime_str = days ~ 'd ' ~ hours ~ 'h' %}
        {% else %}
          {% set uptime_str = hours ~ 'h ' ~ minutes ~ 'm' %}
        {% endif %}
      - **{{ vm.vmid }}** | {{ vm.name }} | Uptime: {{ uptime_str }} | {{ "🟢" if vm.status == "running" else "🔴" }}
      {% endfor %}
      
      ## 📦 LXC-Container
      
      {% for lxc in lxcs | sort(attribute='vmid') %}
        {% set days = lxc.uptime // 86400 %}
        {% set hours = (lxc.uptime % 86400) // 3600 %}
        {% set minutes = (lxc.uptime % 3600) // 60 %}
        {% if days > 0 %}
          {% set uptime_str = days ~ 'd ' ~ hours ~ 'h' %}
        {% else %}
          {% set uptime_str = hours ~ 'h ' ~ minutes ~ 'm' %}
        {% endif %}
      - **{{ lxc.vmid }}** | {{ lxc.name }} | Disk: {{ ((lxc.disk / lxc.maxdisk) * 100) | round(1) if lxc.maxdisk and lxc.maxdisk > 0 else 'n/a' }} % | Uptime: {{ uptime_str }} | {{ "🟢" if lxc.status == "running" else "🔴" }}
      {% endfor %}

      So siehst du live, wenn eine VM gestoppt wird oder startet. Über Automationen kannst du sogar Benachrichtigungen verschicken, wenn sich der Status ändert. Achte darauf, dass du die Entitäten auf deine Entitätsnamen anpasst.

      sensor.pvelerch_vm_raw

      sensor.pvelerch_lxc_raw

      Monitoring & Test – Live‑Überwachung von VMs

      Teste deine Konfiguration, indem du eine VM in Proxmox stoppst und wieder startest. Die Änderungen sollten in der Markdown‑Karte nach dem nächsten Scan‑Intervall sichtbar sein. Dieses Szenario zeigt, wie zuverlässig die REST‑API im Zusammenspiel mit Home Assistant funktioniert.

      Backups per API auslösen

      Eines der mächtigsten Features der Proxmox API ist die Möglichkeit, Backups zu starten.

      Rollen erweitern

      Erweitere deine Rolle um die Berechtigungen VM.Backup und Datastore.AllocateSpace, damit der User Backups auslösen darf ( haben wir schon im ersten Schritt getan ). Vergiss nicht, auch den Storage‑Pfad (/storage) mit dieser Rolle zu verknüpfen.

      Proxmox API Home Assistant Backup - User Zugriffsrechte

      REST‑Command für VZDump

      In Home Assistant legst du unter rest_command: einen neuen Befehl an. Die URL endet diesmal auf /vzdump, die Methode ist POST, und als Payload übergibst du Parameter wie vmid, mode (z. B. snapshot), storage und compress.

      rest_command:
        pvelerch_backup:
          url: "https://192.168.101.69:8006/api2/json/nodes/pvelerch/vzdump"
          method: POST
          headers:
            Authorization: "PVEAPIToken=homeassistant@pve!proxmox=be729a21-e76b-430b-84bf-40d096d035a6"
            Content-Type: "application/x-www-form-urlencoded"
          payload: "vmid=100,101,104,106,108,112,113,114,116,119,102,103,105&mode=snapshot&storage=PBS&compress=zstd"
          verify_ssl: false

      Ein Aufruf dieses REST‑Commands startet sofort den Backup‑Job in Proxmox. Über die Home‑Assistant‑Entwicklerwerkzeuge kannst du den Befehl testen. In einer Automation oder auf einem Button platziert, kannst du einen Proxmox API Home Assistant Backup sogar zeit‑ oder ereignisgesteuert auslösen.

      Fazit & Ausblick

      Mit ein wenig Konfigurationsaufwand lässt sich die Proxmox API hervorragend in Home Assistant integrieren. Du kannst den Zustand deiner VMs und LXC‑Container überwachen, in Dashboards visualisieren und sogar Backups per Knopfdruck starten. Nutze diese Lösung als Grundlage für weitere Automatisierungen, zum Beispiel um Benachrichtigungen zu verschicken oder externe Dienste einzubinden.

      Wenn du mehr über Energie‑Management erfahren willst, schau dir auch unseren Beitrag zur EVCC‑Einbindung in Home Assistant an. Für Einsteiger in Proxmox empfehlen wir den Artikel Proxmox Grundinstallation Schritt für Schritt.

      Link‑Liste

      🔥 Alte Geräte, neue Tricks: So steuerst du IR-Fernbedienungen mit Home Assistant & Broadlink! 📱🧠

      👉 Direkt auf YouTube schauen und abonnieren:
      Smart Home & More auf YouTube

      In diesem Beitrag zeige ich dir Schritt für Schritt, wie du mithilfe des Broadlink RM4 Mini und der SmartIR Custom Component deine alten IR-Geräte – z. B. Klimaanlagen, Fernseher oder Musikanlagen – smart steuerbar machst.

      Mit dieser Lösung lassen sich auch ältere Geräte ganz einfach in Home Assistant integrieren – sogar mit grafischer Oberfläche zur Klimasteuerung!


      📦 Was du brauchst

      • Broadlink RM4 Mini (IR-Version)*
      • Die Broadlink-App (Android/iOS)
      • Home Assistant (inkl. Zugriff auf Entwicklerwerkzeuge)
      • HACS (Home Assistant Community Store)
      • Optional: Temperatur- & Luftfeuchtigkeitssensor


      🔧 Schritt-für-Schritt-Anleitung

      H2: Broadlink RM4 Mini in Betrieb nehmen

      1. Broadlink-App installieren und Benutzerkonto anlegen
      2. Gerät über „Universal Remote“ hinzufügen (RM4 Mini, IR-Version)
      3. Wichtig: Sperrfunktion in den Geräteeinstellungen deaktivieren
      4. Gerät benennen (z. B. „Schlafzimmer“) und fertig einrichten


      H2: Integration in Home Assistant

      1. In Home Assistant unter Einstellungen → Geräte & Dienste
      2. Broadlink wird meist automatisch erkannt → sonst manuell hinzufügen
      3. Gerät benennen und Bereich festlegen
      4. Überprüfen, ob Entität sichtbar ist


      H2: IR-Befehle einlernen

      1. Öffne die Entwicklerwerkzeuge → Dienste
      2. Service: remote.learn_command auswählen
      3. Entität: dein Broadlink-Gerät
      4. Geräte- & Befehlsnamen festlegen (z. B. Gerät: „Klimaanlage“, Befehl: „power_on“)
      5. Taste auf der Fernbedienung drücken – LED blinkt – Befehl wird gespeichert


      H2: IR-Befehl senden & testen

      1. Service: remote.send_command aufrufen
      2. Entität, Geräte- und Befehlsname wie oben verwenden
      3. Testen – die Klimaanlage oder der Fernseher sollte reagieren


      H2: Automatisierungen erstellen

      1. In Einstellungen → Automatisierungen & Szenen neue Automation erstellen
      2. Auslöser z. B. eine Uhrzeit
      3. Aktion: Service remote.send_command
      4. Entität, Geräte- & Befehlsname eintragen
      5. Speichern – fertig!


      🌡️ Komfort mit SmartIR

      Mit SmartIR bekommst du eine grafische Klimasteuerung wie bei modernen Thermostaten – sogar mit Temperaturanzeige, Moduswahl und Sollwerten.


      H3: Voraussetzungen

      • Installation von HACS (falls noch nicht vorhanden)
      • SmartIR über HACS oder manuell in /custom_components/smartir ablegen
      • Home Assistant einmal neustarten


      H3: Konfiguration in der configuration.yaml

      smartir:
      
      climate:
        - platform: smartir
          name: Comfee Klimaanlage
          unique_id: comfee_r51m
          device_code: 1121
          controller_data: remote.schlafzimmer
          temperature_sensor: sensor.thermostat_schlafzimmer_temperatur
      #    humidity_sensor: sensor.humidity
      #    power_sensor: binary_sensor.ac_power

      ➡️ Den Device Code (1121) findest du auf der Fernbedienung oder durch eine Suche in der SmartIR-Datenbank (Tipp: ChatGPT hilft bei der Code-Suche anhand der Modellnummer!).
      
      


      H3: Dateien manuell hochladen (wenn kein HACS)

      1. GitHub-Seite von SmartIR öffnen: https://github.com/smartHomeHub/SmartIR
      2. ZIP herunterladen, entpacken
      3. Ordner smartir nach /config/custom_components/ kopieren
      4. Home Assistant neu starten
      5. Konfiguration prüfen & Gerät erscheint als neue Entität


      ✅ Fazit

      Mit dem Broadlink RM4 Mini und SmartIR kannst du selbst ältere IR-Geräte einfach in Home Assistant einbinden – ohne proprietäre Cloud-Lösungen, komplett lokal steuerbar.

      So steuerst du deine Klimaanlage, den TV oder auch die Musikanlage ganz bequem per Automatisierung, App oder Dashboard-Karte!


      📥 Nützliche Links


      🙌 Unterstütze den Kanal

      Hat dir der Beitrag gefallen? Dann…

      👍 Like das Video
      💬 Kommentiere, wenn du Fragen hast
      🔔 Abonniere meinen YouTube-Kanal für mehr Smart-Home-Content

      Effizient und Individuell: Home Assistant Blaupause in nur 20 Minuten erstellen!

      Smart ohne Stress: Deine individuelle Home Assistant Blaupause in 20 Minuten – Keine Programmierkenntnisse erforderlich! Bonus: Lade den Blueprint von meiner Blog-Seite herunter, wenn du dir die Arbeit sparen möchtest!

      Diese ZigBee Produkte verwende ich* :

      Die Anleitung zu den Home Assistant Selectors findest du hier:

      Selectors – Home Assistant (home-assistant.io)

      Verwendete Automatisierungsvorlage:

      alias: Bewegung_Blueprint
      description: ""
      trigger:
        - platform: state
          entity_id:
            - binary_sensor.bewegungsmelder_buro_kuhlschrank_occupancy
          to: "on"
          id: Bewegung erkannt
        - platform: state
          entity_id:
            - binary_sensor.bewegungsmelder_buro_kuhlschrank_occupancy
          to: "off"
          for:
            hours: 0
            minutes: 2
            seconds: 0
      condition: []
      action:
        - if:
            - condition: trigger
              id:
                - Bewegung erkannt
            - condition: numeric_state
              entity_id: sensor.bewegungsmelder_buro_kuhlschrank_illuminance_lux
              below: 50
          then:
            - service: light.turn_on
              metadata: {}
              data: {}
              target:
                entity_id:
                  - light.buro_klavinova_oben
            - service: switch.turn_on
              target:
                entity_id: switch.sonoff_octo_print
              data: {}
          else:
            - service: light.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: light.buro_klavinova_oben
            - service: switch.turn_off
              target:
                entity_id: switch.sonoff_octo_print
              data: {}
      mode: single
      

      Beispiel Blueprint :

      Wenn du die Blaupause verwenden möchtest, würde ich mich sehr darüber freuen, wenn du meinen Kanal abonnierst. Danke 🙂

      blueprint:
        name: Bewegungserkennung
        description: Schaltet Lichter ein, wenn Bewegung erkannt wird und eine Helligkeit unterschritten ist
        domain: automation
        author: smart home & more
        input:
            lichter_input:
              name: Lichter
              default: {}
              selector:
                  entity:
                    domain:
                      - light    
            schalter_input:
              name: Schalter
              default: {}
              selector:
                  entity:
                    domain:
                      - switch
            bewegungsmelder_input:
              name: Bewegungsmelder
              selector:
                  entity:
                    domain:
                      - binary_sensor
                    device_class: motion
            lichtsensor_input:
              name: Licht Sensor
              selector:
                entity: 
                  domain:
                    - sensor
                  device_class: illuminance
            lichtsensor_value_input:
              name: Licht Intensität
              description: Licht wird eingeschaltet, wenn der Wert unter dem Eingabewert liegt
              default: 400
            triggerzeit_input:
              name: Einschalt-Zeit
              description: Zeitspanne , wie lange das Licht eingeschaltet sein soll
              selector:
                number:
                  min: 0
                  max: 60
                  unit_of_measurement: minutes
      mode: single
      trigger:
        - platform: state
          entity_id: !input bewegungsmelder_input
          to: "on"
          id: Bewegung erkannt
        - platform: state
          entity_id: !input bewegungsmelder_input
          to: "off"
          for:
            hours: 0
            minutes: !input triggerzeit_input
            seconds: 0
      condition: []
      action:
        - if:
            - condition: trigger
              id:
                - Bewegung erkannt
            - condition: numeric_state
              entity_id: !input lichtsensor_input
              below: !input lichtsensor_value_input
          then:
            - service: light.turn_on
              target:
                entity_id: !input lichter_input
            - service: switch.turn_on
              target:
                entity_id: !input schalter_input
          else:
            - service: light.turn_off
              target:
                entity_id: !input lichter_input
            - service: switch.turn_off
              target:
                entity_id: !input schalter_input
      
      
      

      Smarte Weihnachtsbaumbeleuchtung mit Home Assistant steuern

      Home Assistant & Beleuchtung Weihnachtsbaum Twinkly

      Im vorherigen Teil der Weihnachtsserie habe ich euch vorgestellt, wie man mit Home Assistant eine intelligente Steckdose verwendet um nahezu jede Beleuchtung smart zu machen. Heute möchte ich euch die Lichterkette von Twinkly vorstellen. Diese kommt mit einer App, aber ich bin kein Freund von vielen verschiedenen Apps zur Steuerung von Beleuchtungen. Wie man die Twinkly Lichterkette mit Home Assistant automatisiert und auch die Effekte verändern kann, wird in diesem Video gezeigt. Dazu verwenden wir Automatisierungen und ein spezielles Blueprint, welches auch für andere Anwendungsfälle sehr gut verwendet werden kann.

      Die Twinkly Lichterkette bekommt ihr hier *:

      Das Blueprint zum Video ( Blueprint Simple Scene Toggle V3) findet ihr hier:

      Links: Blueprint Simple Scene Toggle V3:

      https://community.home-assistant.io/t/simple-scene-toggle/389779

      Info: Im Video habe ich gesagt, dass der Automatismus alle 30 Sekunden getriggert wird. Das ist falsch. Die 30. Sekunde jeder Minute wird getriggert. D.h. jede Minute wird ein Trigger ausgelöst. Sorry, für den Fehler . Möchtet ihr z.B. jede 30 Sekunden triggern, so müsst ihr bei der Automatisierung “ /30 “ bei Sekunden eintragen.

      Hier die Automatisierung Toggle Weihnachtsbaum:

      alias: Toggle Weihnachtsbaum
      description: ""
      trigger:
        - platform: time_pattern
          seconds: /30
        - platform: time
          at: "22:00:00"
          id: Baum aus
      condition: []
      action:
        - if:
            - condition: time
              after: "06:00:00"
              before: "22:00:00"
              weekday:
                - mon
                - tue
                - wed
                - thu
                - fri
                - sat
                - sun
          then:
            - service: script.toggle_weihnachtsbaumeffekte
              data: {}
        - if:
            - condition: trigger
              id:
                - Baum aus
          then:
            - service: light.turn_off
              target:
                entity_id: light.baum
              data: {}
      mode: single
      

      Blueprint Toggle_Weihnachtsbaumeffekte:

      alias: Toggle_Weihnachtsbaumeffekte
      use_blueprint:
        path: panhans/scene_toggle.yaml
        input:
          included_scenes:
            - scene.weihnachtsbaum_szene1
            - scene.weihnachtsbaum_szene2
            - scene.weihnachtsbaum_szene3

      Smarte Alarmanlage mit Home Assistant selber bauen und was das mit einem Rauchmelder zu tun hat

      Was ein Zigbee Rauchmelder mit einer Alarmanlage gemeinsam hat ? Dieser Frage wird im Video nachgegangen. Mit Home Assistant lassen sich Zigbee Rauchmelder einbinden und ein Automatismus erstellen, welcher bei Rauch eine Benachrichtung schickt. Dieses Video führt euch die alle nötigen Schritte von den Parametern in der configuartion.yaml bis hin zur Anwendung der Integration auf eurem Dashboard.

      Diese ZigBee Produkte verwende ich:*

      Den Rauchmelder könnt ihr hier bekommen *: https://s.click.aliexpress.com/e/_DBME4tB

      Home Assistant Integration Alarm Control Panel: https://www.home-assistant.io/integrations/alarm_control_panel/

      Beispielkonfiguration Configuartion.Yaml:

      alarm_control_panel:
      
        - platform: manual
          name: smarthome Alarmanlage
          code: 0815  # Hier könnt ihr euren individuellen Code einstellen                 
          code_arm_required: false  # Wenn false, dann braucht man für die Aktivierung keinen Pin Code, nur für die Deaktivierung
          delay_time: 60 # Zeitspanne bei Erkennung, bis ausgelöst wird.
          arming_time: 60 # Zeitspanne, bis die Alarmanlage scharf geschaltet wird. 
          trigger_time: 60 # Zeitpsanne des gesamten Alarms
          disarm_after_trigger: false 
          disarmed:
           trigger_time: 0 # Zeitspanne, bis die Alarmanlage wieder deaktiviert wird
          armed_home:   # Hier kann man Zeiten einstellen für Alarm, während der Anwesenheit, z.B. Nachts etc..
             arming_time: 0
             delay_time: 60

      Beispielautomatisierung ( Nutzung Rauchmelder als Sirene ) .

      alias: Rauchmelder Alarmanlage
      description: ""
      trigger:
        - platform: state
          entity_id:
            - binary_sensor.gruppe_bewegunsmelder_alarmanlage
          from: "off"
          to: "on"
          for:
            hours: 0
            minutes: 0
            seconds: 0
        - platform: state
          entity_id:
            - input_boolean.trigger_alarm_test
          from: "off"
          to: "on"
      condition:
        - condition: state
          entity_id: alarm_control_panel.smarthome_alarmanlage
          state: armed_away
      action:
        - service: select.select_option
          data:
            option: alarm
          target:
            entity_id:
              - select.rauchmelder_flur_eg_buzzer
              - select.rauchmelder_flur_og_buzzer
              - select.rauchmelder_studio_buzzer
              - select.rauchmelder_wohnzimmer_eg_buzzer
        - delay:
            hours: 0
            minutes: 1
            seconds: 0
            milliseconds: 0
        - service: select.select_option
          data:
            option: mute
          target:
            entity_id:
              - select.rauchmelder_flur_eg_buzzer
              - select.rauchmelder_flur_og_buzzer
              - select.rauchmelder_studio_buzzer
              - select.rauchmelder_wohnzimmer_eg_buzzer
      mode: single