813 lines
32 KiB
Markdown
813 lines
32 KiB
Markdown
# Kapitel 21 – Home Assistant (Premium)
|
||
|
||
Home Assistant wird im Premium-Kapitel nicht als klassisches Smart-Home-System betrachtet,
|
||
sondern als erweiterte Steuer- und Beobachtungsoberfläche für dein UCC.
|
||
Ziel ist, die vorhandenen Systeme – Nextcloud, Vaultwarden, n8n, Kopia und Streaming-Dienste –
|
||
direkt aus einem zentralen Dashboard bedienen und überwachen zu können.
|
||
|
||
Der Fokus liegt auf **praktischen UCC-Funktionen**, nicht auf privater Hausautomatisierung.
|
||
Alles bleibt lokal, nachvollziehbar und datensouverän.
|
||
Du lernst, wie du Home Assistant als grafisches Kontrollzentrum erweiterst und automatisierst,
|
||
ohne zusätzliche Cloud-Dienste oder externe Konten zu benötigen.
|
||
|
||
Im Premium-Teil werden folgende Themen umgesetzt:
|
||
|
||
- Erweiterte Integrationen zu bestehenden UCC-Diensten
|
||
- Anpassung und Branding der Oberfläche im Bratonien-Stil
|
||
- Automatische Backups über Kopia oder n8n
|
||
- Erweiterte Authentifizierung und Fernzugriff
|
||
- Streaming-Anbindung mit Status-Anzeige und Aktionen
|
||
|
||
👉 **Screenshot geeignet:** Premium-Dashboard mit Bratonien-Farben, System-Kacheln und Aktions-Buttons
|
||
|
||
> [!NOTE]
|
||
> Dieser Teil baut auf der bestehenden Installation aus dem Free-Kapitel auf.
|
||
> Wenn Home Assistant dort noch nicht vollständig läuft oder der Zugriff über NPM fehlt,
|
||
> schließe zuerst das Free-Kapitel vollständig ab, bevor du hier weitermachst.
|
||
|
||
---
|
||
|
||
## Erweiterte Integrationen – Premium Dashboard
|
||
|
||
Im Premium-Teil wird Home Assistant zu deiner echten Schaltzentrale.
|
||
Nicht mehr nur zum Anzeigen von Werten – sondern als vollwertiges Kontrollzentrum,
|
||
das jeden Container im UCC erkennt, anzeigt und direkt steuern kann.
|
||
|
||
Ziel ist ein übersichtliches Dashboard, das **auf einen Blick** zeigt,
|
||
welche Systeme aktiv sind, wie stark sie ausgelastet sind
|
||
und über das du mit einem Klick reagieren kannst – ohne dich in Proxmox oder n8n einzuloggen.
|
||
|
||
👉 **Screenshot geeignet:** Premium-Dashboard mit allen LXC-Kacheln und sichtbaren Statusanzeigen
|
||
|
||
> [!NOTE]
|
||
> Dieses Dashboard ersetzt kein Monitoring wie Netdata –
|
||
> es ist die Oberfläche für Entscheidungen und schnelle Eingriffe.
|
||
> Alles bleibt lokal, transparent und nachvollziehbar.
|
||
|
||
### Funktionsprinzip
|
||
|
||
Jeder Container im UCC wird als eigene Kachel dargestellt.
|
||
Ob Nextcloud, Vaultwarden oder Kopia – jeder Dienst bekommt seinen festen Platz.
|
||
Die Oberfläche ist einheitlich aufgebaut: oben eine **Status-Ampel**,
|
||
darunter die wichtigsten Leistungsdaten (CPU, RAM, Netzlast).
|
||
|
||
Die Ampel zeigt den Zustand des Containers an:
|
||
- **Grün:** läuft und antwortet auf Abfragen
|
||
- **Gelb:** aktiv, aber Antwort verzögert
|
||
- **Rot:** gestoppt oder nicht erreichbar
|
||
|
||
Ein Klick auf die Kachel öffnet ein Menü mit einfachen, klaren Aktionen:
|
||
**Starten, Stoppen, Neustarten, Backup auslösen oder Weboberfläche öffnen.**
|
||
|
||
👉 **Screenshot geeignet:** Beispielkachel mit Ampelindikator, Leistungswerten und geöffnetem Menü
|
||
|
||
> [!TIP]
|
||
> Das Ziel ist keine technische Tiefe, sondern Übersicht und Kontrolle.
|
||
> Du siehst, was läuft – und kannst sofort handeln, ohne Terminal oder SSH.
|
||
|
||
### Live-Daten und Verhalten
|
||
|
||
Das Dashboard arbeitet in Echtzeit.
|
||
Home Assistant fragt alle relevanten Daten direkt über die Proxmox-API ab
|
||
und kombiniert sie mit den Leistungswerten aus Netdata.
|
||
So erkennst du sofort, wenn ein Container startet, stoppt oder überlastet ist.
|
||
|
||
Die Aktualisierung erfolgt im 30-Sekunden-Takt –
|
||
kurz genug für reaktive Anzeige, aber ressourcenschonend für Host und API.
|
||
Bei jeder Aktualisierung prüft das System den Status jedes Containers
|
||
und aktualisiert die Ampel sowie die Leistungsdaten automatisch.
|
||
|
||
👉 **Screenshot geeignet:** Kachel mit sichtbarer CPU-Last und sich änderndem Statusindikator
|
||
|
||
> [!NOTE]
|
||
> Alle Werte stammen aus deinen eigenen Systemen.
|
||
> Es gibt keine Cloud-Abhängigkeit und keine externe Datensammlung.
|
||
|
||
### Aktionen und Interaktion
|
||
|
||
Ein Klick auf eine Kachel öffnet das **Aktionen-Menü**.
|
||
Hier steuerst du den jeweiligen Container direkt, ohne Umweg über Proxmox.
|
||
Jede Aktion löst im Hintergrund einen API-Aufruf aus und zeigt sofort das Ergebnis an.
|
||
|
||
**Verfügbare Aktionen:**
|
||
|
||
- **Starten** – Container wird direkt über die Proxmox-API eingeschaltet
|
||
- **Stoppen** – kontrollierter Shutdown des Containers
|
||
- **Neustarten** – schneller Reboot, nützlich nach Updates
|
||
- **Backup auslösen** – startet den hinterlegten Backup-Job in Proxmox
|
||
- **Weboberfläche öffnen** – ruft die NPM-URL des Containers in neuem Tab auf
|
||
|
||
Die Buttons reagieren sofort:
|
||
Nach einer Aktion aktualisiert sich die Kachel automatisch.
|
||
Ein grüner Rahmen zeigt erfolgreiche Ausführung, ein roter kurzzeitigen Fehler.
|
||
|
||
👉 **Screenshot geeignet:** geöffnete Menüansicht mit den fünf Aktionspunkten
|
||
|
||
> [!TIP]
|
||
> Home Assistant merkt sich den letzten ausgeführten Befehl.
|
||
> So kannst du nachvollziehen, wann ein Container zuletzt manuell gesteuert wurde.
|
||
|
||
### Sicherheit und Kontrolle
|
||
|
||
Da das Dashboard direkten Zugriff auf deine Container hat,
|
||
wird der Zugriff ausschließlich aus deinem internen Netz erlaubt.
|
||
Der Benutzer `ha@pve` hat zwar volle Rechte auf Proxmox,
|
||
ist aber ausschließlich für Home Assistant vorgesehen
|
||
und wird außerhalb des Dashboards nicht verwendet.
|
||
|
||
Zugriffe von außen sind über den Nginx Proxy Manager geschützt.
|
||
Nur authentifizierte Benutzer:innen mit gültiger Session können Aktionen ausführen.
|
||
Jede Steuerung – Start, Stop, Backup – wird zusätzlich in Home Assistant geloggt,
|
||
damit du jederzeit nachvollziehen kannst, wer wann was getan hat.
|
||
|
||
👉 **Screenshot geeignet:** Home-Assistant-Protokoll mit Eintrag „LXC 103 neu gestartet über Dashboard“
|
||
|
||
> [!CAUTION]
|
||
> Gib den Home-Assistant-Zugang niemals weiter.
|
||
> Das Dashboard ist kein „Viewer“, sondern ein Werkzeug mit Systemrechten.
|
||
|
||
### Technische Basis
|
||
|
||
Damit die Steuerung funktioniert, nutzt Home Assistant zwei Datenquellen:
|
||
die **Proxmox-API** für Status und Aktionen sowie die **Netdata-API** für Leistungswerte.
|
||
Beide Systeme laufen lokal im UCC, wodurch keine externen Abfragen notwendig sind.
|
||
|
||
**Ablauf pro Container:**
|
||
|
||
1. Home Assistant fragt den Proxmox-Status (`running`, `stopped`, `paused`) ab.
|
||
2. Parallel werden CPU-, RAM- und Disk-Werte von Netdata abgerufen.
|
||
3. Das Dashboard kombiniert beide Ergebnisse und aktualisiert die Kachel.
|
||
4. Wird eine Aktion ausgelöst, führt Home Assistant den passenden API-Call an Proxmox aus.
|
||
5. Nach Ausführung folgt automatisch eine Aktualisierung des Status.
|
||
|
||
👉 **Screenshot geeignet:** vereinfachte Ablaufgrafik zwischen Home Assistant, Proxmox und Netdata
|
||
|
||
> [!NOTE]
|
||
> Alle Verbindungen laufen über HTTPS innerhalb deines internen Netzwerks.
|
||
> Externe APIs, Tokens oder n8n-Flows sind nicht beteiligt.
|
||
|
||
### Umsetzung – Vorbereitung der Entitäten
|
||
|
||
Bevor du mit dem Dashboard startest, braucht Home Assistant Daten, die es anzeigen kann.
|
||
Das bedeutet: dein System muss wissen, ob ein Container läuft, wie stark er arbeitet
|
||
und wie viel Speicher er gerade nutzt.
|
||
|
||
Diese Informationen kommen aus zwei Quellen: **Proxmox** (Status und Steuerung)
|
||
und **Netdata** (Leistungswerte).
|
||
|
||
1) **Proxmox verbinden**
|
||
Öffne in Home Assistant den Bereich **Einstellungen → Geräte & Dienste**
|
||
und prüfe, ob dein Proxmox-Server bereits eingebunden ist.
|
||
Wenn du im Free-Kapitel alles richtig gemacht hast,
|
||
sollte dort dein Server mit allen Containern erscheinen.
|
||
|
||
👉 **Screenshot geeignet:** Liste der Proxmox-Container in Home Assistant
|
||
|
||
Falls du keinen Zugriff siehst, überprüfe kurz den API-Benutzer `ha@pve`.
|
||
Er sollte die Berechtigung haben, den Systemzustand zu lesen und Aktionen auszuführen.
|
||
|
||
2) **Container-Status sichtbar machen**
|
||
In der Proxmox-Integration findest du zu jedem Container eine kleine Statusanzeige.
|
||
Wenn der Container läuft, steht dort „running“, sonst „stopped“.
|
||
Das ist die Grundlage für deine Ampelanzeige im Dashboard.
|
||
|
||
👉 **Screenshot geeignet:** Entitätenliste mit sichtbaren LXC-Statusanzeigen
|
||
|
||
3) **Leistungswerte aktivieren**
|
||
Damit du später auch CPU- und RAM-Werte siehst, werden diese Daten aus Netdata übernommen.
|
||
Öffne dafür **Einstellungen → Geräte & Dienste → Integration hinzufügen**
|
||
und suche nach **REST**.
|
||
Darüber bindest du Netdata ein – Home Assistant fragt die Daten regelmäßig ab
|
||
und hält sie automatisch aktuell.
|
||
|
||
👉 **Screenshot geeignet:** REST-Integration mit sichtbaren CPU- und RAM-Werten
|
||
|
||
> [!TIP]
|
||
> Du musst das nur einmal einrichten.
|
||
> Wenn die Verbindung steht, erscheinen die Werte für alle Container automatisch im System.
|
||
|
||
### Erste vollständige Kachel
|
||
|
||
Diese Kachel ist das zentrale Steuerelement für deinen Container.
|
||
Sie zeigt, ob der Dienst läuft, wie stark er arbeitet,
|
||
und kann ihn direkt starten, stoppen, sichern und öffnen –
|
||
alles innerhalb deines UCC.
|
||
|
||
1) Öffne in Home Assistant dein Dashboard **UCC Premium**
|
||
und wähle **Bearbeiten → Karte hinzufügen → Button**.
|
||
Gib der Karte den Namen deines Containers, z. B. **Nextcloud**.
|
||
|
||
2) Wähle im Feld **Statusquelle** den passenden Container aus.
|
||
Die Kachel zeigt automatisch den Zustand an:
|
||
Grün, wenn der Dienst läuft – Rot, wenn er gestoppt ist – Grau, wenn keine Verbindung besteht.
|
||
|
||
3) Füge zwei Leistungsanzeigen hinzu, damit du siehst, wie stark der Container gerade beansprucht wird:
|
||
– **CPU-Auslastung**
|
||
– **RAM-Nutzung**
|
||
Diese Werte kommen automatisch aus Netdata und aktualisieren sich regelmäßig.
|
||
|
||
4) Öffne den Abschnitt **Aktion bei Klick** und wähle **Menü anzeigen**.
|
||
Hier legst du fest, was passieren soll, wenn du auf die Kachel tippst.
|
||
Füge folgende Punkte hinzu:
|
||
– **Starten** – Container einschalten
|
||
– **Stoppen** – Container herunterfahren
|
||
– **Neustarten** – kurz aus und wieder an
|
||
– **Backup auslösen** – startet ein automatisches Backup über Duplicati
|
||
– **Weboberfläche öffnen** – ruft die zugehörige Seite über NPM auf
|
||
|
||
👉 **Screenshot geeignet:** Menü mit allen fünf Einträgen sichtbar
|
||
|
||
5) Damit der Punkt *Backup auslösen* funktioniert, aktivierst du in Duplicati die Web-API.
|
||
Öffne die Duplicati-Oberfläche und gehe zu **Einstellungen → Remote-Zugriff**.
|
||
Setze den Haken bei **Erlaube API-Zugriff** und vergib ein starkes Passwort.
|
||
Danach erreichst du Duplicati lokal über die Schnittstelle:
|
||
```
|
||
https://duplicati.deinedomain.tld/api/v1/
|
||
```
|
||
Jeder Backup-Job hat dort einen eigenen Namen, z. B. `Nextcloud-Daily`.
|
||
Du kannst ihn direkt starten, indem du in Home Assistant die folgende Adresse einträgst:
|
||
```
|
||
https://duplicati.deinedomain.tld/api/v1/backup/start?name=Nextcloud-Daily
|
||
```
|
||
Sobald du die Aktion klickst, führt Duplicati den passenden Job aus.
|
||
Du siehst den Fortschritt wie gewohnt in der Duplicati-Weboberfläche.
|
||
|
||
👉 **Screenshot geeignet:** geöffnete Duplicati-Einstellung mit aktiviertem API-Zugriff
|
||
|
||
6) Für den Punkt *Weboberfläche öffnen* trägst du im Menü die passende URL deines Containers ein,
|
||
z. B.:
|
||
```
|
||
https://nextcloud.deinedomain.tld
|
||
```
|
||
Wenn du diesen Menüpunkt wählst, öffnet sich die Seite sofort in einem neuen Tab.
|
||
|
||
7) Teste die Kachel:
|
||
– Container starten oder stoppen
|
||
– Backup auslösen
|
||
– Weboberfläche öffnen
|
||
Nach wenigen Sekunden sollte sich die Farbe der Kachel anpassen,
|
||
und das Backup in Duplicati sichtbar starten.
|
||
|
||
> [!TIP]
|
||
> Diese Vorlage kannst du für alle anderen Container übernehmen.
|
||
> Ändere nur den Namen und den jeweiligen Duplicati-Job.
|
||
> So entsteht Schritt für Schritt ein zentrales, einheitliches Kontrollzentrum für dein gesamtes UCC.
|
||
|
||
---
|
||
|
||
## UI-Erweiterung: Thematische Tabs
|
||
|
||
Das zentrale Dashboard aus dem Free-Teil zeigt bereits alle LXC-Container übersichtlich auf einer Seite.
|
||
Im Premium-Teil erweitern wir diese Oberfläche um **thematische Tabs**, die deine Infrastruktur logisch gliedern.
|
||
|
||
Jeder Tab bündelt zusammengehörige Dienste – beispielsweise alle Netzwerk-Tools oder alle Automatisierungen –
|
||
und macht so aus deiner Container-Liste eine strukturierte Kommandozentrale.
|
||
|
||
> [!NOTE]
|
||
> Diese Tabs basieren auf den bisherigen Kapiteln 1 bis 21.
|
||
> Clipper (Kapitel 22) ist nicht enthalten, da es sich nicht um einen steuerbaren Dienst handelt.
|
||
|
||
👉 **Screenshot geeignet:** Tab-Leiste mit markiertem aktivem Bereich „Daten & Dateien“
|
||
|
||
### Tab-Übersicht
|
||
|
||
| **Tab** | **Dienste / LXC-Container** | **Beschreibung** |
|
||
|----------------------------------|---------------------------------------------------------|--------------------------------------------------------|
|
||
| **Übersicht** *(Startseite)* | Alle LXC-Container | Übersicht aller Dienste mit Status und Grundfunktionen |
|
||
| **System & Infrastruktur** | Proxmox, Netdata, Archiv, Webspace, Asset-LXC | Basis-VMs, Ressourcen, Backup, Serververwaltung |
|
||
| **Netzwerk & Sicherheit** | Pi-hole, Nginx Proxy Manager, WireGuard, Vaultwarden, WAHA | DNS, Reverse Proxy, VPN, Passwortsafe, API-Gateways |
|
||
| **Dateien & Dienste** | Nextcloud, Paperless, Tandoor | Dateiablage, Dokumentenmanagement, Rezeptverwaltung |
|
||
| **Automation & Integration** | n8n, Ollama, Asset-LXC, Gitea | Workflows, KI, Code, Hintergrunddienste |
|
||
| **Kommunikation & Information** | Wiki, Postiz, Affine | Wissensdatenbank, Notizen, Kommunikationsdienste |
|
||
| **Medien & Streaming** | RTMP | Streaming-Infrastruktur |
|
||
| **Smart Home & Visualisierung** | Home Assistant | Steuerung, Visualisierung, Hausautomatisierung |
|
||
Jeder Tab enthält interaktive Kacheln mit Statusanzeige, Ressourcenwerten und Direktaktionen.
|
||
|
||
👉 **Screenshot geeignet:** geöffneter Tab „Automation & Dienste“ mit mehreren Kacheln sichtbar
|
||
|
||
## Tabs anlegen
|
||
|
||
Damit dein Dashboard übersichtlich bleibt, gliedern wir die Oberfläche in einzelne Tabs.
|
||
Jeder Tab bildet ein Thema ab – z. B. **Netzwerk & Sicherheit** oder **Automation & Dienste** –
|
||
und enthält die zugehörigen Kacheln.
|
||
|
||
Tabs lassen sich direkt über die Oberfläche von Home Assistant anlegen.
|
||
|
||
### Ersten Tab erstellen
|
||
|
||
1. Öffne in Home Assistant dein Dashboard **UCC Premium**
|
||
2. Klicke oben rechts auf das Drei-Punkte-Menü und wähle **„Dashboard bearbeiten“**
|
||
3. Wähle unten **„Ansicht hinzufügen“**
|
||
4. Vergib einen Namen für den Tab, z. B. `Netzwerk & Sicherheit`
|
||
5. Wähle ein passendes Symbol, z. B. `mdi:shield-outline`
|
||
6. Aktiviere die Option **„Panel anzeigen“**, damit mehrere Kacheln nebeneinander dargestellt werden können
|
||
7. Speichern
|
||
|
||
Wiederhole diesen Vorgang für alle weiteren Bereiche:
|
||
|
||
- System & Infrastruktur
|
||
- Daten & Dateien
|
||
- Automation & Dienste
|
||
- Wissen & Kommunikation
|
||
- Smart Home & Visualisierung
|
||
|
||
> [!TIP]
|
||
> Du musst nicht alle Tabs sofort befüllen. Beginne mit den Bereichen, die für dich am wichtigsten sind.
|
||
|
||
👉 **Screenshot geeignet:** Tab-Leiste mit aktivem Tab „Netzwerk & Sicherheit“
|
||
|
||
Im nächsten Schritt fügen wir die Kacheln in diese Tabs ein und kümmern uns anschließend um besondere Funktionen,
|
||
die über den Standard hinausgehen.
|
||
|
||
## Erste vollständige Kachel anlegen
|
||
|
||
Jetzt gestaltest du deine erste funktionsfähige Steuerkachel im Premium-Dashboard.
|
||
Diese Kachel zeigt dir, ob ein Dienst läuft, wie stark er arbeitet –
|
||
und ermöglicht dir, ihn direkt zu starten, zu stoppen oder neu zu starten.
|
||
Ganz ohne Umweg über Proxmox oder Terminal.
|
||
|
||
Wir beginnen mit dem Container **Proxmox** (also dem LXC, der dein Proxmox-Webinterface enthält).
|
||
|
||
> [!NOTE]
|
||
> Alle weiteren Kacheln kannst du später einfach duplizieren
|
||
> und an den jeweiligen Dienst anpassen – z. B. Nextcloud, Vaultwarden, n8n, etc.
|
||
|
||
### Schritt 1 – Kachel erstellen
|
||
|
||
Für deine Steuerkacheln nutzt du die `custom:button-card`.
|
||
Damit kannst du nicht nur den Status eines Containers anzeigen,
|
||
sondern auch CPU- und RAM-Auslastung sichtbar machen –
|
||
alles in einer einzigen Kachel.
|
||
|
||
> [!NOTE]
|
||
> Wenn du die `custom:button-card` noch nicht installiert hast:
|
||
> Öffne den **Home Assistant Community Store (HACS)**,
|
||
> gehe zu **Frontend → Button Card** und installiere sie dort.
|
||
> Danach Home Assistant neu starten.
|
||
|
||
#### Kachel anlegen
|
||
|
||
1. Öffne dein **Premium-Dashboard**
|
||
2. Klicke auf **„Bearbeiten“**, dann auf **„Karte hinzufügen“**
|
||
3. Wähle den Typ **„Benutzerdefiniert → Button Card“**
|
||
|
||
Im folgenden Editor gibst du folgenden YAML-Block ein:
|
||
|
||
```yaml
|
||
type: custom:button-card
|
||
entity: sensor.lxc_proxmox_status
|
||
name: Proxmox
|
||
icon: mdi:server
|
||
show_state: true
|
||
show_icon: true
|
||
show_name: true
|
||
custom_fields:
|
||
cpu: >
|
||
[[[
|
||
return states['sensor.netdata_proxmox_cpu']?.state + '%' || '–';
|
||
]]]
|
||
ram: >
|
||
[[[
|
||
return states['sensor.netdata_proxmox_ram']?.state + '%' || '–';
|
||
]]]
|
||
styles:
|
||
grid:
|
||
- grid-template-areas: '"i n" "cpu cpu" "ram ram" "s s"'
|
||
- grid-template-columns: 1fr 1fr
|
||
- grid-template-rows: auto
|
||
custom_fields:
|
||
cpu:
|
||
- font-size: 12px
|
||
- color: gray
|
||
ram:
|
||
- font-size: 12px
|
||
- color: gray
|
||
state:
|
||
- value: 'running'
|
||
color: green
|
||
- value: 'stopped'
|
||
color: red
|
||
- value: 'paused'
|
||
color: orange
|
||
tap_action:
|
||
action: toggle
|
||
```
|
||
|
||
> [!NOTE]
|
||
> Die Statusanzeige basiert auf dem Sensor `sensor.lxc_proxmox_status`.
|
||
> CPU- und RAM-Werte stammen aus Netdata und müssen in deinem System
|
||
> z. B. als `sensor.netdata_proxmox_cpu` und `sensor.netdata_proxmox_ram` verfügbar sein.
|
||
> Diese Sensoren werden im Free-Kapitel automatisch angelegt,
|
||
> wenn du Netdata korrekt integriert hast.
|
||
|
||
> [!TIP]
|
||
> Wenn du nicht sicher bist, wie deine Sensoren heißen,
|
||
> schau unter **Einstellungen → Geräte & Dienste → Entitäten**
|
||
> und suche nach `proxmox` oder `netdata`.
|
||
|
||
Diese Kachel zeigt dir nun:
|
||
- ob der Container läuft (grün), gestoppt ist (rot) oder pausiert (orange)
|
||
- die aktuelle CPU-Auslastung
|
||
- die aktuelle RAM-Nutzung
|
||
|
||
### Schritt 2 – Steuerung einbauen
|
||
|
||
Deine Kachel zeigt bereits den aktuellen Zustand und Leistungsdaten –
|
||
jetzt soll sie auch **direkt steuerbar** sein.
|
||
|
||
Du hinterlegst dafür drei Aktionen:
|
||
- **Einfacher Klick:** Container starten
|
||
- **Doppelklick:** Container stoppen
|
||
- **Halten:** Container neustarten
|
||
|
||
Diese Befehle werden über `rest_command`s ausgelöst,
|
||
die du im nächsten Schritt definierst.
|
||
|
||
#### Aktionen in der Kachel eintragen
|
||
|
||
Öffne deine bestehende `custom:button-card`
|
||
und **ersetze den Block `tap_action: action: toggle`**
|
||
durch die folgenden drei Einträge:
|
||
|
||
```yaml
|
||
tap_action:
|
||
action: call-service
|
||
service: rest_command.proxmox_lxc_start_proxmox
|
||
|
||
double_tap_action:
|
||
action: call-service
|
||
service: rest_command.proxmox_lxc_stop_proxmox
|
||
|
||
hold_action:
|
||
action: call-service
|
||
service: rest_command.proxmox_lxc_restart_proxmox
|
||
```
|
||
|
||
> [!NOTE]
|
||
> Diese drei Befehle existieren noch nicht in deinem System.
|
||
> Du wirst sie im nächsten Schritt in deiner `configuration.yaml` selbst anlegen.
|
||
|
||
### Schritt 3 – Steuerbefehle in Home Assistant anlegen
|
||
|
||
Damit dein Button wirklich **Start**, **Stop** und **Neustart** ausführen kann,
|
||
muss Home Assistant wissen, **wie** es mit deinem Proxmox-Server sprechen soll.
|
||
|
||
Dazu legst du drei sogenannte `rest_command`s an –
|
||
**für jeden einzelnen Container**, den du steuern möchtest.
|
||
|
||
> [!CAUTION]
|
||
> Es reicht **nicht**, diese Befehle einmalig zu erstellen.
|
||
> Du brauchst **pro Container** ein eigenes Befehls-Set:
|
||
> jeweils einen für Start, Stop und Neustart.
|
||
|
||
> [!NOTE]
|
||
> Speichere zuerst deinen Button im Dashboard, bevor du Home Assistant verlässt.
|
||
> Die Änderungen im YAML wirken sich sonst nicht korrekt aus.
|
||
|
||
#### Öffne die Konfigurationsdatei
|
||
|
||
Die `configuration.yaml` ist die zentrale Datei von Home Assistant.
|
||
Hier legst du Befehle, Sensoren und Integrationen manuell an.
|
||
|
||
So findest du sie:
|
||
|
||
1. Öffne Home Assistant im Browser
|
||
2. Gehe zu **Einstellungen → Add-ons**
|
||
3. Starte den **File Editor**
|
||
(falls nicht installiert: über HACS → Frontend nachinstallieren)
|
||
4. Klicke links auf die Datei `configuration.yaml`
|
||
|
||
> [!TIP]
|
||
> Alternativ kannst du auch per SFTP auf dein Home Assistant System zugreifen
|
||
> und dort im `config`-Verzeichnis die Datei `configuration.yaml` öffnen.
|
||
|
||
#### Befehle einfügen (für einen Container)
|
||
|
||
Scrolle ans Ende der Datei und füge folgenden Block ein.
|
||
Dieses Beispiel zeigt die Steuerung für den Container `Proxmox` mit der ID `101`.
|
||
|
||
```yaml
|
||
rest_command:
|
||
proxmox_lxc_start_proxmox:
|
||
url: "https://192.168.100.10:8006/api2/json/nodes/pve/lxc/101/status/start"
|
||
method: POST
|
||
verify_ssl: false
|
||
headers:
|
||
Authorization: "PVEAPIToken=ha@pve!homeassistant=DEIN_API_TOKEN"
|
||
|
||
proxmox_lxc_stop_proxmox:
|
||
url: "https://192.168.100.10:8006/api2/json/nodes/pve/lxc/101/status/stop"
|
||
method: POST
|
||
verify_ssl: false
|
||
headers:
|
||
Authorization: "PVEAPIToken=ha@pve!homeassistant=DEIN_API_TOKEN"
|
||
|
||
proxmox_lxc_restart_proxmox:
|
||
url: "https://192.168.100.10:8006/api2/json/nodes/pve/lxc/101/status/reboot"
|
||
method: POST
|
||
verify_ssl: false
|
||
headers:
|
||
Authorization: "PVEAPIToken=ha@pve!homeassistant=DEIN_API_TOKEN"
|
||
```
|
||
|
||
> [!TIP]
|
||
> Ersetze:
|
||
> – `192.168.100.10` durch die IP-Adresse deines Proxmox-Servers
|
||
> – oder verwende alternativ einen lokalen DNS-Namen wie `proxmox.local`
|
||
> – `101` durch die **Container-ID** aus Proxmox
|
||
> – `proxmox_lxc_*` durch einen eindeutigen Namen, z. B. `nextcloud`, `kopia`, etc.
|
||
> – `DEIN_API_TOKEN` durch den API-Token für den Benutzer `ha@pve` aus dem Free-Kapitel
|
||
|
||
> [!NOTE]
|
||
> Der Aufruf funktioniert **nur innerhalb deines Heimnetzwerks**.
|
||
> Der Proxmox-Server ist nicht öffentlich erreichbar – und das ist gut so.
|
||
|
||
#### Konfiguration prüfen und übernehmen
|
||
|
||
1. Klicke im File Editor auf **„Speichern“**
|
||
2. Gehe zu **Einstellungen → System → Steuerung**
|
||
3. Klicke auf **„Konfiguration prüfen“**
|
||
4. Wenn keine Fehler angezeigt werden, klicke auf **„Neu starten“**,
|
||
damit Home Assistant die neuen Befehle lädt
|
||
|
||
> [!CAUTION]
|
||
> Wenn ein YAML-Fehler erscheint:
|
||
> Prüfe Einrückungen, Anführungszeichen und doppelte `rest_command:`-Einträge.
|
||
|
||
Wenn alles korrekt eingetragen ist, funktioniert dein Button jetzt wie geplant.
|
||
**Start**, **Stop** und **Neustart** können direkt über das Dashboard ausgelöst werden.
|
||
|
||
### Schritt 4 – Weboberfläche öffnen
|
||
|
||
Damit du direkt aus dem Dashboard die Benutzeroberfläche deines Containers öffnen kannst,
|
||
fügst du einen vierten Befehl hinzu: **„Weboberfläche aufrufen“**.
|
||
Anders als bei Start/Stopp ist das kein `rest_command`, sondern einfach ein Link,
|
||
der beim Klicken einen neuen Tab im Browser öffnet.
|
||
|
||
#### Web-Link in die Kachel einbauen
|
||
|
||
Ergänze deine bestehende Kachel um folgenden zusätzlichen Block:
|
||
**füge ihn direkt hinter den drei bisherigen Aktionsblöcken ein.**
|
||
|
||
```yaml
|
||
show_icon: true
|
||
show_name: true
|
||
|
||
custom_fields:
|
||
web:
|
||
card:
|
||
type: custom:button-card
|
||
icon: mdi:open-in-new
|
||
tap_action:
|
||
action: url
|
||
url_path: "https://nextcloud.deinedomain.tld"
|
||
styles:
|
||
card:
|
||
- background-color: "#64D4E8"
|
||
- border-radius: 12px
|
||
- padding: 8px
|
||
- height: 40px
|
||
- width: 40px
|
||
```
|
||
|
||
> [!TIP]
|
||
> Du kannst die URL direkt anpassen – z. B. für Vaultwarden, n8n oder Kopia.
|
||
> Die Adresse muss aus Sicht deines **Browsers** erreichbar sein,
|
||
> also z. B. über den Nginx Proxy Manager veröffentlicht sein.
|
||
|
||
> [!NOTE]
|
||
> Der Link öffnet sich **nicht im Home Assistant-Fenster**,
|
||
> sondern startet einen neuen Browser-Tab mit der Zielseite.
|
||
|
||
Wenn du willst, kannst du das Icon auch durch einen Text oder anderen Button ersetzen –
|
||
wir bleiben hier beim Symbol „open-in-new“ für Klarheit.
|
||
|
||
### Schritt 5 – Optische Korrektur bei gestopptem Container
|
||
|
||
Wenn ein Container gestoppt ist (`sensor.lxc_proxmox_status = stopped`),
|
||
liefern die CPU- und RAM-Werte entweder `0`, `null` oder gar keine Anzeige.
|
||
Damit das im Dashboard klarer und sauberer aussieht,
|
||
setzen wir in diesem Fall eine Platzhalteranzeige – z. B. `–`.
|
||
|
||
#### Umsetzung:
|
||
|
||
Du passt den Anzeige-Text für CPU und RAM direkt in der Kachel an:
|
||
Wenn der Container gestoppt ist, erscheint **nicht „0 %“**, sondern z. B. **„–“ oder „aus“**.
|
||
|
||
Füge dazu diesen Block in die Kachel unterhalb von `custom_fields:` ein
|
||
(bzw. passe vorhandene Felder an):
|
||
|
||
```yaml
|
||
custom_fields:
|
||
cpu: >
|
||
[[[ return states['sensor.lxc_proxmox_status'].state === 'running'
|
||
? states['sensor.netdata_proxmox_cpu'].state + ' %'
|
||
: '–'; ]]]
|
||
ram: >
|
||
[[[ return states['sensor.lxc_proxmox_status'].state === 'running'
|
||
? states['sensor.netdata_proxmox_ram'].state + ' %'
|
||
: '–'; ]]]
|
||
```
|
||
|
||
> [!NOTE]
|
||
> Diese Werte werden automatisch aktualisiert.
|
||
> Wenn der Container startet oder stoppt, passen sich beide Felder direkt an.
|
||
|
||
> [!TIP]
|
||
> Du kannst statt `–` auch `aus`, `n.v.` oder ein Icon wie `mdi:power-off` anzeigen lassen,
|
||
> je nachdem, was optisch besser zu deinem Dashboard passt.
|
||
|
||
### Komplettes Beispiel – Grundkachel mit allen Funktionen
|
||
|
||
Du kannst diese YAML-Vorlage 1:1 in dein Dashboard übernehmen
|
||
und anschließend die Platzhalter (`DEIN_...`) durch deine echten Werte ersetzen.
|
||
|
||
```yaml
|
||
type: custom:button-card
|
||
entity: sensor.lxc_DEINCONTAINER_status
|
||
name: DEINCONTAINER
|
||
icon: mdi:server
|
||
|
||
show_icon: true
|
||
show_name: true
|
||
|
||
tap_action:
|
||
action: call-service
|
||
service: rest_command.proxmox_lxc_start_DEINCONTAINER
|
||
|
||
hold_action:
|
||
action: call-service
|
||
service: rest_command.proxmox_lxc_restart_DEINCONTAINER
|
||
|
||
double_tap_action:
|
||
action: call-service
|
||
service: rest_command.proxmox_lxc_stop_DEINCONTAINER
|
||
|
||
styles:
|
||
card:
|
||
- border-radius: 12px
|
||
- padding: 12px
|
||
- background-color: >
|
||
[[[ return entity.state === 'running' ? '#64D4E8' : '#999999'; ]]]
|
||
- color: black
|
||
name:
|
||
- font-weight: bold
|
||
- font-size: 16px
|
||
icon:
|
||
- width: 32px
|
||
- height: 32px
|
||
|
||
custom_fields:
|
||
cpu: >
|
||
[[[ return entity.state === 'running'
|
||
? states['sensor.netdata_DEINCONTAINER_cpu'].state + ' %'
|
||
: '–'; ]]]
|
||
ram: >
|
||
[[[ return entity.state === 'running'
|
||
? states['sensor.netdata_DEINCONTAINER_ram'].state + ' %'
|
||
: '–'; ]]]
|
||
web:
|
||
card:
|
||
type: custom:button-card
|
||
icon: mdi:open-in-new
|
||
tap_action:
|
||
action: url
|
||
url_path: "https://DEINCONTAINER.deinedomain.tld"
|
||
styles:
|
||
card:
|
||
- background-color: "#73A1EF"
|
||
- border-radius: 8px
|
||
- padding: 6px
|
||
- height: 36px
|
||
- width: 36px
|
||
```
|
||
|
||
#### Platzhalter zum Ersetzen
|
||
|
||
| Platzhalter | Bedeutung |
|
||
|---------------------------------|----------------------------------------------------|
|
||
| `DEINCONTAINER` | z. B. `nextcloud`, `vaultwarden`, `n8n`, … |
|
||
| `sensor.lxc_DEINCONTAINER_status` | Sensor für Container-Status (aus Free-Kapitel) |
|
||
| `sensor.netdata_DEINCONTAINER_cpu` | Sensor für CPU-Wert aus Netdata |
|
||
| `sensor.netdata_DEINCONTAINER_ram` | Sensor für RAM-Wert aus Netdata |
|
||
| `rest_command.proxmox_lxc_start_DEINCONTAINER` | API-Befehl zum Starten (siehe Konfigurations-Teil) |
|
||
| `rest_command.proxmox_lxc_stop_DEINCONTAINER` | API-Befehl zum Stoppen |
|
||
| `rest_command.proxmox_lxc_restart_DEINCONTAINER` | API-Befehl zum Neustarten |
|
||
| `https://DEINCONTAINER.deinedomain.tld` | URL zur Weboberfläche über Nginx Proxy Manager |
|
||
|
||
> [!NOTE]
|
||
> Diese Kachel enthält bereits alle empfohlenen Funktionen.
|
||
> Du kannst sie jetzt für jeden weiteren Dienst duplizieren und nur die Platzhalter anpassen.
|
||
|
||
### Schritt 6 – Kachel duplizieren und anpassen
|
||
|
||
Jetzt musst du nicht jede Kachel komplett neu bauen.
|
||
Du nutzt einfach die fertige Kachel von oben als Vorlage,
|
||
duplizierst sie und passt nur die individuellen Werte an.
|
||
|
||
#### So duplizierst du eine Kachel:
|
||
|
||
1. Öffne dein **UCC Premium Dashboard** in Home Assistant
|
||
2. Klicke oben rechts auf **Bearbeiten**
|
||
3. Suche die fertige Kachel (z. B. `Nextcloud`)
|
||
4. Klicke auf das **Drei-Punkte-Menü** oben rechts in der Kachel
|
||
5. Wähle **Duplizieren**
|
||
6. Klicke auf das neue Duplikat
|
||
7. Ersetze dort alle Platzhalter durch die Werte deines neuen Containers:
|
||
|
||
| Bereich | Was du änderst (Beispiel für `Vaultwarden`) |
|
||
|--------------|----------------------------------------------------------------|
|
||
| `name:` | `Vaultwarden` |
|
||
| `entity:` | `sensor.lxc_vaultwarden_status` |
|
||
| `cpu:` | `sensor.netdata_vaultwarden_cpu` |
|
||
| `ram:` | `sensor.netdata_vaultwarden_ram` |
|
||
| `rest_command.start` | `rest_command.proxmox_lxc_start_vaultwarden` |
|
||
| `rest_command.stop` | `rest_command.proxmox_lxc_stop_vaultwarden` |
|
||
| `rest_command.restart` | `rest_command.proxmox_lxc_restart_vaultwarden` |
|
||
| `url_path:` | `https://vaultwarden.deinedomain.tld` |
|
||
|
||
#### Wiederhole das für jeden weiteren Container:
|
||
|
||
- n8n
|
||
- Kopia
|
||
- Home Assistant
|
||
- Pi-hole
|
||
- Affine
|
||
- …und alle anderen UCC-Dienste
|
||
|
||
> [!TIP]
|
||
> Du musst nur die **Bezeichnungen und Befehle anpassen** –
|
||
> das Grundlayout bleibt gleich. So baust du dein Kontrollzentrum in Minuten fertig.
|
||
|
||
### Erweiterung einzelner Kacheln
|
||
|
||
Du hast jetzt eine funktionierende Grundkachel gebaut
|
||
und sie für alle deine Container dupliziert.
|
||
|
||
Einige Dienste brauchen aber **zusätzliche Funktionen** oder **spezielle Einstellungen**,
|
||
damit du sie optimal über das Dashboard bedienen kannst.
|
||
|
||
Wir gehen jetzt **Kachel für Kachel** durch
|
||
und zeigen dir **nur die zusätzlichen YAML-Blöcke**,
|
||
die du in der jeweiligen Kachel **ergänzen oder anpassen musst.**
|
||
|
||
> [!NOTE]
|
||
> Wenn ein Dienst keine Sonderfunktionen hat,
|
||
> bleibt seine Kachel wie du sie vorher dupliziert hast – ganz ohne Änderungen.
|
||
und zeigen dir **nur die zusätzlichen YAML-Blöcke**,
|
||
die du in der jeweiligen Kachel **ergänzen oder anpassen musst.**
|
||
|
||
> [!NOTE]
|
||
> Wenn ein Dienst keine Sonderfunktionen hat,
|
||
> bleibt seine Kachel wie du sie vorher dupliziert hast – ganz ohne Änderungen.
|
||
|
||
#### Kachel: Proxmox
|
||
|
||
> [!CAUTION]
|
||
> Diese Kachel ist ein **Spezialfall** und darf **nicht** aus der Grundkachel dupliziert werden!
|
||
> Du verwendest hier **keine API-Steuerung** (starten, stoppen etc.),
|
||
> da sonst die Gefahr besteht, dass du dir versehentlich den Host selbst ausschaltest.
|
||
|
||
Die Proxmox-Kachel zeigt nur CPU- und RAM-Werte an
|
||
und öffnet bei Klick das Proxmox-Webinterface.
|
||
Sie hat **keine Aktionen zur Steuerung**.
|
||
|
||
> [!NOTE]
|
||
> Proxmox ist **nicht öffentlich erreichbar**.
|
||
> Du musst eine **lokale IP-Adresse** verwenden, z. B.:
|
||
|
||
```yaml
|
||
tap_action:
|
||
action: url
|
||
url_path: "https://192.168.1.10:8006"
|
||
```
|
||
|
||
#### So passt du die Kachel an:
|
||
|
||
1. Ersetze in der YAML der Proxmox-Kachel den gesamten Block:
|
||
```yaml
|
||
tap_action:
|
||
action: call-service
|
||
service: rest_command.proxmox_lxc_start_*
|
||
```
|
||
durch den lokalen URL-Aufruf oben.
|
||
|
||
2. Entferne ggf. vorhandene `hold_action` und `double_tap_action`,
|
||
oder setze sie auf:
|
||
```yaml
|
||
hold_action:
|
||
action: none
|
||
double_tap_action:
|
||
action: none
|
||
```
|
||
|
||
3. Ersetze den `custom_fields:`-Block für CPU und RAM durch:
|
||
```yaml
|
||
custom_fields:
|
||
cpu: >
|
||
[[[ return states['sensor.netdata_proxmox_cpu'].state + ' %'; ]]]
|
||
ram: >
|
||
[[[ return states['sensor.netdata_proxmox_ram'].state + ' %'; ]]]
|
||
```
|
||
|