# Home Assistant

Home Assistant ist eine kostenlose und quelloffene Software zur Hausautomation, die als zentrales Steuerungssystem in einem Smart Home oder Smart House konzipiert ist. Geschrieben in Python liegt ihr Hauptaugenmerk auf lokaler Steuerung und Privatsphäre.  
  
Es verfügt über ein sehr breites Spektrum an Geräteunterstützung und bietet im Februar 2022 Unterstützung für über 1900 modulare Plug-ins mit Systemintegrationen zu verschiedenen IoT-Technologien, -Systemen und -Diensten, die als Integrationskomponenten verfügbar sind.\[9\] Aktionen, wie die lokale oder ferngesteuerte Steuerung von Beleuchtung, Klimatisierung, Unterhaltungssystemen und Geräten, können durch Automatisierungen, Skripte, Sprachbefehle und mobile Apps ausgelöst oder über die webbasierte Benutzerschnittstelle (Front-End) des Home Assistant gesteuert werden.  
Quelle Wikipedia

# Aufbau / Reihenfolge des Buches

# Damit es eine Sinnvolle Reihenfolge gibt

Die Reihenfolge des Buches und Sinn:

1. Als Erstes installation
2. Wie sichern wir das System
3. Die Addon Stores einrichten umd Intergrationen für unsere Geräte zu bekommen
4. Die Geräte, denn Visualisierung macht keinen Sinn, ohne Geräte
5. Aussehen / Darstellung, die Visualisierung halt

# Installation & Grundkonfiguration

# Installation auf dem Raspberry PI 3 / 4

- SD-Karte vorbereiten min. 16GB
- URL zum Download : [https://www.home-assistant.io/installation/raspberrypi/](https://www.home-assistant.io/installation/raspberrypi/)  
    dann unter Punkt 4 die Architektur auswählen / kopieren   
    Eventuell gibt es schon eine neuere version als zur Erstellung des Artikels  
      
      
    Im Webbrowser die Url angeben, eventuell Versionnummer anpassen oder gleich auf die github seite für die releases  
    [https://github.com/home-assistant/operating-system/releases](https://github.com/home-assistant/operating-system/releases)  
      
    [https://github.com/home-assistant/operating-system/releases/download/8.2/haos\_rpi4-64-8.2.img.xz](https://github.com/home-assistant/operating-system/releases/download/8.2/haos_rpi4-64-8.2.img.xz)  
    (Das hier angegebene Image ist die 64 Bit Version für einen Raspberry 4)
- Nach dem Download das xz archiv entpacken zum beispiel mit 7zip unter Windows.  
    Unter Linux/MacOS mit der Archiverwaltung.
- Jetz BalenaEtcher runterladen für sein Betriebssystem (Window/Linux/Mac) um das Image auf die SD-Karte zu flashen  
    [https://www.balena.io/etcher/](https://www.balena.io/etcher/)[![Auswahl_005.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/v2v4t62QY6jYzn9t-auswahl-005.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/v2v4t62QY6jYzn9t-auswahl-005.png)
- Nun die SD Karte in den Raspberry Packen und im Router nachschauen welche IP Adresse der Raspberry bekommen hat.  
    [![Screenshot 2022-06-17 at 16-18-36 FRITZ Box 7580.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/F8nruAbXapodwnnw-screenshot-2022-06-17-at-16-18-36-fritz-box-7580.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/F8nruAbXapodwnnw-screenshot-2022-06-17-at-16-18-36-fritz-box-7580.png)  
    Wie in dem Bild zu sehen heißt unser Raspberry homeassistent.
- Zum Login auf die IP hier [http://192.168.178.205:8123](http://192.168.178.205:8123) gehen nun im folgenden eure Daten eingeben.  
    benutzername ausdenken und merken. Passwort vergeben und merken.  
    Oder aber von einem Backup wiederherstellen. Wie das geht sehen wir im nächsten Kapitel.  
      
    [![Screenshot 2022-06-17 at 16-29-36 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/mmFcISnGvmLOQemI-screenshot-2022-06-17-at-16-29-36-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/mmFcISnGvmLOQemI-screenshot-2022-06-17-at-16-29-36-home-assistant.png)
- Grundeinstellungen   
    \- Name  
    \- Zeitzone  
    \- Einheitensystem  
    \- Währung  
      
    Durch klick auf erkennen wird anhand der IP festgestellt weche Werte passen.  
    Dann nur noch einen Namen vergeben. Ich belasse es bei Home.  
      
    [![Screenshot 2022-06-17 at 16-32-38 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/BWNclmujwXtd90AR-screenshot-2022-06-17-at-16-32-38-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/BWNclmujwXtd90AR-screenshot-2022-06-17-at-16-32-38-home-assistant.png)
- Beispiel  
    [![Screenshot 2022-06-17 at 16-36-36 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/G1Uey4lgKqEsC7aB-screenshot-2022-06-17-at-16-36-36-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/G1Uey4lgKqEsC7aB-screenshot-2022-06-17-at-16-36-36-home-assistant.png)
- Datenübertragung, ich übertrage nur Crash Reports, denn das Hilft den Entwicklern weiter.  
      
    [![Screenshot 2022-06-17 at 16-48-30 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/mbvipELW0aINSnzd-screenshot-2022-06-17-at-16-48-30-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/mbvipELW0aINSnzd-screenshot-2022-06-17-at-16-48-30-home-assistant.png)
- Geräte auswahl. Hier gehe ich jetzt auf fertig. Ansonsten euer/eure Gerät(e) .  
    Denn auf die Geräte Einrichtung kommen wir später noch genauer.  
    [![Screenshot 2022-06-17 at 17-24-09 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/JvjwKT1RuUHZqfvm-screenshot-2022-06-17-at-17-24-09-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/JvjwKT1RuUHZqfvm-screenshot-2022-06-17-at-17-24-09-home-assistant.png)
- Nun gelangen wir auf die Hauptseite.  
    Da wir keine Geräte ausgewählt haben, gibt es nur den Benutzer  
    Den Spannungsadapter vom PI  
    und das Wetter  
    [![Screenshot 2022-06-17 at 17-28-17 Übersicht – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/AMLSO3Stm9bvcSsU-screenshot-2022-06-17-at-17-28-17-ubersicht-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/AMLSO3Stm9bvcSsU-screenshot-2022-06-17-at-17-28-17-ubersicht-home-assistant.png)
- Installation abgeschlossen.

# Netzwerkspeicher anbinden wie smb und nfs

### Beschreibung:

Manchmal ist nicht genügend Platz auf dem Home Assistenten.  
Egal ob Virtual nur mit 32 GB oder tatsächlich ein Raspberry.  
Man virtuell einen Dateiserver oder auch auf nem NAS, lohnt es sich größeren Speicher anzubinden, z.b wenn man den Frigate Videorekorder oder andere Dinge die Speicher gebrauchen nutzen möchte.  
Home Assistant unterstützt zwei Protokolle.  
SMB und NFS

### Vorraussetzung:

Einen Dateiserver mit Samba oder NFS oder anderen Daten bzw Freigegeben IP vom Home Assistant wie es bei NFS der Fall ist.

### Einrichtung:

Zum Menüpunkt:

Auf Einstellungen gehen

[![Auswahl_323.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Th6CM2scujoIlXF4-auswahl-323.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Th6CM2scujoIlXF4-auswahl-323.png)

Dann auf System

[![Auswahl_025.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/LkWeReOPZxQQ3RJK-auswahl-025.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/LkWeReOPZxQQ3RJK-auswahl-025.png)

  
Nun auf Speicher

[![Auswahl_026.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/fspbDK9VgBLjIU2G-auswahl-026.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/fspbDK9VgBLjIU2G-auswahl-026.png)

Nun auf Netzwerkspeicher hinzufügen klicken

[![Auswahl_027.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/8zvoEA3xgiVcOAtj-auswahl-027.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/8zvoEA3xgiVcOAtj-auswahl-027.png)

#### Die Medientypen:

Backup -&gt; Hier wird der Speicher für Backups verwendet

Medien -&gt; Hier wird der Speicher den Medien (bilder,Videos) hinzugefügt (Zu finden im Hauptmenu in der Sidebar)

Freigabe -&gt; Hier wird der Speicher als zusätzlicher Speicher für Addons zur Verfügung gestellt.  
Der Pfad dazu ist dann **share/deine\_freigabe**

#### [![Auswahl_029.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/TBIiLttGx0xEfSWs-auswahl-029.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/TBIiLttGx0xEfSWs-auswahl-029.png)  
  
NFS Einbindung:

[![Auswahl_030.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/R1CQr7zzDQEhOo7D-auswahl-030.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/R1CQr7zzDQEhOo7D-auswahl-030.png)

Verbunden

[![Auswahl_031.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/MyIzxSBRskpcYL2P-auswahl-031.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/MyIzxSBRskpcYL2P-auswahl-031.png)

#### SMB einbinden:

Name vergeben  
Verwendung angeben, hier Backup  
Server die IP oder Hostname eintragen  
Protokoll SMB  
Dann die Freigabe. Es darf auch ein Unterverzeichnis angegeben werden.  
Dieses muss mit "/" slash getrennt werden (Linux)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/wvxrKS2IzOdRGtGy-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/wvxrKS2IzOdRGtGy-grafik.png)

Nun Runterscrollen und Benutzername Kennwort angeben und auf Verbinden klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/Tbu58EqDO5NL0Wdt-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/Tbu58EqDO5NL0Wdt-grafik.png)

Nun haben wir die SMB Freigabe drin

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/dhudkc6axHnT6Hmx-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/dhudkc6axHnT6Hmx-grafik.png)

# Backup & Restore

# Backup bei der Installation wiederherstellen

Wenn das Home Assistant installiert ist und der Einrichtungsassisten offen ist, gibts unten links einen Button   
Alternativ kannst du von einem vorherigem backup wiederherstellen  
  
, wenn ein vorhandendes Backup extern gesichert wurde und mittels Client Computer wieder hochgeladen werden kann.  
Wie Backups erstellt werden sehen wir im nächsten Kaptitel. Dazu muss das Home Assisten allerdings noch konfiguriert laufen.  
Was ansich ja logisch ist

[![Screenshot 2022-06-17 at 16-29-36 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/mmFcISnGvmLOQemI-screenshot-2022-06-17-at-16-29-36-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/mmFcISnGvmLOQemI-screenshot-2022-06-17-at-16-29-36-home-assistant.png)

Nun öffnen sich ein Dateiauswahldialog mit der man dann von dem Client Computer die backup tar Datei auswählt.Dann Vollständig und dann auf Restore.  
[![Auswahl_006.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/ijWR7Zt3qdF4pzAa-auswahl-006.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/ijWR7Zt3qdF4pzAa-auswahl-006.png)  
  
Dann nochmals bestätigen das wir das wirklich wollen.  
Abwarten bis die Onboarding Seite also benutzer anlegen zum login wird, da Home Assistant nach dem einspielen neustartet.Sollte nach 5 Minuten nichts passieren die F5 Taste zum aktulaiseren drücken.

Nun kommt der Login Screen.  
Daten eingeben. Voila  
[![Screenshot 2022-06-17 at 19-55-36 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/yruOqP3fYEJlvoxS-screenshot-2022-06-17-at-19-55-36-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/yruOqP3fYEJlvoxS-screenshot-2022-06-17-at-19-55-36-home-assistant.png)

In meinem beispiel gehe Ich wieder unter einstellungen -&gt; System Backups.  
Nun seh ich mein backup was ich vorher erstellt habe, bevor ich die SD Karte neu geflasht habe. Das hochgeladene Backup wird hier übrigends nicht mehr gespeichert. Dann muss es nochmals neu hochgeladen werden über die 3 Punkte.  
Wie schon erwähnt ist das Backup in der Liste alt, es wurde quasi aus dem backup mit wiederhersgestellt.  
wie man sieht ist das Backup ne Stunde her. Mein restore aber 5 Minuten.  
Da nicht nur meine Benutzerdaten sondern auch mein altes Backup wiederhergestellt wurden, sieht man das Backup und Restore funktioniert wunderbar  
[![Screenshot 2022-06-17 at 19-58-17 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/lv8YCyxi1zqRWVT1-screenshot-2022-06-17-at-19-58-17-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/lv8YCyxi1zqRWVT1-screenshot-2022-06-17-at-19-58-17-home-assistant.png)

# Backup(s) erstellen / Wiederherstellen & Backup(s) löschen

### Backup erstellen

  
Um ein Backup zu erstellen im Home assistent auf Einstellungen -&gt; System -&gt; Backups klicken.  
  
Hier einmal das Hauptfenster. Es sind noch keien Backups vorhanden.  
[![Screenshot 2022-06-17 at 18-58-43 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/3aU83mrkSYsbHhNy-screenshot-2022-06-17-at-18-58-43-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/3aU83mrkSYsbHhNy-screenshot-2022-06-17-at-18-58-43-home-assistant.png)  
Auf den Button Backup erstellen unten rechts legen wir ein Backup an.  
Dort geben wir einen Namen und typ an. Voll oder nur Teile.  
Ich empfehle immer Vollbackup zu machen. Denn beim Restore können auch nur Teile gewählt werden.   
Aber beim backup erstellen will man alles haben.  
  
Wenn gewünscht, kann das Backup auch noch mit einem kennwort versehen werden.  
Dann auf erstellen klicken. Los gehts

[![Screenshot 2022-06-17 at 19-00-48 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/U8aZsYQFx2G0Au4s-screenshot-2022-06-17-at-19-00-48-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/U8aZsYQFx2G0Au4s-screenshot-2022-06-17-at-19-00-48-home-assistant.png)  
  
Dann sieht unsere Liste so aus:  
[![Screenshot 2022-06-17 at 19-02-34 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/UCUymeIKuHjS9v1i-screenshot-2022-06-17-at-19-02-34-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/UCUymeIKuHjS9v1i-screenshot-2022-06-17-at-19-02-34-home-assistant.png)

Unser Backup ist drin. Wenn wir jetzt auf das Backup klicken. Können wir es wiederherstellen.  
jetzt können wir auswählen ob wir alles wiederherstellen wollen oder nur Teile.  
  
Vollbackup:  
[![Screenshot 2022-06-17 at 19-05-07 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/bXlQMdqFh4kNzF0c-screenshot-2022-06-17-at-19-05-07-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/bXlQMdqFh4kNzF0c-screenshot-2022-06-17-at-19-05-07-home-assistant.png)  
Dann auf restore bestätigen und los gehts

  
Teilbackup:  
Teile auswählen.  
Dann auf restore bestätigen und los gehts  
[![Screenshot 2022-06-17 at 19-08-04 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/jD3w9YuxD3Y77cOX-screenshot-2022-06-17-at-19-08-04-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/jD3w9YuxD3Y77cOX-screenshot-2022-06-17-at-19-08-04-home-assistant.png)

###   
Backup löschen  


Um ein Backup zu löschen, das zu löschende Backup in der Liste anklicken.   
Auf die 3 Punkte klicken anklicken  
[![Screenshot 2022-06-17 at 19-05-07 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/bXlQMdqFh4kNzF0c-screenshot-2022-06-17-at-19-05-07-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/bXlQMdqFh4kNzF0c-screenshot-2022-06-17-at-19-05-07-home-assistant.png)

Nun und Backup löschen anklicken und bestätigen  
Backup gelöscht  
  
[![Screenshot 2022-06-17 at 19-13-32 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/t253OatFouGpvArA-screenshot-2022-06-17-at-19-13-32-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/t253OatFouGpvArA-screenshot-2022-06-17-at-19-13-32-home-assistant.png)

# Backup downloaden und wieder hochladen

### Backup downloaden

Erstellte Backups können über die Weboberfläche downgeloaded werden, so das man sie weg sichern kann. Denn wenn die SD Karte im Raspberry oder die Festplatte im Home Assistent z.b NUC oder VM kaputt geht, kann man sein ganzes System oder Teile davon über das vorher downgeloadete Backup wieder zruück sichern / wiederherstellen. Wie schon erwähnt, vorrausgesetzt man hat diese runtergeladen. ich lade diese gleich nach dem erstellen eines Backups immer herunter.  
  
Wieder auf einstellungen -System -&gt; Backups.  
Dann auf das gewünschte Backup klicken.  
Unten rechts sind drei punkte da drauf klicken  
[![Screenshot 2022-06-17 at 19-05-07 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/bXlQMdqFh4kNzF0c-screenshot-2022-06-17-at-19-05-07-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/bXlQMdqFh4kNzF0c-screenshot-2022-06-17-at-19-05-07-home-assistant.png)  
  
Nun auf Backup herunterladen klicken.  
  
[![Screenshot 2022-06-17 at 19-13-32 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/t253OatFouGpvArA-screenshot-2022-06-17-at-19-13-32-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/t253OatFouGpvArA-screenshot-2022-06-17-at-19-13-32-home-assistant.png)  
Jetzt lioegt das backup im Download Ordner des Webbrowsers auf dem Client Computer mit dem die Seite des Home Assistentes betrachtet wird.

### Backup Hochladen

In der Backupliste oben rechts auf die 3 Punkte klicken.  
Und Backup hochladen auswählen.  
[![Screenshot 2022-06-17 at 19-21-21 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/6fpOmg4BcjGli5jQ-screenshot-2022-06-17-at-19-21-21-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/6fpOmg4BcjGli5jQ-screenshot-2022-06-17-at-19-21-21-home-assistant.png)

Nuin erscheint ein Upload Dialog in der man die Backup tar in unserem beispiel die Grundinstallation.tar aus und schon erscheint es in der Liste zum restore.

# Geräte - Z-Wave

# Z-Wave Addon installation

1. Vorraussetzungen:  
    Um Z-Wave benutzen zuu können braucht es A einen Z-Wave Sender/Empfänger und natürlich Z-Wave Geräte.  
      
    In unserem Projekt nutzen wir folgende Z-Wave Geräte:  
    Z-Wave USB Dongle -&gt; [ Amazon LINK](https://www.amazon.de/Z-Wave-ZME_UZB1-USB-Stick-ZMEEUZB1/dp/B00VKEH1BQ/ref=sr_1_3?crid=UB2KU8ROX4LL&keywords=z-wave+usb+dongle&qid=1655916043&sprefix=z-wave+usb+dongle%2Caps%2C127&sr=8-3&tag=hackernette02-21)  
    Devolo Heizkörper Thermostat (Die Motoren hört man kaum, finde Ich zumindest, persönliche Meinung)   
    [AMAZON Link](https://www.amazon.de/Heizk%C3%B6rperthermostat-Heizungssteuerung-Hausautomation-Haussteuerung-Installation/dp/B00M2JKABQ/ref=sr_1_2?crid=3B1GMYH8K4ZY8&keywords=devolo%2Bheizk%C3%B6rper&qid=1655916248&sprefix=devolo%2Bheizk%C3%B6rper%2Caps%2C108&sr=8-2&tag=hackernette02-21&th=1)  
    Devolo Schaltsteckdose mit Messung [AMAZON Link](https://www.amazon.de/Heizk%C3%B6rperthermostat-Heizungssteuerung-Hausautomation-Haussteuerung-Installation/dp/B06VVKFPRR/ref=sr_1_2?crid=3B1GMYH8K4ZY8&keywords=devolo%2Bheizk%C3%B6rper&qid=1655916248&sprefix=devolo%2Bheizk%C3%B6rper%2Caps%2C108&sr=8-2&tag=hackernette02-21&th=1)
2. Nun im Home Assistent unter Einstellunge -&gt; Addons -&gt; unten recht Add-On-Store anklicken.  
    Nun in dem Offiziellen Addons das Z-Wave JS anklicken und installieren.  
    [![Screenshot 2022-06-22 at 18-49-40 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/61zyLwkw5fLNxCfN-screenshot-2022-06-22-at-18-49-40-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/61zyLwkw5fLNxCfN-screenshot-2022-06-22-at-18-49-40-home-assistant.png)  
    Auf Installieren klicken  
    [![Screenshot 2022-06-22 at 18-51-39 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/m3qKyJ9s1HKQ6Ufi-screenshot-2022-06-22-at-18-51-39-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/m3qKyJ9s1HKQ6Ufi-screenshot-2022-06-22-at-18-51-39-home-assistant.png)  
    Wenn fertig installiert gibt es jetzt den Register Konfiguration, den klicken wir jetzt an.  
    nun den Punkt bei /dev/serial/by-id/usb-0658\_0200-if00 setzten und auf speichern klicken.  
    eure ID sieht unter umständen anders aus.  
    [![Screenshot 2022-06-22 at 18-56-49 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/568BdhOsAXxk3qLz-screenshot-2022-06-22-at-18-56-49-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/568BdhOsAXxk3qLz-screenshot-2022-06-22-at-18-56-49-home-assistant.png)  
    Nun wieder auf den Register Informationen und starten anklicken.  
    [![Screenshot 2022-06-22 at 18-58-01 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/C6XZ7gqN2pGFIYGm-screenshot-2022-06-22-at-18-58-01-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/C6XZ7gqN2pGFIYGm-screenshot-2022-06-22-at-18-58-01-home-assistant.png)  
    Dann auf den Register Protokoll wechseln, dort sehen wir eventuelle Fehler. Öfter auf aktualisieren klicken.  
    [![Screenshot 2022-06-22 at 18-58-58 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/as4nGUieEfySb1LA-screenshot-2022-06-22-at-18-58-58-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/as4nGUieEfySb1LA-screenshot-2022-06-22-at-18-58-58-home-assistant.png)  
    [![Screenshot 2022-06-22 at 19-00-03 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/N7XZaIbwdQvNOh3O-screenshot-2022-06-22-at-19-00-03-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/N7XZaIbwdQvNOh3O-screenshot-2022-06-22-at-19-00-03-home-assistant.png)  
    Bei Z-Wave werden die Gekoppelten Geräte im USB Stick / Controller gespeichert.  
    Wie man sieht waren an meinem Z-Wave USB Key schon Geräte angemeldet und die Melden sich jetzt wieder an, da sie noch bgepairt sind. Oben in der Log steht ja Node 5 usw. Solltet Ihr euer System neuausgesetzt haben oder einen gerbauchten Z-Wave Stick gekauft haben, müssen die alten Geräte ausm Stick entfernt weden.  
    Das gehen wir in den Seite an.  
    jetzt aber nochmals das System sauber neustarten.  
    Die Installation ist hier mit abgeschlossen

# Ersteinrichtung mit Altgeräten und diese ausm USB Z-Wave Stick löschen, denn Z-Wave Geräte werden im Stick gespeichert

1. Diese Seite kann Übersprungen werden, wenn keine Altgeräte vorhanden sind.  
      
    Die z-Wave konfigration öffnen.  
    Dazu gehen wir unter Einstellungen -&gt;Geräte &amp; Dienste -&gt; dann bei Z-Wave auf den Button konfigurieren.  
    [![Screenshot 2022-06-22 at 19-07-08 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/CNL6SoV9oujNkDih-screenshot-2022-06-22-at-19-07-08-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/CNL6SoV9oujNkDih-screenshot-2022-06-22-at-19-07-08-einstellungen-home-assistant.png)  
    Nun auf Absenden klicken, weil das wollen wir ja  
    [![Auswahl_018.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/uIXNmLcYCQ09EU4m-auswahl-018.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/uIXNmLcYCQ09EU4m-auswahl-018.png)  
    Nun einen Bereich für den Controller auswählen. Und zwar nur für den Z-Wave USB Stick und da wählen wir als Bereich Home Assistent, denn die anderen sind noch die Toten Geräte.  
    Dann auf Fertig  
    [![Auswahl_019.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/eCCkduAV87cNrHnX-auswahl-019.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/eCCkduAV87cNrHnX-auswahl-019.png)  
    Nun können wir auf konfirgueren klicken.  
    [![Screenshot 2022-06-22 at 19-11-03 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/3aAn8FyRnny5BoAd-screenshot-2022-06-22-at-19-11-03-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/3aAn8FyRnny5BoAd-screenshot-2022-06-22-at-19-11-03-einstellungen-home-assistant.png)  
    Nun auf Geräte klicken  
    [![Screenshot 2022-06-22 at 19-12-04 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/RcB2OkXVcL9OKWWh-screenshot-2022-06-22-at-19-12-04-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/RcB2OkXVcL9OKWWh-screenshot-2022-06-22-at-19-12-04-einstellungen-home-assistant.png)  
      
    Jetzt haben wir ein Liste von Geräten.   
    [![Screenshot 2022-06-22 at 19-21-39 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/Izf2lWHxW1C6yTgK-screenshot-2022-06-22-at-19-21-39-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/Izf2lWHxW1C6yTgK-screenshot-2022-06-22-at-19-21-39-einstellungen-home-assistant.png)  
    Jetzt jedes einzelne durcklicken, **AUSSER den Z-Wave Stick USB Stick!!!!!** Nun auf die 3 Punkte klicken und auf Ausgefallen gerät klciken.  
    [![Screenshot 2022-06-22 at 19-22-45 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/UICbdS3bHd9XAdaH-screenshot-2022-06-22-at-19-22-45-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/UICbdS3bHd9XAdaH-screenshot-2022-06-22-at-19-22-45-einstellungen-home-assistant.png)  
      
    Nun Auf Gerät entfernen kicken.  
    [![Auswahl_022.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/u0GH6ushxKIuYg3N-auswahl-022.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/u0GH6ushxKIuYg3N-auswahl-022.png)  
    Auf schließen klicken.  
    Dies für alle geräte in der Liste wieder holen **AUSSER den Z-Wave Stick USB Stick!!!!!  
    [![Auswahl_023.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/t2xpHkR3cilLnJ1e-auswahl-023.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/t2xpHkR3cilLnJ1e-auswahl-023.png)** Solltet Ihr beim entfernen so eine Meldung bekommen, ist ein gerät tastsächlich erreichbar.  
    Zwei möglichkeiten. Gerät über entfernen ordnungsgemäß abmelden, oder Gerät Stromlos machen, Stecker / Batterien raus. Batterie betriebene geräte lassen sich meist so entfernen, da kein regelmäßiger ping stattfindet.  
    Bei mir war es ein Steckdosenadapter der permamnent Verbindung hat  
    Dann nochmals entfernen.  
    [![Auswahl_024.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/uu60dQm53BCLZuqi-auswahl-024.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/uu60dQm53BCLZuqi-auswahl-024.png)  
    Jetzt gehts:  
    [![Auswahl_025.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/0dEnh3NE9Lo5XgM2-auswahl-025.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/0dEnh3NE9Lo5XgM2-auswahl-025.png)  
    [![Auswahl_026.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/EoSmvgxraIbtbl99-auswahl-026.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/EoSmvgxraIbtbl99-auswahl-026.png)  
    Jetzt bleibt nur noch dier USB Stick über. fertig.  
    [![Screenshot 2022-06-22 at 19-31-20 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/XybQgjvTomSxQaGo-screenshot-2022-06-22-at-19-31-20-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/XybQgjvTomSxQaGo-screenshot-2022-06-22-at-19-31-20-einstellungen-home-assistant.png)  
    jetz kann Jungfreulich begonnen werden ;-)

# Ersteinrichtung / Z-Wave Geräte hinzufügen

**Sollten altegräte schon gelöscht worden sein, ist die Ersteinrichtung schon abgeschlossen und es kann direkt mit Gerät hinzufügen fortgefahren werden.**

Die z-Wave konfigration öffnen.  
Dazu gehen wir unter Einstellungen -&gt;Geräte &amp; Dienste -&gt; dann bei Z-Wave auf den Button konfigurieren.

[![image-1655919670585.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/XevkX0QETAKHlwAd-image-1655919670585.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/XevkX0QETAKHlwAd-image-1655919670585.png)  
Nun auf Absenden klicken, weil das wollen wir ja

[![image-1655919706534.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/xR575pEGn3GGb8Xy-image-1655919706534.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/xR575pEGn3GGb8Xy-image-1655919706534.png)  
Nun einen Bereich für den Controller auswählen.   
Über den Pfeil HomeAssistent auswählen.  
Dann auf Fertig  
[![Auswahl_028.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/TazUwxx9n7tuAhTX-auswahl-028.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/TazUwxx9n7tuAhTX-auswahl-028.png)  
Nun sieht das ganze so aus. Ein gerät. Nämlich der Stick  
  
[![Screenshot 2022-06-22 at 19-45-10 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/Rd9IEfPYpUAxIhgY-screenshot-2022-06-22-at-19-45-10-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/Rd9IEfPYpUAxIhgY-screenshot-2022-06-22-at-19-45-10-einstellungen-home-assistant.png)  
Nun wieder auf Konfigurieren klicken und unser erstes Gerät anlernen Nämlich die Steckdose.  
Dazu klicken wir unten rechts auf Gerät hinzufügen klicken.  
[![Screenshot 2022-06-22 at 19-47-11 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/YYrysYFaGAsd2o8R-screenshot-2022-06-22-at-19-47-11-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/YYrysYFaGAsd2o8R-screenshot-2022-06-22-at-19-47-11-einstellungen-home-assistant.png)  
  
Nun auf dem Steckdosenadapter den Button 10 Sekunden gedrückt halten, bis die LED anfängt zu blinken.  
[![Auswahl_029.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/veL83jxXzb31Xrlp-auswahl-029.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/veL83jxXzb31Xrlp-auswahl-029.png)  
  
Solltet Ihr es nicht rechtzeitig geschaft haben einfach auf retry klicken.  
[![Auswahl_030.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/3Rlw3q829ijg2uP5-auswahl-030.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/3Rlw3q829ijg2uP5-auswahl-030.png)  
Wenn man gleichzeitig im Log schaut, sieht man das das Gerät verbunbden wurde.  
Denn es kann mal sein (also bei mir war es bei jedem Gerät, aber es gibt schlimmeres), das suche nach Geräten stehen bleibt und das Gerät schon eingebunden wurde. Deshlab mach immer einen zweiten Tab auf und schau mir im Addon das Protokoll an.  
unter Einstellungen -&gt; Addons -&gt; Z-Wave JS -&gt; Register Protokoll und auf Aktualisieren klicken.  
Wie man sieht ist das Gerät drin, so das man dort meib Suchen auf abbrechen klicken kann.  
[![Screenshot 2022-06-22 at 20-05-03 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/olaq1r9pcT0Xuy6h-screenshot-2022-06-22-at-20-05-03-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/olaq1r9pcT0Xuy6h-screenshot-2022-06-22-at-20-05-03-home-assistant.png)  
Nun wieder in einstellungen -&gt; Geräte &amp; Dienste gehen. Jetzt setht bei Z-Wave 2 Geräte. Dort drauf klicken.  
[![Screenshot 2022-06-22 at 20-09-10 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/rlAiZEdbrwi1QYv9-screenshot-2022-06-22-at-20-09-10-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/rlAiZEdbrwi1QYv9-screenshot-2022-06-22-at-20-09-10-einstellungen-home-assistant.png)  
Nun haben wir unsere Beiden Geräte.  
wir klicken jetzt auf Home Control Metering bzw bei euch welches Z-Wave Gerät Ihr angemldet habt.  
[![Screenshot 2022-06-22 at 20-10-42 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/vwbITt5HqSSrtdrt-screenshot-2022-06-22-at-20-10-42-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/vwbITt5HqSSrtdrt-screenshot-2022-06-22-at-20-10-42-einstellungen-home-assistant.png)  
Nun haben wir eine Übersichtsseite des Gerätes.  
Welche Steuerelemnte und Sensoren es gibt.  
Wir klciken oben auf den Stift neben den Namen.  
[![Screenshot 2022-06-22 at 20-14-18 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/wPtzmTrDS28WPDi6-screenshot-2022-06-22-at-20-14-18-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/wPtzmTrDS28WPDi6-screenshot-2022-06-22-at-20-14-18-einstellungen-home-assistant.png)  
Dort vergeben wir dann einen für uns logischen Namen.  
[![Auswahl_031.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/zXYw7VzUvMbElyVo-auswahl-031.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/zXYw7VzUvMbElyVo-auswahl-031.png)  
Bei mir wäre das Steckdose Sofa.  
Das das Ding im Wohnzimmer ist, sagt uns der Bereich den wir darunter festlegen.  
Dann auf Aktualisieren klicken  
[![Auswahl_032.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/zg7sse8bvt4QXOlx-auswahl-032.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/zg7sse8bvt4QXOlx-auswahl-032.png)  
Jetzt kommt ein Hiweis,sollten wir dieses gerät schon Irgendwo in Scriptzen etc verwendet haben muss man es dort auch umbenenn. Da wir mit dem Ding aber noch nichts gemacht haben auf umbennen klicken.  
[![Auswahl_033.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/7CoU6ydxeExUKPDA-auswahl-033.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/7CoU6ydxeExUKPDA-auswahl-033.png)  
Nun steht dort Steckdose Sofa  
[![Screenshot 2022-06-22 at 20-19-05 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/cPaPAndJs8dcX0Dv-screenshot-2022-06-22-at-20-19-05-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/cPaPAndJs8dcX0Dv-screenshot-2022-06-22-at-20-19-05-einstellungen-home-assistant.png)  
Im der Hauptübersicht werden automatisch alle Entities eines Gerätes hinzugefügt.  
Diese werden in den Bereichen in Karten sortiert. Hier haben wir dann den Bereich Wohnzimmer mit den Sensoren und den Schalter  
Zu den Dashboards und Visualisierungen kommen wir später, denn dafür brauchen wir erstmal Geräte.   
Wie in der Einleitung des Buches schon erwähnt.  
[![Screenshot 2022-06-22 at 20-20-53 Übersicht – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/kKxx7penAYQjIGd3-screenshot-2022-06-22-at-20-20-53-ubersicht-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/kKxx7penAYQjIGd3-screenshot-2022-06-22-at-20-20-53-ubersicht-home-assistant.png)  
Fertig gerät hinzugefügt und Schaltbar.  
  
**Hinweis:**  
Sollten bei einem gerät mal nicht alle Eigenschaften da sein, dann bei dem gerät auf die 3 Punkte klicken und auf Gerät erneut befragen klicken.  
[![Screenshot 2022-06-22 at 20-34-17 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/YRfSYJrnBfFv2MTK-screenshot-2022-06-22-at-20-34-17-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/YRfSYJrnBfFv2MTK-screenshot-2022-06-22-at-20-34-17-einstellungen-home-assistant.png)  
Dann auf neues Interview starten klicken.  
bei Batterie betrieben Geräten muss die Taste gedrückt werden  
[![Auswahl_034.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/bRc1gWijur3Dzn9t-auswahl-034.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/bRc1gWijur3Dzn9t-auswahl-034.png)  
  
So das interview läuft  
[![Auswahl_035.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/9GwRRyiAk87mpOc4-auswahl-035.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/9GwRRyiAk87mpOc4-auswahl-035.png)  
interview abgeschlossen. Sollte trotzdem noch nichts da sein.  
neustarten interview nochmals durchführen.  
[![Auswahl_036.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/JK7owrurGPYrqqAe-auswahl-036.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/JK7owrurGPYrqqAe-auswahl-036.png)  
So sah die Karte Schlafzimmer vorher aus. Der Heizkörperthermostat fehlte:  
[![Screenshot 2022-06-22 at 20-38-38 Übersicht – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/CtJFUjlwtb4acANW-screenshot-2022-06-22-at-20-38-38-ubersicht-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/CtJFUjlwtb4acANW-screenshot-2022-06-22-at-20-38-38-ubersicht-home-assistant.png)  
So siehts dann aus:  
[![Screenshot 2022-06-22 at 21-02-40 Übersicht – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/dwclcZwe7aGUM1Om-screenshot-2022-06-22-at-21-02-40-ubersicht-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/dwclcZwe7aGUM1Om-screenshot-2022-06-22-at-21-02-40-ubersicht-home-assistant.png)  
Einige Sensoren bekommen die Modelnamen so wie der Name bei dem temperatur regler.  
Um diese umzubenennen auf die 3 Punkte klicken.  
[![Screenshot 2022-06-22 at 21-04-14 Übersicht – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/wYQkUWJ52eLsmh8C-screenshot-2022-06-22-at-21-04-14-ubersicht-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/wYQkUWJ52eLsmh8C-screenshot-2022-06-22-at-21-04-14-ubersicht-home-assistant.png)  
Nun auf die 3 Punkte klicken und dann auf das Zahnrad  
[![Auswahl_037.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/XGzmWhtKuXiJGZOY-auswahl-037.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/XGzmWhtKuXiJGZOY-auswahl-037.png)  
Dort im Feld namen den namen angeben.  
ich habe hier Heizung gewählt.   
Bei der Temperatur hab Ich als Beispiel  
Heizung: Air temperature gewählt  
Dann auf aktualiseren klicken  
[![Auswahl_039.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/02SWeugBEy42UNjL-auswahl-039.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/02SWeugBEy42UNjL-auswahl-039.png)  
Hier die Komplette ansicht umbenannt.  
[![Screenshot 2022-06-22 at 21-08-18 Übersicht – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/f4wm21ypNr8e8GXW-screenshot-2022-06-22-at-21-08-18-ubersicht-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/f4wm21ypNr8e8GXW-screenshot-2022-06-22-at-21-08-18-ubersicht-home-assistant.png)  
Das war nur ein kleiner Ausflug in die Dashbaords, weil man die Namen vorher anpassen sollte.  
Die Dashbaords bekommen ein eigenes Kapitel  
Somit ist Geräteanbindung abgeschlossen.

# Ersteinrichtung - Z-Wave Gerät entfernen

Beschreibung:

Es gibt Situationen, da gibt ein Gerät den Geist auf oder man will es schlicht und ergreifend nicht mehr haben.  
Dieses kann man über folgende Schritte ganz einfach löschen.

Beschreibung:

Auf Einstellungen -&gt; Geräte und Diesnte

[![Auswahl_199.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/jy6oDu3ISP0Qk6uz-auswahl-199.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/jy6oDu3ISP0Qk6uz-auswahl-199.png)

Dann zu Z-Wave scrollen und auf die Geräte mit anzahl klicken

[![Auswahl_201.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/Z4H8FmlDPZw3HTcm-auswahl-201.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/Z4H8FmlDPZw3HTcm-auswahl-201.png)

Nun in der Liste auf das Z-Wave Gerät klicken das wir entfernen wollen, bei mir ist es Steckdose Wohnzimmer

[![Auswahl_202.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/uZIk2xUKlm2qJZIb-auswahl-202.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/uZIk2xUKlm2qJZIb-auswahl-202.png)

Nun auf die 3 Punkte klicken

[![Auswahl_203.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/addF6lagyHMPc8Zs-auswahl-203.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/addF6lagyHMPc8Zs-auswahl-203.png)

Dort dann im Menü auf ausgefallendes Gerät entfernen klicken

[![Menü_008.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/uxyhEwep2kRjruv0-menu-008.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/uxyhEwep2kRjruv0-menu-008.png)

Gerät entfernen anklicken

[![Auswahl_204.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/PUXV7xjQxNHcaNJJ-auswahl-204.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/PUXV7xjQxNHcaNJJ-auswahl-204.png)

Das Gerät wurde entfernt auf schließen klicken.

[![Auswahl_205.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/PzGHNkogmnLerrVS-auswahl-205.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/PzGHNkogmnLerrVS-auswahl-205.png)

Das wars dann auch schon.  
Jetzt landen wir wieder in der Geräteliste. Wie zu sehen. Das Gerät ist nicht mehr in der Liste.

[![Auswahl_206.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/MZRBbBUiEfXyPFPi-auswahl-206.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/MZRBbBUiEfXyPFPi-auswahl-206.png)

# Raspberry/Mini PC nativ mit Home Assistant als reiner Z-WAVE Server

### Beschreibung:

In Virtuelle Machinen USB wie Z-Wave durchzuschleifen oder aber einfach einen weiteren Z-WAVE Server per Netzwerk zu haben weil die Reichweite nicht reicht. So kann man das Netz entweder erweitern oder überhaupt erst in der VM zur Verfügung stellen übers Netzwerk. Virtual here ist auch eine Methode. Hier wollen wir das aber mit Home Assistant machen der als reines Z-WAVE Gateway dient.

### Installation:

Ganz normal Home Assistant flashen auf den PI oder nativ auf einen Mini PC installieren und einrichten als zweite instance.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/wXYcb1xnhfKTUCZB-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/wXYcb1xnhfKTUCZB-image.png)

  
Alle Updates installieren, die Verfügbar sind.

  
Wenn noch kein Z-WAVE Netzwerk angelegt wurde bzw. ein weiteres neues Netzwerk hinzugefügt werden, also nichts migriert / verschoben werden soll.   
Dann einfach Z-WAVE JS installieren.

Ansonsten

Backup von Alter instanz erstellen. Und wenn die Grundinstallation von Home Assistant abgeschlossen ist, backup von ursprünglicher Instanz hochladen und nur das Z-WAVE Addon wiederherstellen.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/IRGXSzmTWPsa6BBK-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/IRGXSzmTWPsa6BBK-image.png)

#### Port 3000 freigeben, damit andere Instanzen verbinden können:

Nun auf Addons gehen das z-wave JS addon auswählen und Konfiguration anklicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/blMQ4rD0Kb22EOWW-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/blMQ4rD0Kb22EOWW-image.png)

Runter scrollen bis Deaktivierte Ports ausblenden und den Haken enablen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/wzhb6lrY9bkcwUbJ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/wzhb6lrY9bkcwUbJ-image.png)

Nun den Port 3000 eintragen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/BR8t0TXF7ZIKp5cq-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/BR8t0TXF7ZIKp5cq-image.png)

### Einbinden des neuen Server auf ursprünglichen System

Dazu Geräte gehen und Z-WAVE anklicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/MnO4RVHf67heBntv-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/MnO4RVHf67heBntv-image.png)

Dann auf die 3 Punkte und Neu konfigurieren auswählen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/GhFTGGqCLKYsWqXV-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/GhFTGGqCLKYsWqXV-image.png)

Den aktuellen Controller neu konfigureiren

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/CjRVfpEKeMWrDE91-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/CjRVfpEKeMWrDE91-image.png)

Nun den Haken bei Addon raus

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/YFYJbExcJQsC6JR2-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/YFYJbExcJQsC6JR2-image.png)

Nun die neue IP samt Port eintragen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/PAEfBwakTV7tD4Hr-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/PAEfBwakTV7tD4Hr-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/Lzd7yUoZqBC8uEUK-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/Lzd7yUoZqBC8uEUK-image.png)

Nun sollten die Geräte wieder verfügbar sein

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/ATB8jPuPJm4p70f4-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/ATB8jPuPJm4p70f4-image.png)

Wir klicken auf Geräte und haben die Geräte Liste

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/PA6DRe5sW4RG5OqH-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/PA6DRe5sW4RG5OqH-image.png)

### Test vom Dashboard die Tür zu zu schließen als Beispiel:

Ein klick auf ausgeschlossen sollte das Schloss jetzt schließen, wenn alles geklappt hat

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/uFni6dGje5k2e9tW-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/uFni6dGje5k2e9tW-image.png)

Es funktioniert, abgeschlossen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/d3QVdeGHgMZjue6d-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/d3QVdeGHgMZjue6d-image.png)

Fertig

### Einbinden als weiteren Server auf Ursprünglichem System:

Unter Geräte gehen und dann integration hinzufügen anklicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/vCWp5H7xOGUguedZ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/vCWp5H7xOGUguedZ-image.png)

Z-WAVe als suchbegriff eingeben und auf Z-Wave klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/khYAsxcnYjIrTS0H-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/khYAsxcnYjIrTS0H-image.png)

Dann z-wave auswählen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/jDwpASLDUJRUT9iZ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/jDwpASLDUJRUT9iZ-image.png)

Wieder den haken fürs Addon raus

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/JDt7eOJ9qQPoI9n4-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/JDt7eOJ9qQPoI9n4-image.png)

Nun die neue IP samt Port eintragen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/PAEfBwakTV7tD4Hr-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/PAEfBwakTV7tD4Hr-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/Lzd7yUoZqBC8uEUK-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/Lzd7yUoZqBC8uEUK-image.png)

Nun sollten die Geräte wieder verfügbar sein.  
Fertig

# Geräte - Zigbee

# Crossflash Silvercrest Gateway Zigbee Smart Home SGWZ for HomeAssistant

Beschreibung:

Ein wirklich günstiger ZigBEe Netzwerkgateway, der ursprünglich nur für Tuya gedacht ist.  
Aber diesen kann man Crossflasehn / modifizieren, so das man diesen ganz normal über die ZigBee integration  
ZHA (Zigbee Home Automation) einbinden kann.  
Dazu muss man allerdings muss man aus dem SPI das root SSH Kennwort auslesen.  
Also Gerät öffnen und dann die PINS an ein 3,3 Serial Port TTL Adapter

Vorraussetzungen:

<table border="1" id="bkmrk-name-beschreibung-li" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 33.2922%;">**Name**  
</td><td style="width: 33.2922%;">**Beschreibung**  
</td><td style="width: 33.2922%;">**Link**  
</td></tr><tr><td style="width: 33.2922%;">AZDelivery 1x USB-C zu TTL Serial Adapter für 3,3V und 5V</td><td style="width: 33.2922%;">3,3V ttl Adapter   
(Dieser ünterstützt 5V und 3,3v per Jumper einstellbar)   
</td><td style="width: 33.2922%;">[AZDelivery 1x USB-C zu TTL Serial Adapter für 3,3V und 5V](https://www.amazon.de/AZDelivery-Adapter-kompatibel-FT232RL-inklusive/dp/B0DJ2J8LJM/ref=sr_1_4?crid=3F1WH0DVU98YE&dib=eyJ2IjoiMSJ9.Uf7K0c526Y0Lz-8w3XladiPbUz3av5VX2c1V0JYbI0jBKUeI7O-p7Fpcgg_Si3cCDs6neRRF9p70GWhR66lLK_KbTh1XhYShcb_Z42-lG3mjkGTbQ49_VSedXRj_D9OGQAYQ8AbxMTZPwxI570tcDsMEve4CNWmJFz0buSrEfuTtTP5xi5ONDo80kksYYXS-g5OZ1CvRusTUTdTj6M_BJ-GSoFR6I7OdL-MkvGGJOgM.LdaE2X7PVvIKoaMfW7q5vUf8-esUrzLtEFPici_rk3s&dib_tag=se&keywords=3%2C3v%2Bserial%2Bttl%2Badapter&nsdOptOutParam=true&qid=1732220847&sprefix=3%2B3v%2Bserial%2Bttl%2Badapter%2Caps%2C81&sr=8-4&th=1)

</td></tr><tr><td style="width: 33.2922%;">Zoegneer SDK08 IC-Chip-Klemmen-Set   
</td><td style="width: 33.2922%;">Testhaken für elektrische Prüfung für ultrakleine Clips zum Testen von Chip</td><td style="width: 33.2922%;">[Zoegneer SDK08 IC-Chip-Klemmen-Set Testhaken](https://www.amazon.de/gp/product/B0D4VCRTST/ref=sw_img_1?smid=A32HCSIF4YCHWO&psc=1)

</td></tr><tr><td style="width: 33.2922%;">Silvercrest Gateway Zigbee Smart Home SGWZ 1 A1 </td><td style="width: 33.2922%;">Silvercrest Gateway Zigbee Smart Home SGWZ 1 A1 </td><td style="width: 33.2922%;">[Silvercrest Gateway Zigbee Smart Home SGWZ 1 A1](https://www.amazon.de/gp/product/B0BCX3DZ9D/ref=ox_sc_act_title_3?smid=A1CGK6I30HZOLV&psc=1)

</td></tr></tbody></table>

[https://paulbanks.org/projects/lidl-zigbee/ha/](https://paulbanks.org/projects/lidl-zigbee/ha/)

[https://paulbanks.org/projects/lidl-zigbee/root/](https://paulbanks.org/projects/lidl-zigbee/root/)

# Installation Zibee ZHA Addon

Beschreibung:  
  
Deses ZigBee Addon inst eine reine Integration.  
Diese wird über Geräte integration hinzufügen installiert, einfach zigbee eingeben und draufklicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/iOfATpbTYSz0Qxph-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/iOfATpbTYSz0Qxph-grafik.png)

Nun auswählen welchen USB Port man nehmen will.  
Beim Dual Adapter wie bei mir ist Zigbee USB1

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/PSzvasZpfqqnMN4l-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/PSzvasZpfqqnMN4l-grafik.png)

# installtion Zigbee2MQTT

### Beschreibung:

Zigbee2MQTT ist für mich der Nachfolger von ZHA.  
Denn das ZigbeeNetz ist doch recht empfindlich.  
Pro Repeater oder Controller sollte man nicht mehr als 5 Kinder dran haben.  
Das ein Repeter der Am Repeater hängt wieder 5 Kinder hat, ist komischerweise egal.  
In Zigbee2MQTT kann ich Explizit einstellen wer die Eltern sein soll.  
Bei Z-Wave geht das nicht, da gibts nur den Befehl routen neu aufbauen.  
Genauso wie bei ZHA.   
  
Allerdings ist Z-wave ein bisschen stabiler als Zigbee da es auf 838 MHz funkt.  
Aber wir sind hier bei Zigbee.  
  
Eine kleine Planung siehe in diesem Artikel. Sie gillt für Z-WAVE wie für Zigbee.

###   
Vorrausetzung:

Es muss ein MQTT-Broker vorhanden sein. Und dort wo die Entitäten dann erstellt werden sollen, die MQQT integration aktiv sein.  
Mit eingeschaltetem Discovery, was standard mäßig eingeschaltet ist.

### Installtion:

Im Addon-Store auf dieses Repository einfügen

[https://github.com/zigbee2mqtt/hassio-zigbee2mqtt](https://github.com/zigbee2mqtt/hassio-zigbee2mqtt)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/7aj4SCBkpSt6zNvy-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/7aj4SCBkpSt6zNvy-grafik.png)  
Nun erscheint es in der Liste, dann auf schließen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/BnlyWTUCPWOBytBn-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/BnlyWTUCPWOBytBn-grafik.png)

Jetzt STRG+F5 drücken um den Browser Cache zu leeren und dann als zuchbegriff zigbee eingeben.  
Dann sollte das Addon erscheinen, dort dann drauf klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/wyvQwVmz04zGd0GI-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/wyvQwVmz04zGd0GI-grafik.png)

Nun auf installieren klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/wlDFfC9stTBVrL3T-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/wlDFfC9stTBVrL3T-grafik.png)

Unter Informationen allen Anhaken / enablen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/OCTXPgSdIk2XPcnJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/OCTXPgSdIk2XPcnJ-grafik.png)

Dann auf den Reiter konfiguration.  
Der Socat teil wird automatisch ausgeführt.

Dann die mqtt daten rein.  
Und unter Serial entweder die Schnittselle am Gerät oder wenn es ein Netzwerkgerät ist die IP mit Port

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/qP5vrX1ljiaYCVnz-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/qP5vrX1ljiaYCVnz-grafik.png)

MQTT zum kopieren, eure Daten natürlich anpassen

```
server: mqtt://core-mosquitto:1883
user: mqtt
password: my_password
```

Serial , eure Daten wie USB und IP anpassen

<table border="1" id="bkmrk-name-verbindung-seri" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td>**NAME**</td><td>**Verbindung**</td><td>**Serial**</td></tr><tr><td>SMLIGHT SLZB Reihe</td><td>Netzwerk LAN</td><td>```
port: tcp://192.168.177.91:6638
baudrate: 115200
adapter: ember
disable_led: false

```

</td></tr><tr><td>SMLIGHT SLZB Reihe</td><td>USB</td><td>```
leer lassen kann im onboarding ausgewählt werden


```

</td></tr><tr><td>Generic USB</td><td>  
</td><td>```
leer lassen kann im onboarding ausgewählt werden


```

</td></tr></tbody></table>

Nun das Addon starten und ins Protokoll gehen.  
Dort sehen wir die Onboarding Seite

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/JVwC25ANRGgcUXKl-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/JVwC25ANRGgcUXKl-grafik.png)

In der Seitenleiste einfach das Addon Anklicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/BL8717y3y2r1ADve-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/BL8717y3y2r1ADve-grafik.png)

Dort können alle Einstellungen so bleiben wenn es Netzwerk ist (steht da ja auch, kann ignoriert werden, wenne s netzwerk ist), ansonsten Stick adapter Baudrate auswählen.  
Dann submit.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/vozTabwiXqvYdIwJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/vozTabwiXqvYdIwJ-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/mr7nxqC2edkFCFdu-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/mr7nxqC2edkFCFdu-grafik.png)

Jetzt startet Zigbee2MQTT

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/fLUs9AoRGdqpJJMf-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/fLUs9AoRGdqpJJMf-grafik.png)

Wenn alles geladen ist. Siehe Log

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/DUFB3Wba6hoxHqQw-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/DUFB3Wba6hoxHqQw-grafik.png)

### Gerät einrichten anlernen:

Dann nochmal in das Addon gehen über die Seitenleiste  
Über anlernen aktivieren.  
  
Kann dann auch das erste Gerät gepaired werden.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/DO9HtWWHqM4JrVlh-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/DO9HtWWHqM4JrVlh-grafik.png)

Mann kann aber auch einen Router auswählen wenn zum Beispiel schon eine Steckdose da ist, dann kann man gezielt den Router wählen an den angelernt werden soll übers pull down Menü, gibt es noch keine Geräte dann gibts ja nur alle bzw nur den Coordinator

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/sudTNZtN5QZJdQ9q-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/sudTNZtN5QZJdQ9q-grafik.png)

oben läuft ein Timer

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/ZGqNJHSbfaTRLh6G-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/ZGqNJHSbfaTRLh6G-grafik.png)

Unten rechts erscheint das das es los gehen kann.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/laCEDa7QT1SJbu2L-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/laCEDa7QT1SJbu2L-grafik.png)

  
Wir nehmen hier zum Test eine IKEA Steckdose mit Messung , die wir hier aber eigentlich als Router zweckentfremden.  
Mit ner Büroklammer oder SIM Karten Slot öffner auf den reset Knop und Zack wurde die Steckdose gefunden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/ZDgG8WNogcqaDiXS-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/ZDgG8WNogcqaDiXS-grafik.png)

Unten rechts auch nochmals die Benachrichtigung

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/FrtE1lB6Gyiwey3h-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/FrtE1lB6Gyiwey3h-grafik.png)

Über den Stift Können wir jetzt der Steckdose einen Namen geben

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/0gnlSl0IjTeRcIJ7-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/0gnlSl0IjTeRcIJ7-grafik.png)

Nun haben wir einen Neuen Dialog.  
Namen ersetzen Haken rein auch Home Assistant Entity umbennen rein, dann auf umbenennen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/MdcHsqqPxo3QnyCh-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/MdcHsqqPxo3QnyCh-grafik.png)

Dann sieht das ganze so aus:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/PMSzjcBy4RLGswr7-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/PMSzjcBy4RLGswr7-grafik.png)

Die Steckdose selbst ist zu finden unter Geräte bei MQTT, dort drauf klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/8Pool0jHQlLQUndn-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/8Pool0jHQlLQUndn-grafik.png)

Da auf die Steckdose klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/qqLT81bL3UqlK29d-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/qqLT81bL3UqlK29d-grafik.png)

Die ganz normale Übersichtsseite. Hier kann die Steckdose zum test geschaltet werden.  
Sie ist eine ganz normale Entität die in den Dashbaords Automationen etc verwendet werden kann.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/OJ789oSGMPi1hu1d-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/OJ789oSGMPi1hu1d-grafik.png)

Die Karte:

Um die Karte zu öffnen, oben auf Karte klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/0NnWf6GT1BcfZ8ZA-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/0NnWf6GT1BcfZ8ZA-grafik.png)

Dann auf laden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/s4nHJdcbA8vRtxMN-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/s4nHJdcbA8vRtxMN-grafik.png)

Nun haben wir eine Übersicht. Dort sehen wir auch unsere Steckdose

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/B7F7sR6npjNGQlUg-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/B7F7sR6npjNGQlUg-grafik.png)

Man achte auf die Legende unten. Da ein Strom Betriebenes Gerät ist, ist es auch ein Router.  
Anhand der Farben sieht man auch was welche Verbindung ist.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/Yxlc9ztWGjOJ9UJx-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/Yxlc9ztWGjOJ9UJx-grafik.png)

  
Oben rechts bekommt man die Info ob es ein Kind oder auch ein Parent ist.  
Router sind immer parents warum? Weil sich andere Geräte mit Ihnen verbinden können.  
Ein Türkontakt mit Batterie kann immer nur ein Kind sein, das zum nächsten Router oder Coordinator verbunden ist.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/wztPnqMBV6mPxLYg-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/wztPnqMBV6mPxLYg-grafik.png)

### Gerät anderen Parent geben:

Beispielkarte vorher, unser Fensterkontakt ist am Coordinator. Soll aber an den Router Steckdose Flur, weil wir den Kontakt versetzten wollen und der Router Steckdose Flur ist dann näher.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/7dpvis4djNCTFJuh-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/7dpvis4djNCTFJuh-grafik.png)

Oben über das Drop down Menü auswählen an Welchen router der Verbunden werden soll, in unserem Beispiel Steckdose Flur

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/u9rhAvkbsMLL4Y2M-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/u9rhAvkbsMLL4Y2M-grafik.png)

Nun auf dem Fensterkontakt 4 mal die pairing Taste drücken und jetzt wird das Gerät abgemeldet. Meldungen unten rechts

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/qgG2tEWBE5bRAOtK-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/qgG2tEWBE5bRAOtK-grafik.png)

Nun wieder angemeldet

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/AUnsJdjnkW8hRndS-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/AUnsJdjnkW8hRndS-grafik.png)

Anmeldung erfolgreich

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/76ItYrN1MJlg9wJf-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/76ItYrN1MJlg9wJf-grafik.png)

Karte neu laden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/NAMudEIAfQY9TcZz-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/NAMudEIAfQY9TcZz-grafik.png)

Fensterkontakt verbunden mit Steckdose Flur

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/MHoqBPErSTKqelVX-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/MHoqBPErSTKqelVX-grafik.png)

Fertig umgezogen.

# Installation/konfiguration Integration SMLIGHT SLZB für Netzwerk Zigbee Adapter

### Beschreibung:

Diese Integration konfiguriert SLZB-zigbee Adapter. Diese Integration ist von Haus aus in Home Assistant vorhanden.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/Ma5sQgGfa5BZjjnw-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/Ma5sQgGfa5BZjjnw-grafik.png)

### Konfiguration:

Unter Geräte, wenn der Adapter im gleichen Netzwerk ist findet das Autodiscovery den, ansonsten über integration hinzufügen und dann SMLIGHT eingeben in der suche.

#### Autodiscover:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/LkTLQdNr0MO2krsS-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/LkTLQdNr0MO2krsS-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/WGtfAx7kY6yWRlzv-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/WGtfAx7kY6yWRlzv-grafik.png)

Nun dem Gerät einen Namen geben und einen Bereich hinzufügen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/AJHNCFOnOdgss4qC-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/AJHNCFOnOdgss4qC-grafik.png)

#### Manual:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/LmrjTkmesZkzvUVH-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/LmrjTkmesZkzvUVH-grafik.png)

Nun die IP eingeben

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/NuPHAvhrx5O4OAxb-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/NuPHAvhrx5O4OAxb-grafik.png)

Nun dem Gerät einen Namen geben und einen Bereich hinzufügen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/AJHNCFOnOdgss4qC-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/AJHNCFOnOdgss4qC-grafik.png)

#### Fertig:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/qMyNfl0cVKMz77VA-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/qMyNfl0cVKMz77VA-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/NrLGQe5X4XJvn0A0-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/NrLGQe5X4XJvn0A0-grafik.png)

Updates:

Über die Integration können Updates eingespielt werden.  
Auf das Gerät gehen und dann updates anklicken, dann auf aktualisieren klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/j5nyHYxsihTWiEuy-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/j5nyHYxsihTWiEuy-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/bFqDVwcZPgWILT4X-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/bFqDVwcZPgWILT4X-grafik.png)

Vorgang läuft

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/ERtHIZc5KaJBkGhg-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/ERtHIZc5KaJBkGhg-grafik.png)

Fertig, über x schließen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/gi1DP1Q9sq5QdfsN-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/gi1DP1Q9sq5QdfsN-grafik.png)

Falls es noch weitere Updates gibt wieder drauf klicken. Für Core und Zigbee alles aktuell ist.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/905SMsU9I7tf69gI-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/905SMsU9I7tf69gI-grafik.png)

# Zigbee Geräte Pairingmodus versetzen

### Beschreibung:

Jedes eigene Zigbee Gerät hat seine eigene Tücke für den Pairing modus.  
Das nervt. Hier eine Liste von Geräten die ich schon benutzt habe.

### Pairing Modus:

<table border="1" id="bkmrk-name-bild-wie-in-den" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 36.7096%;"></col><col style="width: 21.5812%;"></col><col style="width: 41.8263%;"></col></colgroup><tbody><tr><td>**Name**</td><td>**Bild**</td><td>**Wie in den pair/Kopplungsmodus setzten?**</td></tr><tr><td>IKEA PARASOLL Fenster Kontakt</td><td>[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/nwxYPdhrailx1spw-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/nwxYPdhrailx1spw-grafik.png)

</td><td>Vier mal den Link Button schnell hintereinander Drücken</td></tr><tr><td>IKEA INSPELLING Steckdose mit   
Verbrauchsmessung</td><td>[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/BTTPi4deC3ZFhK71-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/BTTPi4deC3ZFhK71-grafik.png)

</td><td>mindestens 5  
Sekunden lang die Reset-Taste gedrückt halten für Werksreset dann geht der wieder in den Pair Modus</td></tr><tr><td>IKEA SOMRIG Schalter</td><td>[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-09/scaled-1680-/BycjywszOkx8nXrI-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-09/BycjywszOkx8nXrI-image.png)

</td><td>4 mal hintereinander die Pairng Taste drücken</td></tr></tbody></table>

# Geräte - X-Sense

# Einrichtung X-Sense Basis

### Beschreibung:

X-Sense ist ein Hersteller für Rauchmelder und Kameras.  
Es wird ein Konto benötigt und die Basis wenn vorhanden

### Einrichtung App:

Zuert auf dem Smartphone ein die X-Sense App downloaden und ein Konto einrichten.  
Im App Store unter : [https://play.google.com/store/apps/details?id=com.xsense.security](https://play.google.com/store/apps/details?id=com.xsense.security)

#### Hinweis:

Wenn ein Rauchmelder mit Basis vorhanden über die App erstmals die Basis einrichten.  
Für Später, wenn die Rauchmelder wieder bei einer Arlamauslösung Stumm gestaltet werden soll.  
geht das über die taste an der Basis.

#### Geräte App hinzufügen.

Unter Gerät hinzufügen Rauchmelder mit Bais, oder wenn keine vorhanden ist ohne.  
Dann auf das jeweilige Gerät klicken und dann den Rauchmelder hinzufügen, da Basis ja schon eingrichtet.  
bei WLAN die Taste zwei mal schnell drücken und dann nochmals zweimal schnell hinterander  
(Bei Bluettoth ohne WLAN Basis die Taste 5 Sekunden gedrückt halten.

Dann sollte das ganze so aussehen. Ohne Basis natürlich ohne Basis abgebildet.

### [![Screenshot_2024-11-29-16-25-17-30_1fea703cb54905065f405a937799727f.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/iFjYKlQy64tzf2uE-screenshot-2024-11-29-16-25-17-30-1fea703cb54905065f405a937799727f.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/iFjYKlQy64tzf2uE-screenshot-2024-11-29-16-25-17-30-1fea703cb54905065f405a937799727f.jpg)

### Integration in Home Assistant installieren

Unter HACS eine neue Repo hinzufüge

[![Menü_015.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/nq1Kez45zNtbVWrS-menu-015.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/nq1Kez45zNtbVWrS-menu-015.png)

Als Typ integration auswählen und URL einfügen  
[https://github.com/Jarnsen/ha-xsense-component\_test](https://github.com/Jarnsen/ha-xsense-component_test)

[![Auswahl_429.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/4rFSAU9AsXfGziF5-auswahl-429.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/4rFSAU9AsXfGziF5-auswahl-429.png)

Nun nach der erweitung mit dem Suchbegriff x-s suchen und anklicken

[![Auswahl_430.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/yhCs8A4hoab2elUt-auswahl-430.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/yhCs8A4hoab2elUt-auswahl-430.png)

[![Auswahl_431.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/dVO13kdgVDkGRCaC-auswahl-431.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/dVO13kdgVDkGRCaC-auswahl-431.png)

Nun Home Assistant neustarten  
Nach der Installation auf Geräte gehen und Integration hinzufügen klicken

[![Auswahl_432.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/uQBNOOcUXTGl3Ia1-auswahl-432.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/uQBNOOcUXTGl3Ia1-auswahl-432.png)

Nun x-se eingeben und auf die Integration X-Sense klciken

[![Auswahl_433.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/rlgfLUxIA4MRbsd4-auswahl-433.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/rlgfLUxIA4MRbsd4-auswahl-433.png)

Eben warten kann bis zu ner Minute dauern

[![Auswahl_434.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/3iQ2TemLrkaLFL3o-auswahl-434.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/3iQ2TemLrkaLFL3o-auswahl-434.png)

Nun die Zugangsdaten eingeben von Online Konto und ok klicken

[![Auswahl_435.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/Tol6auqHO2pKQtno-auswahl-435.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/Tol6auqHO2pKQtno-auswahl-435.png)

Nun Die Räume zuweisen

[![Auswahl_436.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/oGagN6rxSUbIIyO7-auswahl-436.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/oGagN6rxSUbIIyO7-auswahl-436.png)

Eingerichtet.

Unter Gräte sind diese nun gelistet

# Geräte - Tuya

# Vergleich der Addons

### Beschreibung:

Von Tuya gibt es zwei Addons eine ist eine Custom Integration aus dem HACS Store namens localtuya und die andere ist seid Februar 2024 offical in Home Assistant integriert.  
Die Offizielle nennt sich auch Smart Life, weil Smart Life ist die Offizielle App für Tuya Geräte Scenen etc. Aber halt mit Cloud Zwang. Und da fangen die Unterscheide an.

<table border="1" id="bkmrk-funktion-lokal-tuya-" style="border-collapse: collapse; width: 100%; height: 302.551px;"><tbody><tr style="height: 29.7167px;"><td style="width: 33.2922%; height: 29.7167px;">**Funktion**  
</td><td style="width: 33.2922%; height: 29.7167px;">**lokal Tuya**  
</td><td style="width: 33.2922%; height: 29.7167px;">**Smart Life / Tuya Offiziell integration**  
</td></tr><tr style="height: 29.7167px;"><td style="width: 33.2922%; height: 29.7167px;">Scenen import  
</td><td style="width: 33.2922%; height: 29.7167px;">nein  
</td><td style="width: 33.2922%; height: 29.7167px;">Ja  
</td></tr><tr style="height: 153.967px;"><td style="width: 33.2922%; height: 153.967px;">Alle geräte von Tuya unterstützt  
</td><td style="width: 33.2922%; height: 153.967px;">nur  
- Schalter
- Lichter
- Rolläden
- Ventilatoren
- Heizung / Klimanlagen
- Staubsauger

</td><td style="width: 33.2922%; height: 153.967px;">Alle (Sollten Geräte als Unsoppreted sein, kann man in der Smart Life App eine Scene erstellen die das gewünschte ausführt und dann in Home Assitant die Scene benutzen.  
Scenen werden in Home Assistant auch als Geräte angezeigt  
</td></tr><tr style="height: 29.7167px;"><td style="width: 33.2922%; height: 29.7167px;">Cloud zwang / Smart Life App zwang  
</td><td style="width: 33.2922%; height: 29.7167px;">Nein  
</td><td style="width: 33.2922%; height: 29.7167px;">Ja  
</td></tr><tr style="height: 29.7167px;"><td style="width: 33.2922%; height: 29.7167px;">Kostenpflichtige Cloud API  
</td><td style="width: 33.2922%; height: 29.7167px;">Jein  
</td><td style="width: 33.2922%; height: 29.7167px;">Nein</td></tr><tr><td style="width: 33.2922%;">Dauer-Internetverbindung zum Benutzer der Geräte benötigt  
</td><td style="width: 33.2922%;">nein  
</td><td style="width: 33.2922%;">Ja  
</td></tr><tr style="height: 29.7167px;"><td style="width: 33.2922%; height: 29.7167px;">Installationsaufwand  
</td><td style="width: 33.2922%; height: 29.7167px;">Extremer aufwand, denn Die Eigenschaften für Jedes Gerät müssen selbst festgelegt werden.  
Developer Account 1 Monat Gratis, für die Ersteinrichtung gebraucht. Gibt aber ein Android Emulator Trick. Aber eben aufwendig.  
Nachtrag um neue Geräte zu Discovern braucht man auch Cloud.  
</td><td style="width: 33.2922%; height: 29.7167px;">Einfach</td></tr></tbody></table>

### Mein Fazit:

Sterbt den tot des Cloud Zwang über die Smart Live App.  
Alles andere ist Käse...  
Deswegen hab ich auch kein Artikel für die local App.  
Denn wenn Ihr neue Gräte eingebunden habt, braucht Ihr bei der local App auch cloud.  
Wollt Ihr dieses nicht müsst über den Android Emulator Trick, euch die Devices IDs holen und alle Geräte selbst anlegen.  
Über die local Integration denk ich dann nach.  
Wenn es die Life App nicht mehr gibt. Weil die Geräte vom Hersteller irgendwann End of Life sind.  
Acho Zig Bee Geräte sind von der Integration nicht betroffen, weil die Richten wir direkt über Zigbee ein.  
Da brauchen wir kein Addon  
Die Integration wird nur für Bluetooth WLAN Produkte benötigt.

### Also lange Rede kurzer Sinn:

Sucht euch Geräte mit den gleichen Funktionen wie die von Tuya von anderen Herstellern mit Z-Wave oder Zigbee wenn das Tuya Gerät nur als WLAN Version verfügbar ist.

# Einrichtung Offizielle Tuya Integration

Beschreibung:

Wie im Artikel Vergleich schon beschrieben hier die Offizielel integration, weil alles andere meines erachtens Sinnlos ist

[Vergleich der Addons](https://wiki.hacker-net.de/books/home-assistant/page/vergleich-der-addons "Vergleich der Addons")

Vorraussetzung:

Auf dem Smartphone die Life App installiert und alle Geräte verbunden.  
Das wars auch schon, kein Developer Account oder sonstigen Quatsch

Einriochtung:

Unter Einstellungen -&gt; Geräte-&gt; AUf integration hinzufügen klicken

[![Auswahl_100.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/UZQ3TqUj60JIsRju-auswahl-100.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/UZQ3TqUj60JIsRju-auswahl-100.png)

[![Auswahl_101.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/lYSJxTBQY7OKOu0P-auswahl-101.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/lYSJxTBQY7OKOu0P-auswahl-101.png)

[![Auswahl_102.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/h38blJpJpqDg30bq-auswahl-102.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/h38blJpJpqDg30bq-auswahl-102.png)

Als Suchbegriff tuya eintippen und auf den Eintrag tuya tippen. An den Wolken Symbol sieht man das eine dauerhafte Internetverbindung benötigt wird, da die Integration die Geräte über die Cloud steuert.

[![Auswahl_103.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/mPHDcl2Mtu3NYHCf-auswahl-103.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/mPHDcl2Mtu3NYHCf-auswahl-103.png)

Nun müssen wir einen Benutzercode eingeben

[![Auswahl_104.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/XF1jo3BaAjDceftJ-auswahl-104.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/XF1jo3BaAjDceftJ-auswahl-104.png)

Diesen bekommen wir in der Smartlife App.

App öffnen unten Auf Profil klicken

[![IMG_20240908_135549.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/y1EAPmX9cNV6beFg-img-20240908-135549.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/y1EAPmX9cNV6beFg-img-20240908-135549.jpg)

Dann oben auf Einstllungen

[![IMG_20240908_135615.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/PDz7OoS5d5PwvZ9u-img-20240908-135615.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/PDz7OoS5d5PwvZ9u-img-20240908-135615.jpg)

Dort auf Konto und Sicherheit

[![IMG_20240908_135635.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/A5RUnSHcv9EiOG3w-img-20240908-135635.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/A5RUnSHcv9EiOG3w-img-20240908-135635.jpg)

Runtercrollen zum Benutzercode

[![IMG_20240908_135738.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/tOWNuAJ7itij11T4-img-20240908-135738.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/tOWNuAJ7itij11T4-img-20240908-135738.jpg)

Diesen Benutzercode dann in Home Assistant eingeben und absenden klicken

[![Auswahl_105.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/lbbPgssNgaijObAc-auswahl-105.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/lbbPgssNgaijObAc-auswahl-105.png)

Nun kommt ein QR Code der in der App gescannt werden muss.

[![Auswahl_106.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/dQXO3Zf4igBAIS33-auswahl-106.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/dQXO3Zf4igBAIS33-auswahl-106.png)

Dazu in der App auf das QR-Code Scannen Symbol oben gehen.

[![IMG_20240908_135859.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/zfnYoDqrXqKyv9lj-img-20240908-135859.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/zfnYoDqrXqKyv9lj-img-20240908-135859.jpg)

Nachdem der QR Code gescannt wurde login bestätigen anklicken in der App.

[![Screenshot_2024-09-08-13-59-12-17_a3b3f7ff182fbca1933b088238f0f0da.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/WUnsy7kKaB4I89eF-screenshot-2024-09-08-13-59-12-17-a3b3f7ff182fbca1933b088238f0f0da.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/WUnsy7kKaB4I89eF-screenshot-2024-09-08-13-59-12-17-a3b3f7ff182fbca1933b088238f0f0da.jpg)

Nun die App schließen (nicht in den Hintergrund sondern richtig schließen, bei iPhone / Android wegwischen)

Jetzt kann auf Absenden im Home Assistant geklickt werden.

[![Auswahl_107.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/FsWAEWBG2EOklpZ9-auswahl-107.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/FsWAEWBG2EOklpZ9-auswahl-107.png)

Nun werden alle Geräte die in der App gekoppelt sind und können in Home Assistant Bereichen zu geordenet werden.

[![Auswahl_108.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/5OPlK1g0EH2sXQGg-auswahl-108.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/5OPlK1g0EH2sXQGg-auswahl-108.png)

Die Bereiche auswählen und auf Fertig klicken.  
[![Auswahl_109.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/c774nFx4tmZ6gHnU-auswahl-109.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/c774nFx4tmZ6gHnU-auswahl-109.png)

Nun sind die Tuya Geräte eingrichtet.  
Sollten Geräte als Unsopprted da stehen, in der App eine Scene erstellen die das das Gerät bedient.  
Diese Scene wird in Homeassistant wieder als Gerät erkannt und so kann man das Gerät dann bedienen.

[![Auswahl_110.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/uAeuKQB3cmsC62KV-auswahl-110.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/uAeuKQB3cmsC62KV-auswahl-110.png)

# Tuya Rolläden laufen verkehrt rum - Hoch ist runter und Runter ist hoch

Beschreibung:

Sehr ätzend ist das Tuya Rolläden von HA anscheinend ein falschen Status bekommen.   
Öffnet man in Home Assistant schließt er in der Realität.  
Schließ man, öffnet er.  
Echt ätzend.

Wir behelfen uns hier mit einem Sensor Template und wenn keine Automatisierungen benötigt werden mit eine Lobvlace Karte wo man die Funktion invertieren kann.  
.  
Ein Extra Kapitel für Sensor Templates findet Ihr hier : (kommt noch)

Lösung:

Wenn man die Werte auch für Automationen braucht dieser Lösungsansatz mit Sensor template

[https://community.simon42.com/t/tuya-rolloschalter-status/8257/12](https://community.simon42.com/t/tuya-rolloschalter-status/8257/12)

Ansosten Gibt es eine Karte wo man das Invertieren kann, wenn man keine Automatisierungen braucht

[https://github.com/berrywhite96/lovelace-shutter-row](https://github.com/berrywhite96/lovelace-shutter-row)

# Geräte - AVM SmartHome

# Einrichtung AVM Smart Home Geräte

### Beschreibung:

Die Fritz Produkte von AVM lassen sich auch in Home Assistant integrieren.  
Diese müssen zuerst ganz normal in der Fritzbox angemeldet werden.

### Installation:

#### Einrichtung auf der Fritzbox.

In Der Fritzbox anmeldeun und dannunter Smart Home -&gt; Geräte Gruppen -&gt; Anmelden gehen.

[![Auswahl_171.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/i2LXDlExMEP7fXLC-auswahl-171.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/i2LXDlExMEP7fXLC-auswahl-171.png)

Dann erscheint dieser Dialog

[![Auswahl_172.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/y3TZ9Vt9UckqgTjc-auswahl-172.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/y3TZ9Vt9UckqgTjc-auswahl-172.png)

Nun auf dem AVM Smart Home Gerät die DECT / Connect Taste drücken

[![Auswahl_176.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/1szDvX5NFk5jPEiJ-auswahl-176.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/1szDvX5NFk5jPEiJ-auswahl-176.png)

Wenn verbunden leuchtet die DECT / Connect Taste durchgehend.

[![Auswahl_177.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/jaBlsZ4R0ZtRTlNz-auswahl-177.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/jaBlsZ4R0ZtRTlNz-auswahl-177.png)

Auf der Fritzbox Seite erscheint auch das das Gerät verbunden ist. Wir klicken zurück zur Übersicht an

[![Auswahl_173.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/aGmZaQGkGmowB0z9-auswahl-173.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/aGmZaQGkGmowB0z9-auswahl-173.png)

Nun haben wir die Geräte liste. Sollte es da Updates geben führen diese erstmal aus.

[![Auswahl_174.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/quI2nSNudKufc51D-auswahl-174.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/quI2nSNudKufc51D-auswahl-174.png)

Jetzt warten bis Update fertig

[![Auswahl_175.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/0kFN4zUgYoyK7xMR-auswahl-175.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/0kFN4zUgYoyK7xMR-auswahl-175.png)

Wenn Update fertig steht nur noch OK da.

[![Auswahl_178.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/6L5VYUEBbtee6SAT-auswahl-178.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/6L5VYUEBbtee6SAT-auswahl-178.png)

Jetzt klicken wir bei dem Gerät auf den Stift

[![Auswahl_179.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/M7R5S9PE2323wlxo-auswahl-179.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/M7R5S9PE2323wlxo-auswahl-179.png)

Hier vergeben wir einen Namen und das Verhalten wenn das Gerät neu gestartet wird.

[![Auswahl_180.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/q8eiOv8QcI5FhrA1-auswahl-180.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/q8eiOv8QcI5FhrA1-auswahl-180.png)

  
Das Verhalten ist nach Persönlichem geschmack.  
Ich lasse es beim neustart auf letzter Zustand  
Als Name vergebe ich hier 3D Drucker, weil es die Steckdose für meinen 3D Drucker werden soll.  
Dann auf übernehmen.

[![Auswahl_181.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/4i8BLwBZQvjtSrkv-auswahl-181.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/4i8BLwBZQvjtSrkv-auswahl-181.png)

Wenn man möchte und das ein gerät ist was Statistiken wie Temperatur und Energiewerte hat.  
Kann man die auf den nächsten Reitern in der Geräte Konfiguration zurücksetzen.  
Dazu auf den jeweiligen Reiter

[![Auswahl_189.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/ejSMiezOrKFtIbzD-auswahl-189.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/ejSMiezOrKFtIbzD-auswahl-189.png)

Dann nach unten scrollen und auf zurücksetzen klicken.  
Das gleiche können wir bei weiteren Statistiken auch machen, wenn vorhanden.

[![Auswahl_190.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/BkziOSZuZ9fJAS87-auswahl-190.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/BkziOSZuZ9fJAS87-auswahl-190.png)

Wir sind auf der Fritzbox durch.  
Sollen noch mehr Geräte angemeldet werden die Prozedur wieder holen.

#### Einrichtung im Home Assistant

In Einstellungen -&gt; Geräte gehen und dann Integration hinzufügen anklicken

[![Auswahl_182.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/mFwXn2YIfLZ6F2Ms-auswahl-182.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/mFwXn2YIfLZ6F2Ms-auswahl-182.png)

Dort nach Fritz suchen und dann auf den Pfeil klicken

[![Auswahl_183.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/spWBxen6xmrHeTjG-auswahl-183.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/spWBxen6xmrHeTjG-auswahl-183.png)

Nun bekommen wir eine Liste und wählen Fritz Smart Home aus und klicken dort auch auf den Pfeil

[![Auswahl_184.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/ZhC1G9PagXRpeLbY-auswahl-184.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/ZhC1G9PagXRpeLbY-auswahl-184.png)

Nun erscheint ein Pop upd wo wir unsere IP Adresse der Fritzbox eintragen

<div id="bkmrk-hinweis%3A-dies-ist-ei" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Vorausgefüllt steht fritz.box, allerdings nehme ich immer die IP, vor allem wenn man mehrere Fritzboxen hat.   
Aber auch bei nur einer FritzBox empfehle ich die IP zu verwenden.  
Benutzername bleibt admin, das Kennwort ist das Kennwort für die Fritzbox, auch wenn Ihr beim FritzBox login, kein Benutzernamen habt.   
Das FritzBox admin Passwort ist Hauptpasswort der Fritzbox</div>[![Auswahl_186.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/AyPEhRV0IrLgw8Lx-auswahl-186.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/AyPEhRV0IrLgw8Lx-auswahl-186.png)

Wenn die Daten richtig sind werden alle verbunden smart Geräte angezeigt und könnt sie den Bereichen zuteilen.  
Da ich nur ein gerät habe, ist hier nur mein 3D Drucker gelistet. Deshalb ist es wichtig in der Fritzbox den Namen zu vergeben, weil der taucht hier nämlich wieder auf. Ich weise Ihm den Bereich Büro zu und dann auf fertig.  
Wenn Ihr mehrere Geräte habt die anderen Bereiche die für euch relevant sind natürlich auch zuweisen und dann auf Fertig.

[![Auswahl_187.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/UphmegW4wUTZeINS-auswahl-187.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/UphmegW4wUTZeINS-auswahl-187.png)

Nun haben wir in der Geräte übersicht ein neues Objekt FritzBox Smart Home mit Anzahl eurer Geräte. Ich hab nur 1 zur Zeit.  
klcikt auf die A

[![Auswahl_188.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/iQIfHHiwCgDGkpkS-auswahl-188.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/iQIfHHiwCgDGkpkS-auswahl-188.png)

Klickt auf 1 Gerät Text und Ihr erhaltet die Liste eurer Geräte.  
Dieses Smarthome Gerät hat Sensoren und einen Schalter.

[![Auswahl_191.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/K3lYTVMTr3duv4p6-auswahl-191.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/K3lYTVMTr3duv4p6-auswahl-191.png)

Fertig Gerät(e) kann / können verwendet werden.

#### Test:

Hab jetzt die Steckdose eingeschaltet, einen Druck gestartet man sieht der 3D Drucker zieht

[![Auswahl_192.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/cNo1VmHM8uikFoNv-auswahl-192.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/cNo1VmHM8uikFoNv-auswahl-192.png)

Weitere Geräte hinzufügen:

Wie in Schritt 1 Geräte über die Fritzbox hinzufügen.  
NUn

# Addons - Der Editor

# Beschreibung und Installation

Manchmal muss man Config Dateien bearbeiten oder mal ein Verzeichnis anlegen.  
Da das Home Assistent sonst nur bedingt komfortabel üer ssh bedient werden kann inj kombination mit nano. Gibt es ein schönes Addon das einen Webbasierten Editor parat stellt.  
  
1\. unter Einstellungen -&gt; Addons -&gt; ADD-ON-Store unten rechts anklicken.  
 Dann Offical Addons File Editor.  
 [![Screenshot 2022-06-18 at 21-00-24 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/gaTUfX0HMwy1epJF-screenshot-2022-06-18-at-21-00-24-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/gaTUfX0HMwy1epJF-screenshot-2022-06-18-at-21-00-24-home-assistant.png)  
   
Dann auf Installieren klicken.  
 [![Screenshot 2022-06-18 at 21-03-09 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/T4TPPP39Pc5GNj5G-screenshot-2022-06-18-at-21-03-09-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/T4TPPP39Pc5GNj5G-screenshot-2022-06-18-at-21-03-09-home-assistant.png)  
  
Dann den Schieber auf "in Seitenleiste Anzeigen" klicken und auf starten klicken.  
  
[![Screenshot 2022-06-18 at 21-05-42 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/7dFLZR2IFwbcVipY-screenshot-2022-06-18-at-21-05-42-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/7dFLZR2IFwbcVipY-screenshot-2022-06-18-at-21-05-42-home-assistant.png)  
  
Nun haben wir links im Menü File Editor dort drauf klicken  
[![Screenshot 2022-06-18 at 21-28-10 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/P9skXdQ0oSVgZslF-screenshot-2022-06-18-at-21-28-10-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/P9skXdQ0oSVgZslF-screenshot-2022-06-18-at-21-28-10-home-assistant.png)   
Nun oben links auf das Ordner Symbol klicken und Datei auswählen die bearbeitet werden soll.  
  
[![Screenshot 2022-06-18 at 21-30-36 File editor – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/Qhax2pGoDCGxvVdY-screenshot-2022-06-18-at-21-30-36-file-editor-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/Qhax2pGoDCGxvVdY-screenshot-2022-06-18-at-21-30-36-file-editor-home-assistant.png)  
  
  
[![Screenshot 2022-06-18 at 21-31-57 File editor – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/68Z3p57kPf31WvPr-screenshot-2022-06-18-at-21-31-57-file-editor-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/68Z3p57kPf31WvPr-screenshot-2022-06-18-at-21-31-57-file-editor-home-assistant.png)  
Jetzt kann man wie gewohnt Dateien bearbeiten. Ich habe zum test mal die configration.yaml aufgerufen.  
Fertig.  
[![Screenshot 2022-06-18 at 21-35-41 File editor – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/OjYkCToMWGrKCJUq-screenshot-2022-06-18-at-21-35-41-file-editor-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/OjYkCToMWGrKCJUq-screenshot-2022-06-18-at-21-35-41-file-editor-home-assistant.png)

# Addons - Die Addon-Stores

Home Assistant durch Addons erweitern. Denn nur duch Add-Ons gibt es neue Funktionen und unterstütze Geräte

# Überblick über die Addon-Stores und Repositories

### Die 3 Arten von Stores

1. Der Offizielle Store -&gt; Zu erreichen unter Einstellungen Addons und dann unten Rechts Add-On Store, dann der Obere Teil wo Official add-ons dran steht  
    [![Screenshot 2022-06-17 at 20-35-28 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/GSnvcOTSNgT2lNZ8-screenshot-2022-06-17-at-20-35-28-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/GSnvcOTSNgT2lNZ8-screenshot-2022-06-17-at-20-35-28-home-assistant.png)
2. Die Community Add-Ons, dies sind Add-Ons von Benutzern die aber von Home Assistant Team geprüft werden.  
    Im unteren teil wo Home Assistant Community Add-Ons dran steht  
    [![Screenshot 2022-06-17 at 20-39-25 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/VfMxRBoWYCCNlytd-screenshot-2022-06-17-at-20-39-25-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/VfMxRBoWYCCNlytd-screenshot-2022-06-17-at-20-39-25-home-assistant.png)
3. Den HACS Store (Home Assistant Community Store) mit noch mehr erweiterungen in einer UI zusammengefast. muss separat installiert werden als Addon. Dies geschieht über Repos. Er ist ein noch viel Größerer Community Store als der mitgelieferte. Er beinhaltet nicht wirklich Add-Ons denn der HACS ist ja ein Addon. Was beinhaltet er denn nun?  
      
    Custom integrations (components/platforms/custom\_component) for Home Assistant  
    Custom lovelace elements (cards/rows/mods)  
    AppDaemon apps for [AppDaemon](https://appdaemon.readthedocs.io/en/latest/)  
    NetDaemon apps for [NetDaemon](https://netdaemon.xyz/)  
    Themes for the [frontend integration](https://www.home-assistant.io/components/frontend/) in Home Assistant  
    "python\_scripts" for the [`python_scripts` integration](https://www.home-assistant.io/components/python_script/) in Home Assistant

### Repositories (Repos)   


Sind externe Addon Quellen um Home Assistant mit noch weiteren als Nur Official und eingebettetn Community Addonsweiter auszubauen.  
in der Addon-Store-List oben rechts auf die 3 Punkte und dann auf Repositories klicken.  
[![Screenshot 2022-06-17 at 20-45-06 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/EdA8CQdGmASHZ3qR-screenshot-2022-06-17-at-20-45-06-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/EdA8CQdGmASHZ3qR-screenshot-2022-06-17-at-20-45-06-home-assistant.png)Nun kann man im Textfeld ein weiteres Repo hinzufügen. die zwei Communit ESPHome und das Community sind im auslieferungszustand von Home Assistant dabei. Was auch repos sind. Über die Mülltonne lässt sich auch eine Repo entfernen.  
[![Screenshot 2022-06-17 at 20-46-45 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/VJE2wj4gW6hIXi17-screenshot-2022-06-17-at-20-46-45-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/VJE2wj4gW6hIXi17-screenshot-2022-06-17-at-20-46-45-home-assistant.png)  
Nach dem hinzufügen ist die Repo vorhanden. Und dessen Addon(s) werden aufgelistet.  
Es gibt repos die haben nur ein Addon siehe ESPHome

# Installation von HACS - Home Assistant Community Store

### HACS - Home Assistant Community Store

Beinhaltet :

- Custom integrations (components/platforms/custom\_component) for Home Assistant
- Custom lovelace elements (cards/rows/mods)
- AppDaemon apps for [AppDaemon](https://appdaemon.readthedocs.io/en/latest/)
- NetDaemon apps for [NetDaemon](https://netdaemon.xyz/)
- Themes for the [frontend integration](https://www.home-assistant.io/components/frontend/) in Home Assistant
- "python\_scripts" for the [`python_scripts` integration](https://www.home-assistant.io/components/python_script/) in Home Assistant

1. Es wird ein Github Konto benötigt (ist kostenlos [https://github.com](https://github.com) )
2. In den Addon Store gehen [Add-on store](https://my.home-assistant.io/redirect/supervisor_store/)
3. Dort das Community SSH &amp; Web Terminal Addon installieren (Dazu muss der Erweiterte Modus aktiviert sein)  
    klicke [hier](https://wiki.hacker-net.de/books/home-assistant/page/fehlende-addons-aktiviere-den-erweiterten-modus-auf-deiner-benutzerprofilseite) für die Anleitung erweiterter Modus.  
    [![Screenshot 2022-06-17 at 21-06-40 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/508GVkgfs6w7bbMM-screenshot-2022-06-17-at-21-06-40-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/508GVkgfs6w7bbMM-screenshot-2022-06-17-at-21-06-40-home-assistant.png)  
    Nun auf SSH und Web Terminal klicken und dann auf installieren klicken. Kann bis zu 5 Minuten dauern.  
    [![Screenshot 2022-06-17 at 21-10-09 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/zzYZnbXcZeQtgSlz-screenshot-2022-06-17-at-21-10-09-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/zzYZnbXcZeQtgSlz-screenshot-2022-06-17-at-21-10-09-home-assistant.png)  
    Nach der Installation oben auf den Registerreiter Konfiguration gehen.  
    und ein Passwort setzten. ich habe hier start1234 gewählt. Ihr solltet natürlich ein sicheres Kennwort wählen.  
    Den benutzernamen hassio habe ich so gelassen. Könnt Ihr auch so lassen.  
    Dann auf Speichern klicken und wieder auf den Register Information.  
    [![Screenshot 2022-06-17 at 21-16-35 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/LhtJAzbrh3O7iHCV-screenshot-2022-06-17-at-21-16-35-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/LhtJAzbrh3O7iHCV-screenshot-2022-06-17-at-21-16-35-home-assistant.png)  
      
      
    Nun den Schieber "in der Seiteleiste anzeigen" auf an Stellen und dann auf starten klicken.  
    ca zwei Minuten warten bis das Addon vollständig geladen ist  
    [![Screenshot 2022-06-17 at 21-13-03 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/UgNXdX1piYUysyRk-screenshot-2022-06-17-at-21-13-03-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/UgNXdX1piYUysyRk-screenshot-2022-06-17-at-21-13-03-home-assistant.png)  
    Nachdem das SSH Adon gesartet ist gibt es links im Menü den Eintrag Terminal und anstatt starten stehen die funktionen stoppen und neustarten zur Verfügung.   
    [![Screenshot 2022-06-17 at 21-13-41 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/A2LReta81GYhtN4W-screenshot-2022-06-17-at-21-13-41-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/A2LReta81GYhtN4W-screenshot-2022-06-17-at-21-13-41-home-assistant.png)
4. Verbinden mit demm SSH Addon. Nach dem klickem im Menü Termional haben wir dieses Fenster vor uns.  
    Ein Webterminal in dem Befehle eingegben werden können  
    [![Screenshot 2022-06-17 at 21-22-07 Terminal – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/Wl0A8VhKSzZ2699m-screenshot-2022-06-17-at-21-22-07-terminal-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/Wl0A8VhKSzZ2699m-screenshot-2022-06-17-at-21-22-07-terminal-home-assistant.png)
5. Nun das HACS installations script downloaden und ausführen  
    zum einfügen von Text shift taste + Einfügen / instert Taste drücken  
    [![index.jpeg](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/frLFBy8L0phzNPFl-index.jpeg)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/frLFBy8L0phzNPFl-index.jpeg)  
      
    ```shell
    wget -O - https://get.hacs.xyz | bash -
    ```
    
    installation komplett.  
    [![Screenshot 2022-06-17 at 21-30-20 Terminal – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/Ka4vqleYExGEt2ap-screenshot-2022-06-17-at-21-30-20-terminal-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/Ka4vqleYExGEt2ap-screenshot-2022-06-17-at-21-30-20-terminal-home-assistant.png)
    
    Wie im etxt stehend nur noch neustarten.  
    Einstellungen -&gt; System -&gt; und oben rechts in der ecke.   
    Eigentlich dafür gemacht zu übersehen auf neustarten drücken. Ca 5 Minuten warten  
    [![Screenshot 2022-06-17 at 21-31-41 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/HBVIhRW1ztPkTCrE-screenshot-2022-06-17-at-21-31-41-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/HBVIhRW1ztPkTCrE-screenshot-2022-06-17-at-21-31-41-einstellungen-home-assistant.png)  
    Nach dem neustart auf Einstellungen -&gt; Geräte und Dienste -&gt; und dann unten rechts auf integration hinzufügen klicken.  
    [![Screenshot 2022-06-17 at 21-36-06 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/phtTPCiR7oB9xc37-screenshot-2022-06-17-at-21-36-06-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/phtTPCiR7oB9xc37-screenshot-2022-06-17-at-21-36-06-einstellungen-home-assistant.png)  
    Dort in das Suchfeld HACS eintippen und HACS aus der Liste auswählen.  
    [![Auswahl_007.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/fne7fVt3j4yn9NX6-auswahl-007.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/fne7fVt3j4yn9NX6-auswahl-007.png)  
    Dann den Nutzungsbestimmungen Zustimmen. Alle Haken setzten und Absenden klicken  
    [![Auswahl_008.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/zlhy6tRQlcbYSXf1-auswahl-008.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/zlhy6tRQlcbYSXf1-auswahl-008.png)  
      
    Nun mit Github verbinden und die Nummer unten eintippen. Hier B268-482B  
    Diese Nummer ist immer wieder anders. Durch den klick auf Open bei github einloggen.  
    [![Auswahl_009.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/R1abMmsjpFrX8gWE-auswahl-009.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/R1abMmsjpFrX8gWE-auswahl-009.png)

Dannn mit den Github Daten einloggen. Und dann den Code eingeben und auf Continue klicken.  
[![Screenshot 2022-06-17 at 21-44-12 Build software better, together.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/sCBS2BA9LWNg9o1m-screenshot-2022-06-17-at-21-44-12-build-software-better-together.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/sCBS2BA9LWNg9o1m-screenshot-2022-06-17-at-21-44-12-build-software-better-together.png)  
Nun auf Authorzie klicken  
[![Screenshot 2022-06-17 at 21-44-45 Build software better, together.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/Emsznfyhruopw24q-screenshot-2022-06-17-at-21-44-45-build-software-better-together.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/Emsznfyhruopw24q-screenshot-2022-06-17-at-21-44-45-build-software-better-together.png)  
Nun fertig. Und dann zürück auf den Tab vom Home Assistant, denn da gehts dann weiter  
[![Screenshot 2022-06-17 at 21-45-10 Build software better, together.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/2XzsXIUaQMHlQKUZ-screenshot-2022-06-17-at-21-45-10-build-software-better-together.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/2XzsXIUaQMHlQKUZ-screenshot-2022-06-17-at-21-45-10-build-software-better-together.png)  
So nun zurück im HomeAssistant HACS einen Bereich zuweisen.  
in Home Assistenat sind Bereiche Räume. Wie zum Beispiel Küche, Schlafzimmer etc.  
Alles was kein Raum ist, sondern Software für Home Assistent selbst. Pack ich in einen Bereich home Assistent.  
Auf das Dropdown Menü klicken und neuen bereich anlegen auswählen und dann als Namen HomeAssistant eingeben.  
[![Auswahl_010.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/bFcUJpGWziLFLuOh-auswahl-010.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/bFcUJpGWziLFLuOh-auswahl-010.png)  
Nun Bereich eintippen auf hinzufügen klciken  
[![Auswahl_011.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/Ab9woXq2DA9t3ZIX-auswahl-011.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/Ab9woXq2DA9t3ZIX-auswahl-011.png)  
Und nun auf Fertig klicken  
[![Auswahl_012.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/Vr2PrACHFKoiFKx2-auswahl-012.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/Vr2PrACHFKoiFKx2-auswahl-012.png)  
Nun haben wir klinks im Menu HACS und sind fertig.

### Erweiterung hinzufügen - Kurzanleitung

Jetzt kann man sich einen Typ raussuchen wo man nach erweiterungen stöbern will z.b integrationen. Dort drauf klicken.

[![Screenshot 2022-06-17 at 21-58-16 HACS – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/5kBF8sABaxJLQteT-screenshot-2022-06-17-at-21-58-16-hacs-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/5kBF8sABaxJLQteT-screenshot-2022-06-17-at-21-58-16-hacs-home-assistant.png)  
  
unten dann auf "Durchsuchen und herunterladen von Repositories" und dort dann die geünschte REPO auswählen.  
[![Screenshot 2022-06-17 at 22-01-38 HACS – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/h0Uhzos4oLx8rrWD-screenshot-2022-06-17-at-22-01-38-hacs-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/h0Uhzos4oLx8rrWD-screenshot-2022-06-17-at-22-01-38-hacs-home-assistant.png)  
Nun gibt es eine Liste und ein Suchfeld.  
in dieses Suchfled geben wir einfach mal matic ein.  
Nun wählen wir aus der Liste Auto Backup  
[![Screenshot 2022-06-17 at 22-07-56 HACS – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/nsQ6KRj9NEeMmqgw-screenshot-2022-06-17-at-22-07-56-hacs-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/nsQ6KRj9NEeMmqgw-screenshot-2022-06-17-at-22-07-56-hacs-home-assistant.png)  
Nun gibts ne Besschreibung und unten rechts steht ein Button "Installiere dieses Repository mit HACS, dieses anklicken  
[![Screenshot 2022-06-17 at 22-09-09 HACS – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/QoVPM3cb4571icQJ-screenshot-2022-06-17-at-22-09-09-hacs-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/QoVPM3cb4571icQJ-screenshot-2022-06-17-at-22-09-09-hacs-home-assistant.png)  
  
Nun bekommen wir eine Versionsauswhl, über das Pull down Menü wählen wir die aktellste Version aus und klicken herunterladen an  
[![Auswahl_013.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/GxzpV9aY2GFBy2pz-auswahl-013.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/GxzpV9aY2GFBy2pz-auswahl-013.png)  
  
Danach steht in HACS das AutoBackup Addon. Allerdings damit es aktiv wird muss Home Assistant wieder über Einstellungen -&gt; System -&gt; Neugestartet werden. Also neustarten und ca 5 min warten. Danach nochmals F5 drücken damit die Seite auch neu geladen wird.  
Sonst steht die Integration noch nicht zur Verfügung.

```
Tipp erst alle gewünschten Addons aus HACS installieren und dann neustarten, spart zeit
```

[![Screenshot 2022-06-17 at 22-12-19 HACS – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/BhPFUqp8aiZnXazO-screenshot-2022-06-17-at-22-12-19-hacs-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/BhPFUqp8aiZnXazO-screenshot-2022-06-17-at-22-12-19-hacs-home-assistant.png)  
  
Danach kann die Das Auto Backup über Einstellungen -&gt; Geräte und Dienste -&gt; Integration hinzufügen, hinzugefügt werden wie das HACS selbst. Wieder in die suche auto eingeben und dort erscheint dann Auto Backup.  
Anklicken  
[![Auswahl_014.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/ULqjj3NdHHtCwmjT-auswahl-014.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/ULqjj3NdHHtCwmjT-auswahl-014.png)  
Nun auf Absenden klicken  
[![Auswahl_015.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/2WQHAAkusprKIitd-auswahl-015.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/2WQHAAkusprKIitd-auswahl-015.png)  
Nun noch auf fertig.  
[![Auswahl_016.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/5Rd6RXGudSVfztGY-auswahl-016.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/5Rd6RXGudSVfztGY-auswahl-016.png)  
Jetzt kann in der Integrationsliste auf den knopf konfigurieren beim Auto Backup geklickt werden und somit auto backup konfiguriert werden  
[![Screenshot 2022-06-17 at 22-23-39 Einstellungen – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/ZVRiND1ozphuOE8k-screenshot-2022-06-17-at-22-23-39-einstellungen-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/ZVRiND1ozphuOE8k-screenshot-2022-06-17-at-22-23-39-einstellungen-home-assistant.png)  
Nun können instellungen vorgenommen werden  
[![Auswahl_017.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/rN031c31WEMKKjhh-auswahl-017.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/rN031c31WEMKKjhh-auswahl-017.png)  
  
Dies war eine Besipielinstallation und sagt nix über dieses Addon aus ob es gut oder schlecht ist. Nicht getestet. geht einfach nur darum zu zeigen wie aus HACS installiert wird.

# Fehlende Addons? Aktiviere den erweiterten Modus auf deiner Benutzerprofilseite

Damit alle Addons angezeigt werden, muss der Erweiter Modus aktiviert werden.

1. Dazu gehen wir in Einstellungen -&gt; Addons &gt; Add-on Store unten rechts unter Addons.   
    (oder hier klicken [Add-on store](https://my.home-assistant.io/redirect/supervisor_store/))
2. Nun auf den Link unten links:  
    Fehlende Addons? Aktiviere den erweiterten Modus auf deiner Benutzerprofilseite  
    [![Screenshot 2022-06-17 at 21-02-57 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/PCm8ZybBjzpu0eAE-screenshot-2022-06-17-at-21-02-57-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/PCm8ZybBjzpu0eAE-screenshot-2022-06-17-at-21-02-57-home-assistant.png)
3. Nun nochmals mit den Home Assistant Daten anmelden  
    [![Screenshot 2022-06-17 at 19-55-36 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/yruOqP3fYEJlvoxS-screenshot-2022-06-17-at-19-55-36-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/yruOqP3fYEJlvoxS-screenshot-2022-06-17-at-19-55-36-home-assistant.png)
4. Runterscrollen bis Erweiter Modus und dort den Schieber auf ein stellen  
      
    [![Screenshot 2022-06-17 at 21-04-22 Profil – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/hWEZVBdWb2sYA4kr-screenshot-2022-06-17-at-21-04-22-profil-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/hWEZVBdWb2sYA4kr-screenshot-2022-06-17-at-21-04-22-profil-home-assistant.png)
5. Nun wieder zurück zum Add-on-Store  
    Dazu gehen wir in Einstellungen -&gt; Addons &gt; Add-on Store unten rechts unter Addons.   
    (oder hier klicken [Add-on store](https://my.home-assistant.io/redirect/supervisor_store/))
6. Nun stehen mehr Addons zur Auswahl. Im offiziellen wie im Community Store

# Den Addon Store mit weiteren Repositories erweitern

Beschreibung:

Es gibt viele Programmierer die Addons für Home Assistant schreiben. Die haben dann ein eigenes Repository, was so nicht in Home Assistant aufgeführt wird. Man kann nämlich auch eigene Repositories hinzufügen.  
Wir machen das hier am Beispiel von der Portainer Repo.

Hinzufügen des Repositories.

Zum hinzufügen gibt es 2 Varianten. Einmal bequem per Fastlink, vom Repository ersteller zur Verfügung gestellt.  
Oder manuell die URL einfügen, wenn kein Fastlink zur Verfügung gestellt wurde.

Variante 1: Fastlink

# Addons - Traccar - Geräteortung

# Traccar Server installieren

1. Vorrausetzung ist das Addon File Editor, weil damit die Config Datei bearbeitet werden muss  
    (für Installationsanleitung [hier](https://wiki.hacker-net.de/books/home-assistant/chapter/addons-der-editor "Addons - Der Editor") klicken)
2. Auf Einstellungen -&gt; Addons-&gt; Addon Store anklicken, dann Traccar anklicken.  
    [![Screenshot 2022-06-22 at 21-58-52 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/PzI1qzaMFIpJ3Xg4-screenshot-2022-06-22-at-21-58-52-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/PzI1qzaMFIpJ3Xg4-screenshot-2022-06-22-at-21-58-52-home-assistant.png)  
    Nun auf Installieren klicken. Danach auf den Register konfiguration.  
    [![Screenshot 2022-06-22 at 21-57-48 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/fpRrXVSDNgu17rW6-screenshot-2022-06-22-at-21-57-48-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/fpRrXVSDNgu17rW6-screenshot-2022-06-22-at-21-57-48-home-assistant.png)  
      
     Wie in den Einstellungen zu sehen, linkt das Traccar Webinterface auf 8082  
     Dann lautet die URL: homeasistentantip:8082  
    [![Screenshot 2022-06-22 at 22-00-19 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/r0CwYSi3xrIXvvTE-screenshot-2022-06-22-at-22-00-19-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/r0CwYSi3xrIXvvTE-screenshot-2022-06-22-at-22-00-19-home-assistant.png)  
    Dann das Addon starten 1 min warten und die Weboberfläche aufrufen.  
    Nun auf Registrieren klicken:  
    [![Screenshot 2022-06-22 at 22-04-04 Traccar.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/pO06aSRXQQW5ZJKj-screenshot-2022-06-22-at-22-04-04-traccar.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/pO06aSRXQQW5ZJKj-screenshot-2022-06-22-at-22-04-04-traccar.png)  
    Nun Name (Ist ein Anzeigename, kein Benutzername), Email und Passwort festlegen. Dann kommt die Meldung neuer Nutzer wurde registriert.  
    und nun kann man sich mit den Daten anmleden.  
    nach dem Login sieht die Seite so aus:  
    [![Screenshot 2022-06-22 at 22-06-07 Traccar.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/fX0Tnfsm0CytQvjo-screenshot-2022-06-22-at-22-06-07-traccar.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/fX0Tnfsm0CytQvjo-screenshot-2022-06-22-at-22-06-07-traccar.png)  
    Jetzt muss das Addon noch in Home Assistent integriert werden. Dazu öffnen wir das Addon File Editor links im Menu  
    [![Screenshot 2022-06-22 at 22-08-44 File editor – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/keoFTDBekIAUXl2d-screenshot-2022-06-22-at-22-08-44-file-editor-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/keoFTDBekIAUXl2d-screenshot-2022-06-22-at-22-08-44-file-editor-home-assistant.png)  
    öffnen über das Verzeichnis Symbol die /config/configuration.yaml  
    Dann sieht das ganze eventuell so aus. ums so mehgr Plugins schon hinzugefügt wurden, die was in der Config brauchen um so mehr steht natürlich drin.  
    uns interessiert auch nur das Ende der Datei. Denn am Ende fügen wir folgendes ein:  
    [![Screenshot 2022-06-22 at 22-09-48 File editor – Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/8yjX2VI24eCLdwuQ-screenshot-2022-06-22-at-22-09-48-file-editor-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/8yjX2VI24eCLdwuQ-screenshot-2022-06-22-at-22-09-48-file-editor-home-assistant.png)  
    Inhalt:  
    ```
    device_tracker:
      - platform: traccar
        host: localhost
        port: 18682
        username: TRACCAR_EMAIL_ADDRESS
        password: TRACCAR_PASSWORD
    ```
    
    username und passwort mit euren zugangsdaten ersetzen.
3. localhost mit den Hostnamen des containers erstzen. Zu ermitteln in der Addon Übersicht.  
    Der Hostname lautet hier : `a0d7b954-traccar`  
    [![Screenshot 2022-06-22 at 22-20-42 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/vXQx8DA5Z8173DBH-screenshot-2022-06-22-at-22-20-42-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/vXQx8DA5Z8173DBH-screenshot-2022-06-22-at-22-20-42-home-assistant.png)
4. Dann oben auf die Diskette.  
    Home Assistant neustarten.
5. Nun auf Einstellungen -&gt; Geräte &amp; Dienste -&gt; unten recht integration hinzufügen und als suchbegriff track eintragen.  
    und auf traccar klicken.  
    [![Auswahl_040.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/T4UoR5HfURIq8EvM-auswahl-040.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/T4UoR5HfURIq8EvM-auswahl-040.png)  
    Die Frage ob wir es wirklich einrichten wollen, mit absenden bestätigen.  
    [![Auswahl_041.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/od2acGP61Dg3BMW2-auswahl-041.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/od2acGP61Dg3BMW2-auswahl-041.png)  
    Jetz bekommen wir einen WEbhook den wir markieren und kopieren können.  
    Diesen brauchen wir in jedem Client zum anmelden. Hier sthet meine lokale IP drin. Natürlich sollte dort die Öffentliche IP oder DDNS Namen drin stehen.  
    Es sei denn Ihr habt ein tunnel aufm Smartphone bzw den Tracker.  
    Dann auf fertig.  
    [![Auswahl_043.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/9Mvcu3wLI4m7f7ij-auswahl-043.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/9Mvcu3wLI4m7f7ij-auswahl-043.png)

# Traccar Android Client installation

1. Im PlayStore Traccar Client raussuchen und installieren und dann unter Server URL den Webhook einfügen  
    [![Screenshot_20220622-223328.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/AHzHJNSNb4WCP2KS-screenshot-20220622-223328.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/AHzHJNSNb4WCP2KS-screenshot-20220622-223328.jpg)

# Addons - MariaDB / MySQL Addon

# MariaDB installation

1. Auf Einstellungen -&gt; Addons -&gt; Add-On-Store -&gt; Offizielle Addons auf Maria DB klicken.  
      
    [![Screenshot 2022-06-22 at 22-52-37 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/UvvwoK960p7A7klN-screenshot-2022-06-22-at-22-52-37-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/UvvwoK960p7A7klN-screenshot-2022-06-22-at-22-52-37-home-assistant.png)  
     Dann auf installieren klicken.  
     [![Screenshot 2022-06-22 at 22-53-17 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/vf8Ufn8SaGohxGk8-screenshot-2022-06-22-at-22-53-17-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/vf8Ufn8SaGohxGk8-screenshot-2022-06-22-at-22-53-17-home-assistant.png)  
    Dann auf den Registerreiter konfiguration und bei Logins das passwort Null gegen ein sicheres tauschen.  
    Auf speichern klicken.  
    Dann starten.  
    [![Screenshot 2022-06-22 at 22-59-30 Home Assistant.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/scaled-1680-/lYd0aatpFjbKuZme-screenshot-2022-06-22-at-22-59-30-home-assistant.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-06/lYd0aatpFjbKuZme-screenshot-2022-06-22-at-22-59-30-home-assistant.png)  
    Fertig

# Addons -  Dwains Lovelace Dashboard

An fully auto generating Home Assistant UI dashboard for desktop, tablet and mobile by Dwains for desktop, tablet, mobile

# Dwains Lovelace Dashboard Installation

Das Dwain Addon ist über den HACS Store zu beziehen.  
Dazu im Hom e Assistant Menu auf HACS klicken

[![Auswahl_003.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/IvjuV8xyEj0EDo2i-auswahl-003.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/IvjuV8xyEj0EDo2i-auswahl-003.png)

Dann auf Integrationen klicken

[![Auswahl_004.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/92YktomesIA2r1hh-auswahl-004.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/92YktomesIA2r1hh-auswahl-004.png)

Nun unten rechts auf den Button klicken namens Durchsuchen und herunterladen von Repositories

[![Auswahl_005.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/Blz4OfHf5gxTMYq0-auswahl-005.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/Blz4OfHf5gxTMYq0-auswahl-005.png)

1\. Dort nach Dwain suchen  
2\. Dann Auf das Dwain Dashboard Eintrag klicken.

[![Auswahl_006.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/DI36BnOne7aotDZ6-auswahl-006.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/DI36BnOne7aotDZ6-auswahl-006.png)

Nun unten rechts auf Herunterladen klicken

[![Auswahl_007.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/GZuY3jJXrEQEU7VS-auswahl-007.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/GZuY3jJXrEQEU7VS-auswahl-007.png)

Aktuellste Version drin stehen lassen und Herunterladen anklicken

[![Auswahl_008.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/rcIW6EAjPXp0xoms-auswahl-008.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/rcIW6EAjPXp0xoms-auswahl-008.png)

Danach landet man auf der Seite zurück und könnte nochmals installieren.  
Das liegt daran, das Home Assistant neugestartet werden muss.  
Dazu Einstellungen -&gt; System -&gt; und dann oben rechts neustarten.  
Dann ist die Repository installiert.

Nun nach dem neustart widsr HACS öffnen

[![Auswahl_003.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/IvjuV8xyEj0EDo2i-auswahl-003.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/IvjuV8xyEj0EDo2i-auswahl-003.png)

Dann wieder auf Integrationen

[![Auswahl_004.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/92YktomesIA2r1hh-auswahl-004.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/92YktomesIA2r1hh-auswahl-004.png)

1\. Nun inder Suche oben Dwain eingeben, nun erscheint das Addon Dwain Dashboard  
2\. Nun auf das Addon klicken

[![Auswahl_010.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/JNSiYSJFhNBh0w7T-auswahl-010.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/JNSiYSJFhNBh0w7T-auswahl-010.png)

Nun bekommt Ihr die Übersichtsseite vom Addon.  
Da kann man nichts Einstellen, wir wollten lediglich Prüfen ob das Addon installiert ist.  
Um das Addon zu aktivieren gehen wir auf Einstellungen -&gt; Geräte &amp; Dienste

[![Auswahl_011.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/SxaFloI5sVS0L2SZ-auswahl-011.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/SxaFloI5sVS0L2SZ-auswahl-011.png)

Nun haben wir eine Auflistung von allen hinzugefügten Addons. Damit wird Dwain Dashboard hinzufügen können, recht untern auf Integration Hinzufügen klicken

[![Auswahl_012.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/BXAzZWIu6QeKBPRT-auswahl-012.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/BXAzZWIu6QeKBPRT-auswahl-012.png)  
  
1\. Im Suchfeld Dwain eintragen  
2\. Nun auf Das Addon klicken

[![Auswahl_013.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/ACwnTNwYQtS44ujV-auswahl-013.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/ACwnTNwYQtS44ujV-auswahl-013.png)

Nun kommt eine Erfolgsmeldung, einfach auf Fertig klicken

[![Auswahl_014.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/CN5rlSpVCYsS9ezf-auswahl-014.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/CN5rlSpVCYsS9ezf-auswahl-014.png)

Nun den Browser einmal mit F5 resfresehn, eventuell muss man sich auch neu Einloggen  
Wenn die Installation erfolgreich ist, findet man das Addon in der Menüleiste Links.

[![Auswahl_015.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/Xr3vEPxULMoVYX1c-auswahl-015.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/Xr3vEPxULMoVYX1c-auswahl-015.png)

Und nun sieht man ein Automatisch gebautes Dashboard

[![Auswahl_016.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/scaled-1680-/hXvzsy5WHMhT7Ck7-auswahl-016.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-01/hXvzsy5WHMhT7Ck7-auswahl-016.png)

Fertig

# Addons - Node Red

# Node Red Installation

### Beschreibung:

Node Red ist ein Flussdiagramm basiertes Programmieren von Regeln.  
Das macht das ganze sehr einfach und Übersichtlich.  
Mit Variablen , schleifen etc.

### Installation:

Auf einstellungen -&gt; Addons gehen

[![Auswahl_176.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/dB9CgdbzIj0RRYm6-auswahl-176.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/dB9CgdbzIj0RRYm6-auswahl-176.png)

Nun auf Addon Store

[![Auswahl_177.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/oS1jRJxy7OvuvNCs-auswahl-177.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/oS1jRJxy7OvuvNCs-auswahl-177.png)

Dann runter scrollen bis Node Red und dann Node anklicken

[![Auswahl_178.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/7RAaWvEchfOALcH4-auswahl-178.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/7RAaWvEchfOALcH4-auswahl-178.png)

Nun auf installieren klicken

[![Auswahl_179.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/EK34eWV89ZksOWhe-auswahl-179.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/EK34eWV89ZksOWhe-auswahl-179.png)

Nach der installation sieht das ganze so aus

[![Auswahl_191.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/lkpdu2wSvgrxfVEM-auswahl-191.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/lkpdu2wSvgrxfVEM-auswahl-191.png)

Nun auf Konfiguration gehen und `credential_secret` eintragen. Dieses passwort aufschreiben.

[![Auswahl_192.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/bXT0I95VV95ZuVEW-auswahl-192.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/bXT0I95VV95ZuVEW-auswahl-192.png)

Den Haken SSL rausnehemne und auf speichern klicken

[![Auswahl_197.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/3LkHDyIqb1fynR9h-auswahl-197.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/3LkHDyIqb1fynR9h-auswahl-197.png)

Nun die Haken einhaken:  
Beim booten starten  
Watchdog  
Automatische Updates  
In der Seiteleiste anzeigen

Dann auf starten klicken

[![Auswahl_195.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/uT5go6RKWL8YaIXm-auswahl-195.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/uT5go6RKWL8YaIXm-auswahl-195.png)

Nach dem starten in der Seitenleiste auf Node-Red klicken.  
Nun öffnet sich das Node Red Fenster.

[![Auswahl_198.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/28TraSqmg2yeakIT-auswahl-198.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/28TraSqmg2yeakIT-auswahl-198.png)

 Dort oben Rechts auf das Burger Menü klicken

[![Auswahl_207.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/KZiFe2uhLjro9ZgE-auswahl-207.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/KZiFe2uhLjro9ZgE-auswahl-207.png)

Und im Menü Paletten verwalten anklicken

[![Menü_009.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/5mZbdaG8m2BflCPI-menu-009.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/5mZbdaG8m2BflCPI-menu-009.png)

Dort schauen Ob in der Liste das Node-Red contrib Home Assistant Websocket installiert ist.  
Da es in der Regel beim Node-Red standardmäßig mit installiert wurde steht da kein installieren, aber eine neue Version.  
Sollte es bei euch nicht installiert sein. Steht anstelle von Aktuialiseren installieren.  
Sollte sogar die aktuellste Version drauf sein steht da gar nichts.  
Ich klicke erst mal auf aktualisieren um die aktuellste Version zu bekommen.

[![Auswahl_208.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/v9JQqY7cKHRKo3tQ-auswahl-208.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/v9JQqY7cKHRKo3tQ-auswahl-208.png)

Dann nochmal bestätigen

[![Auswahl_209.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/yS0GLYMGQ1KNeeQ2-auswahl-209.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/yS0GLYMGQ1KNeeQ2-auswahl-209.png)

Nun warten...

[![Auswahl_210.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/Y1RDmWdyZImMwLVf-auswahl-210.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/Y1RDmWdyZImMwLVf-auswahl-210.png)

Nach dem Upgrade muss Node Red neu gestartet werden

[![Auswahl_211.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/HozP32tuhuay8QmY-auswahl-211.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/HozP32tuhuay8QmY-auswahl-211.png)

Nun auf schließen klicken

[![Auswahl_212.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/hmDFmLp5qQbPNVgv-auswahl-212.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/hmDFmLp5qQbPNVgv-auswahl-212.png)

Jetzt auf Einstellungen -&gt; Addon Ons

[![Auswahl_213.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/0cCVnSUKvwAjmFGW-auswahl-213.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/0cCVnSUKvwAjmFGW-auswahl-213.png)

Dann auf Node Red klicken

[![Auswahl_214.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/fkv4CfkgTh9Wfo5q-auswahl-214.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/fkv4CfkgTh9Wfo5q-auswahl-214.png)

Dann auf neustarten klicken

[![Auswahl_215.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/8hu6tuTdBdCfrZMa-auswahl-215.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/8hu6tuTdBdCfrZMa-auswahl-215.png)

Dann wieder auf Node Red in der Seitenleiste. Und die Warnung ist auch weg.

[![Auswahl_216.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/CkziUgoQBdRkZLcb-auswahl-216.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/CkziUgoQBdRkZLcb-auswahl-216.png)

### Node RED-Companion installieren:  


#### Was macht dieser:

Hauptfunktionen:

<div class="flex max-w-full flex-col flex-grow" id="bkmrk-entit%C3%A4tenverwaltung%3A"><div class="min-h-8 text-message flex w-full flex-col items-end gap-2 whitespace-normal break-words [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="585fc969-5ca9-4618-83ea-cd5815b2bfb3" data-message-model-slug="gpt-4o" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose w-full break-words dark:prose-invert light">- **Entitätenverwaltung**: 
    - Erstellen und Aktualisieren von Home Assistant Entitäten über Node-RED, einschließlich: 
        - Binärsensoren
        - Tasten
        - Zahlen
        - Auswahlen
        - Sensoren
        - Schalter
        - Textfelder
- **Flow-Steuerung**: 
    - Aktivieren oder Deaktivieren von Node-RED Flows direkt über die Home Assistant-Benutzeroberfläche.
- **Webhooks**: 
    - Erstellen und Verwalten von Home Assistant Webhooks mit Verarbeitung in Node-RED.
- **Geräteautomatisierung**: 
    - Nutzen von Gerätetriggern und -aktionen in Node-RED für erweiterte Automatisierungsmöglichkeiten.

</div></div></div></div>#### Installation:

Auf HACS -&gt; integrationen gehen

[![Auswahl_243.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/h38dwjGKw7uhNvwZ-auswahl-243.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/h38dwjGKw7uhNvwZ-auswahl-243.png)

Dann unten auf Durchsuchen und herunterldaen von repositories klicken

[![Auswahl_244.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/Mh8jZMNVKG16zv6W-auswahl-244.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/Mh8jZMNVKG16zv6W-auswahl-244.png)

Dort in den suchfilter node eingeben und dann NODE-RED Companion anklicken

[![Auswahl_245.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/k22TqZLE1XrqufVX-auswahl-245.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/k22TqZLE1XrqufVX-auswahl-245.png)

Rechts unten dann auf herunterladen klicken

[![Auswahl_246.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/9Ya9Z63dHerd7YTz-auswahl-246.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/9Ya9Z63dHerd7YTz-auswahl-246.png)

Nun nochmals auf Herunterladen klicken. Aktuellste Version ist vor ausgewählt

[![Auswahl_247.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/neJc3bcM3MpW3MNK-auswahl-247.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/neJc3bcM3MpW3MNK-auswahl-247.png)  
Es steht danach immer noch wieder herunterladen, das ist okay. Weil man könnte ja die Version wechseln

Danach Home Assistant neustarten.  
Nach dem Neustart die Seite nochmal neuladen.

Nun unter Einstellungen -&gt; Geräte und Dienste gehen

[![Auswahl_248.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/mLQos5eXeBpy4oOp-auswahl-248.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/mLQos5eXeBpy4oOp-auswahl-248.png)

Dann auf integration hinzufügen klicken

[![Auswahl_249.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/a4zb60HK1kKHy2El-auswahl-249.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/a4zb60HK1kKHy2El-auswahl-249.png)

Nun node als suchbegriff eingeben und dann node red companion anklicken

[![Auswahl_250.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/ZIm0pYZ9bNBIs5vt-auswahl-250.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/ZIm0pYZ9bNBIs5vt-auswahl-250.png)

Nun auf Absenden klicken

[![Auswahl_251.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/jAE6Y1O2rEURodlh-auswahl-251.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/jAE6Y1O2rEURodlh-auswahl-251.png)

Nun haben wir in der Liste unter konfiguriert, den Node Red Companion. Fertig  
[![Auswahl_252.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/DgIeCGjfCTuTY9kq-auswahl-252.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/DgIeCGjfCTuTY9kq-auswahl-252.png)

# Grundübersicht

## Flows und Nodes

### Übersicht

Flows sind die Seiten auf den Nodes plaziert werden. Mann kann mehrere Flows haben. Vergleichbar mit Szenen.  
Somit wird es übersichtlicher. Man kann natürlich auch alles auf einen Flow packen. Aber der Übersichthalber kann man halt mehrere Flows anlegen.

Die Nodes sind auf der Linke Seite.  
Nodes sind unsere Bausteine mit den wir unseren Flow bauen.

[![Auswahl_217.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/OkP9nvboLLOKuKL8-auswahl-217.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/OkP9nvboLLOKuKL8-auswahl-217.png)

### Flow hinzufügen

Um ein weiteren Flow hinzu zu fügen klicken wir auf das + Symbol

[![Auswahl_218.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/EFfKYWERCbC2wvpJ-auswahl-218.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/EFfKYWERCbC2wvpJ-auswahl-218.png)

Nun haben wir einen zweiten Flow im Tab daneben.

[![Auswahl_219.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/62nswowH8F5oorNT-auswahl-219.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/62nswowH8F5oorNT-auswahl-219.png)

Im Rechten Fenster sehen wir auch nochmal unsere Flows.

### Flow umbenennen

Um einen Flow umzubenennen, doppelklick auf den Tab des Flows den man umbenennen möchte

[![Auswahl_221.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/5GQsIgKSFZinc1JM-auswahl-221.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/5GQsIgKSFZinc1JM-auswahl-221.png)

Nun dort den Text ändern. Wir haben auch die Möglichkeit eine Beschreibung hinzuzufügen.  
Darin kann man zum Beispiel noch mal seine Abläufe erläutern, damit man nach einem jahr auch noch weiß was womit gemeint war, so ne Art Doku.

[![Auswahl_222.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/y4GdtsBuxwBCdq2K-auswahl-222.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/y4GdtsBuxwBCdq2K-auswahl-222.png)

Geändert und eine Beschreibung eingefügt. Nun auf Fertig klicken.

[![Auswahl_223.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/6xhTIqvwV8FNEZY2-auswahl-223.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/6xhTIqvwV8FNEZY2-auswahl-223.png)

### Flow löschen

Doppelklcik wieder auf den Reiter des zu löschenden Flows

[![Auswahl_224.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/9qCK2DXuVwUjN4e5-auswahl-224.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/9qCK2DXuVwUjN4e5-auswahl-224.png)

Und dort dann löschen anklicken

[![Auswahl_225.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/HUaT8stp4jlapyeK-auswahl-225.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/HUaT8stp4jlapyeK-auswahl-225.png)

### Nodes  


#### Plazieren von Nodes  


Um ein Node auf den Flow zu ziehen, den node den man haben möchte aus der Liste Links mit der linken Muastatse gedrückt halten und auf den Flow ziehen

[![Auswahl_226.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/r5QQHkpMph3XM8mQ-auswahl-226.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/r5QQHkpMph3XM8mQ-auswahl-226.png)

Nun ist die Node plaziert.

[![Auswahl_227.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/ASkA44xEg8kJdcvU-auswahl-227.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/ASkA44xEg8kJdcvU-auswahl-227.png)

#### Eigenschaften der Node anzeigen, umbenennen und löschen

Hierrüber kann die Node auch gelöscht werden, analog wie beim Tab.  
Dazu doppelklick auf die Node.  
Nun können wir Name vergeben oder aber über den löschen Button die Node löschen.

[![Auswahl_228.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/krh4sqO93UfncsTa-auswahl-228.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/krh4sqO93UfncsTa-auswahl-228.png)

### Deployen - scharf schalten

Damit Nodes eigenschften etc. auch Aktiv geschaltet werden, gibt es oben rechts den Butto deploy.  
Kann man gleich setzten mit speichern oder übernehmen.

[![Auswahl_233.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/JTdS4anBVQHLnuME-auswahl-233.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/JTdS4anBVQHLnuME-auswahl-233.png)

Über den Pfeil kann man auch sagen, mann will nur bestimmte Bereiche Deployen möchte

[![Auswahl_234.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/eFYuGxcGiEvhKiWx-auswahl-234.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/eFYuGxcGiEvhKiWx-auswahl-234.png)

### Erste Automation

Denn Node RED dient ja dazu Automatisierungen Visuell zu Programmieren mit Blöcken (Nodes)  
Was brauchen wir für die Automatisierung:

- Ein Gerät / Entität,
- Diese muss Eigenschaften haben irgendwas zu triggern also ein Sensor quasi (Zum Besipiel ein Temperatur Sensor)
- Dann wird eine Aktion ausgelöst, zum Beispiel eine Benachrichtung oder ein Gerät wird geschaltet
- Das ganze kann man dann noch mit einer Statusüberwachung prüfen.

#### Nodes typen

##### Kommentar Node

Die Kommentar Node hat keine Funktion, sie dient zur Dokumentation von Bausteinen oder sonstigen infos.  
Jetzt suchen wir uns die Comment Node raus. Dazu einfach comm  
Oben links ist ein suchfilter. Da kann man nach Nodes filtern.  
Dann braucht man nicht so viel scrollen. DIese dann wieder mit linker Taste gedrückt halten und auf die freie Fläche ziehen

[![Auswahl_229.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/gHdveOIZHtDAI8zn-auswahl-229.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/gHdveOIZHtDAI8zn-auswahl-229.png)

Nun doppelklick auf die Node, kann man Name und den Kommentar eingeben

[![Auswahl_230.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/lnKvEw2zbBxaILqZ-auswahl-230.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/lnKvEw2zbBxaILqZ-auswahl-230.png)

In der Node selbst wird der name angezigt, klickt man die Node an. wird im rechten Fenster der Inhalt also unser Kommentartext angezeigt.

[![Auswahl_232.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/zu3HZnsfyFDoivkW-auswahl-232.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/zu3HZnsfyFDoivkW-auswahl-232.png)

##### Entity Node (Ersetzt durch eine neue Gruppe von Elementen die "Home Assitant Entities" )  


Die Entity Node ist eine Node mit der man eine Entität in Home Assistant anlegen kann. Also ein Virtuelles Gerät.  
Zum Beispiel ein Schalter oder ein sensor. Diese Entität ist allerding deprecated. Denn in diese Entität war zu unflexibel.  
Dafür gibt es jetzt neue Nodes, mit denen Man GUI Elemnte oder Sensororen in Home Assistant bauen kann.  
Virtuell halt.  
  
Am Namen kann man schon erkennen was was sein soll.

[![Auswahl_235.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/McJiYYmVMbsfCEpv-auswahl-235.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/McJiYYmVMbsfCEpv-auswahl-235.png)

Wir ziehen uns einen Schalter (switch) auf die freie Fläche) doppelklcik drauf und geben Ihm den Namen. Testschalter.

[![Auswahl_236.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/Q3BrMNo4ZDAbQien-auswahl-236.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/Q3BrMNo4ZDAbQien-auswahl-236.png)  
klicken dann auf den Bleistift.   
**In Neueren Versionen ist dies ein + Button**

[![Auswahl_238.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/4GDHHK0vnlmzB8Ga-auswahl-238.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/4GDHHK0vnlmzB8Ga-auswahl-238.png)

Nun Einen Namen angeben, switch auswählen und Device class auch switch.  
Mit dem Stift bei Device kann man auch einen Eigenen Geräte Namen und Hersteller angeben.  
**Hier ist es jetzt in neueren Version auch ein + Button anstatt Stift**  
Wenn man möchte. Dann auf Hinzufügen

[![Auswahl_239.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/kmn65hRPEdR06asz-auswahl-239.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/kmn65hRPEdR06asz-auswahl-239.png)

Nun noch Auf Fertig klicken.  
Danach auf deploy klicken

[![Auswahl_237.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/60D7sat5HUC1F9PL-auswahl-237.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/60D7sat5HUC1F9PL-auswahl-237.png)

Nun haben wir einen registrierten Schalter

[![Auswahl_253.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/CPKqaHq7lcujaD17-auswahl-253.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/CPKqaHq7lcujaD17-auswahl-253.png)

Um zu sehen welche Entitäten von Node-RED Companion es gibt, gehen wir unter  
EInstellungen -&gt; Geräte und Dienste

[![Auswahl_248.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/mLQos5eXeBpy4oOp-auswahl-248.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/mLQos5eXeBpy4oOp-auswahl-248.png)

Dort sehen wir dann bei Node Red Companion 1 Entität. Weil wir haben zur Zeit einen Schalter.  
Da klicken wir drauf.

[![Auswahl_254.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/GB6bhc9JIHCjmPWv-auswahl-254.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/GB6bhc9JIHCjmPWv-auswahl-254.png)

Nun sehen wir unseren Schalter. Name soll irgendwas machen. vom Typ switch.{name} name = soll irgendwas machen.  
läuft. Dieses Gerät kann wie jedes anderes Gerät dann auch ein Bereich zugewiesen werden usw.

[![Auswahl_255.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/fcU1aMDtUjHCqfd9-auswahl-255.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/fcU1aMDtUjHCqfd9-auswahl-255.png)

Auf dem Dashboard sieht das dann so aus. Ein Virtueller Schalter.

[![Auswahl_256.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/TKvaOTp3g9eQdOT2-auswahl-256.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/TKvaOTp3g9eQdOT2-auswahl-256.png)

##### Event State Node (trigger/sensor) Teil 1  


Die Event State Node fragt Geräte eigenschaften / Zustände ab, also ein trigger.

Wieder eine Node hinzufügen, hier die Event State Node einen Namen vergeben, Server auswählen (HomeAssistant)  
und das Entity auswählen.  
Über die suche hab ich jetzt einfach "soll" eingegeben. Und schon bekommen wir unseren Schalter soll irgendwas machen.  
Wir klicken erstmal auf fertig.

[![Auswahl_194.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/66Pv0auALtb0Xzgs-auswahl-194.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/66Pv0auALtb0Xzgs-auswahl-194.png)

##### Debug Node

Bevor es an die Bedingung geht.  
Was für einen Wert gibt unser Schalter denn zurück?  
Das bekommen wir mit der Debug Node raus.  
Diese Node ist besonders hilfreich um zustände zu bekommen.

In der Seitenleiste Rechts gibt es Symbol mit nem Käfer, da landen alle Infos von Debug Nodes oder Fehler von Nodes.  
Über die Mülltonne mit all, lassen sich alle Nachrichten löschen, sprich das Debug Log leeren.

[![Auswahl_196.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/EphiB2KkR73sIAK4-auswahl-196.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/EphiB2KkR73sIAK4-auswahl-196.png)  
Für Fehler braucht man keine Debug Nodes.

Wir fügen eine Debug Node hinzu und geben Ihr einen Namen.   
Als Ausgabe wollen wir meisten den payload, also sprich die Daten die das Gerät zurück gibt.  
Den Haken bei Debug Tab rein, so das diese Dann auch im Debug Log hinzugefügt werden.  
ist der Haken raus, steht der Zustand nur unten drin

[![Auswahl_195.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/3Rk30seEkUwaqfM4-auswahl-195.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/3Rk30seEkUwaqfM4-auswahl-195.png)

Nun den Ausgang unserer prüfe schalter node mit dem Eingang des Debug Nodes verbinden und auf Deploy klicken

[![Auswahl_201.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/Q2poJncbP9yNJmIJ-auswahl-201.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/Q2poJncbP9yNJmIJ-auswahl-201.png)

Nun einen neuen Tab öffnen und unseren Schalter aus und wieder einschalten betätigen.  
Nach Erstellung ist der Schalter Standardmäßig eingeschaltet

[![Auswahl_198.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/Y6LYpCvhMEcqaIaT-auswahl-198.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/Y6LYpCvhMEcqaIaT-auswahl-198.png)

Nun machen wir den Schalter aus

[![Auswahl_199.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/7OPKhKwZzIfcrbpb-auswahl-199.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/7OPKhKwZzIfcrbpb-auswahl-199.png)

Und wieder ein

Im Debug ist nun folgendes zu sehen.

Für einfache Zustände braucht man tatsächlich keine Debug Node, aber es geht ums Prinzip, denn wie zu sehen, wir der Wert unterm Testschalter angegeben, allerdings immer nur der letzte.   
Übers Debug Node wissen wir nun beide zustände. Wenn der Schalter eingeschaltet ist ist es der Wert on und wenn er ausgeschaltet ist , ist es off.  
Es hätte ja genauso gut true and false sein können.  
Da der Wert on off ein Text ist, wissen wir das wir einen String vergleichen müssen.

[![Auswahl_202.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/g2coIYuePwyOi0gP-auswahl-202.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/g2coIYuePwyOi0gP-auswahl-202.png)

##### Event State Node (trigger/sensor) Teil 2  


Nun können wir wieder unseren Service anklicken und die Bedingung eintragen. Ist Text und on.

[![Auswahl_203.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/PJKyO6NkDC3rtO3M-auswahl-203.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/PJKyO6NkDC3rtO3M-auswahl-203.png)

Unsere Node hat zwei Ausgänge.  
Der Erste wenn die Bedingung wahr ist und die zweite Unwahr.  
So können wir zwei Zustände erfassen. Ist der Schalter an, mach das, ist der aus mach das.

Nachdem wir die Bedingung eingetragen haben, bekommen wir im Debug auch nur noch on.  
Denn vorher war die Node ja immer true und der Payload wurde für on wie auch off an dem ersten Ausgang übertragen. Wollen wir im Debug Node auch jetzt noch beide zustände müssen wir den False Ausgang auch noch ans Debug Modul packen.

[![Auswahl_204.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/PHSwjO5vUUiOUM0n-auswahl-204.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/PHSwjO5vUUiOUM0n-auswahl-204.png)

Beide Ausgänge aufs Debug Modul.

[![Auswahl_205.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/nFCX2I7fP9pfmntv-auswahl-205.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/nFCX2I7fP9pfmntv-auswahl-205.png)

Jetzt wäre ein Kommenta sinnvoll und das Debug modul kann gelöscht werden, wenn man es nicht braucht, oder deaktiviert, damit das Log nicht vollgemüllt wird.

Deaktivieren

[![Auswahl_206.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/LRAq6Ziflk84QNwy-auswahl-206.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/LRAq6Ziflk84QNwy-auswahl-206.png)

Nun ist es deaktiviert. Deployen nicht vergessen.

[![Auswahl_207.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/b2k3g5yZyOrA27yT-auswahl-207.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/b2k3g5yZyOrA27yT-auswahl-207.png)

Ich lösche das Debug Objekt aber und ändere unser Kommentarfeld was jetzt auch einen sinn macht

[![Auswahl_209.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/MpWNorizE4b5hFBl-auswahl-209.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/MpWNorizE4b5hFBl-auswahl-209.png)

Ich schreibe oben in den Titel schon die Werte rein. Für die Vollbeschreibung dann doppelklick auf das Kommentar Node

[![Auswahl_210.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/zUleGkYPQk0eHZ1C-auswahl-210.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/zUleGkYPQk0eHZ1C-auswahl-210.png)

Nun können wir endlich unsere Aktion hinzufügen.  
Das machen wir mit der call service node

##### Call Service Node

Wir fügen ein call service node hinzu vergeben einen Namen und die wählen unsere Geräte Klasse,  
Hier Licht

[![Auswahl_211.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/1gYH083JAbSpTwoY-auswahl-211.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/1gYH083JAbSpTwoY-auswahl-211.png)

Bei Enitity wählen wir das eigentliche Gerät.  
ich gebe in die suche light an, so werden mir alle Geräte mit light aufgelistet.  
ich wähle mein Sofa licht. Auch Gruppen können ausgewählt werden wie meine Gruppe light.wohnzimmerlichter

[![Auswahl_212.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/M02g6ubQYsDoTBRr-auswahl-212.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/M02g6ubQYsDoTBRr-auswahl-212.png)

Nun wählen wir den Service aus. Da wir gesagt bei status on soll das licht an gehen und nicht togglen, wählen wir hier on

[![Auswahl_213.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/0O9ldP7DIQYsAaRA-auswahl-213.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/0O9ldP7DIQYsAaRA-auswahl-213.png)

Nun da wir den Service ausgwählt haben, haben wir weiter unten bei Data eine reihe von Werten die Wir übergeben können angezeigt.  
Die Service node hat übrigends auch die Möglichkeit Debug Informationen anzuzeigen. So braucht man keine Extra Debug Node erstellen.  
Viele Nodes haben das schon inbegriffen.  
Hier aber eine Liste der Werte, die dieser Service unterstützt, einige Werte werden eventuell von dem Entity nicht unterstützt.  
Dann passiert halt nichts und wird nur eingeschaltet.  
zum Beispiel bei einer weißen Lampe die keine Farben unterstützt, kann ich auch keine Farbe setzten:

[![Auswahl_214.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/4j009wWNspaYMbCy-auswahl-214.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/4j009wWNspaYMbCy-auswahl-214.png)

Hier sind zufällig alle Parameter optional, das heißt in das Feld Data einfach zwei geschweifte Klammern.  
Wichtig: Bei Data Format muss Json ausgewählt sein, nicht json Data

[![Auswahl_219.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/FKDA8UXofd0MMuGd-auswahl-219.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/FKDA8UXofd0MMuGd-auswahl-219.png)

aber möchte man ein Beispiel, einfach auf Load Example Data klicken.  
Das find ich total Praktisch, dann braucht man nur noch die Werte ändern.

[![Auswahl_215.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/AZYp9BCkRHMXofC9-auswahl-215.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/AZYp9BCkRHMXofC9-auswahl-215.png)

Nun braucht man nur noch den Farbwert ändern als Beispiel

[![Auswahl_220.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/3Sx4SWy8wQLuKoSS-auswahl-220.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/3Sx4SWy8wQLuKoSS-auswahl-220.png)

Wir belassen es bei leeren klammern.  
Nun auf Fertig.  
Jetzt können wir event state Ausgang wahr mit dem Licht verbinden und deployen das ganze.

[![Auswahl_217.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/8zt1EJrVReKUfbNq-auswahl-217.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/8zt1EJrVReKUfbNq-auswahl-217.png)

Jetzt machen wir zwei Tabs auf. Einmal wieder zu unserem Schalter und dann den Gerätestaus vom Licht.  
Wir schalten unser licht als erstes aus, auf der Geräte Seite

[![Auswahl_221.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/jUnqpMQHi2lddHXg-auswahl-221.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/jUnqpMQHi2lddHXg-auswahl-221.png)

Nun gehen wir aufs Dashbaord und schalten den schalter aus und wieder ein.

[![Auswahl_199.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/7OPKhKwZzIfcrbpb-auswahl-199.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/7OPKhKwZzIfcrbpb-auswahl-199.png)

[![Auswahl_198.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/Y6LYpCvhMEcqaIaT-auswahl-198.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/Y6LYpCvhMEcqaIaT-auswahl-198.png)

Nun wurde auch die Lampe eingeschaltet, siehe Geräte Seite

[![Auswahl_222.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/aZVv3n6i0nrQiYz2-auswahl-222.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/aZVv3n6i0nrQiYz2-auswahl-222.png)

Nun möchten wir natürlich das beim ausschalten des Schalters die Lampe auch ausgeht.  
Dazu kopieren wir die Node Licht Wohnzimmer. Anklicken strg+c bzw bei mac command+c und strg+v bzw command+v  
Jetzt haben wir die Node zweimal

[![Auswahl_223.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/kU9lu7rqgv8CQatq-auswahl-223.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/kU9lu7rqgv8CQatq-auswahl-223.png)

Wir klicken die erste noch verbundene doppelt an und ändern den Namen

[![Auswahl_225.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/xOLkfamQqCiB9DF0-auswahl-225.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/xOLkfamQqCiB9DF0-auswahl-225.png)

Bei der zweiten Node ändern wir den Namen in aus und wählen den Service turn\_off

[![Auswahl_226.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/x6gxy5gCkQHdBSoW-auswahl-226.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/x6gxy5gCkQHdBSoW-auswahl-226.png)

Nun verbinden wir die zweite node mit dem false Ausgang des event state, dann deployen

[![Auswahl_227.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/UG7o9V3rG51vSIFf-auswahl-227.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/UG7o9V3rG51vSIFf-auswahl-227.png)

Nun kann man mittels Schalter das Licht ein und ausschalten.  
Und jep Ihr habt recht, man hatte auch die Schalter Ausgänge direkt mit den Services verbinden können.  
ich wollte hier aber den event state vorstellen, denn anstatt eines Schalters hätte es ja auch ein Bewegungsmelder sein können, und den können wir nur über event state abfragen.

Direkt mit Schalter sähe so aus:

[![Auswahl_227.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/qr8zoPn1LRfKzUH9-auswahl-227.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/qr8zoPn1LRfKzUH9-auswahl-227.png)

Damit das Aber klappt muss im Schalter noch ein Haken gesetzt werden das der Status als Payload weitergeben werden soll

[![Auswahl_228.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/g6YlGPcna7XDLpUJ-auswahl-228.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/g6YlGPcna7XDLpUJ-auswahl-228.png)

Dies kann dann bei Standard also belassen werden

[![Auswahl_229.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/RbhefxEXOkOqp1ty-auswahl-229.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/RbhefxEXOkOqp1ty-auswahl-229.png)

Fertig, nun kann das Licht direkt ohne event state geschaltet werden, da der Button ja schon ein event (Ereignis auslöst)  
Wie hier auch nochmal zu sehen

[![Auswahl_230.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/eCQujKsri4n1veZU-auswahl-230.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/eCQujKsri4n1veZU-auswahl-230.png)

Dieser Schalter dient wirklich nur dazu, wenn man gerne einen Knopf in der Oberfläche haben möchte der kein Echter Schalter ist.

Hat man so einen Schalter nur zum debuggen eingebaut, damit ich auch ohne event state meine Aktion testen kann, gibt es einen besseren Weg.  
Denn jedes mal zum Bewegungsmelder zu rennen damit er ein Ereignis ausgibt kann ich mir einen Hilfsknopf direkt in Node Red bauen, ohne den Dashboard Knopf.  
Über die Entwicklerwerkzeuge hab ich auch die Möglichkeit Werte zu ändern, aber da muss ich ja schon wieder ein Tab im Browser wechseln.  
Siehe [Geräte Werte Temporär ändern](https://wiki.hacker-net.de/books/home-assistant/page/gerate-werte-temporar-andern-ohne-neustart "Geräte Werte Temporär ändern ohne neustart")

Und nun der Inject Knopf

##### Inject Node

Der Inejct Knopf ist ein Debug Hilfsmittel mit dem Ich ein Ereignis innerhalb Node Red triggern kann.  
Entweder im Intervall oder einmal.

Wir löschen erstmal die Verbindungen zu unserem Vorherigen Button und schieben die Lichter ein wenig nach rechts

[![Auswahl_231.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/X8xCXd3ARZWIuOPB-auswahl-231.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/X8xCXd3ARZWIuOPB-auswahl-231.png)

Nun fügen wir die Inject Node hinzu. Vergeben einen namen.  
ALs Payload wird der Zeitstempel übergeben. Der Payload ist uns eigentlich negal, da er ja sowieso nur ein true rausgibt egal was drin steht. Das teil hat ja nur einen Zustand.

[![Auswahl_232.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/DpvZ9nc7plvD8BT3-auswahl-232.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/DpvZ9nc7plvD8BT3-auswahl-232.png)

Unten wäre die Möglichkeit auch eine Uhrzeit einzusetllen, dann ist es Kein Debug Knopf mehr sondern währe ein Taskplaner.  
Wie geil ist das denn ;-)

[![Auswahl_233.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/0zyroWtVCNoY8vfh-auswahl-233.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/0zyroWtVCNoY8vfh-auswahl-233.png)

Wir nutzen Ihn hier aber nur als Debug Button zum Auslösen beim drauf drücken.  
Diesen verbinden wir jetzt mit Lmape an. Genauso wie unseren Prüfe schalter Verbinden wir auch wieder mit Lampe an und Lampe aus.  
Dann sieht das ganze wieder so aus. Wird der Dashboard Schalter gedrückt löst das event state wieder aus jenach nzustand an oder aus. Wird unser Debug Knopf gedrückt wird das licht angeschaltet unabhängig vom event state

[![Auswahl_234.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/AwyLEsrBbxm8CjrG-auswahl-234.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/AwyLEsrBbxm8CjrG-auswahl-234.png)

Wir kopieren den Debug Knopf noch einmal und verbinden diesen mit Wohnzimmer aus und deployen das ganze.

[![Auswahl_235.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/y5zcePuMfoDx1jl1-auswahl-235.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/y5zcePuMfoDx1jl1-auswahl-235.png)

man löst den Debug knopf über die Schaltfläche davor aus, wie bei der Debug Node den Knopf

[![Auswahl_236.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/sRnMKLbOILBUWP9O-auswahl-236.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/sRnMKLbOILBUWP9O-auswahl-236.png)

Anhand der Uhrzeit sieht mann ich hab erst on dann off gedrückt.

[![Auswahl_238.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/oLa6yhQD65m6GHdC-auswahl-238.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/oLa6yhQD65m6GHdC-auswahl-238.png)  
  
Hier auch nochmal im Log der Lampe

[![Auswahl_237.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/CWqR1v83Wc0l2nrH-auswahl-237.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/CWqR1v83Wc0l2nrH-auswahl-237.png)

Anstatt den Button in der event statse noder zu überwachen, würde man hier einen Bewegungsmelder nehmen oder was auch immer nehmen, ist schon klar.  
Es geht hier ums Prinzip ;-)

##### Variablen: Change und Function Node :

Es gibt zwei Typen von Variablen:

1. Flow Variablen - Gelten nur in dem aktuellen Flow
2. Global Variablen - Gelten über alle Flows

Dazu ziehen wir uns eine Change Node in den Flow, setzten den Namen.  
und wählen dann flow oder Global aus der Liste aus.

[![Auswahl_240.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/ZfChrFGm02ZCyuqQ-auswahl-240.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/ZfChrFGm02ZCyuqQ-auswahl-240.png)

Nach flow. den variable Namen und darunter der Wert

[![Auswahl_241.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/kL0drX5w6guh43B5-auswahl-241.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/kL0drX5w6guh43B5-auswahl-241.png)

Uns stehen folgende Variable Typen zur Verfügung. Flow und Global machen meist keinen Sinnd weil wir hier ja eine flow/global Variable definieren. Möchten wir eine bestehende Variable ändern, kommt meist noch mehr dazu als nur Inhalt Variable 1 in Variable 2 kopieren   
(was natürlich geht in dem to Value dann die Flowvariable ausgewählt wird mit dem Quellvariablennamen).   
Für komplexere Sachen nehmen wir lieber dann die später erklärte Function Node.

Das bei Set to value ist das msg Objekt, das msg was am Eingang der Node ankommt zum Beispiel der Wert eines vorherigen verbundenen Sensors oder so.

[![Auswahl_242.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/ToqfpxLsFF9MtdGh-auswahl-242.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/ToqfpxLsFF9MtdGh-auswahl-242.png)

Nun setzten wir uns ein Inject Knopf und verbinden die Change Node mit um diesen dann triggern.

[![Auswahl_243.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/wqDkIfE9JymgusBo-auswahl-243.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/wqDkIfE9JymgusBo-auswahl-243.png)  
Setzen uns eine weiteres Inject und Verbinden eine Debug Node.  
Dort einen Namen wählen und als payload flow und unseren Variable namen.

[![Auswahl_244.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/yFZDe962QG4mMKVm-auswahl-244.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/yFZDe962QG4mMKVm-auswahl-244.png)

Nun deployen wir das ganze und drücken dann auf den inject button 1 und danach inject button 2

[![Auswahl_245.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/dxN0j9Gy0Rm1yGFw-auswahl-245.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/dxN0j9Gy0Rm1yGFw-auswahl-245.png)

Nun sehen wir in der Debug leiste unseren Wert.

[![Auswahl_246.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/8SxsCeo5v4L3fL2r-auswahl-246.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/8SxsCeo5v4L3fL2r-auswahl-246.png)

Wir können die Variable aber auch innerhalb eines Payloads nutzen also sprich als Varibale in einem text oder so.  
Dazu nutzen wir eine Function Node und setzten diese zwischen dem inject und dem debug

[![Auswahl_248.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/jQgCeQBm6ZmhMQuc-auswahl-248.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/jQgCeQBm6ZmhMQuc-auswahl-248.png)

Doppelklick auf die Function und die Function anpassen

[![Auswahl_249.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/zzIzLW2tblHww2b6-auswahl-249.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/zzIzLW2tblHww2b6-auswahl-249.png)

Beschreibung:

```JavaScript
var newText = flow.get("meinevariable"); //wir holen die flow Variable meinevariable und stecken sie in eine loakle in dieser funktion
newText = "Dieser texte enthält folgende Variable: "+newText+" in der Mitte"; //wir überschreiben newtext mit einem text und in der mitte die ausgelesene Variable die noch in newtext steckt.
//newtext ist jetzt der neue text
flow.set("meineneuevariable",newText); //wir legen eine neue flow variable an, falls man darauf später zurgeifen möchte und nicht gleich in der nächsten node
msg.payload = newText; //gleichzeitig geben wir als payload den neuen text aus, falls man gleich schon mit dem payload in der nächsten node weiterarbeiten möchte, man kann aber auch die neue flow variable nehmen
return msg; //die message zurückgeben
```

Da wir als Payload auch unseren neuen Text ausgegeben haben, ist der auch sofort im Debug Node sichtabr

[![Auswahl_250.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/gZY8PLFlJRsjnBwa-auswahl-250.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/gZY8PLFlJRsjnBwa-auswahl-250.png)

DIe flow.meineneue Variable können wir auch in einer weiteren function, weiterverarbeiten  
oder mit einer change node die msg.payload einfach auf den Wert des flows/global setzten  
Beispiel Eigenschaften einer change node.   
Der Name muss natürlich auch ausgefüllt werden, geht ums Prinzip, die mgs payload auf den Inhalt eines flows/global zu setzten:

[![Auswahl_251.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/oBFnCGXwDSONGKN6-auswahl-251.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/oBFnCGXwDSONGKN6-auswahl-251.png)

Eine Function macht dann sinn, wenn man einer Variable Werte hinzufügen/ rechnen oder was was ich mach möchte oder gleich mehrere dinge auf einmal.  
Wie die Variable komplex ändern und gleichzeitig als Payload ausgeben.  
Will man aber tastächlich nur variable definieren und als payload ausgeben geht das auch mit change. denn mit hinzufügen kann man mehre aktionen durchführen.  
Diese werden von oben nach unten abgearbeitet.  
Beispiel:

[![Auswahl_259.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/lXHms9xheQtsU8OI-auswahl-259.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/lXHms9xheQtsU8OI-auswahl-259.png)  
  
Wir können aber auch anstatt eine Change Node zu nehmen auch gleich eine Function Node nehmen um dieses durch zu führen, eine Variable zu definieren und als Payload ausgeben. Allerdings finde ich zum reinen definieren ne Change Node einfacher.  
Das gleiche geht natürlich dann auch mit global anstatt flow global schreiben, wenn man global variablen braucht.

##### JSON in eine Variable laden, so hat man ein Array in einer Variablen:

Wie man Variablen anlegt haben wir ja schon gesehen.  
So speichern wir ein JSON Object in einer Variablen und lesen einzelne Elemete wieder aus.  
So können wir mehrere Werte in einer Variablen speichern. Und hätten damit ein Array

Hier mal ein Beispiel JSON. Hier haben wir 4 Eigenschaften: name, color,on,brightness

```JSON
{
	"name":"licht Sofa",
    "color":"blau",
    "on":"true",
    "brightness":100
}
```

Mit einer Change node können wir diese JSON speichern. Kommt sie von einer msg nutzen wir ebenfalls die change node.  
Wir erstellen einen inject button eine change node und eine debug node

[![Auswahl_252.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/ywrPgXwKPGT5uAlE-auswahl-252.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/ywrPgXwKPGT5uAlE-auswahl-252.png)

Doppelklick auf die Change Node  
Dort vergeben wir einen Namen, bei setze wieder flow/gloabl und den variablennamen und bei set to wählen wir json aus.

[![Auswahl_253.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/csYdoquJBo4rAjFH-auswahl-253.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/csYdoquJBo4rAjFH-auswahl-253.png)

nun klicken wir auf die 3 Punkte

[![Auswahl_254.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/5u8BoLvdWm1DIB9I-auswahl-254.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/5u8BoLvdWm1DIB9I-auswahl-254.png)

und fügen unser json Data Beispiel von oben ein und dann auf fertig  
[![Auswahl_255.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/FppVXsvSL2uTV4GN-auswahl-255.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/FppVXsvSL2uTV4GN-auswahl-255.png)

Nun sieht das ganze so aus und jetzt unten auf hinzufügen klicken

[![Auswahl_258.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/H4bIeAK7yEt2Qeh1-auswahl-258.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/H4bIeAK7yEt2Qeh1-auswahl-258.png)

Nun kann die msg.payload Ausgabe gesetzt werden auf die flow Variable die wir im ersten schritt defniert haben, danach auf fertig. Diese variable kann nun in der nächsten node durch setzten des msg.payload, wie auch später über den Variablenamen wieder verwendet werden.

[![Auswahl_260.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/q25yftQlkUeF01os-auswahl-260.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/q25yftQlkUeF01os-auswahl-260.png)

Nun unsere Nodes Verbinden und dann deploy anklicken

[![Auswahl_257.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/LB4nw7yibGIA4K4w-auswahl-257.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/LB4nw7yibGIA4K4w-auswahl-257.png)

Wenn wir jetzt auf den Injector klicken sehen wir im Debug Fenster unsere json Objekt

[![Auswahl_261.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/awPKpDrQSZ5J2iYa-auswahl-261.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/awPKpDrQSZ5J2iYa-auswahl-261.png)

Klicken wir auf den Pfeil gibt ne bessere Übersicht.

[![Auswahl_262.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/3DArd6SXln694iSW-auswahl-262.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/3DArd6SXln694iSW-auswahl-262.png)

[![Auswahl_263.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/vssqS4pxnURaVasf-auswahl-263.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/vssqS4pxnURaVasf-auswahl-263.png)

Daten Zugreifen.  
Da das ein JSON Object können wir dem "." auf die Objekte zugreifen..  
Wir legen dazu wieder ein Inject und ein Debug an Verbinden die auch gleich.  
[![Auswahl_264.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/sydvClpVjW8nD4hH-auswahl-264.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/sydvClpVjW8nD4hH-auswahl-264.png)  
Nun doppelklick auf die Inject node  
Dort einen Namen vergeben und dann bei Flow den Variablenamen einegben.

[![Auswahl_265.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/RiLtLzEdYzqWK0OT-auswahl-265.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/RiLtLzEdYzqWK0OT-auswahl-265.png)

Nun kann hinter den Variablennamen ein punkt angeben werden und wir bekommen eine auflistung der Elemente

[![Auswahl_266.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/NFtL1tf5K43MwdTD-auswahl-266.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/NFtL1tf5K43MwdTD-auswahl-266.png)

Wir nehmen hier mal den Namen und klicken auf fertig.  
[![Auswahl_267.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/Q1laCSGs9VPZWy5C-auswahl-267.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/Q1laCSGs9VPZWy5C-auswahl-267.png)

Nun deployen   
Dann den ersten inject für die für die json variable erstellen.  
Dann den zweiten Inject für das auslesen.  
nun sehen wir den Wert der Eigenschaft Name als Payload.   
Nämlichen den Namen.

[![Auswahl_268.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/scaled-1680-/vqjmwAkDojfGe4RJ-auswahl-268.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-10/vqjmwAkDojfGe4RJ-auswahl-268.png)

# Push Notifactions / Benachrichtigungen

### Beschreibung:

Wenn man die Home Assistant Companion App installiert hat auf Android oder iOS kann man benachrichtungen senden.  
Natürlich kann man auch andere Geräte Nachrichten senden, das hängt davon ab, welche Entität (Device) ausgewählt wurde, was die Benachrichtigung erhalten soll.

### Kanäle für Benachrichtungen Android:

Es gibt zwei Arten von Kanälen

- Push Benachrichtungskanäle (Nur auf Android) 
    - **General**: Für allgemeine Benachrichtigungen, die keine spezielle Kategorisierung benötigen.
    - **Camera**: Benachrichtigungen, die mit Kameras oder Bildern verknüpft sind (z. B. Snapshot von einer Sicherheitskamera).
    - **Location**: Benachrichtigungen im Zusammenhang mit Standortaktualisierungen (z. B. Standortänderungen des Geräts).
    - **Alert**: Dringende Warnungen, die Aufmerksamkeit erfordern (visuell, aber ohne spezifische Audio-Streams).
    - **Progress**: Für Benachrichtigungen, die den Fortschritt eines Prozesses darstellen (z. B. Updates oder Installationen).
    - Eigene Kanäle, es können auch Kanäle selbst erstellt werden.

<div id="bkmrk-hinweis%3A-push-t%C3%B6ne-f" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:**   
  
Push Töne werden auf den Medianausgabe Streams ausgegben  
Push Töne funktionieren nicht im Lautlosmodus, selbst wenn bei Push Benachrichtung im Channel,   
auch bei Bitte nicht stören, melden angehakt ist.  
Wenn bitte nicht nicht stören angehakt ist lässt nur die Benachrichigung dann anzeigen, den **Ton** hört man trotzdem **nicht!**  
  
Workaround: Die Lautstärke per Befehl vorher hochstellen kommen wir später zu..  
</div>```
Hier schon mal der Befehl fürs laut stellen des Benachrichtungs Media Stream

data:
      message: command_volume_level
      title: "100"
      data:
        channel: notification_stream
        
        
Als JSON Data für den Service in Node Red

{
    "message": "command_volume_level",
    "data": {
        "command": 100,
        "media_stream": "notification_stream"
    }
}
```

- Medien Ausgabe Kanäle für Akustik (Nur Android)  
    
    - **alarm\_stream**: Stelle die Lautstärke für den Alarm-Stream ein.
    - **alarm\_stream\_max**: Stelle die Lautstärke für den Alarm-Stream TTS ein   
        (Aber nur wenn die MESSAGE TTS ist (TextToSpeech), bei allen anderen wirds ignoriert.
    - **call\_stream**: Stelle die Lautstärke für den Anruf-Stream ein.
    - **dtmf\_stream**: Stelle die Lautstärke für DTMF-Töne ein.
    - **music\_stream**: Stelle die Lautstärke für den Musik-Stream ein.
    - **notification\_stream**: Stelle die Lautstärke für den Benachrichtigungs-Stream ein.
    - **ring\_stream**: Stelle die Lautstärke für den Klingel-Stream ein.
    - **system\_stream**: Stelle die Lautstärke für den System-Stream ein.
    - **Anything else**: Die Benachrichtigung wird als normale Benachrichtigung gepostet und der Befehl wird nicht verarbeitet.

### Kanäle für Benachrichtungen iOS  


Auf iOS gibt es Keine Kanäle in diesem Sinne wie bei Android. Hier können wir zwischen 3 Kategorien wählen

#### Die drei Kategorien sind:

1. **`notification`** (Standard)
    
    
    - **Beschreibung**: Dies ist die Standardkategorie. Die Benachrichtigung wird in der Mitteilungszentrale angezeigt, spielt eventuell einen Ton ab (abhängig von den Geräteeinstellungen) und erscheint als Banner.  
        Wird keine Category angegeben, wird sowieo notifiction benutzt. Ist also Standard
    - **Geeignet für**: Allgemeine Benachrichtigungen, die keine besondere Aufmerksamkeit erfordern.
    - **Beispiel**:  
        ```
        {
          "message": "Neue Nachricht erhalten.",
          "data": {
            "push": {
              "category": "notification"
            }
          }
        }
        
        ```
2. **`alarm`**
    
    
    - **Beschreibung**: Diese Kategorie priorisiert die Benachrichtigung stark. Sie wird auch dann abgespielt, wenn der `Nicht stören`-Modus aktiv ist, und ein lauter Ton wird abgespielt (vorausgesetzt, die Benachrichtigung hat einen Ton definiert).
    - **Geeignet für**: Kritische Alarme wie Rauchmelder, Einbruchalarm oder medizinische Warnungen.
    - **Beispiel**:  
        ```
        {
          "message": "Rauchmelder-Alarm! Bitte überprüfen!",
          "data": {
            "push": {
              "category": "alarm"
            }
          }
        }
        
        ```
3. **`silent`**
    
    
    - **Beschreibung**: Die Benachrichtigung wird **still** gesendet, ohne Banner, Ton oder Mitteilung in der Mitteilungszentrale. Sie wird nur in Home Assistant verarbeitet.
    - **Geeignet für**: Hintergrundaufgaben, stille Benachrichtigungen oder Datenübertragungen an Home Assistant.
    - **Beispiel**:  
        ```
        {
          "message": "Daten aktualisiert.",
          "data": {
            "push": {
              "category": "silent"
            }
          }
        }
        
        ```
        
        Siehe auch Tabelle Beschreibung der Parameter [hier](#bkmrk--11)

### Benachrichtung TTS Android only

Um TTS Benachrichtungen zu senden, erstelle wir einen Service call.  
Wählen notify bei Domäne aus und service wenn es ein rundruf an alle werden soll notify aus explicit das Gerät.  
Über die 3 Punkte erstellen wir die Nachricht

[![Auswahl_424.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/S9W9EWvsM1EAzlsu-auswahl-424.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/S9W9EWvsM1EAzlsu-auswahl-424.png)

Quelltext

```
{
    "message": "TTS",
    "data": {
        "priority": "high",
        "media_stream": "alarm_stream",
        "tts_text": "Rauchmelder Fahrradschuppen Rauch erkannt"
    }
}
```

Parameter

<table id="bkmrk-parameter-typ-beschr" style="width: 100%;"><thead><tr><th style="width: 15.57%;">Parameter</th><th style="width: 9.27903%;">Typ</th><th style="width: 49.5745%;">Beschreibung</th><th style="width: 25.5908%;">Beispiel</th></tr></thead><tbody><tr><td style="width: 15.57%;">`message`</td><td style="width: 9.27903%;">String</td><td style="width: 49.5745%;">Der Haupttext der Benachrichtigung, der dem Benutzer angezeigt wird. Hier wird TTS als Befehl ausgewertet und es erscheint keine Benachrichtung, da die TTS einfach abgespielt wird.  
</td><td style="width: 25.5908%;">`"TTS"`</td></tr><tr><td style="width: 15.57%;">`data`</td><td style="width: 9.27903%;">Objekt</td><td style="width: 49.5745%;">Zusätzliche Daten und Einstellungen für die Benachrichtigung.</td><td style="width: 25.5908%;">Siehe unten.</td></tr><tr><td style="width: 15.57%;"> `priority`</td><td style="width: 9.27903%;">String</td><td style="width: 49.5745%;">Die Wichtigkeit der Benachrichtigung. `high` sorgt dafür, dass die Benachrichtigung mit hoher Priorität gesendet wird.</td><td style="width: 25.5908%;">`"high"`</td></tr><tr><td style="width: 15.57%;"> `media_stream`</td><td style="width: 9.27903%;">String</td><td style="width: 49.5745%;">Gibt an, welcher Audiokanal für die Benachrichtigung verwendet wird. `alarm_stream` spielt sie über den Alarmkanal ab. Dieser Kanal ist auch im Silent modus erreichbar und kann auch nicht gemuted werden.  
</td><td style="width: 25.5908%;">`"alarm_stream"`</td></tr><tr><td style="width: 15.57%;"> `tts_text`</td><td style="width: 9.27903%;">String</td><td style="width: 49.5745%;">Text, der über Text-to-Speech (TTS) wiedergegeben werden soll.</td><td style="width: 25.5908%;">`"Rauchmelder Fahrradschuppen Rauch erkannt"`</td></tr></tbody></table>

### Benachrichtung TTS ios

Eigentlich ist es keine Benachrichtung, aber es passt trotzdem hier her.  
Denn iOS unterstützt keine TTS Push Benachrichtung, aber mit einem trick können wir das über die App machen.  
Mittels Plugin asu dem HACS Store.

[![Auswahl_425.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/nmdzrXnge6CG364L-auswahl-425.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/nmdzrXnge6CG364L-auswahl-425.png)

Dann auf die 3 Punkte und auf Herunterladen klicken.[![Menü_014.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/Gmm2F51NbaDDsjai-menu-014.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/Gmm2F51NbaDDsjai-menu-014.png)

Nun die letzte Version auswählen und herunterladen anklicken.

[![Auswahl_426.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/7LGFisgH5wuk3jSF-auswahl-426.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/7LGFisgH5wuk3jSF-auswahl-426.png)

nachdem das heruntergeladen wurde auf Geräte gehen und auf integration hinzufügen klicken.  
Als Suchbgriff brow eingeben und die integration Browser mod auswählen.  
[![Auswahl_427.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/lihViQ8yk0ZWnKmf-auswahl-427.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/lihViQ8yk0ZWnKmf-auswahl-427.png)  
Nun erscheint in der Seitenleiste Browser mod.  
Dieses brauchen wir aber erst auf dem iPAD. (Es sei denn Ihr seid schon auf dem iPAD, dann machen wir da später weiter.  
Jetzt muss noch die configration.yaml angepasst werden.  
  
Wir fügen folgende abschnitte hinzu.  
Solltet ihr den google translate teil schon haben, weil ihr den für was anderes konfiguriert habt, könnt ihr den natürlich weg lassen.

```
...
# Text to speech
tts:
  - platform: google_translate
    language: de
...
#tatsächlich nur den namen, nichts mehr
browser_mod:
...
```

Danach Home Assistant neustarten (yaml neuladen reicht nicht)

Nun auf dem Gerät in den Reiter Browsermod gehen  
Den haken zum Registrieren rein packen

[![IMG_0147.PNG](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/Jo6X08mCMOWhNNpn-img-0147.PNG)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/Jo6X08mCMOWhNNpn-img-0147.PNG)

Nun geben wir unserem gerät hinter der ID Namen zum identifizieren.

[![IMG_0148.PNG](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/UFL2wyscFOoPPh90-img-0148.PNG)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/UFL2wyscFOoPPh90-img-0148.PNG)

Nun nach dem Speichern wir der link zu den Profilen freigeschaltet, da drauf klicken nach unten scrollen

[![IMG_0149.PNG](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/FcnPjAEGTbNWjVpO-img-0149.PNG)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/FcnPjAEGTbNWjVpO-img-0149.PNG)

Nun das Auto trennen raus nehmen.

[![IMG_0150.PNG](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/JJLqcFz9fgWfmiGT-img-0150.PNG)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/JJLqcFz9fgWfmiGT-img-0150.PNG)

Ein TTS Objekt in Node RED erstellen

Ein call service erstellen domain tts , service google translate, auswählen und als entity unser ipad (die Browser ID)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/N5neKE6OEwxHAYsy-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/N5neKE6OEwxHAYsy-grafik.png)

ALs json data haben wir nur Message und sprache

```
{
    "message": "Rauchmelder {{ global.rauchmeldertext }} Rauch erkannt",
    "language": "de"
}
```

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/GuGrIvYXhneHUb6C-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/GuGrIvYXhneHUb6C-grafik.png)

### Benachrichtung mit Aktionen  


Man kann auch Benachrichtungen mit Buttons erstellen, die Aktionen ausführen wie Seiten öffnen oder variablen ändern in node red.

Dazu legen wir uns eine Benachrichtigung an mit zwei Buttons.  
Dazu wieder einen call service reinziehen und vom typ notify auswählen.  
Dann unter service notify für alle Geräte oder das Gerät an das gesendet werden soll, explicit auswählen.  
Dann auf die 3 Punkte um unseren Inhalt der Benachrichtung zu definieren

[![Auswahl_424.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/S9W9EWvsM1EAzlsu-auswahl-424.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/S9W9EWvsM1EAzlsu-auswahl-424.png)

Der Quelltext

```
{
    "message": "Rauchmelder-Alarm! Bitte überprüfen!",
    "data": {
        "channel": "Alarm",
        "priority": "high",
        "importance": "high", 
        "ttl": 0,
        "push":{
            "category": "alarm",
            "interruption_level": "time-sensitive"
        },
        "actions": [
            {
                "action": "SNOOZE",
                "title": "Rauchmelder Stoppen",
                "icon": "mdi:bell-alert"
            },
            {
                "action": "IRGENDWAS",
                "title": "IRGENDWAS Stoppen",
                "icon": "mdi:bell-alert"
            }
        ]
    }
}
```

<span id="bkmrk--11"></span>

##### Beschreibung der Parameter:

<table id="bkmrk-parameter-typ-beschr-0" style="width: 100%;"><thead><tr><th style="width: 12.4864%;">Parameter</th><th style="width: 10.6241%;">Typ</th><th style="width: 54.4038%;">Beschreibung</th><th style="width: 22.5002%;">Beispiel</th></tr></thead><tbody><tr><td class="align-left" style="width: 12.4864%;">`message`</td><td style="width: 10.6241%;">String</td><td style="width: 54.4038%;">Die Hauptnachricht der Benachrichtigung, die dem Benutzer angezeigt wird.</td><td style="width: 22.5002%;">`"Rauchmelder-Alarm! Bitte überprüfen!"`</td></tr><tr><td class="align-left" style="width: 12.4864%;">`data`</td><td style="width: 10.6241%;">Objekt</td><td style="width: 54.4038%;">Enthält zusätzliche Informationen und Konfigurationen für die Benachrichtigung.</td><td style="width: 22.5002%;">Siehe unten.</td></tr><tr><td class="align-left" style="width: 12.4864%;"> `channel`</td><td style="width: 10.6241%;">String</td><td style="width: 54.4038%;">Der Benachrichtigungskanal, der für Android verwendet wird. Kanäle steuern Benachrichtigungseigenschaften wie Ton oder Priorität.</td><td style="width: 22.5002%;">`"Alarm"`</td></tr><tr><td class="align-left" style="width: 12.4864%;"> `priority`</td><td style="width: 10.6241%;">String</td><td style="width: 54.4038%;">**`priority`** ist ein älteres, legacy‑Feld, das vor allem auf Android &lt; 8.0 (NotificationCompat) greift.

Auf neueren Geräten (ab Android 8.0) wird `priority` zwar noch akzeptiert, **empfohlen** wird aber, den Kanal per `importance` korrekt zu konfigurieren und `priority` nur als Fallback zu verwenden.

Die Property **`priority`** legt fest, wie wichtig die Notification vom Betriebssystem eingestuft wird und beeinflusst vor allem auf **Android**, ob sie als **Heads‑Up**‑Popup aufplatzt oder eher still im Hintergrund landet.

- **`priority: "high"`** ⇒ kurze Heads‑Up‑Notification oben am Bildschirm, mit Ton (vorausgesetzt der Kanal/Stream ist entsprechend konfiguriert)
- **`priority: "default"`** ⇒ normale Mitteilung ohne Popup
- **`priority: "low"`** oder **`"min"`** ⇒ möglichst unaufdringlich (kein Ton, kein Banner)

**Tipp:** Für Alarm‑ oder TTS‑Nachrichten immer **`"high"`** verwenden, damit die Nachricht wirklich direkt auffällt.

</td><td style="width: 22.5002%;">`"high"`</td></tr><tr><td style="width: 12.4864%;">importance</td><td style="width: 10.6241%;">String  
</td><td style="width: 54.4038%;">Auf Android‑Geräten (ab Version 8.0+) wird die Wichtigkeit eines Notification‑**Kanals** über das `importance`‑Feld gesteuert. Die möglichen Werte sind:

- `min`  
    - `low`  
    - `default`  
    - `high`  
    - `max`

Die Beschreibung der Werte Siehe Tabelle importance

</td><td style="width: 22.5002%;">  
</td></tr><tr><td class="align-left" style="width: 12.4864%;"> `ttl`</td><td style="width: 10.6241%;">Integer</td><td style="width: 54.4038%;">**`ttl`** steht für **Time To Live** und bestimmt, wie lange eine Notification auf dem Server zwischengespeichert und immer wieder zugestellt wird, falls das Gerät gerade offline ist.  
- **`ttl: 0`** → Nachricht wird sofort zugestellt und **nicht** zwischengespeichert.
- **`ttl: 3600`** → Nachricht bleibt bis zu 1 Stunde aktiv und wird wiederholt, bis sie zugestellt oder die Stunde abgelaufen ist.

**Merke:** Ein hoher `ttl`‑Wert sorgt dafür, dass du auch dann noch benachrichtigt wirst, wenn dein Handy gerade keine Verbindung hatte.

</td><td style="width: 22.5002%;">`0`</td></tr><tr><td style="width: 12.4864%;">`push`</td><td style="width: 10.6241%;">Array  
</td><td style="width: 54.4038%;">Push ist ein Array für iOS, zum Verständnis sind bei den nächsten beiden Parametern das Wort push davor, damit man man weis wo zu es gehört. Der Typ String bezieht sich auf das Element in push  
</td><td style="width: 22.5002%;">  
</td></tr><tr><td style="width: 12.4864%;">`push.category`</td><td style="width: 10.6241%;">String  
</td><td style="width: 54.4038%;">Auf iOS gibt es kein Äquivalent zu den Android‑Feldern `priority` oder `importance` – die werden von der Companion App schlicht ignoriert. Stattdessen steuerst du das Verhalten über zwei iOS‑spezifische Felder in deinem Payload:

**`push.category`**

- Legt fest, in welche Kategorie (notification, alarm, silent) die Notification fällt.  
      
    `alarm` spielt deinen definierten Ton auch im „Nicht stören“ ab.

Es werden folgende Werte unterstützt:

- **`notification`** (Standard)
    
    
    - Anzeige: Banner in der Mitteilungszentrale und auf dem Sperrbildschirm
    - Ton: Spielt einen Ton ab, sofern das Gerät nicht stumm geschaltet ist und der User es erlaubt
    - Einsatz: Allgemeine Hinweise, Status‑Updates, alles, was keine besondere Dringlichkeit hat
- **`alarm`**
    
    
    - Anzeige: Banner und Mitteilung wie bei „notification“, **selbst im „Nicht stören“‑Modus**
    - Ton: Laut und durchdringend, auch wenn das Gerät stumm ist oder DND aktiv
    - Einsatz: Kritische Warnungen (Rauchmelder, Einbruch, medizinische Notfälle), bei denen man sofortige Aufmerksamkeit benötigt
- **`silent`**
    
    
    - Anzeige: **Kein** sichtbarer Banner, **kein** Ton, keine Badges
    - Verarbeitung: Wird nur intern von der Companion App entgegengenommen und in Home Assistant verarbeitet
    - Einsatz: Hintergrund‑Signale, Status‑Synchronisation, Updates ohne User‑Unterbrechung (z. B. Daten‑Refresh)

</td><td style="width: 22.5002%;">"data": {  
 "push": {  
 "category": "alarm"  
 }  
}</td></tr><tr><td style="width: 12.4864%;">`push.interruption_level`</td><td style="width: 10.6241%;">String  
</td><td style="width: 54.4038%;">- **`notification`** (Standard)
    
    
    - Anzeige: Banner in der Mitteilungszentrale und auf dem Sperrbildschirm
    - Ton: Spielt einen Ton ab, sofern das Gerät nicht stumm geschaltet ist und der User es erlaubt
    - Einsatz: Allgemeine Hinweise, Status‑Updates, alles, was keine besondere Dringlichkeit hat
- **`alarm`**
    
    
    - Anzeige: Banner und Mitteilung wie bei „notification“, **selbst im „Nicht stören“‑Modus**
    - Ton: Laut und durchdringend, auch wenn das Gerät stumm ist oder DND aktiv
    - Einsatz: Kritische Warnungen (Rauchmelder, Einbruch, medizinische Notfälle), bei denen man sofortige Aufmerksamkeit benötigt
- **`silent`**
    
    
    - Anzeige: **Kein** sichtbarer Banner, **kein** Ton, keine Badges
    - Verarbeitung: Wird nur intern von der Companion App entgegengenommen und in Home Assistant verarbeitet
    - Einsatz: Hintergrund‑Signale, Status‑Synchronisation, Updates ohne User‑Unterbrechung (z. B. Daten‑Refresh)

</td><td style="width: 22.5002%;"> "data": {  
 "push": {  
 "category": "alarm",  
 "interruption\_level": "time-sensitive"  
 }  
}  
</td></tr><tr><td class="align-left" style="width: 12.4864%;"> `actions`</td><td style="width: 10.6241%;">Array</td><td style="width: 54.4038%;">Eine Liste von Aktionen, die in der Benachrichtigung angezeigt werden.</td><td style="width: 22.5002%;">SIehe json Data  
</td></tr><tr><td class="align-left" style="width: 12.4864%;"> `action`</td><td style="width: 10.6241%;">String</td><td style="width: 54.4038%;">Der interne Schlüssel für die Aktion, der in Automatisierungen verwendet wird, wenn die Schaltfläche gedrückt wird.  
Das ist auch der Wert den wir dann auswerten.  
</td><td style="width: 22.5002%;">`"SNOOZE"`</td></tr><tr><td class="align-left" style="width: 12.4864%;"> `title`</td><td style="width: 10.6241%;">String</td><td style="width: 54.4038%;">Der Text des Button, der in der Benachrichtigung angezeigt wird.</td><td style="width: 22.5002%;">`"Rauchmelder Stoppen"`</td></tr><tr><td class="align-left" style="width: 12.4864%;"> `icon`</td><td style="width: 10.6241%;">String</td><td style="width: 54.4038%;">(Optional) Ein Icon, das mit der Aktion verknüpft ist. iOS unterstützt dies, aber Android zeigt normalerweise keine Icons an.</td><td style="width: 22.5002%;">`"mdi:bell-alert"`</td></tr></tbody></table>

##### Tabelle importance Werte und unterschied zu Priority

<table class="min-w-full" data-end="1301" data-start="172" id="bkmrk-stufe-konstante-verh" style="width: 100%;"><thead data-end="333" data-start="172"><tr data-end="333" data-start="172"><th data-end="185" data-start="172" style="width: 8.82002%;">Stufe</th><th data-end="217" data-start="185" style="width: 20.2622%;">Konstante</th><th data-end="288" data-start="217" style="width: 47.3174%;">Verhalten</th><th data-end="333" data-start="288" style="width: 23.6004%;">Entspricht (Android 7.x priority)</th></tr></thead><tbody data-end="1301" data-start="496"><tr data-end="657" data-start="496"><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="509" data-start="496" style="width: 8.82002%;">**None**</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="541" data-start="509" style="width: 20.2622%;">`IMPORTANCE_NONE (0)`</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)] min-w-[calc(var(--thread-content-max-width)/3)]" data-end="612" data-start="541" style="width: 47.3174%;">Keine Anzeige, kein Ton, nicht im Benachrichtigungsbereich sichtbar</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="657" data-start="612" style="width: 23.6004%;">(kein Äquivalent)</td></tr><tr data-end="818" data-start="658"><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="671" data-start="658" style="width: 8.82002%;">**Min**</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="703" data-start="671" style="width: 20.2622%;">`IMPORTANCE_MIN (1)`</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)] min-w-[calc(var(--thread-content-max-width)/3)]" data-end="773" data-start="703" style="width: 47.3174%;">Kein Ton, kein Icon, nicht im Status‑Bar‑Bereich</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="818" data-start="773" style="width: 23.6004%;">`PRIORITY_MIN`</td></tr><tr data-end="979" data-start="819"><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="832" data-start="819" style="width: 8.82002%;">**Low**</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="864" data-start="832" style="width: 20.2622%;">`IMPORTANCE_LOW (2)`</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)] min-w-[calc(var(--thread-content-max-width)/3)]" data-end="934" data-start="864" style="width: 47.3174%;">Kein Ton, nur in der Benachrichtigungs‑Leiste</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="979" data-start="934" style="width: 23.6004%;">`PRIORITY_LOW`</td></tr><tr data-end="1140" data-start="980"><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="993" data-start="980" style="width: 8.82002%;">**Default**</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="1025" data-start="993" style="width: 20.2622%;">`IMPORTANCE_DEFAULT (3)`</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="1095" data-start="1025" style="width: 47.3174%;">Ton, erscheint in Leiste</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="1140" data-start="1095" style="width: 23.6004%;">`PRIORITY_DEFAULT`</td></tr><tr data-end="1301" data-start="1141"><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="1154" data-start="1141" style="width: 8.82002%;">**High**</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="1186" data-start="1154" style="width: 20.2622%;">`IMPORTANCE_HIGH (4)`</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="1256" data-start="1186" style="width: 47.3174%;">Ton + Heads‑Up‑Popup (aufklappbar)</td><td class="max-w-[calc(var(--thread-content-max-width)*2/3)]" data-end="1301" data-start="1256" style="width: 23.6004%;">`PRIORITY_HIGH` / `PRIORITY_MAX`</td></tr></tbody></table>

> **Kurz erklärt:**
> 
> - `IMPORTANCE_HIGH` erzeugt ein kurzes Popup (Heads‑Up) und Ton.
> - `IMPORTANCE_DEFAULT` spielt Ton, aber ohne Popup.
> - `IMPORTANCE_LOW`/`MIN` sind ruhig, ohne Ton bzw. ohne Leisten‑Icon.
> - `IMPORTANCE_NONE` unterdrückt die Notification komplett. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]">[<span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-full grow truncate overflow-hidden text-center">Android Developers</span></span></span>](https://developer.android.com/develop/ui/views/notifications/channels?utm_source=chatgpt.com)</span></span><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]">[<span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-full grow truncate overflow-hidden text-center">Android Developers</span></span></span>](https://developer.android.com/develop/ui/views/notifications?utm_source=chatgpt.com)</span>

**Unterschied zu `priority`:**

- `priority` ist der ältere Parameter (Android ≤7.x) und steuert ebenfalls Popup vs. stille Notification.  
    Am besten beide Parameter definieren priority und importance um maximale Kompatibilität zu gewährleisten

#### Notfication, stehen lassen, nicht wegwischbar, bei drauf tippen nicht auslösen:  


Manchmal möchte man das die Notification ein Button gedrückt werden muss, mit drauf tippen soll auch nichts auseglöst werden.  
Sondern nur beim Button

##### Erklärung der Optionen:

- **`sticky: true`**: Die Benachrichtigung bleibt auf dem Bildschirm, bis eine Aktion ausgeführt wird oder sie manuell entfernt wird.
- **`persistent: true`**: Die Benachrichtigung kann nicht weggewischt werden, sondern verschwindet nur, wenn eine Aktion (wie `Stop`) ausgeführt wird.

##### Verhalten:

- Mit **`sticky` allein**: Die Benachrichtigung bleibt bestehen, aber der Benutzer kann sie durch Wischen entfernen.
- Mit **`sticky` + `persistent`**: Die Benachrichtigung kann nur durch eine Aktion (z. B. den `Stop`-Button) entfernt werden und ist nicht wegwischbar.

##### Was solltest du verwenden?

- Wenn es dir wichtig ist, dass die Benachrichtigung **immer präsent bleibt**, bis der Benutzer aktiv darauf reagiert, ist `persistent: true` ideal.
- Falls es dem Benutzer erlaubt sein soll, die Benachrichtigung durch Wischen zu entfernen, dann verwende nur `sticky: true`.

Beides gibt dir Flexibilität, je nachdem, wie wichtig die Benachrichtigung in deinem Fall ist.

##### **Android:**

- **`sticky`**: Funktioniert einwandfrei, da Android-native Benachrichtigungen standardmäßig Sticky-Funktionalitäten unterstützen.
- **`persistent`**: Funktioniert ebenfalls, da Android es ermöglicht, Benachrichtigungen unentfernbar zu machen.  
    Es muss aber dazu ein Tag angeben werden siehe ioS und Android weiter unten

---

##### **iOS:**

- **`sticky`**: **Nicht direkt unterstützt**, da iOS keine Sticky-Benachrichtigungen in der gleichen Weise wie Android bietet. Auf iOS werden Benachrichtigungen entweder im Benachrichtigungscenter angezeigt oder verschwinden nach einer festgelegten Zeit, wenn sie nicht persistent sind.
- **`persistent`**: **Wird unterstützt**, da die Home Assistant Companion App dies auf iOS nutzt, um kritische Benachrichtigungen (wie Rauchmelder) dauerhaft sichtbar zu halten, bis der Benutzer darauf reagiert.

##### iOS und Android:

- **`tag`**Wird benötigt um die Nachricht eine ID zu geben, denn mit der ID kann die Nachricht angesprochen werden, zum   
    Beispiel um sie Programm technisch zu löschen, denn auf dem Smartphone lässt Sie sich nicht mehr löschen.  
    Auch wenn der Button ausgelöst wird, bleibt die Nachricht bestehen  
    **Wichtig! Wird der Tag vergessen bleibt die Nachricht wegwischbar!**

Im Beispiel Quelltext, wir lassen sticky für Android einfach stehen.:

```
{
    "message": "Rauchmelder-Alarm! Bitte überprüfen!",
    "data": {
        "channel": "Alarm",
        "priority": "high",
        "importance":"high",
        "ttl": 0,
        "sticky": true,
        "persistent": true,
        "tag": "android_phone_anna",
        "actions": [
            {
                "action": "SNOOZE",
                "title": "Rauchmelder Stoppen",
                "icon": "mdi:bell-alert"
            },
            {
                "action": "IRGENDWAS",
                "title": "IRGENDWAS Stoppen",
                "icon": "mdi:bell-alert"
            }
        ]
    }
}
```

#### Den Button druck auswerten

Dazu brauchen wir ein Alle Events Node

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/OL9JhnU4yvrECTEJ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/OL9JhnU4yvrECTEJ-image.png)

Dann eine Switch Node zum auswerten

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/EjZXfc8YUWLUmHth-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/EjZXfc8YUWLUmHth-image.png)

Nun können wir die Events node mit der Switch node verbinden.  
Der Oberste Ausgang der Switchnode wird true, also wenn der button gedrückt wurde.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/e9gw3Jj6JKUGjeOd-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/e9gw3Jj6JKUGjeOd-image.png)

Die Eigenschaft der Events Node

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/QUdRLRWGTL8CEkfC-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/QUdRLRWGTL8CEkfC-image.png)

Die Eigenschaft der Switch node

Namen vergeben

Wir wollen msg.payload.event.action auswerten, den Button

Und nun die Werte als string rein.  
Über hinzufügen können mehrer Werte angegeben werden, jeder ausgang ist für den jeweiligen Wert.  
Hier snooze PIN1 IRGENDWAS PIN2

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/8U6D9YYJ3hLi2bnQ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/8U6D9YYJ3hLi2bnQ-image.png)

  
Sollten mehrer buttons vorhanden zein können die pin zwei und soweiter für weitere Buttons benutzt werden.

Tipp, wenn auf verschiednenen Geräten Buttons Ausgewertet werden sollen, die in verschiedenen Flows drin sind.  
Macht es sinn die Werte der Buttons unique für jedes Gerät zu machen. Sprich beim Send button den Button unique definieren und beim Auswerten diesen wieder zu nehmen.

Beispiel beim Button senden

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/i131U2tzYqHHLJOA-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/i131U2tzYqHHLJOA-image.png)

Und dann beim Button empfangen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/BpvC0pKDoX0EIXh4-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/BpvC0pKDoX0EIXh4-image.png)

Bei den anderen Flows würde man dann andere namen nehmen.  
fertig

#### Nicht weg wischbare Nachricht über den Tag wieder löschen.

message, der Befehl das eine Notification entfernt werden soll, hier "clear\_notification"  
Als data muss nur der tag der zu löschenden Notification übergeben werden  
Hier : "tag": "android\_phone\_anna"

```
{
    "message": "clear_notification",
    "data": {
       "tag": "android_phone_anna"
    }
}
```

#### Das die Home Assistant App nicht geöffnet wird, wenn die Nachricht angeklickt wird.

Für iOS wird URL verwendet mit dem Wert null,  
Für Android wird clickAction mit noAction verwendet

```
{
    "message": "Rauchmelder-Alarm! Bitte überprüfen!",
    "data": {
        "channel": "Alarm",
        "priority": "high",
        "ttl": 0,
        "sticky": true,
        "persistent": true,
        "tag": "android_phone_anna",
        "url": null,
        "clickAction": "noAction",
        "actions": [
            {
                "action": "SNOOZE",
                "title": "Rauchmelder Stoppen"
            },
            {
                "action": "IRGENDWAS",
                "title": "IRGENDWAS Stoppen"
            }
        ]
    }
}
```

#### NUR iOS Push Benachrichtung auch anzeigen, wenn die Home assistant APP im vordergrund also geöffnet ist:

Das Feld **`presentation_options`** betrifft nur die **iOS**-App und steuert, **wie Notifications angezeigt werden, wenn die Companion‑App im Vordergrund läuft**. Standardmäßig blendet iOS eingehende Pushes aus, sobald die App aktiv ist – mit `presentation_options` kannst du das ändern.

**Mögliche Werte** (als Array oder einzelner String):

- `alert` → zeigt ein Banner/Popup
- `sound` → spielt den definierten Ton ab
- `badge` → aktualisiert das App‑Icon‑Badge

Du kannst mehrere Optionen kombinieren, z. B.:

```
{
  "message": "Rauchmelder-Alarm!",
  "data": {
    "push": {
      "category": "alarm",
      "presentation_options": ["alert","sound"]
    }
  }
}

```

# Rauchmelder Beispiel mit Benachrichtigungen

Beschreibung:

Ein Rauchmelder Beispiel mit Stopp Benachrichtigung:

Es wurden zwei Rauchmelder definiert und jenachdem Weclher als erstes Auslöst gibt die Nachricht per TTS aus.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/eGgN0uh9NIJgqcWB-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/eGgN0uh9NIJgqcWB-image.png)

DIe States sind die Rauchmelder, diese triggern die Send Action Buttons, also die Nachricht die eingeblendet wird um den TTS wieder stoppen. Und sie setzten eine globale Variable mit dem Text des Rauchmelders.  
Dann wird die abort false gesetzt. Dann gehts in die schleife die checkt ob abort true ist. Ist dies nicht der fall gehts an die nachricht sagen dann 10 sekunden warten und wieder zum check. solange bis auf dem button stopp gedrückt wurde.  
Dann wird über überpüfe Tab bzw dem danachfolgendem Switch (werte aus) und wenn das passt, dann durch ein change das abort abort false zu true und die schleife wird beendet.

Tipp, wenn auf verschiednenen Geräten Buttons Ausgewertet werden sollen, die in verschiedenen Flows drin sind.  
Macht es sinn die Werte der Buttons unique für jedes Gerät zu machen. Sprich beim Send button den Button unique definieren und beim Auswerten diesen wieder zu nehmen.

Beim Button senden

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/ro82LUVxbsmppzaf-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/ro82LUVxbsmppzaf-image.png)

Und dann beim Button empfangen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/BpvC0pKDoX0EIXh4-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/BpvC0pKDoX0EIXh4-image.png)

Bei den anderen Flows würde man dann andere namen nehmen.  
fertig

  
  
Hier einmal der Komplette code als export:

```json
[
    {
        "id": "72f8bbccc156abc9",
        "type": "tab",
        "label": "Flow 78",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "fd846045ce203fdb",
        "type": "switch",
        "z": "72f8bbccc156abc9",
        "name": "Check abort",
        "property": "abort",
        "propertyType": "global",
        "rules": [
            {
                "t": "false"
            },
            {
                "t": "true"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 1110,
        "y": 380,
        "wires": [
            [
                "b2b1641da0ae4e50"
            ],
            [
                "4189cd5f02c60a22",
                "75cb06568f31df0d"
            ]
        ]
    },
    {
        "id": "bd0cc484a47ac218",
        "type": "api-call-service",
        "z": "72f8bbccc156abc9",
        "name": "Send  Actions Buttons",
        "server": "0b5c0a092e06b662",
        "version": 5,
        "debugenabled": true,
        "domain": "notify",
        "service": "mobile_app_gm1913",
        "areaId": [],
        "deviceId": [],
        "entityId": [],
        "data": "{\"message\":\"Rauchmelder-Alarm! Bitte überprüfen!\",\"data\":{\"channel\":\"alarm_stream_max\",\"priority\":\"high\",\"ttl\":0,\"sticky\":true,\"persistent\":true,\"importance\":\"high\",\"tag\":\"{{ global.message_tag }}\",\"presentation_options\":\"alert\",\"url\":null,\"clickAction\":\"noAction\",\"actions\":[{\"action\":\"SNOOZE_SMARTPHONE_STEFAN\",\"title\":\"Rauchmelder Stoppen\"}]}}",
        "dataType": "json",
        "mergeContext": "",
        "mustacheAltTags": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "data"
            }
        ],
        "queue": "none",
        "x": 940,
        "y": 40,
        "wires": [
            []
        ]
    },
    {
        "id": "7a2df04207532b6e",
        "type": "delay",
        "z": "72f8bbccc156abc9",
        "name": "",
        "pauseType": "delay",
        "timeout": "10",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "5",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": true,
        "allowrate": false,
        "outputs": 1,
        "x": 1590,
        "y": 180,
        "wires": [
            [
                "fd846045ce203fdb"
            ]
        ]
    },
    {
        "id": "b2b1641da0ae4e50",
        "type": "api-call-service",
        "z": "72f8bbccc156abc9",
        "name": "TTS Raucherkannt auf dem Media Stream Alarm",
        "server": "0b5c0a092e06b662",
        "version": 5,
        "debugenabled": true,
        "domain": "notify",
        "service": "mobile_app_gm1913",
        "areaId": [],
        "deviceId": [],
        "entityId": [],
        "data": "{\"message\":\"TTS\",\"data\":{\"priority\":\"high\",\"media_stream\":\"alarm_stream\",\"tts_text\":\"Rauch {{ global.rauchmeldertext }} erkannt\"}}",
        "dataType": "json",
        "mergeContext": "",
        "mustacheAltTags": false,
        "outputProperties": [],
        "queue": "none",
        "x": 1360,
        "y": 40,
        "wires": [
            [
                "7a2df04207532b6e"
            ]
        ]
    },
    {
        "id": "20fc249d39285d23",
        "type": "change",
        "z": "72f8bbccc156abc9",
        "name": "Set abort faLSE",
        "rules": [
            {
                "t": "set",
                "p": "abort",
                "pt": "global",
                "to": "false",
                "tot": "bool"
            }
        ],
        "x": 980,
        "y": 240,
        "wires": [
            [
                "fd846045ce203fdb"
            ]
        ]
    },
    {
        "id": "4189cd5f02c60a22",
        "type": "debug",
        "z": "72f8bbccc156abc9",
        "name": "debug 8",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1480,
        "y": 380,
        "wires": []
    },
    {
        "id": "4c344c4831e5fcac",
        "type": "server-state-changed",
        "z": "72f8bbccc156abc9",
        "name": "",
        "server": "0b5c0a092e06b662",
        "version": 4,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "binary_sensor.smoke_detected_1",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "str",
        "haltifstate": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 2,
        "output_only_on_state_change": true,
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "entityState"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "eventData"
            },
            {
                "property": "topic",
                "propertyType": "msg",
                "value": "",
                "valueType": "triggerId"
            }
        ],
        "x": 240,
        "y": 200,
        "wires": [
            [
                "41e0d6ee2b5907b9",
                "650bd1c892f800a0"
            ],
            []
        ]
    },
    {
        "id": "41e0d6ee2b5907b9",
        "type": "change",
        "z": "72f8bbccc156abc9",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "rauchmeldertext",
                "pt": "global",
                "to": "Fahrradschuppen",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 680,
        "y": 240,
        "wires": [
            [
                "20fc249d39285d23"
            ]
        ]
    },
    {
        "id": "4dcffc1f5cb9e580",
        "type": "server-state-changed",
        "z": "72f8bbccc156abc9",
        "name": "",
        "server": "0b5c0a092e06b662",
        "version": 4,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "binary_sensor.smoke_detected_2",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "str",
        "haltifstate": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 2,
        "output_only_on_state_change": true,
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "entityState"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "eventData"
            },
            {
                "property": "topic",
                "propertyType": "msg",
                "value": "",
                "valueType": "triggerId"
            }
        ],
        "x": 200,
        "y": 440,
        "wires": [
            [
                "15bcfcc2b81baf03",
                "650bd1c892f800a0"
            ],
            []
        ]
    },
    {
        "id": "15bcfcc2b81baf03",
        "type": "change",
        "z": "72f8bbccc156abc9",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "rauchmeldertext",
                "pt": "global",
                "to": "Wohnstube",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 680,
        "y": 440,
        "wires": [
            [
                "20fc249d39285d23"
            ]
        ]
    },
    {
        "id": "75cb06568f31df0d",
        "type": "api-call-service",
        "z": "72f8bbccc156abc9",
        "name": "Clear Actions Buttons",
        "server": "0b5c0a092e06b662",
        "version": 5,
        "debugenabled": false,
        "domain": "notify",
        "service": "mobile_app_gm1913",
        "areaId": [],
        "deviceId": [],
        "entityId": [],
        "data": "{\"message\":\"clear_notification\",\"data\":{\"tag\":\"{{ global.message_tag }}\"}}",
        "dataType": "json",
        "mergeContext": "",
        "mustacheAltTags": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "data"
            }
        ],
        "queue": "none",
        "x": 1520,
        "y": 460,
        "wires": [
            []
        ]
    },
    {
        "id": "47d0e3399b240284",
        "type": "inject",
        "z": "72f8bbccc156abc9",
        "name": "manuell starten",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 160,
        "y": 140,
        "wires": [
            [
                "41e0d6ee2b5907b9",
                "650bd1c892f800a0"
            ]
        ]
    },
    {
        "id": "faf2cf47f8a2e467",
        "type": "inject",
        "z": "72f8bbccc156abc9",
        "name": "manuell starten",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 120,
        "y": 380,
        "wires": [
            [
                "15bcfcc2b81baf03",
                "650bd1c892f800a0"
            ]
        ]
    },
    {
        "id": "650bd1c892f800a0",
        "type": "change",
        "z": "72f8bbccc156abc9",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "message_tag",
                "pt": "global",
                "to": "benachrichtung_stefan",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 690,
        "y": 40,
        "wires": [
            [
                "bd0cc484a47ac218"
            ]
        ]
    },
    {
        "id": "f5e75181e7417fe2",
        "type": "change",
        "z": "72f8bbccc156abc9",
        "name": "Set abort true",
        "rules": [
            {
                "t": "set",
                "p": "abort",
                "pt": "global",
                "to": "true",
                "tot": "bool"
            }
        ],
        "x": 800,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "8f5bb3abc51be77f",
        "type": "server-events",
        "z": "72f8bbccc156abc9",
        "name": "überpüfe tap",
        "server": "0b5c0a092e06b662",
        "version": 2,
        "eventType": "mobile_app_notification_action",
        "exposeToHomeAssistant": false,
        "eventData": "",
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "waitForRunning": true,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "eventData"
            }
        ],
        "event_type": "",
        "x": 90,
        "y": 600,
        "wires": [
            [
                "765be5afb170835b",
                "24ebd151429c0ffb"
            ]
        ]
    },
    {
        "id": "765be5afb170835b",
        "type": "switch",
        "z": "72f8bbccc156abc9",
        "name": "werte aus",
        "property": "payload.event.action",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "SNOOZE_SMARTPHONE_STEFAN",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "IRGENDWAS",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 420,
        "y": 600,
        "wires": [
            [
                "f5e75181e7417fe2",
                "14956e7bf6034ba7"
            ],
            []
        ]
    },
    {
        "id": "24ebd151429c0ffb",
        "type": "debug",
        "z": "72f8bbccc156abc9",
        "name": "debug 10",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 420,
        "y": 520,
        "wires": []
    },
    {
        "id": "14956e7bf6034ba7",
        "type": "debug",
        "z": "72f8bbccc156abc9",
        "name": "debug 11",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload.event.action",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 660,
        "y": 720,
        "wires": []
    },
    {
        "id": "0b5c0a092e06b662",
        "type": "server",
        "name": "Home Assistant",
        "version": 5,
        "addon": true,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": "30",
        "areaSelector": "friendlyName",
        "deviceSelector": "friendlyName",
        "entitySelector": "friendlyName",
        "statusSeparator": ": ",
        "statusYear": "hidden",
        "statusMonth": "short",
        "statusDay": "numeric",
        "statusHourCycle": "default",
        "statusTimeFormat": "h:m",
        "enableGlobalContextStore": false
    }
]
```

# Addons - Lets Encrypt

# Addon Installation Lets Encrypt

### Beschreibung:

<div id="bkmrk-hinweis%3A-dies-ist-ei" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Lets Encrypt wurde ersetzt durch ein Caddy Community Addon : [Addons - Caddy Reverseproxy mit Lets Encrypt](https://wiki.hacker-net.de/books/home-assistant/chapter/addons-caddy-reverseproxy-mit-lets-encrypt "Addons - Caddy Reverseproxy mit Lets Encrypt")</div>Ein Addon zur Sicherherung der Home Assistant installation mit Lets Encrypt Zertifikaten.

Installation:

Auf einstellungen -&gt; Addons gehen

[![Auswahl_176.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/dB9CgdbzIj0RRYm6-auswahl-176.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/dB9CgdbzIj0RRYm6-auswahl-176.png)

Nun auf Addon Store

[![Auswahl_177.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/oS1jRJxy7OvuvNCs-auswahl-177.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/oS1jRJxy7OvuvNCs-auswahl-177.png)

Dann runter scrollen bis Node Red und dann Node anklicken

[![Auswahl_181.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/rkj5tn9WPJg4f1iq-auswahl-181.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/rkj5tn9WPJg4f1iq-auswahl-181.png)

Nun auf installieren klicken

[![Auswahl_182.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/zEjhVaiVQXUu2pP6-auswahl-182.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/zEjhVaiVQXUu2pP6-auswahl-182.png)

Damit ist die Installation abgeschlossen. In den nächsten Seiten gehts mit der Konfiguartion weiter

[![Auswahl_183.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/cykMtuXzdzuuY1gz-auswahl-183.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/cykMtuXzdzuuY1gz-auswahl-183.png)

# HTTP Challenge

Beschreibung:

Bei der HTTP Challenge muss der Home Assistant über port 80 erreichbar sein.  
Der Domainname über den dieser erreichbar sein soll muss auf die IP-Adresse / dyndsn Name zeigen

Konfiguration

Nun oben auf Konfiguration gehen

Die Domain eingeben  
Emailadresse ausfüllen.  
und HTTP auswählen

[![Auswahl_185.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/Pm4PRJoTnGV3Wiu6-auswahl-185.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/Pm4PRJoTnGV3Wiu6-auswahl-185.png)

Dann unten auf Speichern klicken.

[![Auswahl_188.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/TyO2R5D6of4hELQ1-auswahl-188.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/TyO2R5D6of4hELQ1-auswahl-188.png)

Nun die Haken beim Booten starten und Automatische Updates einhaken.  
Danach auf starten klicken.

[![Auswahl_187.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/MwWu50cnCyJiya27-auswahl-187.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/MwWu50cnCyJiya27-auswahl-187.png)

Unter Protokoll kann nachgeschaut werden, obs geklappt hat und wenn nicht warum.  
in den meisten fällen passt der Domainname nicht zur IP oder der Home Assistant ist nicht über Port 80 erreichbar.  
Dies sind so die meisten Fehler.

[![Auswahl_190.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/scaled-1680-/yU0TDbPa1DoqxNvX-auswahl-190.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-09/yU0TDbPa1DoqxNvX-auswahl-190.png)

# Addons - Bailkal /CardDav / CalDav Server)

# Installation

Beschreibung:

Um den Baikal Server müssen wir im Addon Store eine neue Repo hinzufügen.  
**Nicht** im HACS sonder im normalen Addon Store

die Url zur Repository lautet : https://github.com/alexbelgium/hassio-addons

**In Zukunft wollen wir repos auf unseren eigenen Reposerver spiegeln, denn falls mal eine Repo nicht mehr verfügbar ist, haben wir zumindest für uns die letzte aktuelle kopie. Dazu später in diesem Artikel der nach angelegt werden muss.**

Vorrausetzung:

Vorrausetzung ist dass File Editor Addon um die config File anzupassen

Repo Hinzufügen:

Dazu gehen wir auf Einstellungen

[![Auswahl_323.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Th6CM2scujoIlXF4-auswahl-323.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Th6CM2scujoIlXF4-auswahl-323.png)

Dann auf Addons

[![Auswahl_324.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Fr6uxT9WtUSJLH3p-auswahl-324.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Fr6uxT9WtUSJLH3p-auswahl-324.png)

Nun Auf Addon-Store

[![Auswahl_325.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/trfQJ3lTe3D5YOtO-auswahl-325.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/trfQJ3lTe3D5YOtO-auswahl-325.png)

Dort auf die drei Punkte

[![Auswahl_326.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/sgWqPZpXz9M6D2KU-auswahl-326.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/sgWqPZpXz9M6D2KU-auswahl-326.png)

Nun Auf Repositorien

[![Auswahl_327.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/DRqjwVz67wTeenJp-auswahl-327.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/DRqjwVz67wTeenJp-auswahl-327.png)

Nun die Repo URL eintragen und auf hinzufügen klicken.

[https://github.com/alexbelgium/hassio-addons](https://github.com/alexbelgium/hassio-addons)

[![Auswahl_328.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Ueaw10iE07lCJ3NZ-auswahl-328.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Ueaw10iE07lCJ3NZ-auswahl-328.png)

Nun auf schließen klicken.

[![Auswahl_329.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/XT2LwtrOsINhNHOJ-auswahl-329.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/XT2LwtrOsINhNHOJ-auswahl-329.png)

Nun HomeAssistant neuladen mit F5.  
Wieder auf den Addons Store gehen und nun haben wir in der Liste die Addons von der Hinzugefügten Repo und auch unser Baikal Addon.

[![Auswahl_330.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/AdoxpwkIm5JiVs1g-auswahl-330.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/AdoxpwkIm5JiVs1g-auswahl-330.png)

Installation:

Dieses Addon klicken wir an und klciken dort auf Installieren.,  
Dieses dauert einen Moment

[![Auswahl_331.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/0Rw64OXIkcXIGgoO-auswahl-331.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/0Rw64OXIkcXIGgoO-auswahl-331.png)

Nachdem es installiert ist stehen die Funktionen Starten deinstallieren und Konfigurieren zur Verfügung.  
Wir klicken auf Konfigurieren

[![Auswahl_332.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/FdgY9qGkm2RSOkJm-auswahl-332.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/FdgY9qGkm2RSOkJm-auswahl-332.png)

Dort können wir einen Webport vergebn, ich belasse ihn bei Satndard, aber klicken trotzdem auf Speicher.  
Auch wenn der Button Grau aussieht geht das trotzdem. Der Speichern Button funktioniert

[![Auswahl_333.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/eZJ2IRA2x8AqfHOX-auswahl-333.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/eZJ2IRA2x8AqfHOX-auswahl-333.png)

Nun müssen wir die Config anpassen.   
Dazu gehen wir auf den File Editor

[![Auswahl_334.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/jNreSXsuuC4NsIDZ-auswahl-334.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/jNreSXsuuC4NsIDZ-auswahl-334.png)

Nun Auf addons\_config

[![Auswahl_335.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/QjDsIsXxGvFMTI5T-auswahl-335.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/QjDsIsXxGvFMTI5T-auswahl-335.png)

baikal

[![Auswahl_336.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Vrwfdottif0Tl5da-auswahl-336.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Vrwfdottif0Tl5da-auswahl-336.png)

config.yaml

[![Auswahl_337.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Q5LthqjcLC0hAIBb-auswahl-337.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Q5LthqjcLC0hAIBb-auswahl-337.png)

Nun haben wir das Textfile vor uns uns fügen die Zeitzone Europe/Berlin ein

[![Auswahl_338.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/1R0HMQZ6uZBPAE9q-auswahl-338.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/1R0HMQZ6uZBPAE9q-auswahl-338.png)

klicken dann auf speichern

[![Auswahl_342.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Ls8ZkjthT8bV9gLy-auswahl-342.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Ls8ZkjthT8bV9gLy-auswahl-342.png)

Nun klicken wir aus Starten beim Addon dazu wieder einstellungen Addons und und dann baikal anklciken.

[![Auswahl_340.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/dd9u7xhntaDo0JdX-auswahl-340.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/dd9u7xhntaDo0JdX-auswahl-340.png)

Dann auf starten klicken

[![Auswahl_341.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/nOq6YMv3FrEdFvFt-auswahl-341.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/nOq6YMv3FrEdFvFt-auswahl-341.png)

Hier gibt es einen bug, er zeigt nicht das er schon startet.

Im Protokoll bekommen wir den Fehler das die yaml Datei falsche syntax hat, er startet aber trotzdem und hat unsere Zeitzoine auch richtig erkannt. Im Log taichen Fehler auf der er die Baikal konfig nicht kennt. Was richtig ist denn Baikal wurde noch nicht konfiguriert

[![Auswahl_343.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/g4FjygtoPgZJUxIf-auswahl-343.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/g4FjygtoPgZJUxIf-auswahl-343.png)

Um die Config anzulegen öffnen wir die Webseite mit unserem Port.  
Homeassistant Adresse mit unserem Port.  
Dann sieht das ganze so aus:

[![Auswahl_344.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/NiPlztozohlGNNZ8-auswahl-344.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/NiPlztozohlGNNZ8-auswahl-344.png)

Dort vergeben wir unsere Emailadresse und ein Admin Passwort und klicken auf speichern.

[![Auswahl_345.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/5ueyR2XqkBcc1xNk-auswahl-345.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/5ueyR2XqkBcc1xNk-auswahl-345.png)

Jetzt kann die Datenbank ausgewählt werden. Wir verwenden litesql. Wer möchte kann aber auch eine mysql Datenbank angeben.  
Deswegen lass ich alles so, nur speichern anklicken.

[![Auswahl_347.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/rELBxgpizJS6z36d-auswahl-347.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/rELBxgpizJS6z36d-auswahl-347.png)

Baikal inst konfiguriert und wir können auf Start using baikal klciken.

[![Auswahl_348.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/A5mQOIsQ35ELjf7m-auswahl-348.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/A5mQOIsQ35ELjf7m-auswahl-348.png)

Einrichtung Baikal

Nun können wir uns anmelden

[![Auswahl_349.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/F1dnoCyqjepzoCag-auswahl-349.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/F1dnoCyqjepzoCag-auswahl-349.png)

Das Dashboard

Eine Schnellübersicht

[![Auswahl_350.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/suagN4PWGbIYPuBj-auswahl-350.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/suagN4PWGbIYPuBj-auswahl-350.png)

Für uns ist nur der Punkt Users &amp; Resources jetzt wichtig.  
Dort legen wir die Benutzer an für unsere Kalender.  
Also klicken wir auf Users &amp; Resources

[![Auswahl_351.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/qhQDbdKN5npS7fWU-auswahl-351.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/qhQDbdKN5npS7fWU-auswahl-351.png)

Nun da keine Benutzer bestehen, gibt es nur die Möglichkeit einen Benutzer hinzu zu fügen.  
Also klicken wir auf Add User

[![Auswahl_352.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/5SrqDi6j7upNwonJ-auswahl-352.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/5SrqDi6j7upNwonJ-auswahl-352.png)

Nun Haben wir eine Maske vor uns. Wir füllen alle Benutzerdaten aus.

[![Auswahl_353.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/zkZDhOMQtf9WTuUf-auswahl-353.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/zkZDhOMQtf9WTuUf-auswahl-353.png)  
Nun können wir den Benutzer noch editieren.  
 Um Zum beispiel weitere Kalender hinzuzufügen oder zu bearbeiten.  
Wir klicken mal auf Caldendars

[![Auswahl_354.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/M7jy9SE4HIcJDU4t-auswahl-354.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/M7jy9SE4HIcJDU4t-auswahl-354.png)

Nun sehen wir den Standard Kalender.  
Diesen können wir auch umbenennen wenn wir wollen.

[![Auswahl_355.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/r0XEyjlM5zc7jIrl-auswahl-355.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/r0XEyjlM5zc7jIrl-auswahl-355.png)

Dort kann man nicht nur den Namen, sondern auch angeben ob auch Notizen.

# Addons - Dashboard Fusion

# Installation

Beschreibung:

Um HA Fusion zu installieren müssen wir im Addon Store eine neue Repo hinzufügen.  
**Nicht** im HACS sonder im normalen Addon Store

die Url zur Repository lautet :

Vorrausetzung:

Vorrausetzung ist dass File Editor Addon um die config File anzupassen

Repo Hinzufügen:

Dazu gehen wir auf Einstellungen

[![Auswahl_323.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Th6CM2scujoIlXF4-auswahl-323.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Th6CM2scujoIlXF4-auswahl-323.png)

Dann auf Addons

[![Auswahl_324.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Fr6uxT9WtUSJLH3p-auswahl-324.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Fr6uxT9WtUSJLH3p-auswahl-324.png)

Nun Auf Addon-Store

[![Auswahl_325.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/trfQJ3lTe3D5YOtO-auswahl-325.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/trfQJ3lTe3D5YOtO-auswahl-325.png)

Dort auf die drei Punkte

[![Auswahl_326.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/sgWqPZpXz9M6D2KU-auswahl-326.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/sgWqPZpXz9M6D2KU-auswahl-326.png)

Nun Auf Repositorien

[![Auswahl_327.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/DRqjwVz67wTeenJp-auswahl-327.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/DRqjwVz67wTeenJp-auswahl-327.png)

Nun die Repo URL eintragen und auf hinzufügen klicken.

[https://github.com/matt8707/addon-ha-fusion](https://github.com/alexbelgium/hassio-addons)

[![Auswahl_357.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/CzuNZcAS3jdiDawF-auswahl-357.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/CzuNZcAS3jdiDawF-auswahl-357.png)

Nun auf schließen klicken.

[![Auswahl_358.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/n4wTZbFiqEIwURFR-auswahl-358.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/n4wTZbFiqEIwURFR-auswahl-358.png)

Nun HomeAssistant neuladen mit F5.  
Wieder auf den Addons Store gehen und nun haben wir in der Liste die Addons von der Hinzugefügten Repo und auch unser HA Fusion Addon.

[![Auswahl_359.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/DttSntsbKNXu8BeE-auswahl-359.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/DttSntsbKNXu8BeE-auswahl-359.png)

Installation:

Dieses Addon klicken wir an und klicken dort auf Installieren.,  
Dieses dauert einen Moment

[![Auswahl_360.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/YFaJu7UKDI6TS71t-auswahl-360.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/YFaJu7UKDI6TS71t-auswahl-360.png)

Nachdem es installiert ist stehen die Funktionen Starten deinstallieren und Konfigurieren zur Verfügung.  
Wir haken ein. In der Seitenleiste anzeigen und starten das Addon mit klick auf starten

[![Auswahl_361.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/5DCotLY7Yn1BsF2i-auswahl-361.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/5DCotLY7Yn1BsF2i-auswahl-361.png)

Optional: Unter konfiguerieren können wir den Webport ändern. Aber ich belasse ihn bei Standard. Macht eigentlich nur sinn, wenn euer Home Assistant Port auch ein anderer ist.

# Addons - MQTT

MQTT (Message Queuing Telemetry Transport) ist ein leichtgewichtiges Protokoll zur Nachrichtenübermittlung, das speziell für Geräte mit begrenzten Ressourcen und Netzwerkbandbreite entwickelt wurde. Es wird häufig in Internet-of-Things (IoT)-Anwendungen eingesetzt. Hier sind einige zentrale Punkte:  
  
\- \*\*Leichtgewichtig\*\*: Geringer Overhead und niedriger Energieverbrauch, ideal für ressourcenbeschränkte Geräte.  
\- \*\*Publish/Subscribe-Modell\*\*: Geräte (Clients) können Nachrichten an Themen (Topics) veröffentlichen (publish) oder Nachrichten von Themen abonnieren (subscribe), was eine flexible und skalierbare Kommunikation ermöglicht.  
\- \*\*Zuverlässigkeit\*\*: Bietet verschiedene QoS (Quality of Service)-Stufen, um die Zuverlässigkeit der Nachrichtenübertragung sicherzustellen.  
\- \*\*Asynchron\*\*: Unterstützt eine asynchrone Kommunikation, wodurch die Geräte nicht ständig verbunden sein müssen.  
\- \*\*Offenes Protokoll\*\*: MQTT ist ein offenes Protokoll, das von der OASIS (Organization for the Advancement of Structured Information Standards) standardisiert wurde.  
  
Durch diese Eigenschaften eignet sich MQTT besonders gut für die Vernetzung und Kommunikation von IoT-Geräten, wie Sensoren, Aktoren und anderen eingebetteten Systemen.

# Installation

### Beschreibung:

MQTT (Message Queuing Telemetry Transport) ist ein leichtgewichtiges Protokoll zur Nachrichtenübermittlung, das speziell für Geräte mit begrenzten Ressourcen und Netzwerkbandbreite entwickelt wurde. Es wird häufig in Internet-of-Things (IoT)-Anwendungen eingesetzt. Hier sind einige zentrale Punkte:

\- \*\*Leichtgewichtig\*\*: Geringer Overhead und niedriger Energieverbrauch, ideal für ressourcenbeschränkte Geräte.  
\- \*\*Publish/Subscribe-Modell\*\*: Geräte (Clients) können Nachrichten an Themen (Topics) veröffentlichen (publish) oder Nachrichten von Themen abonnieren (subscribe), was eine flexible und skalierbare Kommunikation ermöglicht.  
\- \*\*Zuverlässigkeit\*\*: Bietet verschiedene QoS (Quality of Service)-Stufen, um die Zuverlässigkeit der Nachrichtenübertragung sicherzustellen.  
\- \*\*Asynchron\*\*: Unterstützt eine asynchrone Kommunikation, wodurch die Geräte nicht ständig verbunden sein müssen.  
\- \*\*Offenes Protokoll\*\*: MQTT ist ein offenes Protokoll, das von der OASIS (Organization for the Advancement of Structured Information Standards) standardisiert wurde.

Durch diese Eigenschaften eignet sich MQTT besonders gut für die Vernetzung und Kommunikation von IoT-Geräten, wie Sensoren, Aktoren und anderen eingebetteten Systemen.

### Voraussetzungen:

Einen zusätzlichen Benutzer den wir für MQTT Verwenden wollen.

Dazu auf Einstellungen -&gt; Personen -&gt; auf den Register Benutzer -&gt; Benutzer hinzufügen

[![Auswahl_032.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/wt4EJIQSamaiMgTw-auswahl-032.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/wt4EJIQSamaiMgTw-auswahl-032.png)

[![Auswahl_046.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/ulXcrxODKKBwqDZV-auswahl-046.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/ulXcrxODKKBwqDZV-auswahl-046.png)

[![Auswahl_047.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/1p19SfPhDKEABdRc-auswahl-047.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/1p19SfPhDKEABdRc-auswahl-047.png)

[![Auswahl_048.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/eWMZ0ZD0GdGPoHtf-auswahl-048.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/eWMZ0ZD0GdGPoHtf-auswahl-048.png)

Nun einen Benutzernamen und Kennwort vergeben.

Benutzer MQTT-Benutzer und Kennwort denkt euch eins aus, dann auf Benutzer anlegen.  
**Das Benutzerpassword darf keine Sonderzeichnen wie das Ausrufezeichen enthalten!!!**

[![Auswahl_049.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/SeGIC5VQ7VPPlMAz-auswahl-049.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/SeGIC5VQ7VPPlMAz-auswahl-049.png)

### Installation MQTT Broker:  


Dazu auf Einstellungen Addons -&gt; Addoon store klicken

[![Auswahl_032.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/wt4EJIQSamaiMgTw-auswahl-032.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/wt4EJIQSamaiMgTw-auswahl-032.png)

[![Auswahl_033.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/37QsIC3JCImSYmbl-auswahl-033.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/37QsIC3JCImSYmbl-auswahl-033.png)

[![Auswahl_034.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/Nw0nkCtXBS1zDDYY-auswahl-034.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/Nw0nkCtXBS1zDDYY-auswahl-034.png)

dort in der suche mqt eingeben. Dann auf den Offiziellen MQTT Broker klicken

[![Auswahl_044.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/Mya71ifsiaQ8IQ26-auswahl-044.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/Mya71ifsiaQ8IQ26-auswahl-044.png)

Dann installieren sagen

[![Auswahl_045.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/EwOGv5auij9wJSsj-auswahl-045.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/EwOGv5auij9wJSsj-auswahl-045.png)

Nach der Installation auf starten klicken.  
Der Broker selbt braucht keien Konfiguration.

Die MQTT Integration konfigurieren:

Dazu auf Einstellungen-&gt; Geräte -&gt; MQTT

[![Auswahl_032.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/wt4EJIQSamaiMgTw-auswahl-032.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/wt4EJIQSamaiMgTw-auswahl-032.png)

[![Auswahl_050.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/HmcOwxqXOVwHVVxE-auswahl-050.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/HmcOwxqXOVwHVVxE-auswahl-050.png)

[![Auswahl_051.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/G2rZdAsPB8pDcBcg-auswahl-051.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/G2rZdAsPB8pDcBcg-auswahl-051.png)

Nun auf Absenden klicken

[![Auswahl_052.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/gF7rX8S6u6IowW7Q-auswahl-052.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/gF7rX8S6u6IowW7Q-auswahl-052.png)

Dann auf fertig klciken

[![Auswahl_053.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/b4EWcU1P1YZEJcIJ-auswahl-053.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/b4EWcU1P1YZEJcIJ-auswahl-053.png)

Nun sehen wir das MQTT im Bereich konfiguriert steht, und klciken diesen an

[![Auswahl_054.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/kVmGFY6fRRUgDlwu-auswahl-054.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/kVmGFY6fRRUgDlwu-auswahl-054.png)

Nun auf konfigurieren klicken

[![Auswahl_055.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/cpsyrWqQShhGELo0-auswahl-055.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/cpsyrWqQShhGELo0-auswahl-055.png)  
Nun auf erneut konfigurieren klciken

[![Auswahl_056.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/9Mu94avIOp9BiCtK-auswahl-056.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/9Mu94avIOp9BiCtK-auswahl-056.png)

Und die Benutzerdaten mit unseren neuen austauschen  
Nur Benutzername und Kennwort, alles andere so lassen

[![Auswahl_057.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/KJfhl81xgP10jVpD-auswahl-057.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/KJfhl81xgP10jVpD-auswahl-057.png)

Nun hier auch alles so lassen und auf absenden klciken

[![Auswahl_058.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/o238ICIdFBojoNd4-auswahl-058.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/o238ICIdFBojoNd4-auswahl-058.png)

Nun auf fertig klicken

[![Auswahl_059.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/thyc1caMci0mw52B-auswahl-059.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/thyc1caMci0mw52B-auswahl-059.png)

Testen des Brokers:

Bei Topüic zum Abonnieren

test/test/test eingeben und auf anfangen zuzuhören klicken

[![Auswahl_060.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/2cylQO8y2Xczm2bO-auswahl-060.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/2cylQO8y2Xczm2bO-auswahl-060.png)

Num im payload topic auch test/test/test eingeben

Und als payload den Text test angeben und auf veröffentlichen klicken

[![Auswahl_061.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/zpoRMgsKZO8Bacni-auswahl-061.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/zpoRMgsKZO8Bacni-auswahl-061.png)

Nun sehen wir unsere Nachricht ist angekommen und können auf , aufhören zuzuhören klicken.  
Der MQTT Broker funktioniert

[![Auswahl_062.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/nMBNndXSeoIvTh8E-auswahl-062.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/nMBNndXSeoIvTh8E-auswahl-062.png)

Mit dieser Funktion kann man auch nachher eigene Topics testen ob sie denn ankommen.  
Zum debuggen ideal.

# Python MQTT Scripte

### Beschreibung:

Python Scripte für MQTT

### Scripte:

#### proc2mqtt\_linux - Ein Script was prüft, läuft ein Process oder nicht:

Verzeichnis Struktur, achtet auf euren Usernamen

```
/home/stefan/proc2mqtt/
├── proc2mqtt.py
├── .env
├── start.sh
└── proc2mqtt.service
```

Das Script:

```
#!/usr/bin/env python3

import time
import psutil
import paho.mqtt.client as mqtt
import argparse

# 🧾 Argumente einlesen
parser = argparse.ArgumentParser(description="Monitor a process and publish MQTT on start/stop.")
parser.add_argument("--broker", required=True, help="MQTT broker IP or hostname")
parser.add_argument("--port", type=int, default=1883, help="MQTT broker port (default: 1883)")
parser.add_argument("--topic", required=True, help="MQTT topic to publish to")
parser.add_argument("--process", required=True, help="Process name to monitor (e.g. cura)")
parser.add_argument("--interval", type=int, default=5, help="Check interval in seconds (default: 5)")
parser.add_argument("--onmsg", default="started", help="Message when process starts")
parser.add_argument("--offmsg", default="closed", help="Message when process stops")
parser.add_argument("--username", help="MQTT username (optional)")
parser.add_argument("--password", help="MQTT password (optional)")
args = parser.parse_args()

# 🔐 MQTT Client konfigurieren
client = mqtt.Client()
if args.username and args.password:
    client.username_pw_set(args.username, args.password)

client.connect(args.broker, args.port)
client.loop_start()

was_running = None

def is_proc_running(name):
    for proc in psutil.process_iter(['name']):
        try:
            if name.lower() in proc.info['name'].lower():
                return True
        except (psutil.NoSuchProcess, psutil.AccessDenied):
            continue
    return False

# 🔁 Hauptloop
while True:
    running = is_proc_running(args.process)
    if running != was_running:
        msg = args.onmsg if running else args.offmsg
        print(f"[MQTT] {args.process} is now {msg}")
        client.publish(args.topic, msg, qos=1, retain=True)
        time.sleep(0.5)  # optional
        was_running = running
    time.sleep(args.interval)

```

Aufruf, wenn man kein Systemd benutzen will, sonder einfach nur manuell starten möchte

```
python3 proc2mqtt.py   --broker 192.168.177.20 \
--port 1883 \
--username mqtt_user \
--password mqtt_password \
--topic proc/gnome-calculator \ 
--process gnome-calculator \ 
--onmsg started \
--offmsg closed
```

nun die .env Datei

```
MQTT_BROKER=192.168.177.20
MQTT_PORT=1883
MQTT_USERNAME=mqtt_username
MQTT_PASSWORD=mqtt_password
MQTT_TOPIC=proc/gnome-calculator
PROCESS_NAME=gnome-calculator
ONMSG=started
OFFMSG=closed
INTERVAL=5
```

Die start.sh

```
#!/bin/bash
set -a
source "$(dirname "$0")/.env"
set +a

exec python3 "$(dirname "$0")/proc2mqtt.py" \
    --broker "$MQTT_BROKER" \
    --port "$MQTT_PORT" \
    --username "$MQTT_USERNAME" \
    --password "$MQTT_PASSWORD" \
    --topic "$MQTT_TOPIC" \
    --process "$PROCESS_NAME" \
    --onmsg "$ONMSG" \
    --offmsg "$OFFMSG" \
    --interval "$INTERVAL"

```

Rechte anpassen ausführbar machen die start.sh

```
chmod +x /home/stefan/proc2mqtt/start.sh
chmod 600 /home/stefan/proc2mqtt/.env
```

Nun die system.d Datei

```
sudo nano /etc/systemd/system/proc2mqtt.service
```

Inhalt, Achte auf den Username das ist der vom Linux Benutzer hier im Beispiel stefan, ja das script wird mit den rechten des Benutzers ausgeführt

```
# /etc/systemd/system/proc2mqtt.service
[Unit]
Description=MQTT Process Monitor
After=network.target

[Service]
ExecStart=/home/stefan/proc2mqtt/start.sh
WorkingDirectory=/home/stefan/proc2mqtt
Restart=always
User=stefan
EnvironmentFile=/home/stefan/proc2mqtt/.env

[Install]
WantedBy=multi-user.target
```

Nun den Dienst aktivieren

```
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable --now proc2mqtt.service
```

Und in der Home Assistant MQTT Integration

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/WQQzWaHXsI5RSwWG-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/WQQzWaHXsI5RSwWG-image.png)

#### proc2mqtt\_Windows - Ein Script was prüft, läuft ein Process oder nicht:

python Module installieren

Python installiern unter Windows siehe [hier](https://wiki.hacker-net.de/books/python/chapter/python-installation-mit-pip "Python installation mit pip")

```
pip install psutil paho-mqtt
```

Verzeichnis Struktur

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/zpd3lZTUypo5APQH-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/zpd3lZTUypo5APQH-grafik.png)

Das Script

```
#!/usr/bin/env python3

import time
import psutil
import paho.mqtt.client as mqtt
import argparse

# 🧾 Argumente einlesen
parser = argparse.ArgumentParser(description="Monitor a process and publish MQTT on start/stop.")
parser.add_argument("--broker", required=True, help="MQTT broker IP or hostname")
parser.add_argument("--port", type=int, default=1883, help="MQTT broker port (default: 1883)")
parser.add_argument("--topic", required=True, help="MQTT topic to publish to")
parser.add_argument("--process", required=True, help="Process name to monitor (e.g. cura)")
parser.add_argument("--interval", type=int, default=5, help="Check interval in seconds (default: 5)")
parser.add_argument("--onmsg", default="started", help="Message when process starts")
parser.add_argument("--offmsg", default="closed", help="Message when process stops")
parser.add_argument("--username", help="MQTT username (optional)")
parser.add_argument("--password", help="MQTT password (optional)")
args = parser.parse_args()

# 🔐 MQTT Client konfigurieren
client = mqtt.Client()
if args.username and args.password:
    client.username_pw_set(args.username, args.password)

client.connect(args.broker, args.port)
client.loop_start()

was_running = None

def is_proc_running(name):
    for proc in psutil.process_iter(['name']):
        try:
            if name.lower() in proc.info['name'].lower():
                return True
        except (psutil.NoSuchProcess, psutil.AccessDenied):
            continue
    return False

# 🔁 Hauptloop
while True:
    running = is_proc_running(args.process)
    if running != was_running:
        msg = args.onmsg if running else args.offmsg
        print(f"[MQTT] {args.process} is now {msg}")
        client.publish(args.topic, msg, qos=1, retain=True)
        time.sleep(0.5)  # optional
        was_running = running
    time.sleep(args.interval)

```

Aufruf, wie in der Bat Datei

Die start bat, wichtig ist das bei der installation python zu den path variablen hinzugefügt wurde, ansonsten den kompletten pfad angeben. Den Prozessnamen immer .exe angeben  
Nutze pythonw.exe, damit kein Konsolenfenster angezeigt wird! Nutze Python wenn du ein Konsolenfenster zum Debuggen haben willst

start\_cura\_mqtt.bat

```
@echo off
pythonw "C:\proc2mqtt\proc2mqtt.py" --broker 192.168.177.20 --port 1883 --username mqtt_username --password mqtt_password --topic proc/calc --process CalculatorApp.exe --onmsg started --offmsg closed
```

Nun per Taskplaner das ding in die Autostart, wenns Benutzerunabhängig prüfen soll.  
Ansonsten in das Autostart Verzeichnis

Oben in die Adressezeile

```
shell:startup
```

eintippen und schon ist man im Autostartverzeichnis des Benutzers.

Dort die Bat rein. Fertig

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/GAubj8DAdug6TJS9-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/GAubj8DAdug6TJS9-grafik.png)

Die Ausgabe in der MQTT Geräte integration

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/dXg1PBDqK6G8Or2N-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/dXg1PBDqK6G8Or2N-image.png)

# Addons - Frigate

# Installation in Home Assistant

### Beschreibung:

Ein Videoüberwachungssystem , Installation in Home Assistant direkt.

### Vorraussetzungen:

Ein MQTT Broker  
Das Fileeditor Addon

### Installation aus dem Addon Store:

Dazu auf   
Einstellungen -&gt; Addons -&gt; Addon Store

Dort Repository hinzufügen (3 Punkte oben rechts)

[![Auswahl_032.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/wt4EJIQSamaiMgTw-auswahl-032.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/wt4EJIQSamaiMgTw-auswahl-032.png)

[![Auswahl_033.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/37QsIC3JCImSYmbl-auswahl-033.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/37QsIC3JCImSYmbl-auswahl-033.png)

[![Auswahl_034.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/Nw0nkCtXBS1zDDYY-auswahl-034.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/Nw0nkCtXBS1zDDYY-auswahl-034.png)

[![Auswahl_035.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/pFE2uk5yAsa0YSkM-auswahl-035.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/pFE2uk5yAsa0YSkM-auswahl-035.png)

[![Auswahl_036.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/20sNUk3CYxj2KwJo-auswahl-036.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/20sNUk3CYxj2KwJo-auswahl-036.png)

Dort folgende Repo hinzufühgen

[https://github.com/blakeblackshear/frigate-hass-addons](https://github.com/blakeblackshear/frigate-hass-addons)

und auf hinzufügen klciken

[![Auswahl_037.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/wqoVDo1E0IsWrAdY-auswahl-037.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/wqoVDo1E0IsWrAdY-auswahl-037.png)

Nun ist die Repo drin und auf schließen klicken, danach den browser mit F5 refresh durchführen

[![Auswahl_038.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/odV3kY9ZDDhrWTLF-auswahl-038.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/odV3kY9ZDDhrWTLF-auswahl-038.png)

Nun haben wir in unserem Store die frigate Varianten zur Verfügung

[![Auswahl_039.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/thSFOsdWKxlSlFKv-auswahl-039.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/thSFOsdWKxlSlFKv-auswahl-039.png)

Wir wäheln die Frigate Standard Variante, Full Access wäre für Kameras mit Hardware Beschleunigung.  
Habt Ihr Kameras mit Hardware Beschleunigung nehmt Ihr Full Access

[![Auswahl_040.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/EHMqgE4zkh5Pyojy-auswahl-040.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/EHMqgE4zkh5Pyojy-auswahl-040.png)

Nun auf installieren klicken, danach das Addon noch **NICHT!!** starten

[![Auswahl_041.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/5AWn9d7xFOpYpGSw-auswahl-041.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/5AWn9d7xFOpYpGSw-auswahl-041.png)

Nun im File Editor auf Browse / Durchsuchen gehen gehen und eine neue Datei anlegen mit dem namen  
frigate.yml

[![Auswahl_042.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/P8IFwY0N8XMUJUuE-auswahl-042.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/P8IFwY0N8XMUJUuE-auswahl-042.png)

[![Auswahl_043.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/7XTX8ewGcjlfpE0C-auswahl-043.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/7XTX8ewGcjlfpE0C-auswahl-043.png)  
Hier mal ein Inhalt den man als Vorlage nehmen und erweitern kann:

```
mqtt:
  enabled: True
  host: 172.16.0.14
  user: smarthome
  password: smarthome
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: interval in seconds for publishing stats (default: shown below)
  stats_interval: 15

#immer die frigatre datenbank da hinlegen wo auch die medien liegen, denn sollte mal das netzlaufwerkabbrechen, 
#haben wir keine inkonsistente Datenbank zu den videos
database:           
  path: /media/frigate/frigate.db

# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  detector_name:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    type: cpu 
#Hardware Beschleunigung aktivieren, wenn eine GPU vorhanden für hw Beschleunigung dann den Kommentar bei hwaccel_args entfernen
ffmpeg:
  #hwaccel_args: -c:v h264_qsv
  hwaccel_args: preset-intel-vaapi
  #hwaccel_args: preset-intel-qsv-h264
  #hwaccel_args: preset-rpi-64-h264
  #hwaccel_args: preset-rpi-64-h265

birdseye:
  enabled: True
  restream: True
  mode: objects

objects:
  track:
    - person
    - car
#ich hab den Filter rausgenommen, aber wer möchte das die Objekterkennung nur über einen bestimmten Bereich geht, kann diesen Definieren.
#Allerdings wäre es dafür einfacher Zones für die Kameras in der UI zu erstellen.
  #filters:
   # person:
     # min_area: 5000
     # max_area: 100000


go2rtc:
  streams:
    Treppenhaus: 
      - rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_main#video=copy
    Treppenhaus_sub: 
      - rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_sub#video=copy
  #enable webrtc für flüssigeres bild in der lovlace Karte
  webrtc:
    candidates:
      - 127.0.0.1:8555
      - stun:8555  

cameras:
  Treppenhaus_CAM:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/Treppenhaus
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/Treppenhaus_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 1280 #Hier unbedingt die reale Auslösung des Streams wählen
      height: 720 #Hier unbedingt die reale Auslösung des Streams wählen
      fps: 5
    snapshots:
      enabled: True
    record:
      enabled: True
      retain: 
        mode: motion #nimmt nur auf wenn Bewegung erkannt wurde und nicht komplett durchgehend, 
              #dies ist Lösung für die Cach Warning wenn zu wenig RAM vorhanden ist.
              #Und warum soll man die Festplatte unnötig volllaufen lassen, auch wenn nur für 1 Tag wäre
        days: 1 #ich möchte ja nur die clips haben wo auch objekte erkannt werden. 
                #Es wird aber in frigate tatsächlich die ganze zeit aufgenommen. 
                #Wir brauchen keine Komplettaufnahmen länger als ein Tag, also noch einem Tag wegschmeißen. 
                #Denn den Record brauchen wir leider, damit frigate die Clips daraus schneiden kann.
      detections:
        pre_capture: 30        # Sekunden vor dem Ereignis mitschneiden
        post_capture: 60       # Sekunden nach dem Ereignis mitschneiden
        retain: 
          default: 14
```

#### Die Config Werte:

##### MQTT:

Wir ändern den Username und kennwort bei MQTT auf unseren MQTT Benutzer und Kennwort ab.  
Den Host ändern wir auf die IP Adresse unseren Home Assistanten ab.

Den rest von MQTT lassen wir so.

##### Detectors:

Hier type: cpu nehmen oder wer ein google corel ai Stick hat stellt folgendes ein:  
Birdeye view

##### FFMPEG:

<div id="bkmrk-hinweis%3A-darauf-acht" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Darauf achten das die Kamera Streams den gleichen Codec haben den die HW Beschleunigung auch kann!!!</div>- `#hwaccel_args: -c:v h264_qsv`  
    **Quick Sync direkt erzwingen (H.264).** Das ist ein **Roh-ffmpeg-Flag** und allein meist **nicht ausreichend** (eigentlich bräuchtest du zusätzlich `-hwaccel qsv`, Device usw.). In Frigate lieber die QSV-Preset-Zeile unten nutzen. Nur für Intel-iGPU, nur H.264.
- `#hwaccel_args: preset-intel-vaapi`  
    **Intel iGPU über VAAPI (Linux).** Solide Allround-Variante, funktioniert für **H.264 und oft auch H.265** je nach iGPU.  
    Voraussetzungen: Linux, `/dev/dri` in den Container durchreichen. Gut, wenn du H.265 im Main-Stream hast, aber trotzdem HW-Decode willst.
- `#hwaccel_args: preset-intel-qsv-h264`  
    **Intel Quick Sync (QSV) speziell für H.264.** Sehr effizient, geringe CPU-Last.  
    Voraussetzungen: Intel-iGPU + `/dev/dri`. **Nur verwenden, wenn der zu decodierende Stream H.264 ist** (für H.265 gibt es ein anderes Preset, nicht dieses).
- `#hwaccel_args: preset-rpi-64-h264` und bei 265 genau umgekehrt, kein h264  
    **Raspberry Pi (64-bit) via V4L2 M2M, H.264-Decode.** Für Pi 4/5 mit 64-bit OS. **Kein H.265-HW-Decode**, also Sub-Stream in der Kamera auf H.264 stellen. Container braucht Zugriff auf die Video-Devices (bei HA-Addon i. d. R. schon so).
- `#hwaccel_args: preset-rpi-64-h265`  
    **Raspberry Pi (64-bit) via V4L2 M2M, H.265-Decode.** Für Pi 4/5 mit 64-bit OS. **Kein H.264-HW-Decode**, also Sub-Stream in der Kamera auf H.265 stellen. Container braucht Zugriff auf die Video-Devices (bei HA-Addon i. d. R. schon so).
- 

##### Object:

Wir wollen Personen und Autos erkennen.

##### go2rtc:

hier wird eine Verbindung zur Kamera aufgebaut. Wenn eine Kamera auch einen Substream hat, für hohe und niedrige auflösung wählen.  
Main ist immer hochauslösend, sub als Previe.  
Kann die Cam nur ein Stream.  
Diesen bei beie eintargen.

##### Cameras:

Dort den Namen der Camere eintragen wie er auch wirklcih erscheinen soll.  
Hier erstellen wir ein neuen RTSP Stream auf localhost.  
Dieser verlinkt auf den go2rtc. Vorteil eure Kamera die in go2rtc angelegt ist, unterstützt nur einen Stream gleichzeitg zum abruf, nun könnt Ihr den input von cameras auch für externe Anwendungen nutzen. Denn in der externen Anwedung gebt ihr den Camera input an. Und dann greift Home Assistant auf die Cam im go2rtc zu.

##### record:

In Frigate gibt’s im `record:`-Block mehrere Untersektionen, die unterschiedliche Arten von Videoaufzeichnungen betreffen.  
Die Namen **`alerts`**, **`detections`** und **`events`** tauchen dort auf, um gezielt **unterschiedliche Aufnahmetypen** separat zu konfigurieren.

##### 1️⃣ **`alerts`**

- Bezieht sich auf Clips, die durch einen **Alarm** ausgelöst werden (z. B. wenn ein Objekt mit einer sehr hohen Erkennungssicherheit erkannt wird).
- Entsteht meist, wenn `review: true` aktiviert ist oder ein **MQTT-/API-Trigger** für einen Alarm kommt.
- Wird eher selten genutzt, außer du hast externe Systeme, die Frigate “Alarm!” rufen lassen.

---

##### 2️⃣ **`detections`**

- Steht für **Videoabschnitte während einer aktiven Objekterkennung**.
- Wenn Frigate etwas erkennt (Person, Auto, Tier) und die `detect:`-Parameter erfüllt sind, speichert dieser Modus die Clips nur für diese Zeit.
- Du kannst hier eigene `pre_capture`- und `post_capture`-Zeiten festlegen, die nur für “Erkennungsclips” gelten.
- Hier stellst du typischerweise deine gewünschten 30 Sekunden vorher und 60 Sekunden nachher ein.

---

💡 **Praxis-Tipp:**  
Wenn du einfach nur möchtest, dass **jeder erkannte Vorfall** mit Puffer aufgenommen wird, reicht es, nur **`events`** in `record:` zu konfigurieren – die anderen brauchst du nicht zwingend.

##### **Mögliche Parameter in `alerts` / `detections` / `events`**

<div class="_tableContainer_1rjym_1" id="bkmrk-parameter-typ-bedeut"><div class="_tableWrapper_1rjym_13 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1414" data-start="402" style="width: 100%; height: 1399.87px;"><thead data-end="433" data-start="402"><tr data-end="433" data-start="402" style="height: 29.7353px;"><th data-col-size="sm" data-end="414" data-start="402" style="width: 15.2552%; height: 29.7353px;">Parameter</th><th data-col-size="sm" data-end="420" data-start="414" style="width: 11.1986%; height: 29.7353px;">Typ</th><th data-col-size="md" data-end="433" data-start="420" style="width: 73.5392%; height: 29.7353px;">Bedeutung</th></tr></thead><tbody data-end="1414" data-start="466"><tr data-end="587" data-start="466" style="height: 46.5294px;"><td data-col-size="sm" data-end="486" data-start="466" style="width: 15.2552%; height: 46.5294px;">**`pre_capture`**</td><td data-col-size="sm" data-end="509" data-start="486" style="width: 11.1986%; height: 46.5294px;">Sekunden (float/int)</td><td data-col-size="md" data-end="587" data-start="509" style="width: 73.5392%; height: 46.5294px;">Anzahl Sekunden Video, die **vor dem Ereignis** gespeichert werden sollen.</td></tr><tr data-end="711" data-start="588" style="height: 46.5294px;"><td data-col-size="sm" data-end="609" data-start="588" style="width: 15.2552%; height: 46.5294px;">**`post_capture`**</td><td data-col-size="sm" data-end="632" data-start="609" style="width: 11.1986%; height: 46.5294px;">Sekunden (float/int)</td><td data-col-size="md" data-end="711" data-start="632" style="width: 73.5392%; height: 46.5294px;">Anzahl Sekunden Video, die **nach dem Ereignis** gespeichert werden sollen.</td></tr><tr data-end="796" data-start="712" style="height: 29.7353px;"><td data-col-size="sm" data-end="727" data-start="712" style="width: 15.2552%; height: 29.7353px;">**`retain`**</td><td data-col-size="sm" data-end="735" data-start="727" style="width: 11.1986%; height: 29.7353px;">Block</td><td data-col-size="md" data-end="796" data-start="735" style="width: 73.5392%; height: 29.7353px;">Einstellungen, wie lange diese Aufnahmen behalten werden.</td></tr><tr data-end="894" data-start="797" style="height: 29.7353px;"><td data-col-size="sm" data-end="820" data-start="797" style="width: 15.2552%; height: 29.7353px;">**`retain.default`**</td><td data-col-size="sm" data-end="833" data-start="820" style="width: 11.1986%; height: 29.7353px;">Tage (int)</td><td data-col-size="md" data-end="894" data-start="833" style="width: 73.5392%; height: 29.7353px;">Standardanzahl Tage, die diese Aufnahmen behalten werden. Alte syntax days</td></tr><tr data-end="1003" data-start="895" style="height: 425.853px;"><td data-col-size="sm" data-end="918" data-start="895" style="width: 15.2552%; height: 425.853px;">**`retain.objects`**</td><td data-col-size="sm" data-end="928" data-start="918" style="width: 11.1986%; height: 425.853px;">Mapping</td><td data-col-size="md" data-end="1003" data-start="928" style="width: 73.5392%; height: 425.853px;">Abweichende Aufbewahrungsdauer pro Objektklasse (z. B. `"person": 30`).  
egal was in default steht, wird eine Person erkannt, 30 Tage aufbewahren.  
```
Beispiel:
retain:
  default: 14          # Standard: 14 Tage behalten
  objects:
    person: 30         # Clips mit Personen: 30 Tage behalten
    car: 7             # Clips mit Autos: 7 Tage behalten


Ein Event ohne Person → 14 Tage behalten

Ein Event mit Person → 30 Tage behalten

Ein Event mit Auto, aber ohne Person → 7 Tage behalten

Ein Event mit Auto und Person → nimmt den höchsten Wert (30 Tage)

💡 Das ist praktisch, wenn du z. B. Fahrzeuge oder Tiere kürzer
behalten willst, aber Personenaufnahmen länger archivieren möchtest.
```

</td></tr><tr data-end="1099" data-start="1004" style="height: 29.7353px;"><td data-col-size="sm" data-end="1020" data-start="1004" style="width: 15.2552%; height: 29.7353px;">**`enabled`**</td><td data-col-size="sm" data-end="1033" data-start="1020" style="width: 11.1986%; height: 29.7353px;">true/false</td><td data-col-size="md" data-end="1099" data-start="1033" style="width: 73.5392%; height: 29.7353px;">Aktiviert/deaktiviert die Aufzeichnung für diese Untersektion.</td></tr><tr data-end="1199" data-start="1100" style="height: 29.7353px;"><td data-col-size="sm" data-end="1116" data-start="1100" style="width: 15.2552%; height: 29.7353px;">**`objects`**</td><td data-col-size="sm" data-end="1124" data-start="1116" style="width: 11.1986%; height: 29.7353px;">Liste</td><td data-col-size="md" data-end="1199" data-start="1124" style="width: 73.5392%; height: 29.7353px;">Beschränkt Aufnahmen auf bestimmte Objekte (z. B. `["person", "car"]`).</td></tr><tr data-end="1313" data-start="1200" style="height: 29.7353px;"><td data-col-size="sm" data-end="1223" data-start="1200" style="width: 15.2552%; height: 29.7353px;">**`required_zones`**</td><td data-col-size="sm" data-end="1231" data-start="1223" style="width: 11.1986%; height: 29.7353px;">Liste</td><td data-col-size="md" data-end="1313" data-start="1231" style="width: 73.5392%; height: 29.7353px;">Aufnahmen nur, wenn das Objekt in einer dieser definierten Zonen erkannt wird.</td></tr><tr data-end="1414" data-start="1314" style="height: 29.7353px;"><td data-col-size="sm" data-end="1332" data-start="1314" style="width: 15.2552%; height: 29.7353px;">**`min_score`**</td><td data-col-size="sm" data-end="1345" data-start="1332" style="width: 11.1986%; height: 29.7353px;">Zahl (0–1)</td><td data-col-size="md" data-end="1414" data-start="1345" style="width: 73.5392%; height: 29.7353px;">Mindest-Score für die Erkennung, damit ein Clip gespeichert wird.</td></tr><tr style="height: 643.074px;"><td style="width: 15.2552%; height: 643.074px;">**`active_objects`**</td><td style="width: 11.1986%; height: 643.074px;">Liste</td><td style="width: 73.5392%; height: 643.074px;">- Wenn ein Objekt erkannt wird, startet ein Event.
- Das Event bleibt **solange aktiv**, wie mindestens eines der festgelegten `active_objects` noch im Bild ist.
- Erst wenn kein `active_object` mehr sichtbar ist **und** der `post_capture`-Puffer abgelaufen ist, wird der Clip abgeschlossen.
- Praktisch, um zu verhindern, dass eine Aufnahme in mehrere kurze Clips gesplittet wird, wenn ein Objekt kurz verschwindet und wiederkommt.

```
record:
  enabled: true
  detections:
    pre_capture: 30
    post_capture: 60
    active_objects:
      - person
      - car
    retain:
      default: 14
➡ In diesem Beispiel:

Event startet, wenn Person oder Auto erkannt wird.

Solange eines dieser beiden Objekte im Bild ist, 
bleibt das Event aktiv.

Wenn beide weg sind, läuft noch post_capture (hier 60 Sekunden)
und der Clip wird dann abgeschlossen.
```

💡 **Wichtig:**

- Hat **keinen Einfluss** auf `alerts` oder `detections`, sondern nur auf `events`.
- Wenn du Objekte wie `"dog"` nicht in `active_objects` aufnimmst, können diese zwar erkannt werden, halten das Event aber **nicht** offen.

</td></tr><tr style="height: 29.7353px;"><td style="width: 15.2552%; height: 29.7353px;">**`mode`**</td><td style="width: 11.1986%; height: 29.7353px;">String</td><td style="width: 73.5392%; height: 29.7353px;">In Frigate steuert der **`mode`**-Parameter unter `record:` **wann und wie Aufnahmen gespeichert werden**.  
Er beeinflusst **die komplette Recorder-Logik** – also, ob Clips ständig oder nur bei Erkennung gespeichert werden.

#### **Mögliche Werte von `mode`**

<div class="_tableContainer_1rjym_1"><div class="_tableWrapper_1rjym_13 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1091" data-start="266" style="width: 99.9731%;"><thead data-end="311" data-start="266"><tr data-end="311" data-start="266"><th data-col-size="sm" data-end="273" data-start="266" style="width: 16.359%;">Wert</th><th data-col-size="sm" data-end="285" data-start="273" style="width: 22.6913%;">Bedeutung</th><th data-col-size="xl" data-end="311" data-start="285" style="width: 60.9399%;">Wann wird aufgenommen?</th></tr></thead><tbody data-end="1091" data-start="358"><tr data-end="527" data-start="358"><td data-col-size="sm" data-end="370" data-start="358" style="width: 16.359%;">**`all`**</td><td data-col-size="sm" data-end="386" data-start="370" style="width: 22.6913%;">Daueraufnahme</td><td data-col-size="xl" data-end="527" data-start="386" style="width: 60.9399%;">24/7-Aufzeichnung, unabhängig von Bewegung oder Erkennung. Events werden zusätzlich markiert, aber der komplette Stream wird gespeichert.</td></tr><tr data-end="731" data-start="528"><td data-col-size="sm" data-end="543" data-start="528" style="width: 16.359%;">**`motion`**</td><td data-col-size="sm" data-end="562" data-start="543" style="width: 22.6913%;">Nur bei Bewegung</td><td data-col-size="xl" data-end="731" data-start="562" style="width: 60.9399%;">Speichert, sobald Bewegung erkannt wird (auch wenn kein Objekt erkannt wird). Spart Speicherplatz, kann aber Ereignisse abschneiden, wenn Bewegung spät erkannt wird.</td></tr><tr data-end="949" data-start="732"><td data-col-size="sm" data-end="755" data-start="732" style="width: 16.359%;">**`active_objects`**</td><td data-col-size="sm" data-end="782" data-start="755" style="width: 22.6913%;">Nur bei aktiven Objekten</td><td data-col-size="xl" data-end="949" data-start="782" style="width: 60.9399%;">Speichert, wenn ein erkennbares Objekt (aus deiner Objektliste) aktiv im Bild ist. Noch sparsamer, aber Risiko, dass Aufnahmen fehlen, wenn Erkennung mal aussetzt.</td></tr><tr data-end="1091" data-start="950"><td data-col-size="sm" data-end="991" data-start="950" style="width: 16.359%;">**`never`** *(oder einfach weglassen)*</td><td data-col-size="sm" data-end="1023" data-start="991" style="width: 22.6913%;">Keine dauerhafte Aufzeichnung</td><td data-col-size="xl" data-end="1091" data-start="1023" style="width: 60.9399%;">Es gibt nur Event-Clips, aber keine kontinuierliche Speicherung.</td></tr></tbody></table>

</div></div>```
Beispiel

💡 Allerdings ist das hier jetzt reine Bewegung, 
denn in Events fehlt die Objekt Erkennung nur als info 💡

record:
  enabled: true
  mode: motion
  detections:
    pre_capture: 30
    post_capture: 60
    retain:
      default: 14


➡ In diesem Beispiel:

Frigate speichert Clips nur bei Bewegung.

Dank pre_capture werden auch 30 Sekunden vor der Bewegung mitgeschnitten.

Ereignisse bleiben 14 Tage gespeichert.

💡 Praxis-Tipp:

Wenn du oft das Problem hast, dass der Anfang fehlt, 
ist mode: all am sichersten, weil Frigate dann immer puffert.

Wenn Speicherplatz knapp ist, mode: motion mit großem 
pre_capture (z. B. 30–60 Sekunden) wählen.
```

#### Das Zusammenspiel konkret:

##### **1. `mode` in der `record:`-Sektion (global)**

- Steuert die **Grundaufzeichnung**.
- Beispiel: `mode: motion` → Frigate schreibt den Videostream nur auf die Platte, wenn Bewegung erkannt wird (egal, ob ein bestimmtes Objekt erkannt wird).
- Wenn **keine Bewegung**, dann auch **kein Material im Speicher**, auf das `pre_capture`/`post_capture` zugreifen könnte.

---

##### **2. `mode` in `events:` (innerhalb `record:`)**

- Steuert **welche Teile** der schon aufgenommenen Daten **als Event-Clip** gespeichert und in der Weboberfläche unter *Clips* angezeigt werden.
- Beispiel: `mode: active_objects` → Nur die Abschnitte, in denen tatsächlich ein konfiguriertes Objekt im Bild ist, werden zu Events.
- Der Rest der Bewegungsvideos (z. B. Wind im Baum) wird **nicht** als Event markiert, obwohl er durch `mode: motion` global gespeichert wurde.

---

##### **Zusammenspiel**

💡 Man kann sich das so vorstellen:

1. **Globales `record.mode`** → Bestimmt, **wann der Rekorder läuft** und Daten speichert.
2. **`events.mode`** → Bestimmt, **welche Szenen daraus zu “wichtigen Clips”** werden.

```
Beispiel-Konfig
record:
  enabled: true
  mode: motion        # Nur aufnehmen, wenn Bewegung erkannt wird
  detectsions:
    mode: active_objects  # Aus diesen Bewegungs-Aufnahmen nur Clips mit erkannten Objekten machen
    pre_capture: 30
    post_capture: 60
    retain:
      default: 14


➡ Ablauf in dem Beispiel:

Es bewegt sich etwas im Bild → globales mode: motion startet Aufnahme.

Frigate prüft, ob ein Objekt in detect.objects erkannt wird.

Ja → Ausschnitt wird als Event gespeichert, inkl. Puffer (pre_capture + post_capture).

Nein → Die Bewegung wird zwar aufgenommen, aber kein Event erstellt 
(kann aber in der 24/7-Timeline auftauchen, wenn aktiviert).

Das heißt:

record.mode = Wann wird überhaupt aufgenommen?

events.mode = Was davon landet als markiertes Ereignis in den Clips?
```

##### 💡Tipp:

Wenn record mode motion ist landen trotzdem die erergniss wo nur Bewegung erkannt wurde aber keine Personen in der Timeline.  
Wir müssne dazu:

```
Events trotzdem mit pre_capture + post_capture (damit der Anfang/Ende nicht abgeschnitten wird)
Sonstige Bewegungen nicht in der grünen 24/7-Timeline sehen
Also keine “leeren” Bewegungsclips, nur die echten Ereignisse
```

Du musst **`record.enabled: true`** lassen (damit der Puffer für pre/post funktioniert),  
aber `record.mode` so setzen, dass nur die Event-Zeiten gespeichert werden.

Das geht so:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>```
record: 
  enabled: true 
  mode: active_objects # NICHT motion, sonst landet alles in der Timeline 
  detections: 
    pre_capture: 30 
    post_capture: 60 
    retain: default: 14
```

---

### Warum das funktioniert

- **`record.mode: active_objects`** → Frigate schreibt den Videostream **nur**, wenn gerade ein “aktives Objekt” erkannt wird (also Person, Auto usw.).
- Das ist **das gleiche Zeitfenster**, das auch für Events genutzt wird → keine “extra” Bewegungsvideos in der Timeline.
- Trotzdem kann Frigate mit `pre_capture` ein paar Sekunden vorher aufnehmen, weil der Puffer im RAM läuft, auch wenn noch nichts gespeichert wurde.
- Ergebnis: **nur rote Event-Segmente in der Timeline**, keine grünen “nur Bewegung”-Segmente.

---

💡 **Tipp:** Wenn du wirklich nur bestimmte Objektarten für Events willst, setze in `detections:` noch `objects:`:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-attr">detections:</span>  <span class="hljs-attr">objects:</span>    <span class="hljs-bullet">-</span> <span class="hljs-string">person</span>`</div></div>Dann entstehen nur Clips + Timeline-Einträge, wenn eine Person erkannt wurde.

</td></tr></tbody></table>

</div></div>### anderen Speicherort festlegen:  


frigate stopp  
  
Alle Daten werden im /media/frigate Verzeichnis gespeichert.  
Damit die Datenbank aber nicht im Config Verzeichnis liegt:

An die Konfig anfügen.

```
database:
  path: /config/frigate.db
  
ändern zu bzw hinzufügen wenn noch kein Database: Eintrag vorhanden

database:
  path: /media/frigate/frigate.db
```

Nun einen neuen Netzwerkspeicher anlegen mit dem Namen frigate.  
Dieser wird dann mit dem Namen frigate in Verzeichnis /media gemountet.  
Somit ist der Pfad dann Media frigate  
Möchte man seine alte Daten noch halten dann benennen wir vor dem erstellen des Speichers , das Verzeichnis frigate in frigate\_tmp um  
Nachdem der Netzwerkwerk speicher angehängt wurde verschieben wir den Inhalt aus frigate\_tmp in frigate.  
Dann starten wir das Addon wieder.

Das umbenennen kann man über das Addon Terminal in der Sidebar gemacht werden oder über ein Filebrowser Addon in der Sidebar  
Fertig

### Zeitstempel:  


In Frigate hat man nur die Möglichkeit Zeitstempel in die Bilder (Snapshots) einzubetten.  
Man kan das auch in die Recording über ffmpeg machen.  
Das ist aber sehr Ressourcen hungrig, weil das Video dazu neu encodiert wird.  
Nut mit Video Accelrator zu empfehelen.  
Mein Vorschlag wäre, ob die Kamera selbst die Möglichkeit hat einen Zeitstempel hinzuzufügen.

Für Unifi Kameras, kann man den Zeitstempel in der GUI config.  
  
Reicht einem die Zeit im Snapshot, dann kann man einen neuen Abschnitt in der Konfig (ich habe diesen unter go2rtc erstellt), dieses hinzufügen:  
Hier ändere Ich das Format von US auf 01.12.2024 13:15:45 in der Farbe weiß oben links

```

...
timestamp_style:
  # Optional: Position of the timestamp (default: shown below)
  #           "tl" (top left), "tr" (top right), "bl" (bottom left), "br" (bottom right)
  position: "tl"
  # Optional: Format specifier conform to the Python package "datetime" (default: shown below)
  #           Additional Examples:
  #             german: "%d.%m.%Y %H:%M:%S"
  format: "%d.%m.%Y %H:%M:%S"
  # Optional: Color of font
  color:
    # All Required when color is specified (default: shown below)
    red: 255
    green: 255
    blue: 255
  # Optional: Line thickness of font (default: shown below)
  thickness: 2
  # Optional: Effect of lettering (default: shown below)
  #           None (No effect),
  #           "solid" (solid background in inverse color of font)
  #           "shadow" (shadow for font)
  effect: "solid"
...
```

So sähe das dann aus, aber leider nur im Bild (Snapshots) und nicht in den Auffnahmen

[![Auswahl_090.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/M9VPnmYghsU9527a-auswahl-090.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/M9VPnmYghsU9527a-auswahl-090.png)

### Schlechte Internetverbindung:

Wenn die Internetverbindung einfach zu schlecht ist 128 KB pro Sekunde (1000 Kbit / 1 MBit (DSL 1000 Leitung) Up/download

Sollte die Internetverbindung für ein Flüssiges wiedergeben von Aufnahmen nicht funktionieren. Weil 4K über 1 Mbit gar nicht geht.  
Dann kann man die Gleiche Kamera nochmal anlegen nur zum Beispiel mit den Namen Mobil und dort bei record den Substream mit einer niedrigen Auflösung wählen.  
Nun werden zwei Aufnahmen erstellt einmal in 4K bzw höchste Auflösung was die Kamera Kann und einmal in der niedrichsten.  
Wazu das ganze?  
Ist man im Urlaub möchte man trotzdem auf die Aufnahmen zugreifen können, außerdem schont es zusätzlich das Datenvolumen.  
Braucht man zum Beispiel wegen eines Einbruchs dann das Video in 4K kann man dieses in 4K herunterladen.  
Vorher wäre es aber interessant sich überhaupt bequem das Einbruchvideo anzuschauen ohne es runter zu laden. Dafür ist dann die Aufnahme mit dem substream in niedriger Auflösung völlig ausreichend

Beispiel Konfig:

```

#Im Go to rtc Teil werden die Streams definiert.
#Die Stremas sind die URLs zu den Jeweiligen Streamd der Kamera(s).
#Wir haben 3 Stück.
#Innenhof = 4K
#Innenhof_Medium = 720p
#Innenhof_sub = DVD qualität
go2rtc:
  streams:
    Innenhof:
      - rtsp://user:pass@192.168.178.68:554/s0#video=copy
    Innenhof_medium:
      - rtsp://user:pass@192.168.178.68:554/s2#video=copy
    Innenhof_sub:
      - rtsp://user:pass@192.168.178.68:554/s1#video=copy
#hat jetzt nichts mit den cams zu tun, aber ich hab den webrtc mal mit reingepackt      
  webrtc:
    candidates:
      - 127.0.0.1:8555
      - stun:8555    
  
#Un in dem Camera Teil, die Cams mit detect record und livebild deklariert.
#Einfach doppelt mit anderen namen und dem entsprechendendes Streams.
Der detect Stream bleibt bei allen gleich, denn da braucht man ja kein Internet für


cameras:
  Innenhof_CAM:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/Innenhof
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/Innenhof_medium
          roles:
            - detect
    live:
      stream_name: Innenhof_medium
      quality: 8
    detect:
      width: 1280  #Hier unbedingt die reale Auslösung des Streams wählen
      height: 720  #Hier unbedingt die reale Auslösung des Streams wählen
      fps: 5 # in der Regel reichen 5 Frames
    snapshots:
      enabled: true
    record:
      enabled: true
      retain:
        default: 1
        mode: motion
    detections:
      retain:
        default: 30
        mode: active_objects
  Innenhof_CAM_Mobil:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/Innenhof_medium
          input_args: preset-rtsp-generic
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/Innenhof_medium
          input_args: preset-rtsp-generic
          roles:
            - detect
    live:
      stream_name: Innenhof_medium
      quality: 8
    detect:
      width: 1280 #Hier unbedingt die reale Auslösung des Streams wählen
      height: 720 #Hier unbedingt die reale Auslösung des Streams wählen
      fps: 5
    snapshots:
      enabled: true
    record:
      enabled: true
      retain:
        default: 1
        mode: motion
      detections:
        retain:
          default: 30
          mode: active_objects



```

### Full Reference Konfig:  


Will man alle möglichen Optionen wissen, dann unter

[https://docs.frigate.video/configuration/reference/](https://docs.frigate.video/configuration/reference/)

nachschauen

### Beispiel konfig small:

Noch ne kleine Erinnerung an die HW Beschleunigung:

##### FFMPEG:

- `#hwaccel_args: -c:v h264_qsv`  
    **Quick Sync direkt erzwingen (H.264).** Das ist ein **Roh-ffmpeg-Flag** und allein meist **nicht ausreichend** (eigentlich bräuchtest du zusätzlich `-hwaccel qsv`, Device usw.). In Frigate lieber die QSV-Preset-Zeile unten nutzen. Nur für Intel-iGPU, nur H.264.
- `#hwaccel_args: preset-intel-vaapi`  
    **Intel iGPU über VAAPI (Linux).** Solide Allround-Variante, funktioniert für **H.264 und oft auch H.265** je nach iGPU.  
    Voraussetzungen: Linux, `/dev/dri` in den Container durchreichen. Gut, wenn du H.265 im Main-Stream hast, aber trotzdem HW-Decode willst.
- `#hwaccel_args: preset-intel-qsv-h264`  
    **Intel Quick Sync (QSV) speziell für H.264.** Sehr effizient, geringe CPU-Last.  
    Voraussetzungen: Intel-iGPU + `/dev/dri`. **Nur verwenden, wenn der zu decodierende Stream H.264 ist** (für H.265 gibt es ein anderes Preset, nicht dieses).
- `#hwaccel_args: preset-rpi-64-h264`  
    **Raspberry Pi (64-bit) via V4L2 M2M, H.264-Decode.** Für Pi 4/5 mit 64-bit OS. **Kein H.265-HW-Decode**, also Sub-Stream in der Kamera auf H.264 stellen. Container braucht Zugriff auf die Video-Devices (bei HA-Addon i. d. R. schon so).
- `#hwaccel_args: preset-rpi-64-h265`  
    **Raspberry Pi (64-bit) via V4L2 M2M, H.265-Decode.** Für Pi 4/5 mit 64-bit OS. **Kein H.264-HW-Decode**, also Sub-Stream in der Kamera auf H.265 stellen. Container braucht Zugriff auf die Video-Devices (bei HA-Addon i. d. R. schon so).

##### Config:

```
#mqtt

mqtt:
  enabled: true
  host: 192.168.178.xx
  user: username
  password: password
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: interval in seconds for publishing stats (default: shown below)
  stats_interval: 15


  # Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  coral1:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    type: edgetpu


    #Hardware Beschleunigung aktivieren, wenn eine GPU vorhanden für hw Beschleunigung dann den Kommentar bei hwaccel_args entfernen
ffmpeg:
  #hwaccel_args: -c:v h264_qsv
  #hwaccel_args: preset-intel-vaapi
  #hwaccel_args: preset-intel-qsv-h264
  #hwaccel_args: preset-rpi-64-h264
  #hwaccel_args: preset-rpi-64-h264
  
birdseye:
  enabled: true
  restream: true
  mode: objects

objects:
  track:
    - person
    - car
    - dog
    - cat

#video=copy ist wichtig damit das Video nicht neu transkodiert wird
go2rtc:
  streams:
    parkplatz:
      - rtsp://admin:password@192.168.178.xx/0#video=copy
    parkplatz_sub:
      - rtsp://admin:password@192.168.178.xx/1#video=copy

  #in dem Streams abschnitt kann man über die RTSP Eigenschaft den Timeout und ein Buffer einstellen.
  #Ich habe diesen nicht benutzt, kann man aber aktivieren.
  #rtsp:
   # mediatimeout: 10s  # Erhöht die Timeout-Zeit für den RTSP-Stream
  #buffer:
   # size: 8388608 # Puffergröße in Bytes, hier etwa 8 MB
  #enable webrtc für flüssigeres bild in der lovlace Karte
  webrtc:
    candidates:
      - 127.0.0.1:8555
      - stun:8555

cameras:
  parkplatz_CAM:
    ffmpeg:
      inputs:
        #full resolution for recording
        - path: rtsp://127.0.0.1:8554/parkplatz
          input_args: preset-rtsp-generic
          roles:
            - record
        #low resoultion for detect
        - path: rtsp://127.0.0.1:8554/parkplatz_sub
          input_args: preset-rtsp-generic
          roles:
            - detect
    live:
      stream_name: parkplatz
    detect:
      width: 640 #Hier unbedingt die reale Auslösung des Streams wählen
      height: 480 #Hier unbedingt die reale Auslösung des Streams wählen
      fps: 5
    snapshots:
      enabled: true
    record:
      enabled: true
      retain:
        mode: motion #nimmt nur auf wenn Bewegung erkannt wurde und nicht komplett durchgehend, dies ist Lösung für die Cach Warning wenn zu wenig RAM vorhanden ist
        default: 1 #ich möchte ja nur die clips haben wo auch objekte erkannt werden. Es wird aber in frigate tatsächlich die ganze zeit aufgenommen. 
        #das brauch ich aber nicht, also noch einem Tag wegschmeißen. Denn den Record brauchen wir leider, damit frigate die Clips daraus schneiden kann.
      alerts:
        retain:
          default: 14 #Tage wo alerts Aufbewart werden sollen
      detections:
        pre_capture: 30        # Sekunden vor dem Ereignis mitschneiden
        post_capture: 60       # Sekunden nach dem Ereignis mitschneiden
        retain:
          default: 14 #Tage Events Aufbewart werden sollen

version: 0.15-1

```

# Coral AI-Beschleuniger einbinden

### Beschreibung:

Das Auswerten der Bildervia CPU bringt die CPU an 99% Limit  
Damit ruckelt die Vorschau oder ist gar nicht verfügbar.  
Dafür setzten wir einen USB Dongle ein.

[![Auswahl_397.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/oZSMPeXxPxi1GolD-auswahl-397.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/oZSMPeXxPxi1GolD-auswahl-397.png)

### Config abändern:

Alt:

```
....
# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  detector_name:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    type: cpu
    
....
```

Neu

```
...
# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  detector_name:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    #Hier kommt anstatt cpu edgetpu rein
    type: edgetpu
    device: usb
...
```

### Fehlerbehebung:  


#### Fehler: Unable to keep up with recording segments in cache:

Dieser Fehler kann auftauchen, wenn Frigate in einer KVM Maschine läuft und Google Coral per USB durchgeschliffen wird.

Sollten die Aufnahmen irgendwann stoppen und im Log diese Fehler auftauchen, liegt es daran das der Coral Stick in der VM nicht hinterher kommt. Wenn die Latenz höher als 10ms ist

[![Auswahl_128.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/aFUEnV0KUpKm6AAz-auswahl-128.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/aFUEnV0KUpKm6AAz-auswahl-128.png)

```
2024-09-22 08:15:55.658352487  [2024-09-22 10:15:55] frigate.record.maintainer      WARNING : Unable to keep up with recording segments in cache for Innenhof_CAM. Keeping the 6 most recent segments out of 7 and discarding the rest...
2024-09-22 08:16:00.661791046  [2024-09-22 10:16:00] frigate.record.maintainer      WARNING : Unable to keep up with recording segments in cache for Innenhof_CAM_Mobil. Keeping the 6 most recent segments out of 7 and discarding the rest...
```

Abhilfe:

Dann Frigate in einen LCX Container stecken. Zweiter Vorteil wir können da auch die Video encoder Beschleunigung nutzen ;-)  
Siehe Artikel : [Installation als LXC Container und Einbindung in Home Assistant](https://wiki.hacker-net.de/books/home-assistant/page/installation-als-lxc-container-und-einbindung-in-home-assistant "Installation als LXC Container und Einbindung in Home Assistant")

# Installation als LXC Container und Einbindung in Home Assistant

### Beschreibung:

Sollte Home Assitant nicht auf einem Rasperrry oder nativ laufen sondern in einer VM.  
Dann sollte Frigate in einem LXC Container installiert werden, damit wir HW Beschleunigung für Video benutzen können.

Installation des Containers mittels den Helper scripten

Die Frigate LXC Seite dazu : [https://tteck.github.io/Proxmox/#frigate-lxc](https://tteck.github.io/Proxmox/#frigate-lxc)

**Wichtig in der Proxmox Webgui shell ausführen nicht nativ ssh!!!  
Und Standard installation auswählen, nicht Advanced!!!**

```
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/frigate.sh)"
```

Installation Fertig...

[![Auswahl_398.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/26yPKQNIeD3Hvpj5-auswahl-398.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/26yPKQNIeD3Hvpj5-auswahl-398.png)

Nach dem das Script durchgelafuefn ist, ist der Server über : **IP:5000 erreichbar**

Das script schleift uns schon die Grafikkarte durch.  
Wir brauchen dann nur noch in der lxc .conf

```
nano /etc/pve/lxc/<vmid>.conf

Beispiel

nano /etc/pve/lxc/102.conf
```

Folgenden Abschnitt an ende der Datei hinzufügen für den Coral USB Stick.  
In der Letzten Zeile die BUS Nummer anpassen.  
Mit lsusb herausfindbar

Output lsusb hier Bus 002

```
Bus 002 Device 003: ID 18d1:9302 Google Inc. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0658:0200 Sigma Designs, Inc. Aeotec Z-Stick Gen5 (ZW090) - UZB
Bus 001 Device 002: ID 0bda:c821 Realtek Semiconductor Corp. Bluetooth Radio 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

```

Und der Code

```
lxc.cgroup2.devices.allow: c 189:* rwm
...
lxc.mount.entry: /dev/bus/usb/002 /dev/bus/usb/002 none bind,optional,create=dir
```

Nun Kann Frigate konfiguriert werden über die Config File in derGUI.  
Nach jeder Änderung den Container stoppen und starten!!!

### Netzlaufwerk einbinden

Die Eigentlichen Medien Dateien sollen auf ein NSF Netzlaufwerk gespeichert werden.  
Dazu auf den NSF Server die IP des Frigate in die Ausnahmeliste hinzufügen.  
Wir mounten unser Frigate Verzeichnis in den Standard Order im Container unter /media/frigate  
  
Unsere NFS Freigabe heißt &lt;ip-adresse&gt;/frigate

In den Modul Option NFS anhaken

[![Auswahl_129.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/pidSKSVzSUdoCnuQ-auswahl-129.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/pidSKSVzSUdoCnuQ-auswahl-129.png)

Danach die fstab anpassen:

```
nano /etc/fstab
```

Nun folgende Mount Zeile am ende einfügen und an eure gegebenheiten anpassen.

Inhalt:

```
...
<ip>:/<share_name> /media/frigate nfs rw,soft,intr,noatime 0 0



Example
192.168.178.75:/NFS_Frigate /media/frigate nfs rw,soft,intr,noatime 0 0
```

Nun noch das Paket nsf common installieren

```
apt install nfs-common
```

Und nun mit

```
mount /media/frigate
```

 das Verzeichnis mounten

Graffikarte prüfen

Unser LXC Container ist für die Grafikkarte schon vorbereitet.

Das Programm zum testen

```
apt install vainfo
```

Wenn alles geklappt hat, dann solltet Ihr diese Ausgabe bekommen.  
Befehl:

```
vainfo
```

Ausgabe:

```
vainfo: VA-API version: 1.17 (libva 2.10.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.1 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointFEI
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointFEI
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointFEI
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
```

# Frigate HACS Addon

Beschreibung:

Mit dem Addon werden Cameras als Entity in Home Assistant angelegt.

Installation:

In HACS gehen -&gt; Dann integrations -&gt; Frigate eintippen.  
in neue Hacs verdion, so wie hier einfach in die suche Frigate eintippen.  
und Friagte Integration anklicken.

[![Auswahl_403.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/8PXVEWX3x79ovckd-auswahl-403.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/8PXVEWX3x79ovckd-auswahl-403.png)

[![Auswahl_404.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/NBvB4cRwRAieNlm5-auswahl-404.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/NBvB4cRwRAieNlm5-auswahl-404.png)

Danach Home Assistant neustarten und Browser cache leeren STRG+F5

Konfiguration:

Dann auf Einstellungen Geräte und Dienste

[![Auswahl_405.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/ZFKBheigEXt7G9os-auswahl-405.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/ZFKBheigEXt7G9os-auswahl-405.png)

Nun auf Integration hinzufügen

[![Auswahl_406.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/gWpQGYVfp0hpgjUK-auswahl-406.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/gWpQGYVfp0hpgjUK-auswahl-406.png)

Dort dann frigate in der suche eintippen und die Integration anklicken.

[![Auswahl_407.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/JET31IMRyzfqXItM-auswahl-407.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/JET31IMRyzfqXItM-auswahl-407.png)

Standardmäßig sollte das alles schon so vom Frigate ADDON (Also das Addon was auch wirklich Frigate ist) gesetzt sein.  
Bitt eübrpüfe ob auch rtmp gestezt ist

[![Auswahl_408.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/1aPvfzejspVo7eiC-auswahl-408.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/1aPvfzejspVo7eiC-auswahl-408.png)

Hier exkurs Überprüfung rtmp -&gt;  
Einstellungen im neuen Fenster öffnen, damit diese Seite offen bleibt  
Einstellungen -&gt; Addons -&gt; Frigate - &gt; Konfiguartion.  
Dort deaktivierte Port anzeigen und 195 bei rtmp eintragen.  
Speichern Frigate neustarten.

[![Auswahl_412.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/3x0xVV0OfJ1HL0Yv-auswahl-412.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/3x0xVV0OfJ1HL0Yv-auswahl-412.png)

Nun weiter mit der Integrations konfiguartion (Exkurs Ende)

Nun auf Bestätigen klicken.

Jetzt Bereich zuweisen, da ich noch keinen Bereich für Draußen habe, einfach in der Liste hinzufügen wählen und Bereich erstellen, wenn Ihr schon einen Bereich habt einfach nur noch auswählen.

[![Auswahl_409.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/DbzRcVTqUH0CQAQ5-auswahl-409.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/DbzRcVTqUH0CQAQ5-auswahl-409.png)

Da ich ja noch den Bereich erstellen muss hier wie es aussieht, Ich hab als Symbol einen Baum gewählt für draußen

[![Auswahl_410.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/rq4UDVKjwbVebgCO-auswahl-410.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/rq4UDVKjwbVebgCO-auswahl-410.png)

Nun haben wir alle Bereiche zugeordnet. Für Birdsview und Frigate, habe Ich den Bereich SmarthomeTechnik gewählt. Ich hab einen Bereich wo alle Smarthome relevanten Sachen rein kommen. wie Z-Wave Server, Bluetooh etc. Was nicht wirklich ein Gerät zum steuern ist

[![Auswahl_411.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/eQeEN2kwUD9EXPMm-auswahl-411.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/eQeEN2kwUD9EXPMm-auswahl-411.png)

Nun auf Fertig.  
Das wars, jetzt können wir die Geräte benutzen.

# Friagte Lovelace Card

### Beschreibung:

Eine eigene Karte um Frigate in Lovelace einzubinden.  
Somit mussman nicht unbedingt über den Menüpunkt in der Seitenleiste gehen.

### Vorrausetzung:

- Frigate installiert mit MQTT
- In der Frigate Konfigurations ist go2rtc aktiviert
- In den Stream webrtc aktiv
- Die HACS Frigate integration installiert.

### Installation:

Im HACS Store auf frontend gehen, dann auf repositoren durchsuchen als suchbegriff frigate eingeben.  
Dann bekommt man dies ergebnis.  
und dann herunterlande.  
Browser neu laden

[![Auswahl_399.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/tbzroQz482LqG1r9-auswahl-399.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/tbzroQz482LqG1r9-auswahl-399.png)

[![Auswahl_400.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/rILe21caCWicLP52-auswahl-400.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/rILe21caCWicLP52-auswahl-400.png)

Home Assistant Neustarten und den Cache leeren STRG+F5 !!!!!! Wichtig

### Konfiguration:

Nun kann im Dashboard eine Karte hingefügt werden, dann auf oben in der suche Frigate eingeben.  
Diese dann anklicken.[![Auswahl_082.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/s8U4EObCkanm9Hc0-auswahl-082.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/s8U4EObCkanm9Hc0-auswahl-082.png)

Nun unter Camera die Kamera auswählen die man haben möchte. Wir wählen in unserem Beispiel Innenhof Cam Mobil

[![Auswahl_083.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/taS7z7RP8M6WVf2s-auswahl-083.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/taS7z7RP8M6WVf2s-auswahl-083.png)

Bei Live Video Provider wählen wir go2rtc aus .

[![Auswahl_084.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/fMvAwiNZZHUsFUgd-auswahl-084.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/fMvAwiNZZHUsFUgd-auswahl-084.png)

Dann runter scrollen bis Live Provider options und dann go2rtc options

[![Auswahl_085.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/POdxqkEZUREAlfX4-auswahl-085.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/POdxqkEZUREAlfX4-auswahl-085.png)

Nu wählen wir go2rtc modes: Media Source Extension aus

[![Auswahl_086.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/j27S4K8SlaDrC3cs-auswahl-086.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/j27S4K8SlaDrC3cs-auswahl-086.png)

Und als Streamname, der Stream der für das Live Video benutzt werden soll.  
Die Streamnamen sind in der frigate.yml defniert im Abschnitt go2rtc.  
Sollte kein go2rtc vorhanden sein. Schaut nochmals in den Abschnitt   
[Installation in Home Assistant](https://wiki.hacker-net.de/books/home-assistant/page/installation-in-home-assistant "Installation in Home Assistant")  
  
Hier ist unser Streamname Innehof\_medium

[![Auswahl_087.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/jEafaDSksjLpfdEL-auswahl-087.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/jEafaDSksjLpfdEL-auswahl-087.png)

Nu kann man wenn möchte die Nächste Kamera Definieren, so kann man in dieser Karte dann durch die Kameras wechseln.  
Da dann die Sachen wieder ausfüllen, nur in diesem Fall mit anderer Cam und dann logischerweise auch anderem Live Stream

[![Auswahl_088.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/ZHU3X4plOrV9FOGO-auswahl-088.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/ZHU3X4plOrV9FOGO-auswahl-088.png)Hier der Quellcode für eine Kamera, dann braucht man nur im Text die Kamera austauschen.

<div id="bkmrk-hinweis%3A-dies-ist-ei" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** In der Auswahl werden die Kameras mit Leerzeichen dargestellt.   
Ich definiere in der Konfiguration alle Namen mit "_" dazwischen.   
Home Assistant interpretiert dieses dann als Leerzeichen.  
Deswegen muss in der Karte natürlich der Name mit "_" rein und nicht mit leerzeichen  
</div>```
type: custom:frigate-card
cameras:
  - camera_entity: camera.innenhof_cam_mobil
    live_provider: go2rtc
    go2rtc:
      modes:
        - mse
      stream: Innenhof_medium

```

# Fehlerbehebungen

### Beschreibung:

Was tun Wenns mal hakt, für Fehler oder Misskonfigurationen, hier die Lösung:

### Fehler:

#### Cache Warning Weil zu wenig RAM

```
WARNING : Unable to keep up with recording segments in cache for Innenhof_CAM_Mobil. Keeping the 6 most recent segments out of 7 and discarding the rest...
2024-09-08 07:27:02.556983431  [2024-09-08 09:27:02] frigate.record.maintainer      
WARNING : Unable to keep up with recording segments in cache for Innenhof_CAM. Keeping the 6 most recent segments out of 7 and discarding the rest...
2024-09-08 07:27:02.648738143  172.30.32.1 - - [08/Sep/2024:09:27:02 +0200] "GET /api/birdseye/latest.jpg?h=276 HTTP/1.1" 200 4335 "-" "HomeAssistant/2024.8.3 aiohttp/3.10.5 Python/3.12" "-"
```

##### Lösung:

In den Record Eingenschaften wo Ihr auch die Aufbewahrungszeit einstellt, angeben das das Aufnahmen nur bei Bewegung getätigt werden soll und nicht durchgehend. Denn Standard mäßig ist es immer eine riesige Video Datei die so groß ist, wie die Aufbewahrungszeit, woraus die Clips raus geschnitten werden.  
Gleichzeitig legen wir dann auch mit fest wie viel Sekunden vor und nach dem Ereignis noch mit aufgenommen werden soll.

Ich finde 10 Sekunden vor und 10 Sekunden nach, gar nich mal so schlecht als Wert. Hat aber mit dem Fehler hier nichts zu tun, dachte nur wenn wir eh das bearbeiten und Ihr eventuell noch keine Vor Nachlaufzeit habt, kann man das ja ergänzen.

```
 record:
      enabled: true
      retain:
        days: 1
        mode: motion #nimmt nur auf wenn Bewegung erkannt wurde und nicht komplett durchgehend, dies ist Lösung für die Cach Warning
      events:
        retain:
          default: 30
          mode: active_objects
        pre_capture: 10    # Anzahl der Sekunden vor dem Ereignis, die ebenfalls aufgenommen werden
        post_capture: 10  # Sekunden nach einem Ereignis
```

Eine weitere Möglichkeit kann sein, wenn Ihr einen Google Coral USB Stick benutzt der Coral Stick zu langsam ist wenn er in Proxmox per USB einfach durchgeschliffen wird.  
Abhilfe USB PCI Karte in die VM durchreichen oder einen LXC Container aufsetzten.  
Denn eine normale Response sind 10-15 ms aber nicht 50 ms und höher

[![Auswahl_128.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/aFUEnV0KUpKm6AAz-auswahl-128.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/aFUEnV0KUpKm6AAz-auswahl-128.png)

Kein Camera Bild obwohl URL richtig gesetzt in go2rtc:

Testen der URL von go2rtc im Browser.  
Denn damit prüfen wir kann Frigate die Kamera überhaupt erreichen bzw. läuft go2rtc überhaupt.

<div id="bkmrk-hinweis%3A-dies-ist-ei" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Damit das klappt muss in Konfiguration des Addons der Port 1984 bei go2rtc API eingetragen sein und das Addon neugestartet werden. Wenn alles klappt den Port wieder entfernen  
  
</div>```
http://<FRIGATE_IP>:1984/streams/<camera_name>
http://<FRIGATE_IP>:1984/streams/parkplatz
```

Funktioniert das nicht, dann in Frigate in der Seitenleiste öffnen dann auf Einstellungen -&gt; System logs -&gt; Dann go2rtc

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/kgPrUQaAf31rWQ27-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/kgPrUQaAf31rWQ27-grafik.png)

Wie wir hier sehen kann friagte die Kamera warum auch immer einfach nicht erreichen.  
Im Home Assitant ein terminal aufmachen, in den Container einloggen und mal schauen kommen wir da hin

```
docker exec -it <container_name> ffprobe rtsp://<url>

Hier
docker exec -it addon_ccab4aaf_frigate-fa-beta ffprobe rtsp://192.168.177.92:554/s0
```

Ausgabe:  
hier zu sehen, paketverlust, rtsp ist Standardmäßig UDP

```
➜  ~ docker exec -it addon_ccab4aaf_frigate-fa-beta ffprobe rtsp://192.168.177.92:554/s0 
ffprobe version 5.1.6-0+deb12u1+rpt3 Copyright (c) 2007-2024 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr --extra-version=0+deb12u1+rpt3 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 2 packets
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 4 packets
[h264 @ 0x55bc6a05b0] left block unavailable for requested intra mode
[h264 @ 0x55bc6a05b0] error while decoding MB 0 36, bytestream 80666
[h264 @ 0x55bc6a05b0] concealing 3889 DC, 3889 AC, 3889 MV errors in I frame
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 1 packets
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 1 packets
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 2 packets
Input #0, rtsp, from 'rtsp://192.168.177.92:554/s0':
  Metadata:
    title           : s0
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Audio: aac (LC), 48000 Hz, mono, fltp
  Stream #0:1: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn
➜  ~ 
```

jetzt , wir erzwingen in der config TCP

# Frigate Notifcations with Preview

### Beschreibung:

Ein Blueprint für HA Automatiserung, ja ausnhamsweise mal nicht Node Red.  
Weils halt von Frigate kommt

Die URL zum Git Repo : [https://github.com/SgtBatten/HA\_blueprints/tree/main/Frigate\_Camera\_Notifications](https://github.com/SgtBatten/HA_blueprints/tree/main/Frigate_Camera_Notifications)

### Vorrausetzungen

Damit das funktioniert muss frigate mit MQTT eingerichtet sein

### Blueprint installation:

Wir installieren die Beta.  
Dazu link öffnen und auf Beta klicken.  
Wer möchte kann auch die Stable installieren   
(In den Screenshots zu Installation ist noch Stable drin, weil die Beta hat neue Funktionen für Android 12+, was ich aber erst später wusste. Allerdinsg ist die installations vorhergehen weise die selbe)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/WPdEN7UPbU1xR11U-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/WPdEN7UPbU1xR11U-grafik.png)

Change url to your instance and click save

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/NWfpyK6bSofVPmUb-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/NWfpyK6bSofVPmUb-grafik.png)

Nun auf öffnen klicken, dann anmelden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/cqrgfNyWoSfVpMW4-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/cqrgfNyWoSfVpMW4-grafik.png)

Nun auf Vorschau klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/SbpGJaC4AYUR3kkR-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/SbpGJaC4AYUR3kkR-grafik.png)

Und auf importieren klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/P3XTpCJ5NDGOSWam-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/P3XTpCJ5NDGOSWam-grafik.png)

Blueprint installiert

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/uZAq6IpkJA7Ko1vJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/uZAq6IpkJA7Ko1vJ-grafik.png)

Notification mit dem Blueprint einrichten

Auf einstellungen und Dann Automationen und Szenen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/J08dUCVHOWHNiwza-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/J08dUCVHOWHNiwza-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/X5rK6qrldd87JgC4-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/X5rK6qrldd87JgC4-grafik.png)

Unten Rechts auf Automation erstellen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/xd5XercQlDpPzxKJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/xd5XercQlDpPzxKJ-grafik.png)

Nun Frigate auswählen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/KBTIf038m5k0sjLJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/KBTIf038m5k0sjLJ-grafik.png)

Nun die Einstellungen vornehmen

Kameras auswählen, Das mobilgerät auswählen.  
Wenn mehrer Mobilgeräte vorhanden sind muss für jedes Gerät eine Automation erstellt werden.

Die URL ZUm Home Assistenten eintragen MQTT Topic so lassen.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/wxqLDicNuHJFaAhT-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/wxqLDicNuHJFaAhT-image.png)

Notifications:

Notification title, der Titel der über dem Bild erscheint.   
Label ist die Variable für Dog, Person, Car usw.  
und camera\_name die Variable für den Kamera namen.  
  
Critical nofitication auf true, damit auch die Benachrichtung beim lautlos modus rein kommt.  
Interruption Level (iOS) wird eigentlich schon überschrieben da Critical Notification angehakt haben.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/L5teYWsBGiSQpcaK-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/L5teYWsBGiSQpcaK-image.png)

Inital Attachment Snapshot with Bounding box.  
So kann man sehen wo das Objekt erkannt wurde  
  
Subsequent Attachment Thumbnail

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/dFnLvwa4xaNxmoQR-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/dFnLvwa4xaNxmoQR-image.png)

icon ändern auf CCTV

iOS hat die Möglichkeit auch ein Livebild einzublenden über den Wert Live View Entity.  
Das würde hier aber nur Sinn machen wenn die Automation sich nur auf eine Kamera bezieht, also möchte man Live view, für jede Kamera eine Automation anlegen. Und natürlich auch nur wenn man iOS Geräte hat.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/mMa5M6RtLfyB325W-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/mMa5M6RtLfyB325W-image.png)

Sticky rein, damit die Nachricht bestehen bleib und im Vollbild geöffnet wird wenn sie das oberste Element in der Liste ist.  
Notification Channel, lass ich hier leer, aber möchte man einen eigenen Kanal so kann man in Benachrichtungen Home Assistant app hier einen eigenen Klingelton angeben. Denn dieser Kanalname wird beim ersten senden in der App registriert, so das man nach dem ersten Senden den Tpon anpassen kann. SOnst wird der Standard Wecker / Alram ton vom System genommen, wenn das Feld leer bleibt. Ich lasse es leer.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/P6sjdp93lzLevep4-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/P6sjdp93lzLevep4-image.png)

Filter

Über Filter kann man definieren, ob die Automatisierung statt findet oder nicht.  
  
Event Type, alles anhaken.

Über eine Master condition kann man auswählen ob aktiv oder nicht aktiv.  
Zum Biespiel ein Schalter auf dem Dashboard oder so.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/8uqiGwrLidSx7qgm-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/8uqiGwrLidSx7qgm-image.png)

Objekt filter, Nur wenn es Auto und Person ist benachrichtigen, wenns ein Hund ist ignorieren. Das heißt der Hund kommt nicht mit in die Liste

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/J7wFmYfTkJ5XjBh4-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/J7wFmYfTkJ5XjBh4-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/ADjATReYfBIwTOSh-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/ADjATReYfBIwTOSh-image.png)

Presence Filter, Benachrichtung nur wenn alle ausgewählten Personen NICHT Zuahsue sind.  
Oder verknüpft zu allen Personen. Erst wenn keiner mehr zu Hause ist, dann Benachrichtigen.  
Auch ziemelich Cool

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/KENWWPp0heAuahh7-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/KENWWPp0heAuahh7-image.png)

State filter kann ein Entität ausgewählt werden, und dann wird die Automatisierung nur aktiv wenn dann der Wert übereinstimmt  
In diesem Fall sollen nur Ereignisse gesendet werden, wenn der Rauchmelder rauch meldet.  
Das dies kein Sinn macht ist schon klar, es geht um die Verwendung.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/uDwsOMYf8GSAKX7P-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/uDwsOMYf8GSAKX7P-image.png)

Action Buttons

Die Texte für die Action Buttons ändern.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/wGjbYbY9jtgFcnJU-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/wGjbYbY9jtgFcnJU-image.png)

Action Button 3 ist Speziell, dieser Dient eigentlich dazu weitere Benachrichtigungen zu deaktivieren /pausieren, da man eventuell weiß das weitere kommen.   
Wenn man aber permanent Benachrichtigt werden möchte, ohne aus versehen auf den Button zu kommen (denn das würde die Automation für Zeit X deaktivieren), können wir künstlich diese Funktion ausschalten mit Variante 2  
  
Hier gibts zwei Möglichkeiten.

1. Button Text ändern in Später benachrichtigen, in den Timer Setting kann eingestellt werden nach wie viel Minuten die Benachrichtigung wieder eingeschaltet werden soll.
2. Oder eine Custom Action auswählen und Als Text ein Kamera Symbol. Leerzeichen gehen leider nicht  
    Ich poste mal dieses Symbol, so kann man es per Copy &amp; Paste nehmen 📹

Screenshot für Variante 2, Variante 1 kommt da drunter weils noch die Timer Settings gibt

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/JraE4U6ierHKwqMY-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/JraE4U6ierHKwqMY-image.png)

Variante 1

Den Action button 3 Text anpassen auf die Zeit in Minuten die beim Timer eingestellt ist, siehe nächsten Schritt.  
Also bei 30 Minuten, lautet der Text in 30 min fortsetzten

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/PPQ11cabAE6DAjH3-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/PPQ11cabAE6DAjH3-image.png)

Nun im Timer die gewünschte Zeit einstellen

In unserem Beispiel 30 Minuten

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/a67hdmGsuUkcAdjr-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/a67hdmGsuUkcAdjr-image.png)

Fertig ;-)

Screenshots vom Android

Variante 1:

[![IMG_20250421_144721.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/FIYkK4URyEOnruIS-img-20250421-144721.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/FIYkK4URyEOnruIS-img-20250421-144721.jpg)

Variante 2, mit Kamera Bild als Platzhalter. Die Funktion des Button 3 ist deaktiviert.  
Alle Benachrichtungen lassen sich wegwischen

# URMET Kameras einbinden

### Beschreibung:

Urmet Kameras einbinden in frigate:

Die Urmet Kameras laufen nach Werkseinstellung nicht auf DHCP.  
Die Cams liegen im IP-Kreis 192.168.1.x  
Meisten haben die Cams die ip 2 oder 200 am ende.

### Einbindung:

#### Kamera selbst konfigurieren:

Auf die Weboberfläche einloggen  
Dort unter Allgemeine Einstellungen -&gt; Allgemeine Einstellungen -&gt; gehen  
Dort die Auflösung für die 3 Streams anpassen.  
Die Nr ist auch die Channel nummer für die URL.   
Dann noch eine Bezeichnung für Die Kamera angeben und Datumsformat angeben Tag.Monat.Jahr, dann speichern

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/zczffMa7QdjTTVT8-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/zczffMa7QdjTTVT8-grafik.png)

Danndann unter Netzwerk -&gt; Allgemeine Einstellungen -&gt; Andere  
Dort sieht man die Ports und die Zusammensetzung der URL.  
Durch die angabe von rtsp wird schon port 554 genommen und muss nicht mehr explizit angegeben werden, außer ihr habt Ihn selbst geändert. Der Parameter Stream wird nicht angegeben

Beispiel :

<table border="1" id="bkmrk-stream-url-default-r" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>**Stream**</td><td>**URL**</td></tr><tr><td>Default</td><td>rtsp://admin:password@ip/0</td></tr><tr><td>Stream Nr 1</td><td>rtsp://admin:password@ip/1</td></tr><tr><td>Stream Nr 2</td><td>rtsp://admin:password@ip/2</td></tr><tr><td>Stream Nr 3</td><td>rtsp://admin:password@ip/2</td></tr></tbody></table>

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/C5QAY02CdNQEjACK-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/C5QAY02CdNQEjACK-grafik.png)

##### Nun Datum Uhrzeit einstellen.

Dazu auf System -&gt; System -&gt; Zeit gehen

Die Region einstellen beu uns GMT+1  
NTP Anhaken und auf Prüfung klicken.  
Wenn Meldung Operation Erfolgreich dann auf speichern.  
Für NTP muss die Kamera ins Internet können und DNS Auflösuen können ansonsten weiter unten beschroíeben Manuell

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/fZhZtCtaeZiVwGeX-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/fZhZtCtaeZiVwGeX-grafik.png)

manuell

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/aK9xruq8NVuv1HvM-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/aK9xruq8NVuv1HvM-grafik.png)

Sommerzeit

Startzeit: Juni und dann letzte. Beudeutung letzte Sonntag im Monat  
Stoppzeit: Dezember und dann letzte. Beudeutung letzte Sonntag im Monat

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/CbBUpzGPplux5VwH-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/CbBUpzGPplux5VwH-grafik.png)

#### Einbindung in Frigate:

Auschnitt Kameras

```
go2rtc:
  streams:
    parkplatz: 
      - rtsp://admin:password@ip/1
    parkplatz_sub: 
      - rtsp://admin:password@ip/2
     
  #in dem Streams abschnitt kann man über die RTSP Eigenschaft den Timeout und ein Buffer einstellen.
  #Ich habe diesen nicht benutzt, kann man aber aktivieren.
  #rtsp:
   # mediatimeout: 10s  # Erhöht die Timeout-Zeit für den RTSP-Stream
  #buffer:
   # size: 8388608 # Puffergröße in Bytes, hier etwa 8 MB
  #enable webrtc für flüssigeres bild in der lovlace Karte
  webrtc:
    candidates:
      - 127.0.0.1:8555
      - stun:8555  

cameras:
  parkplatz_CAM:
    ffmpeg:
      inputs:
        #full resolution for recording
        - path: rtsp://127.0.0.1:8554/parkplatz?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
        #low resoultion for detect
        - path: rtsp://127.0.0.1:8554/parkplatz_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 640
      height: 480 
      fps: 5
    snapshots:
      enabled: True
    record:
      enabled: True
      retain: 
        mode: motion #nimmt nur auf wenn Bewegung erkannt wurde und nicht komplett durchgehend, dies ist Lösung für die Cach Warning wenn zu wenig RAM vorhanden ist
        days: 1 #ich möchte ja nur die clips haben wo auch objekte erkannt werden. Es wird aber in frigate tatsächlich die ganze zeit aufgenommen. 
        #das brauch ich aber nicht, also noch einem Tag wegschmeißen. Denn den Record brauchen wir leider, damit frigate die Clips daraus schneiden kann.
      events:
        retain: 
          default: 14


...
```

---

Ergebnis:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/zU2LZd6zR8PHiAlX-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/zU2LZd6zR8PHiAlX-grafik.png)

# Camera Stream URLs

### Beschreibung:

Hier die Streams verschiedener Kamera Modelle

### Kameras:

#### Reolink:

##### TrackMix Series P760:

<table border="1" id="bkmrk-stream-typ-aufl%C3%B6sung" style="border-collapse: collapse; width: 100%; height: 119.188px;"><colgroup><col style="width: 11.323%;"></col><col style="width: 17.2825%;"></col><col style="width: 23.8379%;"></col><col style="width: 23.8379%;"></col><col style="width: 23.8379%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Stream-TYP**</td><td style="height: 29.7969px;">**Auflösung**</td><td style="height: 29.7969px;">**Codec**</td><td style="height: 29.7969px;">**URL**</td><td style="height: 29.7969px;">**Bild**</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Main Clear</td><td style="height: 29.7969px;">3840\*2160</td><td style="height: 29.7969px;">h264</td><td style="height: 29.7969px;"><div><div>rtsp://admin:pass@ip:554/h264Preview_01_main</div></div></td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Sub low</td><td style="height: 29.7969px;">896\*512</td><td style="height: 29.7969px;">h264</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h264Preview\_01\_sub</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Main Clear Zoom</td><td style="height: 29.7969px;">3840\*2160</td><td style="height: 29.7969px;">h264</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h264Preview\_02\_main</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr><td>Sub Zoom low</td><td>896\*512</td><td>h264</td><td>rtsp://admin:pass@ip:554/h264Preview\_02\_sub</td><td>[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr><td style="height: 29.7969px;">Main Clear</td><td style="height: 29.7969px;">3840\*2160</td><td style="height: 29.7969px;">h265</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h265Preview\_01\_main</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)

</td></tr><tr><td style="height: 29.7969px;">Sub low</td><td style="height: 29.7969px;">896\*512</td><td style="height: 29.7969px;">h265</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h265Preview\_01\_sub</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr><td style="height: 29.7969px;">Main Clear Zoom</td><td style="height: 29.7969px;">3840\*2160</td><td style="height: 29.7969px;">h265</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h265Preview\_02\_main</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr><td>Sub Zoom low</td><td>896\*512</td><td>h265</td><td>rtsp://admin:pass@ip:554/h265Preview\_02\_sub</td><td>[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr></tbody></table>

# Addons - Virtuelle Komponenten

# Installation

Beschreibung:

Möchte man was ausprobieren oder Automatisierungen schreiben, für Geräte die noch gar nicht angeschafft wurden, kann man sich Virtuelle Geräte bauen. In unserem Beispiel ein Rauchmelder.  
Ich besitze noch keinen, möchte aber schon mal die Automatisierungen bauen. So das ich nachher nur noch die Entitäten gegen den echten Rauchmelder austauschen muss.

Installation:

Im HACS Store gibt es eine Integration Virtual Component.  
Dazu gehen wir auf HACS und geben Virtual als Suchbegriff ein und klicken dann auf Virtual Component.

[![Auswahl_078.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/2bACmzILfkvH6yK5-auswahl-078.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/2bACmzILfkvH6yK5-auswahl-078.png)

Jetzt wieder unten rechts auf Herunterladen klicken.

[![Auswahl_079.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/NpJDrFgqtHkJy634-auswahl-079.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/NpJDrFgqtHkJy634-auswahl-079.png)

!!! Wir wählen hier die Letzte Preversion 0.9 aus, weil es in 9 einen Syntax wechsel gibt und wir auf aktuellem Stand sein wollen.

Nun einfach nochmal auf Herunterladen klicken

[![Auswahl_095.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/BPKPIpCsRuvLaw0d-auswahl-095.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/BPKPIpCsRuvLaw0d-auswahl-095.png)

Nun sehen wir Virtual Component in der Liste unter neustart Austehend.'  
Jetzt Home Assistant einmal neustarten.

Nun auf Geräte -&gt; Inegrationen hinzufügen klicken

[![Auswahl_096.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/NJ84eGSQMoOQS6YT-auswahl-096.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/NJ84eGSQMoOQS6YT-auswahl-096.png)

Nun als Suchbegriff Virtual eintippen und dann aus der Liste Virtual Component auswählen

[![Auswahl_097.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/95DZPZyis5fqyTXT-auswahl-097.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/95DZPZyis5fqyTXT-auswahl-097.png)

Nu auf bestätigen klicken, denn das lassen wir so

[![Auswahl_098.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/S4Fv6RDKrUncbvnR-auswahl-098.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/S4Fv6RDKrUncbvnR-auswahl-098.png)

Dies erstellt gleich eine leere virtual.yml  
Fertig

# Geräte anlegen

Beschreibung:

Da wir die Installation nun hinter uns haben, können wir nun unsere ersten Dummy Geräte anlegen.  
Dazu müssen wir `virtual.yaml`anlegen, dort wo auch die configration.yml liegt wechseln und am ende unsere Devices anlegen.  
Hier anhand unseres Rauchmelders den es ja gar nicht gibt. ;-)

<div id="bkmrk-hinweis%3A-dies-ist-ei" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Die Datei hat **.yaml** und nicht **.yml** am Ende   
</div>Code:

```
devices: 
  Virtual Smoke Detector 1: #Gerätename
    - platform: binary_sensor #Welcher Typ. Typenliste weiter unten. Hier ein bool als an/aus (dieser Wert ist nur read only)
      name: Smoke Detected 1  #der Name der Entität
      initial_value: 'off' #Init state. Also beim starten des gerätes bzw Home Assistant
      class: smoke #Die Klasse, danach wird auch das Icon vergeben. Klassenliste weiter unten

    - platform: binary_sensor #Welcher Typ. Typenliste weiter unten. Hier ein bool als an/aus (dieser Wert ist nur read only)
      name: Tamper Detected 1 #der Name der Entität
      initial_value: 'off' #Init state. Also beim starten des gerätes bzw Home Assistant
      class: tamper #Die Klasse, danach wird auch das Icon vergeben. Klassenliste weiter unten

    - platform: sensor  #Ein sensor, kann also einen Wert haben
      name: Battery Level 1 #der Name der Entität
      initial_value: 100 #Init state. Also beim starten des gerätes bzw Home Assistant
      unit_of_measurement: "%" #Welche Einheit. hier Prozent. Eine Liste der Maßeinheiten dann weiter unten 
      class: battery  #Die Klasse, danach wird auch das Icon vergeben. 
   

    - platform: switch
      name: Siren 1 #der Name der Entität
      initial_value: 'off' #Init state. Also beim starten des gerätes bzw Home Assistant
      #Bei einem Switch gibt es keine Klasse
      
      
#Eine Lampe hat besondere Eigenschaften:
#Denn diese hat nur eine Platform einen initwert und der rest ist lampen plattform spezifisch
#Besxhreibung siehe Tabelle weiter unten

  living room main light:
    - platform: light
      initial_value: 'on'
      support_brightness: true
      initial_brightness: 100
      support_color: true
      initial_color: [0,255]
      support_color_temp: true
      initial_color_temp: 255
      support_white_value: true
      initial_white_value: 240

#eine Rollade
  Rollade Wohnzimmer:
  - platform: cover #typ rollade
    initial_value: 'closed' #initialwert open oder closed
    open_close_duration: 10 #zeit wie lange von ganz offen bis ganz geschlossen und umgekehrt. die Zeit gillt für beide Richtungen
    open_close_tick: 1 #Das update interval wenn er beim öffnen oder schließen ist

```

Danach Home Assistant neustarten und schon haben wir ein neues Gerät in diesem fall unseren Rauchmelder. Weitere Geräte einfach drunter anfügen.

Nach jedem ändern muss Home Assistant neugestartet werden. Nur Konfig neuladen reicht nicht.

Platformen, Einheiten und Klassen:

<table border="1" cellspacing="0" id="bkmrk-plattformtypen-platt" style="border-collapse: collapse; width: 94.9383%;"><caption>**Plattformtypen**  
</caption><colgroup width="95"></colgroup> <colgroup width="518"></colgroup><tbody><tr><td align="left" height="17" style="width: 15.4976%;">**Plattform**</td><td align="left" style="width: 84.5025%;">**Beschreibung**</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">binary\_sensor</td><td align="left" style="width: 84.5025%;">Ein binärer Sensor, der Zustände wie an/aus oder offen/geschlossen überwacht.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">sensor</td><td align="left" style="width: 84.5025%;">Ein allgemeiner Sensor für Messwerte wie Temperatur, Luftfeuchtigkeit, etc.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">switch</td><td align="left" style="width: 84.5025%;">Ein Schalter zum Ein- und Ausschalten von Geräten.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">light</td><td align="left" style="width: 84.5025%;">Ein Lichtsteuerungselement zum Ein-/Ausschalten, Dimmen und Ändern von Farben.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">lock</td><td align="left" style="width: 84.5025%;">Ein Entitätstyp für das Verriegeln und Entriegeln von Schlössern.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">camera</td><td align="left" style="width: 84.5025%;">Ein Kameramodul, das Video-Feeds bereitstellt.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">media\_player</td><td align="left" style="width: 84.5025%;">Ein Entitätstyp zur Steuerung von Mediengeräten wie Lautsprechern und Fernsehern.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">climate</td><td align="left" style="width: 84.5025%;">Ein Steuerungsmodul für Heizungen, Klimaanlagen und Thermostate.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">cover</td><td align="left" style="width: 84.5025%;">Ein Modul zur Steuerung von Abdeckungen wie Rollläden und Garagentoren.</td></tr><tr><td align="left" height="17" style="width: 15.4976%;">fan</td><td align="left" style="width: 84.5025%;">Ein Entitätstyp zur Steuerung von Ventilatoren.</td></tr></tbody></table>

<table border="2" cellspacing="0" id="bkmrk-einheiten-einheit-be" style="border-collapse: collapse; width: 69.2593%;"><caption>**Einheiten**</caption><colgroup width="53"></colgroup> <colgroup width="285"></colgroup><tbody><tr><td align="left" height="17" style="width: 25.1479%;">**Einheit**</td><td align="left" style="width: 74.8521%;">**Beschreibung**</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">°C</td><td align="left" style="width: 74.8521%;">Grad Celsius - Temperaturmaß.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">°F</td><td align="left" style="width: 74.8521%;">Grad Fahrenheit - Temperaturmaß.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">%</td><td align="left" style="width: 74.8521%;">Prozent - z.B. für Luftfeuchtigkeit, Akkustand.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">m</td><td align="left" style="width: 74.8521%;">Meter - Länge/Distanzmaß.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">cm</td><td align="left" style="width: 74.8521%;">Zentimeter - Länge/Distanzmaß.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">mm</td><td align="left" style="width: 74.8521%;">Millimeter - Länge/Distanzmaß.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">km</td><td align="left" style="width: 74.8521%;">Kilometer - Länge/Distanzmaß.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">m/s</td><td align="left" style="width: 74.8521%;">Meter pro Sekunde - Geschwindigkeit.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">km/h</td><td align="left" style="width: 74.8521%;">Kilometer pro Stunde - Geschwindigkeit.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">mph</td><td align="left" style="width: 74.8521%;">Meilen pro Stunde - Geschwindigkeit.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">W</td><td align="left" style="width: 74.8521%;">Watt - Leistung.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">kW</td><td align="left" style="width: 74.8521%;">Kilowatt - Leistung.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">kWh</td><td align="left" style="width: 74.8521%;">Kilowattstunde - Energieverbrauch.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">Wh</td><td align="left" style="width: 74.8521%;">Wattstunde - Energieverbrauch.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">V</td><td align="left" style="width: 74.8521%;">Volt - Spannung.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">A</td><td align="left" style="width: 74.8521%;">Ampere - Stromstärke.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">Ah</td><td align="left" style="width: 74.8521%;">Amperestunde - Kapazität von Batterien.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">mA</td><td align="left" style="width: 74.8521%;">Milliampere - Stromstärke.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">dB</td><td align="left" style="width: 74.8521%;">Dezibel - Lautstärke.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">lx</td><td align="left" style="width: 74.8521%;">Lux - Beleuchtungsstärke.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">lm</td><td align="left" style="width: 74.8521%;">Lumen - Lichtstrom.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">Pa</td><td align="left" style="width: 74.8521%;">Pascal - Druck.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">bar</td><td align="left" style="width: 74.8521%;">Bar - Druck.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">psi</td><td align="left" style="width: 74.8521%;">Pfund pro Quadratzoll - Druck.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">ppm</td><td align="left" style="width: 74.8521%;">Teile pro Million - Konzentration (z.B. CO2).</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">g</td><td align="left" style="width: 74.8521%;">Gramm - Gewicht.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">kg</td><td align="left" style="width: 74.8521%;">Kilogramm - Gewicht.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">mg</td><td align="left" style="width: 74.8521%;">Milligramm - Gewicht.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">l</td><td align="left" style="width: 74.8521%;">Liter - Volumen.</td></tr><tr><td align="left" height="17" style="width: 25.1479%;">ml</td><td align="left" style="width: 74.8521%;">Milliliter - Volumen.</td></tr></tbody></table>

<table border="2" cellspacing="0" id="bkmrk-klassen-klasse-besch" style="border-collapse: collapse; width: 75.1852%;"><caption>**Klassen**</caption><colgroup width="83"></colgroup> <colgroup width="401"></colgroup><tbody><tr><td align="left" height="17" style="width: 17.1488%;">**Klasse**</td><td align="left" style="width: 82.8512%;">**Beschreibung**</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">motion</td><td align="left" style="width: 82.8512%;">Bewegungssensor (erkennt Bewegung).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">door</td><td align="left" style="width: 82.8512%;">Türsensor (erkennt, ob eine Tür geöffnet/geschlossen ist).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">window</td><td align="left" style="width: 82.8512%;">Fenstersensor (erkennt, ob ein Fenster geöffnet/geschlossen ist).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">smoke</td><td align="left" style="width: 82.8512%;">Rauchsensor (erkennt Rauch).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">gas</td><td align="left" style="width: 82.8512%;">Gassensor (erkennt das Vorhandensein von Gasen).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">battery</td><td align="left" style="width: 82.8512%;">Batteriesensor (überwacht den Batteriestatus).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">humidity</td><td align="left" style="width: 82.8512%;">Feuchtigkeitssensor (misst Luftfeuchtigkeit).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">temperature</td><td align="left" style="width: 82.8512%;">Temperatursensor (misst Temperatur).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">illuminance</td><td align="left" style="width: 82.8512%;">Helligkeitssensor (misst Lichtstärke).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">moisture</td><td align="left" style="width: 82.8512%;">Feuchtigkeitssensor (misst Bodenfeuchtigkeit).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">opening</td><td align="left" style="width: 82.8512%;">Öffnungssensor (allgemein für Türen/Fenster).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">power</td><td align="left" style="width: 82.8512%;">Leistungssensor (misst Stromverbrauch).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">presence</td><td align="left" style="width: 82.8512%;">Präsenzsensor (erkennt Anwesenheit).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">pressure</td><td align="left" style="width: 82.8512%;">Drucksensor (misst Druck).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">safety</td><td align="left" style="width: 82.8512%;">Sicherheitssensor (allgemein für Sicherheitsüberwachung).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">sound</td><td align="left" style="width: 82.8512%;">Geräuschesensor (erkennt Geräusche).</td></tr><tr><td align="left" height="17" style="width: 17.1488%;">vibration</td><td align="left" style="width: 82.8512%;">Vibrationssensor (erkennt Vibrationen oder Erschütterungen).</td></tr></tbody></table>

<table border="2" cellspacing="0" id="bkmrk-beschreibung-der-kon" style="border-collapse: collapse; width: 118.272%;"><caption>**Beschreibung der Konfigurationszeilen der Plattform Licht**  
</caption><colgroup width="164"></colgroup> <colgroup width="1642"></colgroup><tbody><tr><td align="left" height="17" style="width: 25.0927%;">**Konfigurationszeile**</td><td align="left" style="width: 74.9073%;">**Beschreibung**</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">living room main light:</td><td align="left" style="width: 74.9073%;">Dies ist der Name des virtuellen Geräts. In diesem Fall bezieht es sich auf das Hauptlicht im Wohnzimmer. Der Name dient als Referenz, um dieses Licht im System anzusprechen.</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">- platform: light</td><td align="left" style="width: 74.9073%;">Gibt an, dass dieses Gerät eine light-Plattform ist. Es handelt sich also um ein Licht, das über Home Assistant gesteuert werden kann.</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">initial\_value: 'on'</td><td align="left" style="width: 74.9073%;">Definiert den anfänglichen Zustand des Lichts. Wenn Home Assistant startet, wird dieses Licht automatisch eingeschaltet sein (on).</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">support\_brightness: true</td><td align="left" style="width: 74.9073%;">Gibt an, dass das Licht die Helligkeitssteuerung unterstützt. Mit dieser Einstellung kann die Helligkeit des Lichts angepasst werden (z.B. dimmen oder aufhellen).</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">initial\_brightness: 100</td><td align="left" style="width: 74.9073%;">Definiert die anfängliche Helligkeit des Lichts, wenn es eingeschaltet wird. Der Wert kann zwischen 0 (aus) und 255 (maximale Helligkeit) liegen. In diesem Fall ist der Wert auf 100 eingestellt, was eine mittlere Helligkeit bedeutet.</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">support\_color: true</td><td align="left" style="width: 74.9073%;">Gibt an, dass das Licht Farbänderungen unterstützt. Das bedeutet, dass das Licht in verschiedenen Farben leuchten kann.</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">initial\_color: \[0,255\]</td><td align="left" style="width: 74.9073%;">Definiert die anfängliche Farbe des Lichts in RGB-Werten. Hier bedeutet \[0, 255\] wahrscheinlich eine grüne Farbe. Normalerweise werden RGB-Werte als drei Zahlen angegeben (z.B. \[255, 0, 0\] für rot), also könnte dies eine abgekürzte Notation sein, je nach Implementierung.</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">support\_color\_temp: true</td><td align="left" style="width: 74.9073%;">Gibt an, dass das Licht die Farbtemperatursteuerung unterstützt. Damit kann die Farbtemperatur des Lichts angepasst werden, zum Beispiel von warmem Gelb zu kühlem Blau.</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">initial\_color\_temp: 255</td><td align="left" style="width: 74.9073%;">Definiert die anfängliche Farbtemperatur des Lichts. Der Wert kann typischerweise in einem Bereich von 153 (kühleres, bläuliches Licht) bis 500 (wärmeres, gelbliches Licht) liegen. In diesem Fall ist der Wert auf 255 eingestellt, was einer neutralen Farbtemperatur entspricht.</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">support\_white\_value: true</td><td align="left" style="width: 74.9073%;">Gibt an, dass das Licht einen Weißwert unterstützt. Dies wird verwendet, wenn das Licht neben der Farbsteuerung auch die Intensität von weißem Licht steuern kann.</td></tr><tr><td align="left" height="17" style="width: 25.0927%;">initial\_white\_value: 240</td><td align="left" style="width: 74.9073%;">Definiert den anfänglichen Weißwert des Lichts. Der Wert kann zwischen 0 (kein weißes Licht) und 255 (maximale Intensität des weißen Lichts) liegen. Hier ist der Wert auf 240 gesetzt, was fast maximale Intensität bedeutet.</td></tr></tbody></table>

<div id="bkmrk-hinweis%3A%C2%A0-%2Awhite_val" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** *white_value ist veraltet und wird in zukünftigen Versionen **entfernt.**  
</div>

# Geräte Werte Temporär ändern ohne neustart

### Beschreibung:

Möchte man sonst Werte ändern, geht das ja nur in der Konfiguration Datei und einem neustart.  
Möchte man nur den Batteriestand ändern um eine Automation zu testen, nervt Konfigurationsdatei und ein neustart extrem.  
Abhilfe die Entwicklerwerkzeuge.

### Anwendung:

Es empfiehlt sich die Entwicklerwerkzeuge in einen Neuen Tab zu öffnen, da das überschreiben nur solange gültig ist bis zum nächsten Updatezyklus der Geräte.  
Denn die Geräte senden ja immer noch den Initwert mit dem Sie gestartet wurden.

Deshalb macht es sinn einen zweiten Tab zu nehmen, weil dann kann man schnell einfach wieder auf den Button setzten klicken.

Wir finden die Entwicklerwerkzeuge links unten im Menü  
Dort mit rechten Maustaste drauf und im neuen Fenster Öffnen anklicken

[![Auswahl_415.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/FLkoRlzDKrTfo4Qx-auswahl-415.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/FLkoRlzDKrTfo4Qx-auswahl-415.png)

[![Menü_012.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/AbYiZvLHfKpk5XPH-menu-012.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/AbYiZvLHfKpk5XPH-menu-012.png)

Nun in den Tab wechseln und in den Entwicklerwerkzeugen auf Zustände klicken und dann auf Status setzten klicken.

[![Auswahl_416.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/hPtRSo5RrVXZ0aF3-auswahl-416.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/hPtRSo5RrVXZ0aF3-auswahl-416.png)

Nun kann aus der Liste die Entität ausgewählt werden. In der liste kann auch wieder ein Wort eingeben werden das dann als Teilsuche fungiert. Batt für Battery.  
Wir wählen eine Batterie. Als Wert wird immer der aktuelle Wert angegeben, hier 100

[![Auswahl_417.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/VNMgabWV9a0mb4XT-auswahl-417.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/VNMgabWV9a0mb4XT-auswahl-417.png)

Schauen wir uns unser Dashboard im anderen Tab an, wo das Batterie Icon ist. Das ist zur Zeit noch Grün.

[![Auswahl_418.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/7VsZjNH25Xi3UtEb-auswahl-418.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/7VsZjNH25Xi3UtEb-auswahl-418.png)

Nun gehen wir in den Tab mit den Entwicklerwerkzeugen zurück und ändern den Wert 100 in 15 ab und klicken auf status setzten

[![Auswahl_419.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/TzxlV8uCW2JmzywD-auswahl-419.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/TzxlV8uCW2JmzywD-auswahl-419.png)

Nun ändert sich für ca 5 Sekunden der Status, dann wird er vom Gerätezyklus Update zurück gesetzt.  
Nun hat die Batterie einen Füllstand von 15%

[![Auswahl_420.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/vG7VdvZY8cJorpJ1-auswahl-420.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/vG7VdvZY8cJorpJ1-auswahl-420.png)

Nach den 5-6 Sekunden geht die Entität in seinen Ursprünglichen Status zurück.  
Dies funktioniert auch bei echten Geräten, nur das diese dann natürlich den wirklichen Wert den Sie gerade haben dann wieder zurückgeben.

[![Auswahl_418.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/T8a6zj177TXLme6u-auswahl-418.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/T8a6zj177TXLme6u-auswahl-418.png)

Fertig

# Addons - File Browser

# Installation

### Beschreibung:

Das Addon File Browser ist ein nützliches Addon, wenn man einen Webdateiexplorer haben möchte.  
So braucht man nicht immer über das Terminal durch die Verzeichnisse gehen.

### Installation:

Um denFile Browser installieren zu könenn müssen wir im Addon Store eine neue Repo hinzufügen.  
**Nicht** im HACS sonder im normalen Addon Store

die Url zur Repository lautet : https://github.com/alexbelgium/hassio-addons

**In Zukunft wollen wir repos auf unseren eigenen Reposerver spiegeln, denn falls mal eine Repo nicht mehr verfügbar ist, haben wir zumindest für uns die letzte aktuelle kopie. Dazu später in diesem Artikel der nach angelegt werden muss.**

Repo Hinzufügen:

Dazu gehen wir auf Einstellungen

[![Auswahl_323.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Th6CM2scujoIlXF4-auswahl-323.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Th6CM2scujoIlXF4-auswahl-323.png)

Dann auf Addons

[![Auswahl_324.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Fr6uxT9WtUSJLH3p-auswahl-324.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Fr6uxT9WtUSJLH3p-auswahl-324.png)

Nun Auf Addon-Store

[![Auswahl_325.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/trfQJ3lTe3D5YOtO-auswahl-325.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/trfQJ3lTe3D5YOtO-auswahl-325.png)

Dort auf die drei Punkte

[![Auswahl_326.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/sgWqPZpXz9M6D2KU-auswahl-326.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/sgWqPZpXz9M6D2KU-auswahl-326.png)

Nun Auf Repositorien

[![Auswahl_327.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/DRqjwVz67wTeenJp-auswahl-327.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/DRqjwVz67wTeenJp-auswahl-327.png)

Nun die Repo URL eintragen und auf hinzufügen klicken.

[https://github.com/alexbelgium/hassio-addons](https://github.com/alexbelgium/hassio-addons)

[![Auswahl_328.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Ueaw10iE07lCJ3NZ-auswahl-328.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Ueaw10iE07lCJ3NZ-auswahl-328.png)

Nun auf schließen klicken.

[![Auswahl_329.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/XT2LwtrOsINhNHOJ-auswahl-329.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/XT2LwtrOsINhNHOJ-auswahl-329.png)

Nun HomeAssistant neuladen mit F5.  
Wieder auf den Addons Store gehen und nun haben wir in der Liste die Addons von der Hinzugefügten Repo und auch unser   
File Browser Addon.

Im Addon Store browser eingeben

Einstellungen -&gt; Addons -&gt; Addon Store

[![Auswahl_091.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/y9XyTxJwsZGn5QJo-auswahl-091.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/y9XyTxJwsZGn5QJo-auswahl-091.png)

Dann auf installieren klicken

[![Auswahl_092.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/MyVSYIeJwVLzTKLl-auswahl-092.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/MyVSYIeJwVLzTKLl-auswahl-092.png)

Dann den Watchdog und in Seitenleiste aktivieren.  
Dann auf Starten klicken

[![Auswahl_093.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/4uGmamEElwazjxYT-auswahl-093.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/4uGmamEElwazjxYT-auswahl-093.png)

Nun in der Seitenleiste auf Fielbrowser klciken und Tadaaa ein Filebrowser

[![Auswahl_094.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/FMFEnnzduGi1XvhJ-auswahl-094.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/FMFEnnzduGi1XvhJ-auswahl-094.png)

Fertig

# Themes

# iOS Themes

Beschreibung:

Themes im Look von iOS, können bezogen werden aus dem HACS Store.  
Wie HACS installiert wird, findet Ihr [hier](https://wiki.hacker-net.de/books/home-assistant/page/installation-von-hacs-home-assistant-community-store "Installation von HACS - Home Assistant Community Store")

Installation:

Wir gehen in den HACS Store

[![Auswahl_363.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/QjbMYemoZqqSpYQo-auswahl-363.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/QjbMYemoZqqSpYQo-auswahl-363.png)

dann auf Frontend

[![Auswahl_364.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/F2wkt7G8Zikwoh44-auswahl-364.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/F2wkt7G8Zikwoh44-auswahl-364.png)

Dann auf durchsuchen und herunterladen von Repositories

[![Auswahl_365.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Z1VfdASlh1S3tUnH-auswahl-365.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Z1VfdASlh1S3tUnH-auswahl-365.png)

Dort in der Suche ios eingeben, dann auf ios Dark and Light klicken

[![Auswahl_366.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/Rk4fBCK9Dskeies1-auswahl-366.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/Rk4fBCK9Dskeies1-auswahl-366.png)

unten rechts auf herunterladen klicken

[![Auswahl_367.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/O6qyGBKAnhOa8Gwc-auswahl-367.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/O6qyGBKAnhOa8Gwc-auswahl-367.png)

Nun nochmals auf Herunterladen klicken

Nun den File Editor öffnen und nach der Datei `configuration.yaml` suchen und anklicken

[![Auswahl_369.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/dcF7oR7zYFy8gw6N-auswahl-369.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/dcF7oR7zYFy8gw6N-auswahl-369.png)

Diesen Absatz hinzufügen am Ende, dann auf speichern klicken

```
frontend:
  	  # your configuration.
themes: !include_dir_merge_named themes
      # your configuration.
```

[![Auswahl_372.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/i4V2peVRgdcA4rlx-auswahl-372.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/i4V2peVRgdcA4rlx-auswahl-372.png)

Dann die `lovelace-ui.yaml` editieren.  
Das geht so:  
  
Im Menü auf übersicht klicken

[![Auswahl_374.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/ffCcH3UwJRVWnRI6-auswahl-374.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/ffCcH3UwJRVWnRI6-auswahl-374.png)

Dann auf den Stift

[![Auswahl_375.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/bpk3Pj4vmmgWRlK4-auswahl-375.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/bpk3Pj4vmmgWRlK4-auswahl-375.png)

Dann auf Code Editor

[![Auswahl_376.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/xcZkqhAzgs1ynj08-auswahl-376.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/xcZkqhAzgs1ynj08-auswahl-376.png)

Dort folgende Zeile anfügen, auf Speichern klicken :

```
background: var(--background-image)
```

[![Auswahl_377.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/scaled-1680-/U8OUbluTcilQX6IG-auswahl-377.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-03/U8OUbluTcilQX6IG-auswahl-377.png)

Home Assistant neustarten

# Graphite Theme

### Beschreibung:

Schönes Dark Theme, funktioniert auch mit Badges

Link : [https://graphite.tilmangriesel.com/guides/getting-started.html#installation-via-hacs](https://graphite.tilmangriesel.com/guides/getting-started.html#installation-via-hacs)

GitHub Seite : [https://github.com/TilmanGriesel/graphite](https://github.com/TilmanGriesel/graphite)

Zu finden in HACS für einfache Installation.

### Einbindung:

Dashboard öffnen, Edit mode.  
Dann Raws konfiguration,  
Theme einfügen

```
views:
  - title: Home
    theme: Graphite
...
```

### Screenhsots:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/RjABb9jnlv661aEc-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/RjABb9jnlv661aEc-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/5AyeQFC4MxIgsYMu-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/5AyeQFC4MxIgsYMu-grafik.png)

# Lovelace Dashboard - Von scratch erstellen

# Dashboard Grundgerüst und installation Custom Cards

### Beschreibung:

Ein Dashboard von Grund auf erstellen.  
Dazu benutzen wir ein paar custom cards und ein Themepack aus dem HACS.  
In HACS gehen dann Frontend und dann auf Repo und Suchbegriff eingeben.  
Diese Karten werden wir in den nächsten Kapiteln verwenden

[![Auswahl_395.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/2WSHS03V5PTaj82W-auswahl-395.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/2WSHS03V5PTaj82W-auswahl-395.png)

welche Karten sind dies :

<table border="1" id="bkmrk-addon-git-url-suchbe" style="border-collapse: collapse; width: 132.222%; height: 410.884px;"><tbody><tr style="height: 46.5167px;"><td style="width: 57.9668%; height: 46.5167px;">**Addon GIT URL**  
</td><td style="width: 21.2586%; height: 46.5167px;">**Suchbegriff in HACS unter repo hinzufügen**  
</td><td style="width: 20.7642%; height: 46.5167px;">**Beschreibung** </td></tr><tr style="height: 35.3167px;"><td style="width: 57.9668%; height: 35.3167px;">[https://github.com/thomasloven/lovelace-layout-card](https://github.com/thomasloven/lovelace-layout-card)</td><td style="width: 21.2586%; height: 35.3167px;">lovelace-layout-card</td><td style="width: 20.7642%; height: 35.3167px;">Dies ist eine Grid Card, mit der Man Karten anordnen kann  
</td></tr><tr style="height: 35.3167px;"><td style="width: 57.9668%; height: 35.3167px;">[https://github.com/bramkragten/custom-ui/tree/master/swipe-card](https://github.com/bramkragten/custom-ui/tree/master/swipe-card)</td><td style="width: 21.2586%; height: 35.3167px;">swipe</td><td style="width: 20.7642%; height: 35.3167px;">Eine Karte in der Man man mehrer Karten legen kann und einfach durch wischen von einer zur anderen Karte wechsel, aber nur den Platz einer Karte braucht  
</td></tr><tr style="height: 35.3167px;"><td style="width: 57.9668%; height: 35.3167px;">[https://github.com/piitaya/lovelace-mushroom/](https://github.com/piitaya/lovelace-mushroom/)</td><td style="width: 21.2586%; height: 35.3167px;">mushroom  
</td><td style="width: 20.7642%; height: 35.3167px;">Eine Sammlung von Karten für Diverse Geräte. Die Rolläden Karte find ich besonders Chic:  
Mushroom Cover-Kartenkonfiguration  
</td></tr><tr style="height: 35.3167px;"><td style="width: 57.9668%; height: 35.3167px;">[https://github.com/wassy92x/lovelace-digital-clock/](https://github.com/wassy92x/lovelace-digital-clock/)</td><td style="width: 21.2586%; height: 35.3167px;">digital-clock</td><td style="width: 20.7642%; height: 35.3167px;">Eine schlichte moderne Uhr Karte mit Datum   
</td></tr><tr style="height: 52.1167px;"><td style="width: 57.9668%; height: 52.1167px;">[https://github.com/marcokreeft87/room-card/](https://github.com/marcokreeft87/room-card/) entwicklung eingestellt wurde geforkt vom Eintrag drunter</td><td style="width: 21.2586%; height: 52.1167px;">room-card</td><td style="width: 20.7642%; height: 52.1167px;">Eine Karte mit der Sich räume mit einem Oberbegriff Icon ausstatten lässt, was dann eine Gruppe an/ausschalten kann. Dann eine Info Symbolzeile hat und dann noch eine Geräte Liste beinhalten kann.  
</td></tr><tr style="height: 35.3167px;"><td style="width: 57.9668%; height: 35.3167px;">[https://github.com/viseradius/room-card](https://github.com/viseradius/room-card) ist ein Fork von dem drüber  
</td><td style="width: 21.2586%; height: 35.3167px;">room-card</td><td style="width: 20.7642%; height: 35.3167px;">Eine Karte mit der Sich räume mit einem Oberbegriff Icon ausstatten lässt, was dann eine Gruppe an/ausschalten kann. Dann eine Info Symbolzeile hat und dann noch eine Geräte Liste beinhalten kann.</td></tr><tr style="height: 35.3167px;"><td style="width: 57.9668%; height: 35.3167px;">[https://github.com/berrywhite96/lovelace-shutter-row](https://github.com/berrywhite96/lovelace-shutter-row)</td><td style="width: 21.2586%; height: 35.3167px;">shutter row</td><td style="width: 20.7642%; height: 35.3167px;">Eine Karte mit mehr Einstellungsmöglichketen als die Mushroom Rolladen Karte.  
</td></tr><tr style="height: 35.3167px;"><td style="width: 57.9668%; height: 35.3167px;">[https://github.com/Clooos/Bubble-Card/](https://github.com/Clooos/Bubble-Card/)</td><td style="width: 21.2586%; height: 35.3167px;">bubble-card</td><td style="width: 20.7642%; height: 35.3167px;">Eine Karte die Als Aktion Aufgerufen wird. Sprich ein Dashboard was in einem Popup aufgerufen wird.  
</td></tr><tr style="height: 29.7167px;"><td style="width: 57.9668%; height: 29.7167px;">[https://github.com/bramkragten/weather-card](https://github.com/bramkragten/weather-card)

wird von jemand anders auch geplfegt, beide repos sind aktiv

[https://github.com/r0bb10/weather-card](https://github.com/r0bb10/weather-card)

</td><td style="width: 21.2586%; height: 29.7167px;">weather card  
</td><td style="width: 20.7642%; height: 29.7167px;">Eine Wetterkarte mit vielen Details und animierten Icons  
</td></tr><tr style="height: 35.3167px;"><td style="width: 57.9668%; height: 35.3167px;">[https://github.com/ricardoquecria/caule-themes-pack-1](https://github.com/ricardoquecria/caule-themes-pack-1)</td><td style="width: 21.2586%; height: 35.3167px;">caule</td><td style="width: 20.7642%; height: 35.3167px;">Ein Theme mit mehren Varianten  
</td></tr><tr><td style="width: 57.9668%;">[https://github.com/custom-cards/button-card](https://github.com/custom-cards/button-card)

</td><td style="width: 21.2586%;">button-card</td><td style="width: 20.7642%;">Eine Card die Einen Button beinhaltet wo man aber ein ICON hinzufügen kann, mit bloinken oder anderen States etc.  
</td></tr></tbody></table>

### Designen

#### Grundgerüst:

Den Kiosk mode aktivieren, wenn man dies denn möchte, ansonsten überspringen

```
kiosk_mode:
  user_settings:
    - users:
        - wall-unit
      kiosk: true
      hide_header: true
      hide_sidebar: true
      hide_menu_button: true
      hide_overflow: true
```

Danach unser Layout:

Wir wollen 3 Spalten und die Anzahl der Zeilen soll sich nach unten automatisch erweitern.  
Ist die maximale breite des Fensters nur noch 93 Pixel oder weniger dann nehme eine zweite Anordnung.   
Hier bei uns alles untereinander. Wofür ist das. Wenn das Fenster kleiner als 93 Pixel ist zum Beispiel auf dem Smartphone soll alles untereinander angezeigt werden. Und schon ist das Dashboard responsive  
  
Beschreibung des Codes

```
views:
    #Unser Theme aus dem Theme pack, Schwarz mit Blau find ich ganz gut
  - theme: Caule Black Blue
    #Title vom Tab
    title: Home 
    path: grid
    type: custom:grid-layout
    layout:
      #die Breiten der Spalten
      grid-template-columns: 25% 40% 35%
      Die Breite der Zeilen, sollen hier automatisch angepasst werden
      grid-template-rows: auto
      #Unsere Areas, sprich Spaltennamen. 
      Werden zwei Spaltennamen gleich benannt unter / übereinander so werden die zellen zu einer großen Verbunden
      #Wir denken da an Excel.
      #Wir haben die Erste Zeile ist unser Message bereich, ähnlich wie die Statusleiste beim Smartphone
      #Headerlinks header mitte und headerrechts kann man reinpacken was man möchte das gleich bei den headern untern
      #Dann haben wir einen Trenner für die Footer. Falls man unten noch was drin haben will, angeleht an eine Webseite mit Footern.
      #Dafür stehen uns auch Zwei Zeilen zur Verfügung
      grid-template-areas: |
        "messages messages messages"
        "headerl headerm headerr"
        "headerlu headerm headerru"
        "divider divider divider"
        "left middle right"
        "footer1 footer2 footer3"
        "footer4 footer5 footer6"        
      mediaquery: # ist die maximale breite nur noch 93 pixel oder weniger dann nehme diese anordung. hier bei uns alles untereinander
        '(max-width: 932px)':
          grid-template-columns: 100%
          grid-template-areas: |
            "messages"
            "headerl"
            "headerm"
            "headermu"
            "headerr"
            "headerlu"
            "headerru"
            "divider"
            "left"            
            "middle"
            "right"
            "footer1"
            "footer2"
            "footer3"          
            "footer4"
            "footer5"
            "footer6"
```

Nun können Karten in den Platzhaltern positioniert werden.  
Jetzt verlassen wir wieder den Code-Editor.  
Dann einfach eine Karte hinzufügen.

[![Auswahl_070.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/HTCd4QM2kpXStF97-auswahl-070.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/HTCd4QM2kpXStF97-auswahl-070.png)

Zum testen die Wettervorhersage

[![Auswahl_071.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/DGDuPSMc20gi4qFr-auswahl-071.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/DGDuPSMc20gi4qFr-auswahl-071.png)

Diese steht jetzt am Anfang, wir müssen ihr noch die Position mitteilen

[![Auswahl_072.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/D3nBtfSyEkpTBOgw-auswahl-072.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/D3nBtfSyEkpTBOgw-auswahl-072.png)

Nun gehen wir auf der Karte auf bearbeiten

[![Auswahl_073.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/ArDWHfx4xlDSvYmx-auswahl-073.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/ArDWHfx4xlDSvYmx-auswahl-073.png)

und in den Code Editor

[![Auswahl_074.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/fQ9PTUTkMjDVJ25O-auswahl-074.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/fQ9PTUTkMjDVJ25O-auswahl-074.png)

Nun sehen wir den Editor und fügen folgendes darunter:

[![Auswahl_075.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/zhGwyBuwrCR5fpqN-auswahl-075.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/zhGwyBuwrCR5fpqN-auswahl-075.png)

Der Positions-code

```
view_layout:
  grid-area: <positionsname>
  
  
  
Das waren unsere definierten Psoitionen:

    "messages messages messages"
        "headerl headerm headerr"
        "headerlu headerm headerru"
        "divider divider divider"
        "left middle right"
        "footer1 footer2 footer3"
        "footer4 footer5 footer6"     
        
Beispiel:

view_layout:
  grid-area: headerr
```

Der Komplette Code der Karte:

```
type: weather-forecast
entity: weather.home
forecast_type: daily
view_layout:
  grid-area: headerr
```

Nun steht unsere Karte im der headerr rechts Position

[![Auswahl_076.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/bjInjSDC6KRXGXfb-auswahl-076.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/bjInjSDC6KRXGXfb-auswahl-076.png)

# Room Card

Beschreibung:

Mit Der Room Card kann man Entitäten eines Raumes auf eine Karte packen.

Die Room Card ist in 3 Bereiche eingeteilt:  
Wir gehen von oben links nach rechts usw. durch

Oben links:  
  
Das Icon des Raumes als Button, das alle Entitäten auf einmal ein oder ausschaltet dessen Entitäten eine an/aus Funktion haben

Oben rechts:

Eine Info Leiste wo zustände der Entitäten dargestellt werden können, wie Temperatur, füllstände, Offen / geschlossenstände etc.

Mitte:

die Geräte des Raumes die man bedienen will oder mehr Informationen möchte.  
Einige Geräte brauchen zum Beispiel hier nicht rein. Wenn man zum Beispiel nur einen Temperatursensor hat. Da reicht die Info oben rechts. Nur zur Veranschaulichung das man in die Mitte nicht jedes Gerät auflisten muss ;-)

Die Abschnitte:

Kartendefinition und das das Icon

Eine Vollständige Liste aller MDI Icons (MaterialDesignIcons) [https://materialdesignicons.com/](https://materialdesignicons.com/)

```
type: custom:room-card #Kartendefinition
title: Wohnen # Der Titel
entity: light.wohnzimmerlichter #die gruppe oder die entität die damit ein oder ausgeschaltet werden kann. Hier sind alle Lichter im Wohnzimmer drin.
#denn das ist in der Regel das was man schnell ein und Ausschalten möchte. Gruppen können unter Geräte Helfer erstellt werden.
icon: mdi:sofa # das Icon
show_icon: true #soll das icon angezeigt werden
content_alignment: center # ausrichtung
tap_action: #was soll bei einmal tippen passieren
  action: navigate #weclhe action hier naviegierne
  navigation_path: '#lichtwohnzimmer' hier wird ein Popup aufgerufen. Siehe Wiki Bubble Card
double_tap_action: #was bei doppelt click oder tippen passieren soll
  action: toggle #die Aktion toggle schaltet ein gerät ein/oder aus, immer entgegensetzt seines jeweiligen aktiven status
```

Nu gehts nach rechts weiter zu den Info Icons.

Tipp Bei dem Entity Wert, den Geräte typ eintragen und ein einen " ." setzten dann kommt eine Vorschlagsliste:  
In der Liste setht ganz hinten auch der aktuelle Wert des Services drin.

[![Menü_013.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/5baOEILTZHrBVv4v-menu-013.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/5baOEILTZHrBVv4v-menu-013.png)

Nun der Code:

```
 info_entities:
              - entity: cover.rolllade_kleines_kuchenfenster
                show_icon: true
                icon:
                  conditions:
                    - icon: mdi:window-shutter
                      condition: below #werte above = über,below=darunter oder state damit kann wird halt der text verglichen vom state mit dem value
                      #current position gibt es bei Geräten die ein Position übermitteln wie Rolläden zum beispiel
                      #Wenn geräte spezielle Werte zum abfragen haben dann ins Gerät schon schauen,
                      #ansonsten braucht nichts angegeben werden, weil dann wird value aus dem standard sensor der Entität genommen.
                      Für eine Batterie wie hier, habe ich das auskommentiert, aber man soll ja wissen das es das gibt.
                      #attribute: current_position
                      value: 50
                      styles:
                        color: red
                    - icon: mdi:window-shutter-open
                      condition: above
                      #attribute: current_position
                      value: 51
                      styles:
                        color: green
         
```

Es können mehrere Entitäten untereinander gepackt werden in den Info Entitäten.  
Diese werden dann von links nach rechts angezeigt der Reihenfolge nach, der Letzte Eintrag ist ganz rechts.

Nun gehts weiter mit den Entitäten die auch als Button verwendet werden können und einen Status durch Icon wechsel anzeigen können

```
entities:
  - entity: light.living_room_main_light
    name: Wohnzimmer Licht
    state_color: true #soll die farbe wiedergeben die das Entity hat, bei licht  die die Lichtfarbe wenn es eine RGB Lampe ist ansonsten 
    #wird halt die standard Farbe für und aus genutzt. Wird State color auskommentiert bleibt es bei ner standardfarbe die nicht wechselt
    #tap_action: #auch hier kann eine action hinterlegt werden, wird keine Action hinterlegt wird die Standard Karte der Entität in einem Popup geöffnet
      #action: toggle #die Aktion toggle schaltet ein gerät ein/oder aus, immer entgegensetzt seines jeweiligen aktiven status
  - entity: media_player.fire_tv_192_168_2_61
    name: FireTV
    show_icon: true
    icon: mdi:set-top-box
    state_color: true
  - entity: media_player.echo_show_wohnzimmer
    name: Echo
    show_icon: true
    state_color: true
    icon: mdi:speaker-wireless
  - entity: fan.zion_air
    state_color: true
    name: Luftreiniger
  - entity: fan.ventilator_wohnen
    state_color: true
    name: Ventilator
  - entity: vacuum.roborock_s8_maxv_ultra
    state_color: true
    name: Staubi
  - entity: sensor.zion_pad_2_battery_level
    name: Emilys iPad
    state_color: true
  - entity: sensor.zion_pad_battery_level
    name: iPad Pro
    state_color: true

```

Beispiele:

Weite Info Karten Entitäten Beipiele:

Temperatur Sensor

```
 - entity: sensor.temperatur_wohnzimmer_sonoff_temperature
    format: precision1 #auf wie vile stellen hinterm Komma gerundet, hier eine Stelle,
    styles:
      #mit templates kann man sein ganz eigenen style betreiben. mit dem wort entity.state wird aus dem oben angeben sensor der wert gezogen.
      #und je nach status hier eine farbe zurück gegben. Es kann jeder Wert geändert werden, der in Styles verfügbar ist
      #in unssrem Beispiel ist die tmeperatur unter 20 grad dann hellblau
      #ist der wert größer oder gleich 25 dann rot, bei 23 grad orange und bei 21 hellgrün
      template: >
        if (entity.state < 20) return 'color: lightblue';  if (entity.state >=
        25)return 'color: red';  if (entity.state >= 23) return 'color: orange';
        if (entity.state >= 21) return 'color: lightgreen';  
 
```

Rauchmelder

```
  - entity: binary_sensor.smoke_detected_1
    show_icon: true
    state_color: true
```

# Swipe Card

Beschreibung:

Die Swipe Karte ist eine Karte auf der die größe einer Karte einnimmt aber darau mehrer Karten hinterlegt werden können. In einer art Karusell kann man dann durch die Karten wischen. Wie bei einer Diashow von Webseiten wo man ja auch durch die Bilder wischen kann. Hier kann man dann noch angeben ob Punkte Striche oder gar nichts angezeigt werden soll auf welcher Seite man sich befindet.

Installation:

Aus dem HACS Store die Swipe Karte installieren. Suchebgriff swipe card

Auf Add Karte klicken und die Swipe Karte auswählen.  
Leider ist die Swipe Karte nur mit yaml Konfigurierbar aber trotzdem simpel.

Unser Basiscode nachdem wir die Karte hinzugefügt haben.  
Nicht sehr spektakulär.

```
type: custom:swipe-card
cards: []

```

Als erstes vergeben wir wieder ein psotion , vorrausgesetzt Ihr nutzt die Grid Card, sonst natürlich nicht

```
type: custom:swipe-card
view_layout: #unsere positionsangbe
  grid-area: middle
cards: []

```

Nun stellen wir die Eigenschaften unserer Swipe Karte ein.  
Hier eine Komplettliste aller Paramter auf der Seite des Entwicklers:

[https://swiperjs.com/swiper-api#parameters](https://swiperjs.com/swiper-api#parameters)

```
type: custom:swipe-card
view_layout:
  grid-area: middle
parameters:
  spaceBetween: 8 #abstand zwischen den swipe Karten beim wischen siehe Screenschot unten.
  effect: coverflow #der typ der animation beim wechseln / wischen der karte
  grabCursor: false #Auf System mit Mauzeiger unterstützung wird dann hier das Handsymbol angezeigt, 
  #ich deaktiviere es, weil beim anklicken von Elemnten doch stören kann, auf mobilen geräten gibt es eh keinen Cursor
  #außer es ist eine maus angeschlossen.
  centeredSlides: false #da es dann probleme mit Vertikalen und Horizontalen STack Karten innerhalb der Swipe Karte kommt und ich
  #diese Karten aber darin einbetten möchte
  slidesPerView: auto #Dies hab ich auf Auto gelassen
  coverFlowEffect: #wie der Flow aussehen soll. Einfach ausprobieren oder so lassen.
    rotate: 50
    stretch: 0
    depth: 100
    modifier: 1
    slideshadows: true
  pagination:
    type: progressbar #wie der Seitenzähler angezeigt werden soll, mögliche werte: 	'progressbar' | 'bullets' | 'fraction' | 'custom'
  
  
cards: []

```

Damit hätten wir die Grundeinstellung erledigt.  
Nun Können wir darin, unsere Karten hinzufügen.  
Beispiel mit einer Vertikal Stack Karte und einer Rollanden Karte.  
  
Ein Nachteil hat die Swipe Karte. Man kann darin nicht den Visuellen Editor für die darin enthaltenden Karten nutzen.  
Tipp: Die Karte erst fertig konfigurieren, Code kopieren und in die Vertical / bzw. Sipe Karte einfügen, je nach dem.

Im Ersten Kart Abschnitt der Vertical Stack und im Vertical Stack die Karte für die Rollade. Wir können jetzt weite Karten im Vertical stack hinzufügen. Ich hab den Abschnitt Parameter hier mal rausgelassen, damits überscihtliocher ist

```
type: custom:swipe-card
view_layout:
  grid-area: middle
#hier wären die parameter
cards:
  - type: vertical-stack
    cards:
      - type: custom:shutter-row
        move_up_button: {}
        move_stop_button: {}
        move_down_button: {}
        entity: cover.rollade_wohnzimmer_cover
```

Weiteren Vertical Stack für die zweite Seite. Da blenden wir jetzt ne Wetter Karte ein. Auch schöne Custom Wetter Card mit Animation.

```
type: custom:swipe-card
view_layout:
  grid-area: middle
  #hier wären die parameter
cards:
  - type: vertical-stack
    cards:
      - type: custom:shutter-row
        move_up_button: {}
        move_stop_button: {}
        move_down_button: {}
        entity: cover.rollade_wohnzimmer_cover
  - type: vertical-stack
    cards:
      - type: custom:weather-card
        entity: weather.home
        forecast: true
        details: true
        current: true
        hourly_forecast: true
```

Uns so sieht das Ergebnis aus, beim wischen

[![Bildschirmfoto vom 2024-09-08 17-38-48.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/zBUgmbBCUkHqqSDY-bildschirmfoto-vom-2024-09-08-17-38-48.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/zBUgmbBCUkHqqSDY-bildschirmfoto-vom-2024-09-08-17-38-48.png)

Fertig

# Bubble Card

Beschreibung:

Die Bubble Card ist eine Custom Lovelace Card, die es ermöglicht VerticalStack Karten in einem Popup anzuzeigen.

# Automatisierungen

# Wir nutzen Node Red

### Beschreibung:

Man kann ganz Klassisch die integrierte Automatisierungsfunktionen von Home Assistant nutzen, allerdings sind die bei Komplexen Automatisierungen sehr sehr unübersichtlich und umständlich.

Deshalb verweise ich Ich hier auf Node Red. Ich realisiere alle Automatisierungen in Node Red.  
Von Benachrichtigungen ans Smartphone über komplexe Logiken bis zu Alarmanlage.

[Addons - Node Red](https://wiki.hacker-net.de/books/home-assistant/chapter/addons-node-red "Addons - Node Red")

# Addons - Scheduler

# Installation

### Beschreibung:

Manchmal braucht mal einfach eine Zeitschaltuhr, die man aber gerne über die Oberfläche ändern möchte.  
Ganz klassisch eben.

Dies geht mit der Scheduler Component und der Scheduler Card aus dem HACS Store installieren

### Installation:

IM HACS Store die Scheduler Component installieren

[![image-1734296803936.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/CcldPXBLyqXMrSVr-image-1734296803936.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/CcldPXBLyqXMrSVr-image-1734296803936.png)

Auf die 3 Punkte und Herunterladen anklicken

[![image-1734296915444.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/2A3KtyDgmTHIvEbs-image-1734296915444.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/2A3KtyDgmTHIvEbs-image-1734296915444.png)

Die Aktuellste version auswählen und herunterladen klicken

[![image-1734296976363.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/pGr5r2WGria4PhDN-image-1734296976363.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/pGr5r2WGria4PhDN-image-1734296976363.png)

Nun Home Assistant neustarten

[![image-1734297045010.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/wz2VFqE4oz9KpECY-image-1734297045010.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/wz2VFqE4oz9KpECY-image-1734297045010.png)

Nun auf Geräte und dort auf Integration hinzufügen klicken

[![image-1734303619603.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/oafX43sgBrAfDCFH-image-1734303619603.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/oafX43sgBrAfDCFH-image-1734303619603.png)

Dort als Suchbegriff Sched eingebunden und auf die Scheduler integration klicken

[![image-1734303691897.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/0QPUHb8NY46OBScT-image-1734303691897.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/0QPUHb8NY46OBScT-image-1734303691897.png)

Nun einen Raum auswählen, ich habe für HomeAssistant dinge die eigentlich kein Raum sind, den Raum HomeAssistant erstellt.  
Nun auf Fertig klicken

[![image-1734303757247.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/rQdbOFS3om0zP2VR-image-1734303757247.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/rQdbOFS3om0zP2VR-image-1734303757247.png)

Nun im Hacs Store die Scheduler Card installieren

[![image-1734304006264.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/ogbUDua4VlLh0Phx-image-1734304006264.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/ogbUDua4VlLh0Phx-image-1734304006264.png)

WIeder auf die 3 Punkte herunterladen mit der neusten version und den Browser neu laden F5

[![image-1734304063792.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/eUCBiFXIMdWvhX8K-image-1734304063792.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/eUCBiFXIMdWvhX8K-image-1734304063792.png)

[![image-1734304088038.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/QoqqEI4xc6MEAqYj-image-1734304088038.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/QoqqEI4xc6MEAqYj-image-1734304088038.png)

### Einbindung:

Nun kann über eine Karte hinzufgen die Scheduler Card hinzugefügt werden:

[![image-1734304177346.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/HPdPYURTmovWUKhU-image-1734304177346.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/HPdPYURTmovWUKhU-image-1734304177346.png)

Nun der Karte einen Titel geben, hier ist es der Timer für meine Weichnachtbeleuchtung.  
Noch nicht auf Speichern klicken wie im Bild ist ein fehler

[![image-1734304282726.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/R2u2B9yafYNybAoO-image-1734304282726.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/R2u2B9yafYNybAoO-image-1734304282726.png)

Nun die Entitäten auswählen die es sein sollen, dazu auf configure includes entities

[![image-1734305273382.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/BpffQjkwYBroUc7y-image-1734305273382.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/BpffQjkwYBroUc7y-image-1734305273382.png)

Ich hab nun lihgt eingeben, es werden unter licht bei 6 entitäten gefunden.  
Mit select all kann ich alle auswählen, klicke ich auf das licht bekomme ich ne auswahl

[![image-1734305356938.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/jRUleiECcKaSLZB3-image-1734305356938.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/jRUleiECcKaSLZB3-image-1734305356938.png)

Ich klicke aufs licht

Nun kann ich darin wieder suchen oder ich finde gleich schon die entitäten die ich verwenden will, merfachauswahl erlaubt

[![image-1734305434035.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/cQ6qXcuzHc0ElHfH-image-1734305434035.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/cQ6qXcuzHc0ElHfH-image-1734305434035.png)  
Nun schieberegler rein und auf zurück oben klicken und auf x

[![image-1734305484679.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/MWX4USYQxKIoje5L-image-1734305484679.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/MWX4USYQxKIoje5L-image-1734305484679.png)

Dann auf speichern

Fertig die Karte ist einsatzbereit

### Bedienung:

Nun haben wir unsere Karte und können über Hinzufgen die Zeit und die Aktion auswählen

[![image-1734304420122.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/hbJlQpIVOWsewzAd-image-1734304420122.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/hbJlQpIVOWsewzAd-image-1734304420122.png)

Über repeated, können wir auswählen in welchem Intervall der Tage, wie Täglich oder sogar nur bestimmte Wochentage

[![image-1734304537603.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/ec1K7DBjCOLXbyHh-image-1734304537603.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/ec1K7DBjCOLXbyHh-image-1734304537603.png)

[![image-1734304567774.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/0U0EYuShFOkbC1dS-image-1734304567774.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/0U0EYuShFOkbC1dS-image-1734304567774.png)  
Wenn wir choose wählen, können wir die Tage explicit wählen

[![image-1734304605948.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/cp3UT5cHLFFwqVws-image-1734304605948.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/cp3UT5cHLFFwqVws-image-1734304605948.png)

Über die Zeitleiste können wir die Uhrzeit festlegen  
Entweder unserer Zeitspanne liegt zwischen 00:00 und 06:00 klicken wir da rein oder siel liegt zwischen 06:00 und 00:00 klicken wir rechts rein

[![image-1734304802155.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/sNoWRfe0k6f1yMOC-image-1734304802155.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/sNoWRfe0k6f1yMOC-image-1734304802155.png)

Wir haben auf 00:00 - 06:00 geklickt

[![image-1734304894637.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/E17ntJhOWwPxLUgl-image-1734304894637.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/E17ntJhOWwPxLUgl-image-1734304894637.png)

Mit dem Schieberegler können wir die Zeit aber verlängern, so das sie nicht um 06:00 UHR endet.  
Mann kann natürlich auch die Zeit eintragen siehe roter Kasten

[![image-1734305028713.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/zJ80vIR4he8bh8Ob-image-1734305028713.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/zJ80vIR4he8bh8Ob-image-1734305028713.png)

Nun über add action unsere Entität auswahlen

[![image-1734305680323.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/BNPDQdDKqLU4UFJO-image-1734305680323.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/BNPDQdDKqLU4UFJO-image-1734305680323.png)

Die Leuchte auswählen

[![image-1734305737279.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/rYYXTdm5R7k0x3QQ-image-1734305737279.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/rYYXTdm5R7k0x3QQ-image-1734305737279.png)

Nun die Aktion auswählen

Hier leuchte einschalten

[![image-1734305815172.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/AP4Wak9G10PTUf7m-image-1734305815172.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/AP4Wak9G10PTUf7m-image-1734305815172.png)

Nun die Entität auswählen

Ich nehme hier das Sofalight, denn bei meinem Sofalight, ist der Baum angeschlossen

[![image-1734305874486.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/Di6snDBQaLKHr7sc-image-1734305874486.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/Di6snDBQaLKHr7sc-image-1734305874486.png)

Wenn die Lampe dimmbar ist, kann man noch den Helligkeitswert einstellen.  
Mein Baum soll aber einfach nur angeschaltet werden, dewegen lass ich das weg

[![image-1734305956734.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/jbDINFbESS5byrTX-image-1734305956734.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/jbDINFbESS5byrTX-image-1734305956734.png)

Nun auf Speichern klicken

[![image-1734305989919.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/scwOIxKtdi7cLLun-image-1734305989919.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scwOIxKtdi7cLLun-image-1734305989919.png)  
DIe Lampe geht danach übrigends nicht wieder aus. Also einen zweiten Zeitraum Festlegen  
Dazu in die rechte Hälfte klicken. Die Zeiten stimmen mit dem ersten nicht überein, weil ich die Erkenntnis später hatte

[![image-1734306487532.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/EauXPnx4LRUvFeW0-image-1734306487532.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/EauXPnx4LRUvFeW0-image-1734306487532.png)

Die Lampe soll um 00:50 ausgehen und durch entfernes des haken Endzeit geht das Event nur 1 min

[![image-1734306631187.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/scaled-1680-/VeI2WtZ618UHYibZ-image-1734306631187.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-12/VeI2WtZ618UHYibZ-image-1734306631187.png)

#### Kondition:

Es gibt auch Bedingungen um ein Event überhaupt ausführen zu lassen unabhängig von Tag oder Uhrzeit bzw zusätzlich

# Addons - ESP32 Home

# Installation ESP32

### Beschreibung:

ESP32 lässt sich in vier Varianten installieren

1. Einmal auf dem Home Assistant selber (Vorteil, LOGS und OTA Updates und ESP32 direkt anschließen und yaml flashen)
2. Auf beliebigen Computer mit Linux und pip per command line (Vorteil Home Assistant unabhängig zum flashen, sonst muss ja der ESP32 an den Home Assistanten angeschlossen sein
3. Über die Website vom ESP32Home und dann per Terminal oder Home Assistant Erweiterung.  
    Dient eigentlich nur zum vorbereiten zum OTA. Denn YAML muss dann über Terminal oder Home Assistant übertragen werden.
4. Über die Webseite selbst nur gehostet im Container, sonst wie drei. Kann als Standalone betrieben werden. Nicht vergessen die Secrets yaml auszufüllen

### Beispiel yaml Datei ein Beacon scanner:

Inhalt, hier in diesem Beispiel folgende sachen anpassen

- den Namen vergeben, was auch gleichzeitig der Hostname wäre der anpingbar ist durch mdns. Dieser muss für OTA Auflösbar sein.
- das Board siehe Liste drunter
- die WLAN Daten,
- AP,im Abschnitt Wifi, einmal ne SSID und ein Kennwort vergeben. Kennwort ist optional, würd ich aber setzten, ansonsten das feld passwort komplett weg lassen und schon ist fallback ein offener Hostspot. Was ich aber nicht machen würde
- Die mqtt Daten anpassen.
- Den MQTT Topic anpassen der via mqtt gesendet wird.
- API KEY als base54 encodes, siehe script zum erstellen
- Passwort für OT flashen Wichtig sont könnte jeder online ein anders passwort setzen, denn der api key ist nur für den home assistant

```
esphome:
  name: ble_beacon_scanner

esp32:
  board: esp32s3box
  framework:
    type: arduino

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # Erstelle fallback hotspot (captive portal) wenn kein Wifi mehr da ist weil daten geändert
  ap:
    ssid: "Esphome-Web-039C08"
    #das passwort ist optional, das feld kann weg gelassen werden, würd ich aber nicht machen, sondern drin lassen
    password: "KFduHM2A4N7f"

mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_user
  password: !secret mqtt_password

logger:
#API für das Home Assistant Addon ESP Home
api:
  encryption: #wenn encryption muss der API key mit 64 Zeichen im Klartext ergibt  base64 encoded               
    #key muss 32 bytes lang sein, also 64 Zeichen, außer er ist base64 encode, dann ist base64 kürzer
    key: "3Ld2bo6AfQfhuowU+AMva/vTlhiyqaAtjsxgpPPX8l0="

ota:
  platform: esphome
  #passwort wichtig sont könnte jeder online ein anders passwort setzen, denn der api key ist nur für den home assistant
  password: "a7789f4d396d05921e9cc7c709a260c7"



#captive portal, sobald mit dem WLAN verbunden wird man auf eine Seite geleitet um neue WLAN Daten einzugeben. Echt praktisch
captive_portal:


#der code teil
esp32_ble_tracker:
  on_ble_advertise:
    then:
      - mqtt.publish_json:
          topic: "ble/scan"
          payload: |-
            root["mac"] = x.address_str();
            root["rssi"] = x.get_rssi();
            root["name"] = x.get_name().empty() ? "unknown" : x.get_name();

            if (!x.get_manufacturer_datas().empty()) {
              auto md = x.get_manufacturer_datas()[0];
              root["manufacturer_id"] = md.uuid.to_string();

              std::string data_hex;
              for (auto b : md.data) {
                char buf[3];
                snprintf(buf, sizeof(buf), "%02X", b);
                data_hex += buf;
              }
              root["manufacturer_data"] = data_hex;

              // UUID aus Bytes 2–17 extrahieren (ab 4. Zeichen = Index 4, Länge 32)
              if (data_hex.length() >= 36) {
                std::string uuid_raw = data_hex.substr(4, 32);
                root["uuid_raw"] = uuid_raw;

                // Mit Bindestrichen formatieren
                std::string uuid_formatted = uuid_raw.substr(0,8) + "-" +
                                             uuid_raw.substr(8,4) + "-" +
                                             uuid_raw.substr(12,4) + "-" +
                                             uuid_raw.substr(16,4) + "-" +
                                             uuid_raw.substr(20,12);
                root["uuid_formatted"] = uuid_formatted;
              }
            }

```

Ausgabe: des JSON Objetes via MQTT

```
Nachricht 50 empfangen auf ble/scan um 10:21:

{
    "mac": "44:7C:69:16:2B:FB",
    "rssi": -32,
    "name": "unknown",
    "manufacturer_id": "0x004C",
    "manufacturer_data": "021584B3C9802CE04102AA41F2A394F5651400640001C5",
    "uuid_raw": "84B3C9802CE04102AA41F2A394F56514",
    "uuid_formatted": "84B3C980-2CE0-4102-AA41-F2A394F56514"
}
```

Script zum erstellen einen Zufall API Keys

```
nano genapi.py
```

Inhalt

```
import os
import sys
import base64

def generate_key():
    key = os.urandom(32)
    print("🔐 Neuer zufälliger Key generiert:\n")
    print(f"Raw bytes:      {key}")
    print(f"Hex (64 Zeichen) Klartext: {key.hex()}")
    print(f"Base64 (44 Zeichen): {base64.b64encode(key).decode()}")
    return

def convert_hex_to_base64(hex_input):
    try:
        key = bytes.fromhex(hex_input)
        if len(key) != 32:
            print(f"❌ Ungültige Länge: {len(key)} Bytes (erwartet: 32 Bytes)")
            return
        print("🔐 Übergebener Hex-Key konvertiert:\n")
        print(f"Raw bytes:      {key}")
        print(f"Hex (64 Zeichen) Klartext: {hex_input}")
        print(f"Base64 (44 Zeichen): {base64.b64encode(key).decode()}")
    except ValueError:
        print("❌ Fehler: Ungültiger Hex-String.")

if __name__ == "__main__":
    if len(sys.argv) == 2:
        convert_hex_to_base64(sys.argv[1])
    else:
        generate_key()

```

Ausführen :

```
python3 genapi.py
```

Ausgabe, dies ist ein API KEY der nie verwendet wird

```
🔐 Klartext API-Key (hex):
dcb7766e8e807d07e1ba8c14f8032f6bfbd39618b2a9a02d8ecc60a4f3d7f25d

🔐 API-Key (base64):
3Ld2bo6AfQfhuowU+AMva/vTlhiyqaAtjsxgpPPX8l0=

```

#### Board Varianten für die Yaml Datei Abschnitt board:

<table border="1" id="bkmrk-boardid-boardname-bi" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">Boardname in yaml Datei</td><td style="height: 29.8px;">Boardname</td><td style="height: 29.8px;">Bild</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">esp32s3box  
esp32-s3-devkitc-1  
</td><td style="height: 29.8px;">YD-ESP32-23</td><td style="height: 29.8px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/TaKDobOeHf9sl6ls-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/TaKDobOeHf9sl6ls-image.png)

</td></tr><tr><td>esp32dev</td><td>4 Relais ESP 32 Board</td><td>[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/SvACqNOvcAw5bnY6-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/SvACqNOvcAw5bnY6-grafik.png)

</td></tr></tbody></table>

### Installation Variante 1:

#### Installation:

Im Home Assistant Addon Store als suchbegriff ESP eingeben und dann auf ESP Home Device Builder klicken (Nicht Beta Version)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/le6onf7fqkAk6DbD-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/le6onf7fqkAk6DbD-image.png)

Dort auf Installieren klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/4a6sXX2HoCWmadcn-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/4a6sXX2HoCWmadcn-image.png)

Auf Konfiguration gehen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/P3pkaDMzZt6QaTKF-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/P3pkaDMzZt6QaTKF-image.png)

Nun auf deaktivierte Ports einblenden klciken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/KE9iAv248N2aH0vD-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/KE9iAv248N2aH0vD-image.png)

Nun die Portnummer eingeben 6052 und speichern anklciken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/cYGfs6OW7kxljYiq-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/cYGfs6OW7kxljYiq-image.png)

Nun in Seitenleiste anzeigen anhaken, Watchdog anhaken, beim Starten booten anhaken dann auf Starten klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/1RwatqaIukXNABeh-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/1RwatqaIukXNABeh-image.png)  
Nun in der Seitenleiste aufrufen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/ixXSS0YlgkyI1bzv-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/ixXSS0YlgkyI1bzv-image.png)

Jetzt sehen wir die Hauptseite:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/w6RUSQKcugdmJ0DV-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/w6RUSQKcugdmJ0DV-grafik.png)

##### Neues Gerät hinzufügen:

Auf + für New Device klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/y9O5pmd9J3ErRL30-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/y9O5pmd9J3ErRL30-grafik.png)

Nun auf Continue klicken, denn ESP Hoem Web wäre variante 3.  
Dann würde man hier im Abschnitt vorhandenes Gerät hinzufügen anklicken.  
Würde nur dann Sinn machen. Wenn man den ESP32 nicht direkt mit dem Home Assistanten verbinden kann, weil man keinen Physikalischen Zugriff drauf hat.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/AybpeYCwl4ZRQNnE-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/AybpeYCwl4ZRQNnE-grafik.png)

Wenn zum ersten mal gestartet, wird neben dem namen auch nach den WLAn Passwortern gefragt.  
Diese können später falls geändert werden müssen im Dashbaord unter secrets geändert werden.  
Den Namen vergeben, was auch gleichzeitig der Hostname wäre der anpingbar ist durch mdns.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/wjpBh6XecKL31OiI-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/wjpBh6XecKL31OiI-grafik.png)

Nun aber der Dialog mit WLAN

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/fy7aBiMmGg3OYb4P-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/fy7aBiMmGg3OYb4P-grafik.png)

Wenn WLAN eingerichtet wird beim nächsten Gerät nur noch der Namen vergeben, was auch gleichzeitig der Hostname wäre der anpingbar ist durch mdns.  
Dann auf next

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/YeBkABvWZf8DHeOc-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/YeBkABvWZf8DHeOc-grafik.png)

Nun das Board auswählen, solte das gewünschte Board nicht in der Liste sein, kann das Später in der yaml geändert werden.  
Da einfach irgendeins aus der Liste wählen wenn das gewünschte nicht dabei ist

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/MK2WkIp5TKCzN4Um-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/MK2WkIp5TKCzN4Um-grafik.png)

Nun kommt der API Schlüssel, wenn der geändert werden soll auch später in der Yaml abändern.  
ist das richtige Board vorher schon gefunden worden und der Schlüssel darf auch der Zufalls generierte sein dann auf Install  
klicken ansonsten auf Skip. Wir wählen hier Install

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/cSBmbyLrRg1OxFTt-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/cSBmbyLrRg1OxFTt-grafik.png)  
  
Nun können wir auswählen

- Übers WLAN, geht aber nur wenn schon mal eingerichtet wurde
- Am Homeassistanten flashen wollen (Allerdings aufm Raspberry Zeit mitbringen ;-) )
- Über den Browser (geht nur mit google Chrome Variante 3)
- Manuell lädt die YAML datei runter und man flasht selbst übers Terminal (Variante 2)

WIr wählen hier über den Home Assistanten flashen.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/LFdstNqQINubORTb-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/LFdstNqQINubORTb-grafik.png)

Nun sucht er Serial Geräten. DIe Liste aktualisert wenn rein gesteckt.  
Im boot Mode reinstecken.  
Boot Taste gedrückt halten, dann reinstecken und gedrückt halten für weitere 2 Sekunden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/uvQP4P36Baxj0e6T-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/uvQP4P36Baxj0e6T-grafik.png)  
  
Gerät wurde gefunden, dann anklicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/WHWNZpIPVH8OPT5N-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/WHWNZpIPVH8OPT5N-grafik.png)

Jetzt wird installiert / provisioniert

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/AESw5U9uSvkULZwx-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/AESw5U9uSvkULZwx-grafik.png)  
Fertig geflasht startet automatsich den ESP32 neu

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/f3RE6NhOM3nr1Pe2-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/f3RE6NhOM3nr1Pe2-grafik.png)

Jetzt kann auf Stop gedrückt werden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/fOKVGXc0ficZpPxG-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/fOKVGXc0ficZpPxG-grafik.png)

Man sieht der ESP32 ist online

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/ZG1dY0zTMBFdMXhJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/ZG1dY0zTMBFdMXhJ-grafik.png)

Über Edit lässt sich die yaml bearbeiten und code einfügen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/sTOFYfHgx900MMpn-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/sTOFYfHgx900MMpn-grafik.png)

Jetzt lässt sich die YAML abändern

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/9S43z8rPs7qq2WzF-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/9S43z8rPs7qq2WzF-grafik.png)

Nun über save und install neu flashen over the AIR oder direkt am Home Asstant via USB

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/8sLvdLR9y0l7GYXv-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/8sLvdLR9y0l7GYXv-grafik.png)

Den Dialog kennen wir ja schon vom ersten flashen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/SKPowzABDMuGb5QI-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/SKPowzABDMuGb5QI-grafik.png)

Oder im Dashboard über die 3 Punkte dann neu flashen over the AIR oder direkt am Home Asstant via USB

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/vFQVSdGCjvav3iVG-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/vFQVSdGCjvav3iVG-grafik.png)

Dann kommt wieder der Dialog

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/SKPowzABDMuGb5QI-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/SKPowzABDMuGb5QI-grafik.png)

Nun den eigentlichen code also das was der ESP32 machen soll hinzufügen.  
Wieder auf Edit

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/sTOFYfHgx900MMpn-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/sTOFYfHgx900MMpn-grafik.png)

Unser Prgramm code für einen BLE-SCanner den MQTT Topic nennen wir ble/scanwohn  
Der Programm code wird unter captive Portal eingefügt  
Da wir hier aber noch MQTT verwednen müssen noch die MQTT Zugangsdaten eingefügt werden.  
Man kann diese aber auch als Varibalen in der Secrets Datei ablegen dann sehe der MQTT block in der Geräte yaml so aus

```
mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_user
  password: !secret mqtt_password
```

Und in der Secret Datei so

```
#MQTT
mqtt_broker: ip adresse
mqtt_user: username
mqtt_password: password
```

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/dpTvMAIJWEiqzFRc-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/dpTvMAIJWEiqzFRc-grafik.png)

User Code aus der Besipel Yaml hier nur mit geändertem Topic  
Oder mit dem MQTT aus der secrets, dann einfach erstezten, wie man möchte.

```
mqtt:
  broker: 192.168.177.20
  username: mqtt
  password: mega sicherkennwort



#der code teil
esp32_ble_tracker:
  on_ble_advertise:
    then:
      - mqtt.publish_json:
          topic: "ble/scanwohn"
          payload: |-
            root["mac"] = x.address_str();
            root["rssi"] = x.get_rssi();
            root["name"] = x.get_name().empty() ? "unknown" : x.get_name();

            if (!x.get_manufacturer_datas().empty()) {
              auto md = x.get_manufacturer_datas()[0];
              root["manufacturer_id"] = md.uuid.to_string();

              std::string data_hex;
              for (auto b : md.data) {
                char buf[3];
                snprintf(buf, sizeof(buf), "%02X", b);
                data_hex += buf;
              }
              root["manufacturer_data"] = data_hex;

              // UUID aus Bytes 2–17 extrahieren (ab 4. Zeichen = Index 4, Länge 32)
              if (data_hex.length() >= 36) {
                std::string uuid_raw = data_hex.substr(4, 32);
                root["uuid_raw"] = uuid_raw;

                // Mit Bindestrichen formatieren
                std::string uuid_formatted = uuid_raw.substr(0,8) + "-" +
                                             uuid_raw.substr(8,4) + "-" +
                                             uuid_raw.substr(12,4) + "-" +
                                             uuid_raw.substr(16,4) + "-" +
                                             uuid_raw.substr(20,12);
                root["uuid_formatted"] = uuid_formatted;
              }
            }

```

Eingefügt am ende quasi

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/KgtiXXesnKhewwl2-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/KgtiXXesnKhewwl2-grafik.png)

Dann auf save und install klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/8sLvdLR9y0l7GYXv-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/8sLvdLR9y0l7GYXv-grafik.png)

Und dann flashen mit der bevorzugten Variante

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/SKPowzABDMuGb5QI-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/SKPowzABDMuGb5QI-grafik.png)

Nach der installation, einfach auf Geräte und MQTT, dann konfigurieren und ble/scanwohn abonieren.  
JSON formatieren einhaken für bessere Ansicht

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/GrB9iPEsQD7Mhwzy-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/GrB9iPEsQD7Mhwzy-grafik.png)

Nun kommt das Ergebnis:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/bQIA3yYqvjNk4O4v-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/bQIA3yYqvjNk4O4v-grafik.png)

Fertig.

#####   
Ein vorhandenes Gerät einbinden:

Um ein Vorhandenes Gerät einzubinden, brauchen wir die yaml Datei von dem Gerät.  
Wir erstellen erstmal ein neues Gerät. Der name ist gleich dem Namen aus der yaml Datei

Hier als beispiel

```
esphome-web-039c08
```

Im Dashboard unten recht auf New Device klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/3Adz4Qd3IeqX0J70-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/3Adz4Qd3IeqX0J70-grafik.png)

auf continue klicken, Namen eingeben

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/sgPHXFpYkZGxHZ4u-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/sgPHXFpYkZGxHZ4u-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/zFUfT6zDst23X7z2-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/zFUfT6zDst23X7z2-grafik.png)

Irgendein board auswählen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/ZK7SVx8bbiClrLNw-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/ZK7SVx8bbiClrLNw-grafik.png)

Nun auf skip klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/zXrvczsRCdfMtSP1-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/zXrvczsRCdfMtSP1-grafik.png)

Nun auf Edit klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/b1JRGD3vknTvmei0-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/b1JRGD3vknTvmei0-grafik.png)

Hier die beiden Abschnitte die wir dann gleich ersetzen.

```
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password


mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_user
  password: !secret mqtt_password
```

Nun die ganze yaml Datei ersetzen mit der eigentlichen

Alt:

```
esphome:
  name: esphome-web-039c08
  friendly_name: esphome-web-039c08

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "TTs3VAq69x6xitsN7PpZ5jqBY5vWkyL2NLjp344lxWc="

ota:
  - platform: esphome
    password: "94e5d2d9d524baf059721f13b128c5e0"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Web-039C08"
    password: "IdJR1mS76ePc"

captive_portal:
```

Neu

```
esphome:
  name: esphome-web-039c08
esp32:
  board: esp32s3box
  framework:
    type: arduino
wifi:
  ssid: WLAN_DRUCKER
  password: wlan_pass
  ap:
    ssid: "Esphome-Web-039C08"
    #das passwort ist optional, das feld kann weg gelassen werden, würd ich aber nicht machen, sondern drin lassen
    password: "ap kennwort"

mqtt:
  broker: ip von mqtt
  username: mqtt
  password: mqtt pass

logger:
#API für das Home Assistant Addon ESP Home
api:
  encryption: #wenn encryption muss der API key mit 64 Zeichen im Klartext ergibt  base64 encoded
    #key muss 32 bytes lang sein, also 64 Zeichen, außer er ist base64 encode, dann ist base64 kürzer
    key: "apie base64 key"
ota:
  platform: esphome
  password: "ota password"

#captive portal, sobald mit dem WLAN verbunden wird man auf eine Seite geleitet um neue WLAN Daten einzugeben. Echt praktisch
captive_portal:

esp32_ble_tracker:
  on_ble_advertise:
    then:
      - mqtt.publish_json:
          topic: "ble/scantuer"
          payload: |-
            root["mac"] = x.address_str();
            root["rssi"] = x.get_rssi();
            root["name"] = x.get_name().empty() ? "unknown" : x.get_name();

            if (!x.get_manufacturer_datas().empty()) {
              auto md = x.get_manufacturer_datas()[0];
              root["manufacturer_id"] = md.uuid.to_string();

              std::string data_hex;
              for (auto b : md.data) {
                char buf[3];
                snprintf(buf, sizeof(buf), "%02X", b);
                data_hex += buf;
              }
              root["manufacturer_data"] = data_hex;

              // UUID aus Bytes 2–17 extrahieren (ab 4. Zeichen = Index 4, Länge 32)
              if (data_hex.length() >= 36) {
                std::string uuid_raw = data_hex.substr(4, 32);
                root["uuid_raw"] = uuid_raw;

                // Mit Bindestrichen formatieren
                std::string uuid_formatted = uuid_raw.substr(0,8) + "-" +
                                             uuid_raw.substr(8,4) + "-" +
                                             uuid_raw.substr(12,4) + "-" +
                                             uuid_raw.substr(16,4) + "-" +
                                             uuid_raw.substr(20,12);
                root["uuid_formatted"] = uuid_formatted;
              }
            }

```

Nun die WLAN und MQTT Blöcke austauschen, da wir die Daten in der secrets Datei drin haben.

Die fertige yaml

```
esphome:
  name: esphome-web-039c08
esp32:
  board: esp32s3box
  framework:
    type: arduino
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Esphome-Web-039C08"
    #das passwort ist optional, das feld kann weg gelassen werden, würd ich aber nicht machen, sondern drin lassen
    password: "ap kennwort"

mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_user
  password: !secret mqtt_password

logger:
#API für das Home Assistant Addon ESP Home
api:
  encryption: #wenn encryption muss der API key mit 64 Zeichen im Klartext ergibt  base64 encoded
    #key muss 32 bytes lang sein, also 64 Zeichen, außer er ist base64 encode, dann ist base64 kürzer
    key: "apie base64 key"
ota:
  platform: esphome
  password: "ota password"

#captive portal, sobald mit dem WLAN verbunden wird man auf eine Seite geleitet um neue WLAN Daten einzugeben. Echt praktisch
captive_portal:

esp32_ble_tracker:
  on_ble_advertise:
    then:
      - mqtt.publish_json:
          topic: "ble/scantuer"
          payload: |-
            root["mac"] = x.address_str();
            root["rssi"] = x.get_rssi();
            root["name"] = x.get_name().empty() ? "unknown" : x.get_name();

            if (!x.get_manufacturer_datas().empty()) {
              auto md = x.get_manufacturer_datas()[0];
              root["manufacturer_id"] = md.uuid.to_string();

              std::string data_hex;
              for (auto b : md.data) {
                char buf[3];
                snprintf(buf, sizeof(buf), "%02X", b);
                data_hex += buf;
              }
              root["manufacturer_data"] = data_hex;

              // UUID aus Bytes 2–17 extrahieren (ab 4. Zeichen = Index 4, Länge 32)
              if (data_hex.length() >= 36) {
                std::string uuid_raw = data_hex.substr(4, 32);
                root["uuid_raw"] = uuid_raw;

                // Mit Bindestrichen formatieren
                std::string uuid_formatted = uuid_raw.substr(0,8) + "-" +
                                             uuid_raw.substr(8,4) + "-" +
                                             uuid_raw.substr(12,4) + "-" +
                                             uuid_raw.substr(16,4) + "-" +
                                             uuid_raw.substr(20,12);
                root["uuid_formatted"] = uuid_formatted;
              }
            }

```

Nun auf Save klicken.  
Zum testen einfach auf install klicken,

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/N10Xz8OKUZt0AZZj-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/N10Xz8OKUZt0AZZj-grafik.png)

dann over the air auswählen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/fp3zTqgtz3ncd0xg-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/fp3zTqgtz3ncd0xg-grafik.png)

Nun wird die Binary neu compiliert und auf das Gerät geschoben

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/eHXaKudhikH7Zbaj-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/eHXaKudhikH7Zbaj-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/1ODRu92cp5BnMJy7-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/1ODRu92cp5BnMJy7-grafik.png)

Und unter Geräte -&gt; MQTT -&gt; konfiguration abbonieren wir wieder das Topic uns sehen die BLE Geräte in der umgebung

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/MvsXZXUFu5ZjlFuR-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/MvsXZXUFu5ZjlFuR-grafik.png)

 Fertig, das Gerät kann jetzt in Home Assistant verwaltet werden.

### Installation Variante 2:

#### Vorrausetzung:

Wir müssen der Dialup Gruppe zum schreiben auf USB hingefügt werden. Und schreibrechte für Jeden auf den Serial Port  
Im Terminal

```
sudo usermod -a -G dialout <username>
Beispiel:

sudo usermod -a -G dialout duffy
```

#### via pip:

```
python3 -m venv esphome32
source esphome32/bin/activate
cd esphome32
pip install esphome
```

Inhalt aus YAML Datei oben einfügen

```
nano ble_beacon_scanner.yaml
```

Nun die Boottaste gedrückt halten, dann erst den ESP32 per USB Verbinden und Taste 5 Sekunden weiter gedrückt halten

Nun den Befehl zum flashen ausführen

```
sudo chmod 777 /dev/ttyACM0
esphome run ble_beacon_scanner.yaml
```

Ausgabe, Zum Schluss wird gefragt over the AIR oder TTY. Wir wählen 1. der name ist übrigens der Hostname für OVER the AIR wenn WLAN funktioniert, dazu muss das Gerät aber zum ersten mal via USB geflasht werden

<details id="bkmrk-ausgabe-info-esphome"><summary>Ausgabe</summary>

INFO ESPHome 2025.5.1  
INFO Reading configuration ble\_beacon\_scanner.yaml...  
WARNING 'ble\_beacon\_scanner': Using the '\_' (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see https://esphome.io/guides/faq.html#why-shouldn-t-i-use-underscores-in-my-device-name  
INFO Generating C++ source...  
INFO Core config, version or integrations changed, cleaning build files...  
INFO Compiling app...  
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
If you like PlatformIO, please:  
\- star it on GitHub &gt; https://github.com/platformio/platformio-core  
\- follow us on LinkedIn to stay up-to-date on the latest project news &gt; https://www.linkedin.com/company/platformio/  
\- try PlatformIO IDE for embedded development &gt; https://platformio.org/platformio-ide  
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

Processing ble\_beacon\_scanner (board: esp32dev; framework: arduino; platform: platformio/espressif32@5.4.0)  
\-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
Platform Manager: Installing platformio/espressif32 @ 5.4.0  
INFO Installing platformio/espressif32 @ 5.4.0  
Downloading \[####################################\] 100%  
Unpacking \[####################################\] 100%  
Platform Manager: espressif32@5.4.0 has been installed!  
INFO espressif32@5.4.0 has been installed!  
Tool Manager: Installing espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5  
INFO Installing espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5  
Downloading \[####################################\] 100%   
Unpacking \[####################################\] 100%   
Tool Manager: toolchain-xtensa-esp32@8.4.0+2021r2-patch5 has been installed!  
INFO toolchain-xtensa-esp32@8.4.0+2021r2-patch5 has been installed!  
Tool Manager: Installing platformio/framework-arduinoespressif32 @ ~3.20005.0  
INFO Installing platformio/framework-arduinoespressif32 @ ~3.20005.0  
Downloading \[####################################\] 100%   
Unpacking \[####################################\] 100%   
Tool Manager: framework-arduinoespressif32@3.20005.220925 has been installed!  
INFO framework-arduinoespressif32@3.20005.220925 has been installed!  
Tool Manager: Installing platformio/tool-esptoolpy @ ~1.40400.0  
INFO Installing platformio/tool-esptoolpy @ ~1.40400.0  
Downloading \[####################################\] 100%  
Unpacking \[####################################\] 100%  
Tool Manager: tool-esptoolpy@1.40400.0 has been installed!  
INFO tool-esptoolpy@1.40400.0 has been installed!  
Tool Manager: Installing platformio/tool-scons @ ~4.40801.0  
INFO Installing platformio/tool-scons @ ~4.40801.0  
Downloading \[####################################\] 100%  
Unpacking \[####################################\] 100%  
Tool Manager: tool-scons@4.40801.0 has been installed!  
INFO tool-scons@4.40801.0 has been installed!  
Library Manager: Installing bblanchon/ArduinoJson @ 6.18.5  
INFO Installing bblanchon/ArduinoJson @ 6.18.5  
Downloading \[####################################\] 100%  
Unpacking \[####################################\] 100%  
Library Manager: ArduinoJson@6.18.5 has been installed!  
INFO ArduinoJson@6.18.5 has been installed!  
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash  
\- toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5  
Dependency Graph  
|-- WiFi @ 2.0.0  
|-- ESPmDNS @ 2.0.0  
|-- Update @ 2.0.0  
|-- ArduinoJson @ 6.18.5  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/esp32/core.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/esp32/gpio.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/esp32/preferences.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/esp32\_ble/ble.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/esp32\_ble/ble\_advertising.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/esp32\_ble/ble\_uuid.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/esp32\_ble\_tracker/esp32\_ble\_tracker.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/esphome/ota/ota\_esphome.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/json/json\_util.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/logger/logger.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/logger/logger\_esp32.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/logger/logger\_esp8266.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/logger/logger\_host.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/logger/logger\_libretiny.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/logger/logger\_rp2040.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/logger/task\_log\_buffer.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/md5/md5.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mdns/mdns\_component.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mdns/mdns\_esp32.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mdns/mdns\_esp8266.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mdns/mdns\_host.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mdns/mdns\_libretiny.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mdns/mdns\_rp2040.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/custom\_mqtt\_device.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_alarm\_control\_panel.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_backend\_esp32.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_binary\_sensor.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_button.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_client.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_climate.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_component.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_cover.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_date.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_datetime.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_event.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_fan.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_light.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_lock.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_number.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_select.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_sensor.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_switch.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_text.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_text\_sensor.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_time.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_update.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/mqtt/mqtt\_valve.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/network/util.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/ota/ota\_backend.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/ota/ota\_backend\_arduino\_esp32.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/ota/ota\_backend\_arduino\_esp8266.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/ota/ota\_backend\_arduino\_libretiny.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/ota/ota\_backend\_arduino\_rp2040.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/ota/ota\_backend\_esp\_idf.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/safe\_mode/safe\_mode.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/socket/bsd\_sockets\_impl.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/socket/lwip\_raw\_tcp\_impl.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/socket/lwip\_sockets\_impl.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/socket/socket.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/wifi/wifi\_component.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/wifi/wifi\_component\_esp32\_arduino.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/wifi/wifi\_component\_esp8266.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/wifi/wifi\_component\_esp\_idf.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/wifi/wifi\_component\_libretiny.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/components/wifi/wifi\_component\_pico\_w.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/application.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/color.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/component.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/component\_iterator.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/controller.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/entity\_base.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/helpers.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/log.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/ring\_buffer.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/scheduler.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/string\_ref.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/time.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/esphome/core/util.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/src/main.cpp.o  
Building .pioenvs/ble\_beacon\_scanner/bootloader.bin  
Generating partitions .pioenvs/ble\_beacon\_scanner/partitions.bin  
Creating esp32 image...  
Successfully created esp32 image.  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFi.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFiAP.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFiClient.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFiGeneric.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFiMulti.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFiSTA.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFiScan.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFiServer.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/libb48/WiFi/WiFiUdp.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/lib001/ESPmDNS/ESPmDNS.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/lib315/Update/HttpsOTAUpdate.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/lib315/Update/Updater.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/Esp.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/FirmwareMSC.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/FunctionalInterrupt.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/HWCDC.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/HardwareSerial.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/IPAddress.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/IPv6Address.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/MD5Builder.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/Print.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/Stream.cpp.o  
Archiving .pioenvs/ble\_beacon\_scanner/libb48/libWiFi.a  
Indexing .pioenvs/ble\_beacon\_scanner/libb48/libWiFi.a  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/StreamString.cpp.o  
Archiving .pioenvs/ble\_beacon\_scanner/lib001/libESPmDNS.a  
Indexing .pioenvs/ble\_beacon\_scanner/lib001/libESPmDNS.a  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/Tone.cpp.o  
Archiving .pioenvs/ble\_beacon\_scanner/lib315/libUpdate.a  
Indexing .pioenvs/ble\_beacon\_scanner/lib315/libUpdate.a  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/USB.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/USBCDC.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/USBMSC.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/WMath.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/WString.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/base64.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/cbuf.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-adc.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-bt.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-cpu.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-dac.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-gpio.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-i2c-slave.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-i2c.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-ledc.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-matrix.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-misc.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-psram.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-rgb-led.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-rmt.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-sigmadelta.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-spi.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-time.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-timer.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-tinyusb.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-touch.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/esp32-hal-uart.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/firmware\_msc\_fat.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/libb64/cdecode.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/libb64/cencode.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/main.cpp.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/stdlib\_noniso.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/wiring\_pulse.c.o  
Compiling .pioenvs/ble\_beacon\_scanner/FrameworkArduino/wiring\_shift.c.o  
Archiving .pioenvs/ble\_beacon\_scanner/libFrameworkArduino.a  
Indexing .pioenvs/ble\_beacon\_scanner/libFrameworkArduino.a  
Linking .pioenvs/ble\_beacon\_scanner/firmware.elf  
RAM: \[== \] 16.1% (used 52908 bytes from 327680 bytes)  
Flash: \[========= \] 89.4% (used 1640417 bytes from 1835008 bytes)  
Building .pioenvs/ble\_beacon\_scanner/firmware.bin  
Creating esp32 image...  
Successfully created esp32 image.  
esp32\_create\_combined\_bin(\[".pioenvs/ble\_beacon\_scanner/firmware.bin"\], \[".pioenvs/ble\_beacon\_scanner/firmware.elf"\])  
SHA digest in image updated  
Wrote 0x1a1e70 bytes to file /home/duffy/esphome32/.esphome/build/ble\_beacon\_scanner/.pioenvs/ble\_beacon\_scanner/firmware.factory.bin, ready to flash to offset 0x0  
esp32\_copy\_ota\_bin(\[".pioenvs/ble\_beacon\_scanner/firmware.bin"\], \[".pioenvs/ble\_beacon\_scanner/firmware.elf"\])  
======================================================================================================== \[SUCCESS\] Took 198.11 seconds ========================================================================================================  
INFO Successfully compiled program.  
Found multiple options for uploading, please choose one:  
 \[1\] /dev/ttyACM0 (Espressif Device - Espressif CDC Device)  
 \[2\] Over The Air (ble\_beacon\_scanner.local)  
(number):

</details>Nach wählen 1 gehts weiter

<details id="bkmrk-ausgabe-weiter-%28numb"><summary>Ausgabe weiter</summary>

Hard resetting via RTS pin...  
INFO Successfully uploaded program.  
INFO Starting log output from /dev/ttyACM0 with baud rate 115200  
\[20:10:31\]\[I\]\[logger:171\]: Log initialized  
\[20:10:31\]\[C\]\[safe\_mode:079\]: There have been 0 suspected unsuccessful boot attempts  
\[20:10:31\]\[D\]\[esp32.preferences:114\]: Saving 1 preferences to flash...  
\[20:10:31\]\[D\]\[esp32.preferences:143\]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed  
\[20:10:31\]\[I\]\[app:029\]: Running through setup()...  
\[20:10:31\]\[C\]\[esp32\_ble:031\]: Setting up BLE...  
\[20:10:31\]\[C\]\[wifi:048\]: Setting up WiFi...  
\[20:10:31\]\[C\]\[wifi:061\]: Starting WiFi...  
\[20:10:31\]\[C\]\[wifi:062\]: Local MAC: 98:88:E0:03:9C:08  
\[20:10:31\]\[D\]\[wifi:482\]: Starting scan...  
\[20:10:31\]\[W\]\[component:167\]: Component wifi set Warning flag: scanning for networks  
\[20:10:31\]\[D\]\[esp32\_ble:288\]: Enabling BLE...  
\[20:10:32\]\[D\]\[esp32\_ble\_tracker:295\]: Starting scan, set scanner state to STARTING.  
\[20:10:35\]\[D\]\[wifi:497\]: Found networks:  
\[20:10:35\]\[I\]\[wifi:541\]: - 'WLAN\_DRUCKER' (04:B4:FE:82:6E:C1) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:542\]: Channel: 11  
\[20:10:35\]\[D\]\[wifi:543\]: RSSI: -51 dB  
\[20:10:35\]\[D\]\[wifi:546\]: - 'OnePlus' (CA:1D:0A:73:56:46) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'Hacker-Net Gast' (06:B4:FE:82:6E:C1) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'Vodafone-485091\_EXT' (B4:0F:3B:AD:63:59) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'FRITZ!Box 7530 GK' (98:9B:CB:A3:7B:34) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'FRITZ!Box 7490' (38:10:D5:00:6B:C9) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'Vodafone-485091' (A0:95:7F:73:0F:A2) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - '404 Network unavailable' (E8:DF:70:4E:3C:D7) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'PYUR CCD19 2.4' (18:D6:C7:34:21:28) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'PYUR FA108' (34:2C:C4:8C:03:BA) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'PYUR Community' (36:2C:F4:8C:03:BA) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'MagentaWLAN-G8KR' (AC:B6:87:40:75:4E) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'ElmosLand' (7C:FF:4D:6A:A7:14) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'FRITZ!Box Gastzugang' (E2:28:6D:18:17:B5) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'PYUR CCD19 2.4' (68:02:B8:87:BA:3B) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'FRITZ!Box 7530 BK' (30:D3:2D:81:CC:F4) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'PYUR Community' (36:2C:F4:91:AB:30) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'PYUR DF564' (34:2C:C4:91:AB:30) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'ElmosLand Gastzugang' (7E:FF:4D:6A:A7:14) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'MagentaWLAN-L98S' (54:B7:BD:9A:BF:2E) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'PYUR Community' (6A:02:F8:87:BA:3B) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'E-T-T-B' (54:B7:BD:9A:BF:30) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'Ny194' (54:B7:BD:9A:BF:33) ▂▄▆█  
\[20:10:35\]\[D\]\[wifi:546\]: - 'Lisa2.4' (34:2C:C4:6B:35:7B) ▂▄▆█  
\[20:10:39\]\[I\]\[wifi:313\]: WiFi Connecting to 'WLAN\_DRUCKER'...  
\[20:10:39\]\[W\]\[wifi:653\]: Error while connecting to network.  
\[20:10:39\]\[D\]\[wifi:697\]: Retrying with hidden networks...  
\[20:10:39\]\[I\]\[wifi:313\]: WiFi Connecting to 'WLAN\_DRUCKER'...  
\[20:10:40\]\[I\]\[wifi:617\]: WiFi Connected!  
\[20:10:40\]\[C\]\[wifi:428\]: Local MAC: 98:88:E0:03:9C:08  
\[20:10:40\]\[C\]\[wifi:433\]: SSID: 'WLAN\_DRUCKER'  
\[20:10:40\]\[C\]\[wifi:436\]: IP Address: 192.168.177.85  
\[20:10:40\]\[C\]\[wifi:440\]: BSSID: 04:B4:FE:82:6E:C1  
\[20:10:40\]\[C\]\[wifi:441\]: Hostname: 'ble\_beacon\_scanner'  
\[20:10:40\]\[C\]\[wifi:443\]: Signal strength: -52 dB ▂▄▆█  
\[20:10:40\]\[C\]\[wifi:447\]: Channel: 11  
\[20:10:40\]\[C\]\[wifi:448\]: Subnet: 255.255.255.0  
\[20:10:40\]\[C\]\[wifi:449\]: Gateway: 192.168.177.1  
\[20:10:40\]\[C\]\[wifi:450\]: DNS1: 192.168.177.1  
\[20:10:40\]\[C\]\[wifi:451\]: DNS2: 0.0.0.0  
\[20:10:40\]\[C\]\[mqtt:037\]: Setting up MQTT...  
\[20:10:40\]\[D\]\[mqtt:518\]: Enabling MQTT...  
\[20:10:40\]\[W\]\[component:167\]: Component mqtt set Warning flag: unspecified  
\[20:10:40\]\[I\]\[mqtt:254\]: Connecting to MQTT...  
\[20:10:40\]\[W\]\[component:182\]: Component wifi cleared Warning flag  
\[20:10:40\]\[W\]\[component:182\]: Component mqtt cleared Warning flag  
\[20:10:40\]\[I\]\[mqtt:295\]: MQTT Connected!  
\[20:10:41\]\[I\]\[app:066\]: setup() finished successfully!  
\[20:10:41\]\[I\]\[app:115\]: ESPHome version 2025.5.1 compiled on May 28 2025, 19:56:26  
\[20:10:41\]\[C\]\[wifi:600\]: WiFi:  
\[20:10:41\]\[C\]\[wifi:428\]: Local MAC: 98:88:E0:03:9C:08  
\[20:10:41\]\[C\]\[wifi:433\]: SSID: 'WLAN\_DRUCKER'  
\[20:10:41\]\[C\]\[wifi:436\]: IP Address: 192.168.177.85  
\[20:10:41\]\[C\]\[wifi:440\]: BSSID: 04:B4:FE:82:6E:C1  
\[20:10:41\]\[C\]\[wifi:441\]: Hostname: 'ble\_beacon\_scanner'  
\[20:10:41\]\[C\]\[wifi:443\]: Signal strength: -51 dB ▂▄▆█  
\[20:10:41\]\[C\]\[wifi:447\]: Channel: 11  
\[20:10:41\]\[C\]\[wifi:448\]: Subnet: 255.255.255.0  
\[20:10:41\]\[C\]\[wifi:449\]: Gateway: 192.168.177.1  
\[20:10:41\]\[C\]\[wifi:450\]: DNS1: 192.168.177.1  
\[20:10:41\]\[C\]\[wifi:451\]: DNS2: 0.0.0.0  
\[20:10:41\]\[C\]\[logger:224\]: Logger:  
\[20:10:41\]\[C\]\[logger:225\]: Max Level: DEBUG  
\[20:10:41\]\[C\]\[logger:226\]: Initial Level: DEBUG  
\[20:10:41\]\[C\]\[logger:228\]: Log Baud Rate: 115200  
\[20:10:41\]\[C\]\[logger:229\]: Hardware UART: USB\_CDC  
\[20:10:41\]\[C\]\[logger:233\]: Task Log Buffer Size: 768  
\[20:10:41\]\[C\]\[esp32\_ble:411\]: ESP32 BLE:  
\[20:10:41\]\[C\]\[esp32\_ble:413\]: MAC address: 98:88:E0:03:9C:09  
\[20:10:41\]\[C\]\[esp32\_ble:414\]: IO Capability: none  
\[20:10:41\]\[C\]\[esp32\_ble\_tracker:733\]: BLE Tracker:  
\[20:10:41\]\[C\]\[esp32\_ble\_tracker:734\]: Scan Duration: 300 s  
\[20:10:41\]\[C\]\[esp32\_ble\_tracker:735\]: Scan Interval: 320.0 ms  
\[20:10:41\]\[C\]\[esp32\_ble\_tracker:736\]: Scan Window: 30.0 ms  
\[20:10:41\]\[C\]\[esp32\_ble\_tracker:737\]: Scan Type: ACTIVE  
\[20:10:41\]\[C\]\[esp32\_ble\_tracker:738\]: Continuous Scanning: YES  
\[20:10:41\]\[C\]\[esp32\_ble\_tracker:747\]: Scanner State: RUNNING  
\[20:10:41\]\[C\]\[esp32\_ble\_tracker:760\]: Connecting: 0, discovered: 0, searching: 0, disconnecting: 0  
\[20:10:41\]\[C\]\[mdns:120\]: mDNS:  
\[20:10:42\]\[C\]\[mdns:121\]: Hostname: ble\_beacon\_scanner  
\[20:10:42\]\[W\]\[wifi:163\]: WiFi Connection lost... Reconnecting...  
\[20:10:42\]\[I\]\[wifi:313\]: WiFi Connecting to 'WLAN\_DRUCKER'...  
\[20:10:42\]\[E\]\[mqtt.idf:162\]: MQTT\_EVENT\_ERROR  
\[20:10:42\]\[E\]\[mqtt.idf:164\]: Last error code reported from esp-tls: 0x0  
\[20:10:42\]\[E\]\[mqtt.idf:165\]: Last tls stack error number: 0x0  
\[20:10:42\]\[E\]\[mqtt.idf:167\]: Last captured errno : 113 (Software caused connection abort)  
\[20:10:42\]\[C\]\[esphome.ota:073\]: Over-The-Air updates:  
\[20:10:42\]\[C\]\[esphome.ota:074\]: Address: ble\_beacon\_scanner.local:3232  
\[20:10:42\]\[C\]\[esphome.ota:075\]: Version: 2  
\[20:10:42\]\[W\]\[component:167\]: Component wifi set Warning flag: associating to network  
\[20:10:42\]\[W\]\[mqtt:344\]: MQTT Disconnected: WiFi disconnected.  
\[20:10:42\]\[C\]\[safe\_mode:018\]: Safe Mode:  
\[20:10:42\]\[C\]\[safe\_mode:020\]: Boot considered successful after 60 seconds  
\[20:10:42\]\[C\]\[safe\_mode:021\]: Invoke after 10 boot attempts  
\[20:10:42\]\[C\]\[safe\_mode:023\]: Remain in safe mode for 300 seconds  
\[20:10:42\]\[C\]\[mqtt:152\]: MQTT:  
\[20:10:42\]\[C\]\[mqtt:154\]: Server Address: 192.168.177.20:1883 (192.168.177.20)  
\[20:10:42\]\[C\]\[mqtt:155\]: Username: 'mqtt'  
\[20:10:42\]\[C\]\[mqtt:156\]: Client ID: 'ble\_beacon\_scanner-9888e0039c08'  
\[20:10:42\]\[C\]\[mqtt:157\]: Clean Session: NO  
\[20:10:42\]\[C\]\[mqtt:159\]: Discovery IP enabled  
\[20:10:42\]\[C\]\[mqtt:162\]: Discovery prefix: 'homeassistant'  
\[20:10:42\]\[C\]\[mqtt:163\]: Discovery retain: YES  
\[20:10:42\]\[C\]\[mqtt:165\]: Topic Prefix: 'ble\_beacon\_scanner'  
\[20:10:42\]\[C\]\[mqtt:167\]: Log Topic: 'ble\_beacon\_scanner/debug'  
\[20:10:42\]\[C\]\[mqtt:170\]: Availability: 'ble\_beacon\_scanner/status'  
\[20:10:43\]\[I\]\[wifi:617\]: WiFi Connected!  
\[20:10:43\]\[C\]\[wifi:428\]: Local MAC: 98:88:E0:03:9C:08  
\[20:10:43\]\[C\]\[wifi:433\]: SSID: 'WLAN\_DRUCKER'  
\[20:10:43\]\[C\]\[wifi:436\]: IP Address: 192.168.177.85  
\[20:10:43\]\[C\]\[wifi:440\]: BSSID: 04:B4:FE:82:6E:C1  
\[20:10:43\]\[C\]\[wifi:441\]: Hostname: 'ble\_beacon\_scanner'  
\[20:10:43\]\[C\]\[wifi:443\]: Signal strength: -43 dB ▂▄▆█  
\[20:10:43\]\[C\]\[wifi:447\]: Channel: 11  
\[20:10:43\]\[C\]\[wifi:448\]: Subnet: 255.255.255.0  
\[20:10:43\]\[C\]\[wifi:449\]: Gateway: 192.168.177.1  
\[20:10:43\]\[C\]\[wifi:450\]: DNS1: 192.168.177.1  
\[20:10:43\]\[C\]\[wifi:451\]: DNS2: 0.0.0.0  
\[20:10:43\]\[W\]\[component:182\]: Component wifi cleared Warning flag  
\[20:10:45\]\[W\]\[component:167\]: Component mqtt set Warning flag: unspecified  
\[20:10:45\]\[I\]\[mqtt:254\]: Connecting to MQTT...  
\[20:10:57\]\[W\]\[component:182\]: Component mqtt cleared Warning flag  
\[20:10:57\]\[I\]\[mqtt:295\]: MQTT Connected!  
\[20:10:58\]\[W\]\[component:257\]: Component mqtt took a long time for an operation (108 ms).  
\[20:10:58\]\[W\]\[component:258\]: Components should block for at most 30 ms.  
\[20:11:31\]\[I\]\[safe\_mode:041\]: Boot seems successful; resetting boot loop counter  
\[20:11:31\]\[D\]\[esp32.preferences:114\]: Saving 1 preferences to flash...  
\[20:11:31\]\[D\]\[esp32.preferences:143\]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed

</details>Nun kann das Gerät, getrennt werden.  
Fertig

### Installationsvariante 3:

in Google Chrome öffnen, Firefox geht nicht.

[https://web.esphome.io](https://web.esphome.io)

Im Boot modus den ESP32 Verbinden mit dem Computer.  
Die Boot taste gedrückt halten, dann den ESP32 Verbinden und 2 Sekunden warten dann die Boot Taste los lassen.  
Klick auf ESPHome  
In einem terminal schreibrechte auf den USB Port geben

```
sudo chmod 777 /dev/ttyACM0
```

Nun auf Connect klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/HE3KboxzaIc1lPMS-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/HE3KboxzaIc1lPMS-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/MvwC0sFt4gyH7smK-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/MvwC0sFt4gyH7smK-image.png)

Wenn zum ersten mal benutzt, dann Prepare first use anklicken.  
Ist der ESP32 schon geflasht kann per terminal oder Homeassistant die neue yaml aufgespielt werden.  
Dann ist das hier überflüssig, und bei Abschnitt via Terminal weitermachen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/ErFep39w1BCMwv5T-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/ErFep39w1BCMwv5T-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/HQUtOEuMppdtmYVl-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/HQUtOEuMppdtmYVl-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/KmCd5yexdevgypO3-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/KmCd5yexdevgypO3-image.png)

Grundsystem installiert. Nun kann Wifi Konfiguriert werden

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/HX330ckwj9xNs79j-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/HX330ckwj9xNs79j-image.png)

Netzwerk auswählen

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/nZVpacvZ6DFQH7j2-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/nZVpacvZ6DFQH7j2-image.png)

Kennwort eingeben, connect anklicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/7tPXU1qwtbBfsLCh-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/7tPXU1qwtbBfsLCh-image.png)

warten

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/nUtO4d7MJIMonmN9-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/nUtO4d7MJIMonmN9-image.png)

Nun kann nochmals WLAN geändert, oder geschlossen werden.  
Über visit Device bekommt man ne Weboberfläche, wo man aber nicht viel machen kannen.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/NoDuZW53z88RzgaG-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/NoDuZW53z88RzgaG-image.png)

Visit device, damit man es mal gesehen hat, denn da landen die Nachrichten drin

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/yRGnQt2zPyzOo88u-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/yRGnQt2zPyzOo88u-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/mgF6ffD2TpQG9cOP-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/mgF6ffD2TpQG9cOP-image.png)

#### yaml Datei aufspielen:

##### Via Terminal:

Der gleiche Befehl wie bei USB direkt nur das wir hier 2 für ota wählen. Und der Name in der yaml Datei muss der Hosstname sein.  
IP-Adressen gehen nicht. Wenn der Hostname nicht bekannt ist, über die Fritzbox zum beispiel ermitteln

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/xWZBN2PO2BuceWE2-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/xWZBN2PO2BuceWE2-image.png)

Der Befehl:

```
esphome run ble_beacon_scanner.yaml
```

Bei der Frage für LOG wählen wir auch 2

<details id="bkmrk-ausgabe-ota-esphome-"><summary>Ausgabe OTA</summary>

esphome run ble\_beacon\_scanner.yaml   
INFO ESPHome 2025.5.1  
INFO Reading configuration ble\_beacon\_scanner.yaml...  
INFO Generating C++ source...  
INFO Core config, version or integrations changed, cleaning build files...  
INFO Compiling app...  
Processing esphome-web-039c08 (board: esp32s3box; framework: arduino; platform: platformio/espressif32@5.4.0)  
\-----------------------------------------------------------------------------------------------------------------------  
Library Manager: Installing bblanchon/ArduinoJson @ 6.18.5  
INFO Installing bblanchon/ArduinoJson @ 6.18.5  
Unpacking \[####################################\] 100%  
Library Manager: ArduinoJson@6.18.5 has been installed!  
INFO ArduinoJson@6.18.5 has been installed!  
HARDWARE: ESP32S3 240MHz, 320KB RAM, 16MB Flash  
\- toolchain-riscv32-esp @ 8.4.0+2021r2-patch5   
\- toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5  
Dependency Graph  
|-- WiFi @ 2.0.0  
|-- ESPmDNS @ 2.0.0  
|-- Update @ 2.0.0  
|-- ArduinoJson @ 6.18.5  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/esp32/core.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/esp32/gpio.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/esp32/preferences.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/esp32\_ble/ble.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/esp32\_ble/ble\_advertising.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/esp32\_ble/ble\_uuid.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/esp32\_ble\_tracker/esp32\_ble\_tracker.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/esphome/ota/ota\_esphome.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/json/json\_util.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/logger/logger.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/logger/logger\_esp32.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/logger/logger\_esp8266.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/logger/logger\_host.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/logger/logger\_libretiny.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/logger/logger\_rp2040.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/logger/task\_log\_buffer.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/md5/md5.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mdns/mdns\_component.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mdns/mdns\_esp32.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mdns/mdns\_esp8266.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mdns/mdns\_host.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mdns/mdns\_libretiny.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mdns/mdns\_rp2040.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/custom\_mqtt\_device.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_alarm\_control\_panel.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_backend\_esp32.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_binary\_sensor.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_button.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_client.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_climate.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_component.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_cover.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_date.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_datetime.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_event.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_fan.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_light.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_lock.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_number.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_select.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_sensor.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_switch.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_text.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_text\_sensor.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_time.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_update.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/mqtt/mqtt\_valve.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/network/util.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/ota/ota\_backend.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/ota/ota\_backend\_arduino\_esp32.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/ota/ota\_backend\_arduino\_esp8266.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/ota/ota\_backend\_arduino\_libretiny.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/ota/ota\_backend\_arduino\_rp2040.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/ota/ota\_backend\_esp\_idf.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/safe\_mode/safe\_mode.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/socket/bsd\_sockets\_impl.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/socket/lwip\_raw\_tcp\_impl.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/socket/lwip\_sockets\_impl.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/socket/socket.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/wifi/wifi\_component.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/wifi/wifi\_component\_esp32\_arduino.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/wifi/wifi\_component\_esp8266.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/wifi/wifi\_component\_esp\_idf.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/wifi/wifi\_component\_libretiny.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/components/wifi/wifi\_component\_pico\_w.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/application.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/color.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/component.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/component\_iterator.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/controller.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/entity\_base.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/helpers.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/log.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/ring\_buffer.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/scheduler.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/string\_ref.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/time.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/esphome/core/util.cpp.o  
Compiling .pioenvs/esphome-web-039c08/src/main.cpp.o  
Building .pioenvs/esphome-web-039c08/bootloader.bin  
Generating partitions .pioenvs/esphome-web-039c08/partitions.bin  
Creating esp32s3 image...  
Successfully created esp32s3 image.  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFi.cpp.o  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFiAP.cpp.o  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFiClient.cpp.o  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFiGeneric.cpp.o  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFiMulti.cpp.o  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFiSTA.cpp.o  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFiScan.cpp.o  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFiServer.cpp.o  
Compiling .pioenvs/esphome-web-039c08/libb48/WiFi/WiFiUdp.cpp.o  
Compiling .pioenvs/esphome-web-039c08/lib001/ESPmDNS/ESPmDNS.cpp.o  
Compiling .pioenvs/esphome-web-039c08/lib315/Update/HttpsOTAUpdate.cpp.o  
Compiling .pioenvs/esphome-web-039c08/lib315/Update/Updater.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/Esp.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/FirmwareMSC.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/FunctionalInterrupt.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/HWCDC.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/HardwareSerial.cpp.o  
Archiving .pioenvs/esphome-web-039c08/libb48/libWiFi.a  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/IPAddress.cpp.o  
Indexing .pioenvs/esphome-web-039c08/libb48/libWiFi.a  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/IPv6Address.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/MD5Builder.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/Print.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/Stream.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/StreamString.cpp.o  
Archiving .pioenvs/esphome-web-039c08/lib001/libESPmDNS.a  
Indexing .pioenvs/esphome-web-039c08/lib001/libESPmDNS.a  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/Tone.cpp.o  
Archiving .pioenvs/esphome-web-039c08/lib315/libUpdate.a  
Indexing .pioenvs/esphome-web-039c08/lib315/libUpdate.a  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/USB.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/USBCDC.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/USBMSC.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/WMath.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/WString.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/base64.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/cbuf.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-adc.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-bt.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-cpu.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-dac.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-gpio.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-i2c-slave.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-i2c.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-ledc.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-matrix.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-misc.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-psram.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-rgb-led.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-rmt.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-sigmadelta.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-spi.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-time.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-timer.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-tinyusb.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-touch.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/esp32-hal-uart.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/firmware\_msc\_fat.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/libb64/cdecode.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/libb64/cencode.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/main.cpp.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/stdlib\_noniso.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/wiring\_pulse.c.o  
Compiling .pioenvs/esphome-web-039c08/FrameworkArduino/wiring\_shift.c.o  
Archiving .pioenvs/esphome-web-039c08/libFrameworkArduino.a  
Indexing .pioenvs/esphome-web-039c08/libFrameworkArduino.a  
Linking .pioenvs/esphome-web-039c08/firmware.elf  
RAM: \[== \] 18.4% (used 60188 bytes from 327680 bytes)  
Flash: \[======== \] 76.1% (used 1396017 bytes from 1835008 bytes)  
Building .pioenvs/esphome-web-039c08/firmware.bin  
Creating esp32s3 image...  
Successfully created esp32s3 image.  
esp32\_create\_combined\_bin(\[".pioenvs/esphome-web-039c08/firmware.bin"\], \[".pioenvs/esphome-web-039c08/firmware.elf"\])  
SHA digest in image updated  
Wrote 0x164eb0 bytes to file /home/duffy/esphome32/.esphome/build/esphome-web-039c08/.pioenvs/esphome-web-039c08/firmware.factory.bin, ready to flash to offset 0x0  
esp32\_copy\_ota\_bin(\[".pioenvs/esphome-web-039c08/firmware.bin"\], \[".pioenvs/esphome-web-039c08/firmware.elf"\])  
============================================ \[SUCCESS\] Took 30.29 seconds ============================================  
INFO Successfully compiled program.  
Found multiple options for uploading, please choose one:  
 \[1\] /dev/ttyACM0 (USB JTAG/serial debug unit)  
 \[2\] Over The Air (esphome-web-039c08.local)  
(number): 2  
INFO Resolving IP address of esphome-web-039c08.local in mDNS  
INFO Connecting to 192.168.177.85 port 3232...  
INFO Connected to 192.168.177.85  
INFO Uploading /home/duffy/esphome32/.esphome/build/esphome-web-039c08/.pioenvs/esphome-web-039c08/firmware.bin (1396400 bytes)  
Uploading: \[============================================================\] 100% Done...

INFO Upload took 26.21 seconds, waiting for result...  
INFO OTA successful  
INFO Successfully uploaded program.  
Found multiple options for logging, please choose one:  
 \[1\] /dev/ttyACM0 (USB JTAG/serial debug unit)  
 \[2\] MQTT (192.168.177.20)  
(number):

</details>  
Ausgabe 2

```
(number): 2
INFO Starting log output from esphome-web-039c08/debug
INFO Connected to MQTT broker!
[01:42:15][D][esp32_ble_tracker:295]: Starting scan, set scanner state to STARTING.

```

Der Wert esphome-web-039c08/debug ist der Topic fürs log  
Im Terminal mit strg+c kann das Prgramm beendet werden, denn der ESP32 ist fertig

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/qMs1hdyM2gKqLnMY-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/qMs1hdyM2gKqLnMY-image.png)

### Installations Variante 4:

ESP Home Web als Docker

Installation:

```
apt install docker.io docker-compose curl
```

Verzeichnis erstellen

```
mkdir /root/esphomeweb
```

Nun compose Datei erstellen

```
nano /root/esphomeweb/docker-compose.yml
```

Inhalt

```
version: "3.8"

services:
  esphome:
    image: ghcr.io/esphome/esphome
    network_mode: host
    volumes:
      - ./config:/config
    stdin_open: true
    tty: true
    restart: unless-stopped

```

Nun den container starten

```
docker-compose up -d
```

Nun auf de Weboberfläche gehen mit Google Chrome Browser

[http://127.0.0.1:6052](http://127.0.0.1:6052)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/v4t6Q0cTz9RemtUu-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/v4t6Q0cTz9RemtUu-grafik.png)

Dann unter secerts die Secrtes einfügen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/XZOXK7VAXR0lim6Q-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/XZOXK7VAXR0lim6Q-grafik.png)

Man kann diese aber auch als Varibalen in der Secrets Datei ablegen dann sehe der WLAN und MQTT block so aus

```
# Your Wi-Fi SSID and password
wifi_ssid: "WLAN_DRUCKER"
wifi_password: "wlan passwort"

#MQTT
mqtt_broker: ip adresse
mqtt_user: username
mqtt_password: password
```

Nun kann ein neues Gerät oder wie beim Home Asstitant Addon vorhandenes Gerät hinzufügen die Geräte verwaltet werden.  
Ab da ist das Prinzip gleich. Nur losgelöst vom Home Assistant

# ESP32 LC-Relay 4R-A2

### Beschreibung:

Ein fertiger ESP32 mit 4 Galvanisch getrennten relais.  
Komplett fertig.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/FrNPr4Vk7jYtnRWa-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/FrNPr4Vk7jYtnRWa-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/912N8x7BMnOAPwkf-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/912N8x7BMnOAPwkf-grafik.png)

[https://www.amazon.de/dp/B0D3WJMCC3?ref=fed\_asin\_title](https://www.amazon.de/dp/B0D3WJMCC3?ref=fed_asin_title)

### Gehäuse 3D Druck

<table border="1" id="bkmrk-name-bild-link-box-4" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 25.0298%;"></col><col style="width: 25.0298%;"></col></colgroup><tbody><tr><td>Name</td><td>Bild</td><td>Link</td></tr><tr><td>Box

</td><td>[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/WUT6ke0pPqiBAS6u-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/WUT6ke0pPqiBAS6u-image.png)

</td><td>[4Channel\_ESP32 - BOX.stl](https://wiki.hacker-net.de/attachments/83)</td></tr><tr><td>Deckel

</td><td>[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/l4pkXAwajx8EFQvJ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/l4pkXAwajx8EFQvJ-image.png)

</td><td>[4Channel\_ESP32 - LID.stl](https://wiki.hacker-net.de/attachments/84)</td></tr></tbody></table>

Quelle: [https://www.printables.com/model/1084217-esp32-4-channel-relais-modul-case/files](https://www.printables.com/model/1084217-esp32-4-channel-relais-modul-case/files)

### PIN Belegung:

##### Programming header pinout

<div id="bkmrk-pin-comment-5v-do-no" style="overflow-x: auto;"><table><thead><tr><th>Pin</th><th>Comment</th></tr></thead><tbody><tr><td>5V</td><td>5V for programming</td></tr><tr><td>TX</td><td>Exposed on board 3.3V level!</td></tr><tr><td>RX</td><td>Exposed on board 3.3V level!</td></tr><tr><td>GND</td><td> </td></tr><tr><td>GND</td><td> </td></tr><tr><td>GPIO0</td><td>3.3V level! (Connected to a push button for programing)</td></tr></tbody></table>

</div>### Internal pinout

<div id="bkmrk-pin-function-gpio23-" style="overflow-x: auto;"><table><thead><tr><th>Pin</th><th>Function</th></tr></thead><tbody><tr><td>GPIO23</td><td>Status LED</td></tr><tr><td>GPIO32</td><td>Relay #1</td></tr><tr><td>GPIO33</td><td>Relay #2</td></tr><tr><td>GPIO25</td><td>Relay #3</td></tr><tr><td>GPIO26</td><td>Relay #4</td></tr></tbody></table>

</div>Relais PINs

Ein Relais hat typischerweise drei Anschlüsse pro Kanal:

<div class="_tableContainer_16hzy_1" id="bkmrk-anschluss-bedeutung-"><div class="_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="968" data-start="698"><thead data-end="747" data-start="698"><tr data-end="747" data-start="698"><th data-col-size="sm" data-end="710" data-start="698">Anschluss</th><th data-col-size="md" data-end="747" data-start="710">Bedeutung</th></tr></thead><tbody data-end="968" data-start="798"><tr data-end="847" data-start="798"><td data-col-size="sm" data-end="810" data-start="798">**COM**</td><td data-col-size="md" data-end="847" data-start="810">"Common" – gemeinsame Leitung</td></tr><tr data-end="908" data-start="848"><td data-col-size="sm" data-end="860" data-start="848">**NO**</td><td data-col-size="md" data-end="908" data-start="860">"Normally Open" – **öffnet beim Schalten** ✔</td></tr><tr data-end="968" data-start="909"><td data-col-size="sm" data-end="921" data-start="909">**NC**</td><td data-col-size="md" data-end="968" data-start="921">"Normally Closed" – schließt im Ruhezustand</td></tr></tbody></table>

</div></div><div id="bkmrk-wenn-durchgeschaltet" style="overflow-x: auto;">Wenn durchgeschaltet werden soll dann NO und COM anschließen.  
Wenn standard mäßig Stromkreis geschlossen sein soll dann an COM NC anschließen </div>### Flashen:

  
Siehe Programmer : [AZ-Delivery Programmer](https://wiki.hacker-net.de/books/home-assistant/page/az-delivery-programmer "AZ-Delivery Programmer")

Den Programmer Jumper auf 5V einstellen

GND und GPIO0 mit einem Jumper überbrücken  
5V vom Prgrammer an V5 ESP32  
RX vom Programmer an TX ESP32  
TX vom Programmer an RX ESP32  
GND vom Programmer an GND ESP32  
Jumper über GPIO0 und GND am ESP32 für Boot button  
  
Keine Stromversorgung Extern.

<div id="bkmrk--2" style="overflow-x: auto;"></div>### ESP32-Home Code Beispiel für 4 Relais als Switch

```
output:
  - platform: gpio
    pin: GPIO23
    id: led
  - platform: gpio
    pin: GPIO32
    id: relay_pin_1
  - platform: gpio
    pin: GPIO33
    id: relay_pin_2
  - platform: gpio
    pin: GPIO25
    id: relay_pin_3
  - platform: gpio
    pin: GPIO26
    id: relay_pin_4


# Define the switches based on the relay pins
switch:
  - platform: output
    id: relay_1
    name: "Relay 1"
    output: relay_pin_1
  - platform: output
    id: relay_2
    name: "Relay 2"
    output: relay_pin_2
  - platform: output
    id: relay_3
    name: "Relay 3"
    output: relay_pin_3
  - platform: output
    id: relay_4
    name: "Relay 4"
    output: relay_pin_4



interval:
  - interval: 1000ms
    then:
      - output.turn_on: led
      - delay: 500ms
      - output.turn_off: led
```

### Als Taster

```
output:
  - platform: gpio
    pin: GPIO23
    id: led
  - platform: gpio
    pin: GPIO32
    id: relay_pin_1
  - platform: gpio
    pin: GPIO33
    id: relay_pin_2
  - platform: gpio
    pin: GPIO25
    id: relay_pin_3
  - platform: gpio
    pin: GPIO26
    id: relay_pin_4

button:
  - platform: template
    name: "Taster Relais 1"
    id: relay_1_button
    on_press:
      - output.turn_on: relay_pin_1
      - delay: 500ms
      - output.turn_off: relay_pin_1

  - platform: template
    name: "Taster Relais 2"
    id: relay_2_button
    on_press:
      - output.turn_on: relay_pin_2
      - delay: 500ms
      - output.turn_off: relay_pin_2

  - platform: template
    name: "Taster Relais 3"
    id: relay_3_button
    on_press:
      - output.turn_on: relay_pin_3
      - delay: 500ms
      - output.turn_off: relay_pin_3

  - platform: template
    name: "Taster Relais 4"
    id: relay_4_button
    on_press:
      - output.turn_on: relay_pin_4
      - delay: 500ms
      - output.turn_off: relay_pin_4

```

# AZ-Delivery Programmer

Beschreibung:

Der AZ-Delivery Programmer ist ein USB 2 TTL Serial Programmer.

Hier die Pin Belegung.  
mittels Jumper kann gewählt werden ob mit 3,3V oder 5V geflasht werden soll.

Meistens ist 5V Volt Standard.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/gat0TgvVyb1xOTOY-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/gat0TgvVyb1xOTOY-grafik.png)

AM besten bieten sich dazu Jumper Kabel Weiblich - Weiblich an.

[Amazon Link](https://www.amazon.de/QUARKZMAN-Female-Breadboard-Electronics-Projects/dp/B0CTKL21KL/ref=sr_1_2_sspa?crid=3JWVB7P48OGJG&dib=eyJ2IjoiMSJ9.uigHYNhQDJ7Oko9X58gpTVnXEDpHJXiZG4zg3-BQFQNsmZTDnU4FnJ_FflzseTY5ZDYnjVecSxzZN5Hq7NXsWMi4nnIYpbo5jMrZ8hprAZpm-de-jUzx40yOphGSgwzqPqc_gJnm6ptEWSNyuc5oj7TdFxwKJdMfgVebfqZP7VKTZF63lTMdGvu1JxstVKYX79b2YlyQIPnr4knJm2DUmAI4IChHSeDbFujPgFzzNrNcKXNhoMtg3f2wvSyROlVQRxamboCdjIdAG67gW7TR8yfQo0sqmxvwST8JTIRsnIs.HlgTAJmtiBleATIA-lBdhH7rsBtX8AXo_n9CCaruaTo&dib_tag=se&keywords=jumper+kabel+weiblich+weiblich&qid=1748691507&sprefix=jumper+kabel+weiblich+weiblich%2Caps%2C127&sr=8-2-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1&tag=hackernette0b-21)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/rY047hrtXNOeLixV-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/rY047hrtXNOeLixV-grafik.png)

# ESP32 Beacon Scanner

### Beschreibung:

Die eigentlich Installation und Script ist im ESP32 Installationstutorial zu finden, weil den Beacon Scanner als Beispiel genommen haben. Siehe [hier](https://wiki.hacker-net.de/books/home-assistant/page/installation-esp32 "Installation ESP32")

Allerdings kann es vorkommen das der Scanner in Umgebungen nur mit Batterie betrieben werden kann.  
Hier einmal eine Einkaufsliste für Entladeüberwachung und Konverter von 6V auf 5 Volt USB

<table border="1" id="bkmrk-teil-link-entlade%C3%BCbe" style="border-collapse: collapse; width: 100%; height: 89.4px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">Teil</td><td style="height: 29.8px;">Link</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Entladeüberwachung</td><td style="height: 29.8px;">[Amazon Link](https://www.amazon.de/dp/B0B4DGXX4B?psc=1&smid=A2AMBCJN9HB95D&ref_=chk_typ_imgToDp)

</td></tr><tr><td>XL7015 DC 5V-80V Zu DC 5V-20V Schritte Unten Modul</td><td>[Amazon Link](https://www.amazon.de/Create-idea-Schritte-Elektrische-Controller/dp/B0FC21WQ7F/ref=sr_1_23?crid=3J05JRFMH9NDD&dib=eyJ2IjoiMSJ9.d3PE2wdtHH9gFLBU8I-5BGCwHbFBJgD06tkysyZh1srPhyquUUbDviRjGV-EXQ2P_nCbk9teohUQg8zH0axMtdYT5APjvk9bFwLJT1BqctEobINZfWk4ClMVIMGFVESZLVgai51VA49rZKycDDN0FkzaKmrek7QL8TJdRqV_RPIEKT-6emOfJk5gF5OBNfVJXXysrm9DnE_s5rGy09iIl_cp2M00BClVKDlXlapEaDD3O_4463Rcxj5fdB5kxRZTz6zGAsSi4AaNtBCZ0_SHBQULXD4iEsWB1zTeZdADpdI.IGi5nDQHoZuMfxyUxTrvs_1QD1-dXvJ_g0qYv4pK200&dib_tag=se&keywords=mosfet+6v+auf+5v+dc&qid=1749760852&s=industrial&sprefix=mosfet+6v+auf+5v+dc%2Cindustrial%2C66&sr=1-23)

</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">CSB Battery - Blei 6V 7Ah 34w HRL 634W CSB Akku - HRL634W</td><td style="height: 29.8px;">[Amazon Link](https://www.amazon.de/CSB-Battery-Blei-634W-HRL634W/dp/B00SJA4OBY/ref=sr_1_fkmr1_2?crid=2QM96WI821GSB&dib=eyJ2IjoiMSJ9.7wWrYt1768pjgfKlSE0QQASXSu9duM0ZaKwH1FvNFUSFPp_1UTyjBh7ePazfi5583X_tlUltPROcHyWKhSNrxw.9IzW64qpDlP5NhlM3JRuX6G2N4uHIruryIJGkgXpVwk&dib_tag=se&keywords=hrl+634W+f2+akku&qid=1749760666&sprefix=hrl+634w+f2+akku%2Caps%2C62&sr=8-2-fkmr1)

Oder Reichelt im Sonderposten für 10 EUR

</td></tr></tbody></table>

# Addons - nginx

# Einrichtung nginx

Beschreibung:

NGINX um den port 443 auf 8123 umzuleiten.

Installation:

Im Addon Store auf nginx klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/AAumwy3YvsJOPUWo-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/AAumwy3YvsJOPUWo-image.png)

Auf installieren klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/BRleWshyEBb6DveO-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/BRleWshyEBb6DveO-image.png)

# Addons - Virtual Here Client

# Addon installieren und konfigurieren

### Beschreibung:

Es gibt einen Virtual Here client für Home Assistant.  
So lassen sich vom Host System in die Virtuelle Machien von Home Assistant zum Beispiel Coral und der Z-Wave Stick durchreichen.  
ja es wird eine Licence von Virtual here benötigt, aber dafür läufts. Es werden alle USB Geräte durchgeschliffen.

### Installation:

Unter Adddon Store weiteres Repo hinzugügen über die 3 Punkte

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/pg52HwhwV9GK1Sui-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/pg52HwhwV9GK1Sui-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/fFol8XIv9OWQDceh-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/fFol8XIv9OWQDceh-image.png)

Nun folgende URL eintragen und auf hinzufügen klicken

[https://github.com/hans99/home-assistant-addons](https://github.com/hans99/home-assistant-addons)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/PhlxSqK2Ixg5WtAv-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/PhlxSqK2Ixg5WtAv-image.png)

Nun stehen Has Addon drin auf schließen klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/mR5eks10R4bW1Kvv-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/mR5eks10R4bW1Kvv-image.png)

Nun den Addon Store nochmals laden (Seite wechsel wieder in den Addon Store) und bei Hans Addons auf Virtual Here klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/jUOcvmJ8iNyRSGzr-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/jUOcvmJ8iNyRSGzr-image.png)

Nun auf Installieren klicken

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/nVubAxv5zU6h76fV-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/nVubAxv5zU6h76fV-image.png)

Parameter :

<table border="1" id="bkmrk-parameter-funktion-w" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 17.8777%;"></col><col style="width: 38.9847%;"></col><col style="width: 43.1336%;"></col></colgroup><tbody><tr><td>Parameter</td><td>Funktion</td><td>Werte</td></tr><tr><td>Autouse</td><td>Alle USB Geräte Verbinden (Benötigt Lizenz auf dem Server)</td><td>True/False</td></tr><tr><td>Autofind</td><td>Macht ein Autodiscover durchs Subnetz und verbindet automatisch alle gefundenen Server</td><td>True/False</td></tr><tr><td>USB Devices</td><td>Dort können USB Geräte explizit gesetzt werden. Autouse muss False sein.  
Um eine Liste zu bekommen auf irgendeinem Rechner den Client ausführen.  
  
-c die IP des Servers  
./vhclientx86\_64 -c 192.168.177.63 -t LIST  
  
  
[hier](https://www.virtualhere.com/sites/default/files/usbclient/vhclientx86_64) downlaoden für PC amd64</td><td>Pro Zeile

```
- device: 0x0200 (duffy-desktop.31)
  use: false
- device: Mass Storage Device (duffy-desktop.114)
  use: false
- device: USB2.0 Digital Camera (duffy-desktop.211)
  use: false
- device: BT2.0 (duffy-desktop.32)
  use: false
- device: USB Receiver (duffy-desktop.113)
  use: false
```

</td></tr></tbody></table>

Ausgabe des Clients mit dem Paramter LIST

```
Desktop Hub (duffy-desktop:7575) 
   --> 0x0200 (duffy-desktop.31) 
   --> Mass Storage Device (duffy-desktop.114) 
   --> USB2.0 Digital Camera (duffy-desktop.211) 
   --> BT2.0 (duffy-desktop.32) 
   --> USB Receiver (duffy-desktop.113) 
```

Oder im Protokoll

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/t0g7Qk6OP14IpDiD-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/t0g7Qk6OP14IpDiD-image.png)

Autofind auf true

ClientDI setzten (Das der Anme der dann auf dem Server erscheint in use by Name, hier HomeAssistant

Manual HUB. wenn der Server angeben werden soll.  
Der Port muss mit angeben werden, hatte ich vergessen also IP:port

Speichern

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/7DqBracn1gFlEP5H-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/7DqBracn1gFlEP5H-image.png)

Fertig starten

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/bjr8SP3BiOWVhXcf-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/bjr8SP3BiOWVhXcf-image.png)

### Im Protokoll nachschauen ob verbunden, wie man sieht Lizenzprüfung ;-)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/dbhvr8RpiJZZqAoB-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/dbhvr8RpiJZZqAoB-image.png)

Protokoll

```
2025-05-09 02:11:34 INFO  :Log Started
2025-05-09 02:11:34 INFO  :VirtualHere Client 5.8.7 starting (Compiled: Apr 25 2025 14:02:48)
2025-05-09 02:11:34 INFO  :Client OS is Linux 6.6.74-haos-raspi aarch64
2025-05-09 02:11:34 INFO  :Using config at /config/vhclient.ini
2025-05-09 02:11:34 INFO  :IPC available at /tmp/vhclient
2025-05-09 02:11:34 INFO  :Auto-find (Bonjour) on
2025-05-09 02:11:34 INFO  :Auto-find (Bonjour SSL) on
[02:11:39] INFO: Server: 
s6-rc: info: service vhclient-connected successfully started
s6-rc: info: service config-devices: starting
s6-rc: info: service config-devices successfully started
s6-rc: info: service vhclient-use-devices: starting
[02:11:39] INFO: AutoShare enabled, will not use devices from configuration
s6-rc: info: service vhclient-use-devices successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
2025-05-12 18:12:35 INFO  :VirtualHere USB Server Trial Edition (192.168.177.63:7575)
2025-05-12 18:12:36 INFO  :Please purchase a license to share more devices simultaneously
(Auto-Use all is now off)
2025-05-12 18:12:36 INFO  :Please purchase a license to share more devices simultaneously
2025-05-12 18:12:36 INFO  :Please purchase a license to share more devices simultaneously
```

# Dashbard - Tipps / Anpassungen / Codeschnipsel

# Bei einer Aktion, nochmals eine Abfrage einbauen ob wirklich durchgeführt werden soll

### Beschreibung:

Ihr kennt das sicherlich, ausversehen auf den Schalter bim 3D Drucker gekommen, obwohl er durckt. Strom weg, druck im Eimer.  
Klasse, wäre da nicht eine Bestätigungsfrage irgendwie cool?

Jep und hier ist sie:

### [![Auswahl_478.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/scaled-1680-/qR455nBGWmJCBcfl-auswahl-478.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/qR455nBGWmJCBcfl-auswahl-478.png)

### Durchführung:

Einfach in den Code Editor des Button gehen.

[![Auswahl_471.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/scaled-1680-/BdApCyhLd75jlnLM-auswahl-471.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/BdApCyhLd75jlnLM-auswahl-471.png)

Dann haben wir den Editor

[![Auswahl_472.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/scaled-1680-/D27sPraZRdCB67XQ-auswahl-472.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/D27sPraZRdCB67XQ-auswahl-472.png)

Dort unter Grid Options folgendes Hinzufügen, einmal für den text und wenn das Icon angeklickt wird.  
Wird das Icon vergessen und der Benutzer klickt auf das Icon wird der 3D Drucker trotzdem ohne nachfragen ausgeschaltet

```
tap_action:
  action: toggle
  confirmation:
    text: Die Aktion wirklich ausführen?
icon_tap_action:
  action: toggle
  confirmation:
    text: Die Aktion wirklich ausführen?
```

Nun sieht das ganze so aus

[![Auswahl_477.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/scaled-1680-/8xRVDTkI3QKy9CGv-auswahl-477.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/8xRVDTkI3QKy9CGv-auswahl-477.png)

Speichern fertig.

### Badges:

Bei einer Badge gibt es das Icon tap nicht dort nur die tap action.  
Dies is ne Badge, flass du nicht weißt was damit gemeint ist.  
[![Auswahl_480.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/scaled-1680-/EbPWIkEGKWnixCmS-auswahl-480.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/EbPWIkEGKWnixCmS-auswahl-480.png)  
Wie gesagt hier dann nur die tap\_action

### [![Auswahl_479.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/scaled-1680-/WPoUGCGgBz7Mzx1s-auswahl-479.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-02/WPoUGCGgBz7Mzx1s-auswahl-479.png)  
  
Möchte man das nur beim Auschalten gefragt wird die Karte doppelt anlegen.  
Einmal mit und einmal ohne Abfrage.

#### Hier einmal für Karten

In den Condition bei Karte 1 auswählen das angezeigt werden soll wenn off und bei Karte zwei die die Frage enthält auf conditiopn auf on

Beispiel code

```
type: horizontal-stack
cards:
  # 1) Button, wenn der Drucker aus ist → direkt einschalten
  - type: conditional
    conditions:
      - entity: switch.3d_printer
        state: 'off'
    card:
      type: button
      entity: switch.3d_printer
      icon: hass:printer-3d
      name: 3D‑Drucker AN
      tap_action:
        action: toggle

  # 2) Button, wenn der Drucker an ist → mit Bestätigungs‑Popup ausschalten
  - type: conditional
    conditions:
      - entity: switch.3d_printer
        state: 'on'
    card:
      type: button
      entity: switch.3d_printer
      icon: hass:printer-3d
      name: 3D‑Drucker AUS
      tap_action:
        action: toggle
        confirmation:
          text: Möchtest du den Drucker wirklich ausschalten?

```

#### Für Badges

Hier müssen wir einfach zwei mal das gleiche Entity reinpacken.

Einmal sichtbar aus, ohne Confirmation. Also nicht ändern im Code  
Und einmal sichtbar bei Ein.  
Mit confirmation

```
type: entity
show_name: true
show_state: true
show_icon: true
icon: mdi:printer-3d
entity: switch.3d_drucker
tap_action:
  action: toggle
  confirmation:
    text: Den Drucker wirklich ausschalten?
visibility:
  - condition: state
    entity: switch.3d_drucker
    state: "on"

```

# Addons - Caddy Reverseproxy mit Lets Encrypt

# Installation

### Beschreibung:

Eine Verbesserung als das Lets Encrypt Addon selbst.  
Reverse Proxy und Lets Encrypt in einem.

### Vorrausetzungen:

Wie immer Homeasstant muss über 80 und Port 443 vom Internet aus erreichbar sein.  
Zum beispiel via Portweiterleitung im Router.  
Ein Domainname muss auf auf den Router linken. Zum Beispiel myfritzadresse.  
Man kann auch einen Domainnamen anlegen und als CNAME die myfritz adresse nehmen, wer einen dynmaischen anschluss hat.

### Installation:

Im Home Assistant Addon Store (NICHT HACS) folgende Repo hinzufügen

[https://github.com/einschmidt/hassio-addons](https://github.com/einschmidt/hassio-addons)

Auf die 3 Punkte und dann Repositories

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/y1VxqFQ4Ny02HWkm-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/y1VxqFQ4Ny02HWkm-grafik.png)

Dort dann die URL einfügen und auf Hinzufügen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/416FcPUIg1JVr0YH-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/416FcPUIg1JVr0YH-grafik.png)

Jetzt sehen wir im ersten Rahmen das Addon und können auf schließen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/v9oMXpZ3f3sw5e6Q-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/v9oMXpZ3f3sw5e6Q-grafik.png)

Nun im Appstore nach Caddy suchen, eventuell den Browser cache neu laden mit STRG+F5  
Dann auf Caddy 2 klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/jU92dEIfS0WhXP8D-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/jU92dEIfS0WhXP8D-grafik.png)

und installieren

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/yz5oP1ZDygJeyvup-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/yz5oP1ZDygJeyvup-grafik.png)

Jetzt nur auf Konfiguration klicken

- EMail ausfüllen
- Domain ausfüllen
- host ausfüllen wenn geändert werden soll, ich lasse es bei localhost
- Port umändern, lasse es auch bei port 8123

Speichern.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/okPJJlizuxw7PgXg-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/okPJJlizuxw7PgXg-grafik.png)

Nun auf Information zurück, addon starten, fertig.  
im Protokoll anchschauen ob es geklappt hat.

Damit der Home Assistant auch funktioniert unter Einstellungen -&gt; Netzwerk den Domänen Namen eintragen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/1YtGAIka0iLLr5Xt-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/1YtGAIka0iLLr5Xt-grafik.png)

Das gleiche auch nochmals in der configuration.yaml

```

# Loads default set of integrations. Do not remove.
default_config:

homeassistant:
  external_url: "https://example.tld"
```

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/NftpOKLuXIuvf1Kr-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/NftpOKLuXIuvf1Kr-grafik.png)

und den Abschnitt noch rein

```
http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1
    - ::1
```

Dann sieht der Komplette Abschnitt so aus:

```
...
homeassistant:
  external_url: "https://example.tld"
  
http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1
    - ::1
..
```

Home Assistant neustarten.

<div id="bkmrk-hinweis%3A-dies-ist-ei" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Die Externe URL funktioniert nicht aus dem internen Netz nur extern. Sprich im internen Netz weiter loakleip:8123 verwenden</div>Sonst kommt der Fehler, liegt am NAT an sich selbst

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/w8H6mNoiNRWDEPQ9-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/w8H6mNoiNRWDEPQ9-grafik.png)

  
Fertig

Android/iOS App Einstellungen:

Dort festlegen die Externe URL, dann das Interne WLAN auswählen, dort die lokale ip mit port hinterlegen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/8D4FvElnXnYQk9SO-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/8D4FvElnXnYQk9SO-grafik.png)

# Addons - Homematic

# Installation HACS Client for RaspberryMatic

Beschreibung:

Ein Homematic CCU Emulator

Installation

Das Hometic IP Addon gibts im HACS Store über folegende Repository

```
https://github.com/danielperna84/custom_homematic
```

In den HACS Store dort auf die 3 Punkte und Benutzerdefinierte Repositores anklciken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/q83kqaVbYQUFQYnd-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/q83kqaVbYQUFQYnd-grafik.png)

Dort die Repo einfügen, Typ integration auswählen und auf hinzufügen klciken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/IBVFjLk1LmQk8Wy2-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/IBVFjLk1LmQk8Wy2-grafik.png)

Nun steht homematic in der Liste, jetzt auf schließen (X) klciken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/kjDKQV29Yt4sl7Ou-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/kjDKQV29Yt4sl7Ou-grafik.png)

Als suchbegriff homematic eingeben und auf den eintrag homematic klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/PNizPgCdVslFLfIP-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/PNizPgCdVslFLfIP-grafik.png)

Dort auf Herunterladen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/sr7ti5jooUIUolCB-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/sr7ti5jooUIUolCB-grafik.png)

Dann die neuste Version auswählen, ja auch pre Release. Damit ist gewährleistet das es auch mit der neusten Homeassistant version funktioniert

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/hl0CGddFbOR2agaM-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/hl0CGddFbOR2agaM-grafik.png)

Dann herunterladen anklicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/lJKtIulo5EQ3ZpDB-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/lJKtIulo5EQ3ZpDB-grafik.png)

Home Assistant neustarten

Nun den Hostnamen aus dem RasperryMatci Addon holen, auf der Übersichtseite unter Addons beim Addon kopieren, den brauchen wir später

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/2C59m6wOaGRaYsZU-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/2C59m6wOaGRaYsZU-grafik.png)

Danach auf Einstellungen -&gt; Geräte -&gt; Integrationen gehen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/i1bNxpKi1nPiSKld-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/i1bNxpKi1nPiSKld-grafik.png)

Nun die IP Benutzername Kennwort eingeben. Hostname aus dem Addon RaspberryMatic  
Nach unten scrollen und ok klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/bCU2GrGQM26kFjUG-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/bCU2GrGQM26kFjUG-grafik.png)

Die Haken bei hometaic ip, bei bidcos-RF und Heizgruppe aktivieren dann runter scrollen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/5bns0UnsSOaBdAW5-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/5bns0UnsSOaBdAW5-grafik.png)

Alle Bereiche Home Assistant auswählen und fertig anklciken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/zXkJ3WXWf02qsO7d-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/zXkJ3WXWf02qsO7d-grafik.png)

Nun ist die Integration drin.  
Jetzt können im RaspberryMatic neue Geräte angelernt werden

# Installation RaspberryMatic

### Beschreibung:

Emulation von HomeMatic CCU

### Vorraussetzung

Wenn das GPIO Board verwendet wird.

```
/mnt/boot/config.txt
```

Die SD-Karte vom Raspberry mounten am Computer

mit lsblk die Boot Partition finden, meist die erste Partition

Ausgabe:

```
mcblk0     179:0    0  59,5G  0 disk 
├─mmcblk0p1 179:1    0    32M  0 part 
├─mmcblk0p2 179:2    0    24M  0 part /media/duffy/disk
├─mmcblk0p3 179:3    0   256M  0 part /media/duffy/95e0e3bb-46cc-410f-91f1-6a1140f27f4a
├─mmcblk0p4 179:4    0    24M  0 part 
├─mmcblk0p5 179:5    0   256M  0 part 
├─mmcblk0p6 179:6    0     8M  0 part 
├─mmcblk0p7 179:7    0    96M  0 part /media/duffy/hassos-overlay
└─mmcblk0p8 259:4    0  58,8G  0 part /media/duffy/hassos-data

```

Hier die mmcblk0p1

nun mounten

```
sudo mkdir -p /mnt/boot
sudo mount /dev/mmcblk0p1 /mnt/boot
sudo nano /mnt/boot/config.txt
```

Nun folgenden Abschnitt suchen und Kommentare entfernen

```
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
...
# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB
enable_uart=1
dtparam=i2c_arm=on
dtoverlay=miniuart-bt
dtoverlay=rpi-rf-mod
...
```

### Installation

Im Addon Store eine Repository hinzufügen

[https://github.com/jens-maus/RaspberryMatic](https://github.com/jens-maus/RaspberryMatic)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/kbwEtX1yQh3lA88M-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/kbwEtX1yQh3lA88M-grafik.png)

Jetzt steht Der Matic in der Liste. Dann schließen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/M85fmztdkWfLHJnK-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/M85fmztdkWfLHJnK-grafik.png)

Dann mit cache neu laden STRG+F5 drücken

Nun matic als suchbegriff eingeben und anklicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/WK3YNo4PLL1Ytncx-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/WK3YNo4PLL1Ytncx-grafik.png)

Nun auf installieren klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/POAVOpFAKjb1x0Ke-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/POAVOpFAKjb1x0Ke-grafik.png)

Nun Beim Booten starten, Seite leiste anzeigen einschalten und dann auf Starten klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/3UKAYDcoomZ5HC1k-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/3UKAYDcoomZ5HC1k-grafik.png)

Danach wenn gestartet, auf Benutzeroberfläche öffnen klicken.  
Da wir diese zum ersten mal öffnen müssen wir ein Admin Kennwort vergeben

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/y9edw7UwEJ8CXHM3-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/y9edw7UwEJ8CXHM3-grafik.png)

Nun die Einstellungen wählen, ich wähle express

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/86wt8ioCJqPmCSav-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/86wt8ioCJqPmCSav-grafik.png)

Relaxed auswählen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/PPEB0wjJkyvgB0qV-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/PPEB0wjJkyvgB0qV-grafik.png)

Akzeptieren

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/TaEO4nbskV0HnN0y-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/TaEO4nbskV0HnN0y-grafik.png)

Die Hauptseite, fertig installiert

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/0278qAoW0Bd8qRRt-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/0278qAoW0Bd8qRRt-grafik.png)

# neues Gerät anlernen hier: Fenster Türkontakt Magnetisch einbinden

Beschreibung:

Anlernen einen neues Gerätes in Homematic, hier ein Fenster

Durchführung:

Auf Einstellungen -&gt; Addons. Dann auf RaspberryMatic CCU

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/9zn1Wyal5vTUJUX5-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/9zn1Wyal5vTUJUX5-grafik.png)

Dann auf Benutzeroberfläche öffnen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/L0HCxx4fkHAQe5Km-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/L0HCxx4fkHAQe5Km-grafik.png)

Nun Daten Ausfüllen.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/vBDlkkwdUXteZHHT-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/vBDlkkwdUXteZHHT-grafik.png)

Dann auf Gerät anlernen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/OSR8YZluVUa5TVaJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/OSR8YZluVUa5TVaJ-grafik.png)

Nun auf HmIP Gerät anlernen klicken.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/Qa3XXi90nfxbbZsn-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/Qa3XXi90nfxbbZsn-grafik.png)

Und Knopf auf dem Tür/Fenster-Kontakt 1 x drücken dann nochmals 1x drücken. Die LED sollte kurz Grün aufleuchten und wieder dunkel werden  
Sollte das anlernen nicht geklappen unter Addons -&gt; RaspberryMatic CCU gehen und neustarten das Addon

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/9zn1Wyal5vTUJUX5-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/9zn1Wyal5vTUJUX5-grafik.png)

Sollte das auch nichts bringen einmal den Home Assistanten neu starten.  
Dieses verhalten passiert öfter mit der Platine zum Aufstecken auf den Raspberry.  
Der Stick funktioniert besser. Allerdings habe ich diesen zu diesem Zeitpunkt nicht.

Nun ist im Posteingang das Gerät zu finden und dann auf fertig klicken.

Nun ist unter Einstellungen Geräte unserer Gerät zu finden.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/nJKbbxP6ypn2gUnR-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/nJKbbxP6ypn2gUnR-grafik.png)

  
Wir merken uns den Namen, damit wir in Home Assistant das Gerät wiederfinden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/bhqPQiu39ih7sHmj-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/bhqPQiu39ih7sHmj-grafik.png)

Jetzt im Home Assistant unter Einstellungen Geräte -&gt; Homematic(IP) Local gehen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/p9C9tJ2NIvm1CZH7-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/p9C9tJ2NIvm1CZH7-grafik.png)

Dort dann auf Geräte klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/RvqXd4MYmMFhcrHJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/RvqXd4MYmMFhcrHJ-grafik.png)

Nun können wir in der Geräte Liste unser neues Gerät anklicken (dafür den Namen HmIP-SWDM-2 0034A0C9A0E0B7 zum vergleichen)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/Bgvvl7F3Qt5jHtwW-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/Bgvvl7F3Qt5jHtwW-grafik.png)

Nun dem Gerät einen Namen geben und einen Bereich zu weisen, dazu auf den Stift klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/KkenaDD9X6CwLvz3-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/KkenaDD9X6CwLvz3-grafik.png)

Nun den Namen vergeben und Bereich auswählen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/olcIg0h8EnQKsTAF-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/olcIg0h8EnQKsTAF-grafik.png)

Auf umbenennen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/JxiD2Km4IvUdT9LY-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/JxiD2Km4IvUdT9LY-grafik.png)

Nun Kann der Tür/Fenster Kontakt verwendet werden.

# Addons - HA Remote

# Installation HA Remote

Beschreibung:

HA Remote ist ein Addon mit dem man Geräte von einer Home Asssistant intance in die andere Feeigeben kann.  
  
Vorrausetzung:

HACS Store installier siehe [hier](https://wiki.hacker-net.de/books/home-assistant/page/installation-von-hacs-home-assistant-community-store "Installation von HACS - Home Assistant Community Store")  
Aus dem Offiziellen Addon Store den File Editor[ hier](https://wiki.hacker-net.de/books/home-assistant/chapter/addons-der-editor "Addons - Der Editor")

Token für Zugriff erstellen:

Auf allen Remote Instanzem im Benutzerprofil ein Long Life Token erstelln

Im Seiten Menü unten auf das Benutzersymbol klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/DPDDCW2spnr8XpeW-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/DPDDCW2spnr8XpeW-grafik.png)

Dann auf den Registerreiter Sicherheit

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/ps3RWMjRhhR0xEDW-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/ps3RWMjRhhR0xEDW-grafik.png)

und dann ganz nach unten scrollen auf Token erstellen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/YXxoY5zDzCfSEXGD-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/YXxoY5zDzCfSEXGD-grafik.png)

Dann Namen vergeben für den Token

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/gCTn3szALYPxwPyH-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/gCTn3szALYPxwPyH-grafik.png)

Nun den Token kopieren und in gut abspeichern

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/BYCd4kW1qUZadwpk-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/BYCd4kW1qUZadwpk-grafik.png)

Dann über X schließen

Installation:  
  
HACS öffnen und remote eingeben, dann auf home asstant remote klicken, dies auf allen Home Assistant installationen durchführen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/EWv2VErON0FeDkWb-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/EWv2VErON0FeDkWb-grafik.png)

Dann unten links auf Herunterladen klicken, die aktuellste Version auswählen und dann wieder auf herunteralden klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/TO8CTA4hkPhQjeeD-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/TO8CTA4hkPhQjeeD-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/Qnu1Lnu11GPRABQy-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/Qnu1Lnu11GPRABQy-grafik.png)

Nun Auf allen Remote Instancen nicht der Hauptinstanz die die Entitäten ja bekommen soll in der `configuration.yaml`  
Folgenden Abschnitt hinzufügen

```
remote_homeassistant:
  instances:
```

Remote instanzen neustarten

Nun auf der Main/Haupt Instanz unter Geräte integration hinzufügen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/dHV6mD4e5SgU5ViF-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/dHV6mD4e5SgU5ViF-grafik.png)

Dort als suchbegriff remote auswählen und auf Remote Home Assistant klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/4p29bUe08DyqQ0fV-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/4p29bUe08DyqQ0fV-grafik.png)

In der regel erkennt er sogar schon den anderen Home Assistant wenn sie im gleichen netz sind, so wie hier unter entdeckt.  
Drauf klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/cTGwXlZ1SigLGwwi-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/cTGwXlZ1SigLGwwi-grafik.png)

Nun den Token eingeben, ssl und verifizieren an oder abhaken je nachdem was man konfiguriert hat.  
Dann auf ok

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/DHiKLPfms2oPhnYb-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/DHiKLPfms2oPhnYb-grafik.png)

Namen vergeben und Bereich zuweisen und fertig klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/Jg7aCdkOWY7ZjtEB-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/Jg7aCdkOWY7ZjtEB-grafik.png)

Nun auf Konfigurieren in der Integration klicken umd die entitäten auszuwählen die wir haben wollen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/cQ2tpUl8g5xZDvLj-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/cQ2tpUl8g5xZDvLj-grafik.png)

Auf der ersten Seite alles so lassen weil wir wählen die Geräte selbst aus auf der Zweiten Seite , also einfach ok klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/scaled-1680-/Og4Z0BhSOq731NHi-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-06/Og4Z0BhSOq731NHi-grafik.png)

# Templates für Entitäten

### Beschreibung:

Es gibt Situationen, da gibt ein Entity nicht den gewünschten Text zurück.  
zum Biespiel Rauchmelder. Wenn kein Rauch erkannt wird, steht als Wert frei.  
Da wäre ein Kein Rauch, wesentlich sinn voller.

Templates werden in die configuration.yml eingetragen.

### Beispiel:

Unser Originalsensor / Entität für den Rauch erkannt lautet

```
sensor.rauchmelder_flur_smokedetected
```

An die configuration.yml anfügen und dann neustarten

```
...
template:
  - sensor:
      - name: "rauchmelder_flur_raucherkennung"
        state: >
          {% set v = states('sensor.rauchmelder_flur_smokedetected') %}
          {% if v in ['unknown', 'unavailable', 'none',unbekannt] %}
            Kein Rauch erkannt
          {% else %}
            {{ v }}
          {% endif %}
        #Wenn der sensor eine Einheit hat, kann die hier noch gesetzt werden.
        #Oder sonstige Attribute
        #Einfach auskommentieren. Aber in unserem Beispiel hat der Rauchmelder keine Unit oder anderes Attribut
        #unit_of_measurement: "{{ state_attr('sensor.rauchmelder_flur_smokedetected', 'unit_of_measurement') }}"
```

#### Häufige Attribute, die du bei Sensoren findest:

<div class="_tableContainer_1rjym_1" id="bkmrk-attribut-bedeutung-f"><div class="_tableWrapper_1rjym_13 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1198" data-start="335" style="width: 90.4762%; height: 420.147px;"><thead data-end="359" data-start="335"><tr data-end="359" data-start="335" style="height: 29.7353px;"><th data-col-size="sm" data-end="346" data-start="335" style="width: 35.5166%; height: 29.7353px;">Attribut</th><th data-col-size="md" data-end="359" data-start="346" style="width: 64.4176%; height: 29.7353px;">Bedeutung</th></tr></thead><tbody data-end="1198" data-start="385"><tr style="height: 29.7353px;"><td style="width: 35.5166%; height: 29.7353px;">`name`</td><td style="width: 64.4176%; height: 29.7353px;">Sensorname intern</td></tr><tr data-end="444" data-start="385" style="height: 29.7353px;"><td data-col-size="sm" data-end="403" data-start="385" style="width: 35.5166%; height: 29.7353px;">`friendly_name`</td><td data-col-size="md" data-end="444" data-start="403" style="width: 64.4176%; height: 29.7353px;">Der Anzeigename des Sensors in der UI</td></tr><tr style="height: 29.7353px;"><td style="width: 35.5166%; height: 29.7353px;">state</td><td style="width: 64.4176%; height: 29.7353px;">der aktuelle Wert (immer als Text/String intern).</td></tr><tr data-end="497" data-start="445" style="height: 29.7353px;"><td data-col-size="sm" data-end="469" data-start="445" style="width: 35.5166%; height: 29.7353px;">`unit_of_measurement`</td><td data-col-size="md" data-end="497" data-start="469" style="width: 64.4176%; height: 29.7353px;">Einheit, z. B. °C, %, mm</td></tr><tr data-end="593" data-start="498" style="height: 29.7353px;"><td data-col-size="sm" data-end="515" data-start="498" style="width: 35.5166%; height: 29.7353px;">`device_class`</td><td data-col-size="md" data-end="593" data-start="515" style="width: 64.4176%; height: 29.7353px;">Klassifizierung für UI und Icons, z. B. `temperature`, `humidity`, `power`</td></tr><tr data-end="690" data-start="594" style="height: 46.5294px;"><td data-col-size="sm" data-end="610" data-start="594" style="width: 35.5166%; height: 46.5294px;">`state_class`</td><td data-col-size="md" data-end="690" data-start="610" style="width: 64.4176%; height: 46.5294px;">Für Statistik-/Langzeit-Speicherung, z. B. `measurement`, `total_increasing`</td></tr><tr data-end="751" data-start="691" style="height: 29.7353px;"><td data-col-size="sm" data-end="700" data-start="691" style="width: 35.5166%; height: 29.7353px;">`icon`</td><td data-col-size="md" data-end="751" data-start="700" style="width: 64.4176%; height: 29.7353px;">Icon-Name aus Material Design Icons (`mdi:...`)</td></tr><tr data-end="842" data-start="752" style="height: 29.7353px;"><td data-col-size="sm" data-end="767" data-start="752" style="width: 35.5166%; height: 29.7353px;">`last_reset`</td><td data-col-size="md" data-end="842" data-start="767" style="width: 64.4176%; height: 29.7353px;">Zeitpunkt, wann der Zähler zurückgesetzt wurde (ältere Zähler-Sensoren)</td></tr><tr data-end="924" data-start="843" style="height: 29.7353px;"><td data-col-size="sm" data-end="854" data-start="843" style="width: 35.5166%; height: 29.7353px;">`source`</td><td data-col-size="md" data-end="924" data-start="854" style="width: 64.4176%; height: 29.7353px;">Bei Template-/Statistics-Sensoren oft die zugrunde liegende Entity</td></tr><tr data-end="1017" data-start="925" style="height: 29.7353px;"><td data-col-size="sm" data-end="943" data-start="925" style="width: 35.5166%; height: 29.7353px;">`sampling_size`</td><td data-col-size="md" data-end="1017" data-start="943" style="width: 64.4176%; height: 29.7353px;">Speziell bei Statistik-Sensoren, wie viele Werte berücksichtigt werden</td></tr><tr data-end="1100" data-start="1018" style="height: 29.7353px;"><td data-col-size="sm" data-end="1030" data-start="1018" style="width: 35.5166%; height: 29.7353px;">`max_age`</td><td data-col-size="md" data-end="1100" data-start="1030" style="width: 64.4176%; height: 29.7353px;">Speziell bei Statistik-Sensoren, wie lange Werte aufbewahrt werden</td></tr><tr data-end="1198" data-start="1101" style="height: 46.5294px;"><td data-col-size="sm" data-end="1146" data-start="1101" style="width: 35.5166%; height: 46.5294px;">`mean`, `min_value`, `max_value`, `change`</td><td data-col-size="md" data-end="1198" data-start="1146" style="width: 64.4176%; height: 46.5294px;">Statistische Auswertungen (nur bei `statistics`)</td></tr></tbody></table>

</div></div>---

💡 **So findest du alle Attribute eines Sensors:**

1. In Home Assistant im **Entwicklerwerkzeuge → Zustände** (`Developer Tools → States`).
2. Deinen Sensor auswählen.
3. Rechts siehst du eine JSON-ähnliche Liste → das sind alle Attribute, die du per `state_attr('entity_id', 'attribut_name')` abfragen kannst.