Software
LINUX
Home Assistant
Alle ioBroker Tutorials
- Home Assistant mit Docker Installieren (Aktualisiert: 04.04.2024
- INSTAR MQTT Server mit Home Assistant
- Home Assistant auf einem Raspberry Pi
All ioBroker FAQs
- Installation von Home Assistant auf einem Debian-Stretch-Server
- Home Assistant konfigurieren
- Die Home Assistant Lovelace UI
Nur für Full HD Kameramodelle
Wenn Sie eine INSTAR Full HD-Kamera verwenden, finden Sie auch unsere MQTT Broker Integration in den Home Assistant. Die MQTT-Schnittstelle ermöglicht den Zugriff auf alle Kamerafunktionen über die native MQTT-Unterstützung der Home Assistant Lovelace UI!
Installation von Home Assistant auf einem Debian-Stretch-Server
Installation von Abhängigkeiten:
sudo apt update
sudo apt install python3-dev python3-pip python3-venv
sudo pip3 install --upgrade virtualenv
Erstellen Sie einen Benutzer und eine Gruppe
Geben Sie dem Benutzer Zugriff auf serielle Eingang (zwave, insteon, etc):
sudo adduser --system homeassistant
sudo addgroup homeassistant
sudo adduser homeassistant dialout
- Erstellen Sie ein Verzeichnis, in dem HA installiert werden soll, und legen Sie den Besitzer und die Berechtigungen fest.
sudo mkdir /opt/homeassistant
sudo chown homeassistant:homeassistant /opt/homeassistant
- Wechseln Sie zum homeassistant-Benutzer, um die Installationen durchzuführen.
sudo su -s /bin/bash homeassistant
Install Home Assistant
- Installieren Sie eine virtuelle Umgebung für die Home Assistant-Software und ihrer Abhängigkeiten und aktivieren Sie sie, damit weitere Installationen hier durchgeführt werden können.
cd /opt/homeassistant
python3 -m venv /opt/homeassistant
source bin/activate
- Installieren Sie HA mit Pip. Möglicherweise werden einige Pip-Installationsfehler angezeigt, die aber später kein Problem verursachen:
pip3 install --upgrade homeassistant
- Öffnen Sie ein anderes Terminal und melden Sie sich mit Ihrem Standardbenutzer (für sudo freigegeben) an und öffnen Sie den Home Assistant-Port "8123" in Ihrer Firewall:
sudo firewall-cmd --permanent --zone=public --add-port=8123/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Wechseln Sie dann wieder zum homeassistant Benutzer.
- Um alle Konfigurations- und Protokolldateien im selben Verzeichnis zu speichern (anstatt sie in /home/homassistant abzulegen), können wir Home Assistant mit dem folgenden Befehl ausführen:
mkdir config
./bin/hass -c /opt/homeassistant/config --log-file /opt/homeassistant/hass.log
- Sie können jetzt auf die Web-Benutzeroberfläche von Home Assistants zugreifen, indem Sie die folgende URL (die IP-Adresse 192.168.2.111 mit der IP Ihres Linux-Servers austauschen) in Ihrem Webbrowser öffnen
http://192.168.2.111:8123/
:
- Geben Sie Ihre bevorzugten Anmeldedaten ein und klicken Sie, um das Konto zu erstellen:
- Melden Sie sich mit Ihren Anmeldeinformationen bei der Home Assistant-Weboberfläche an:
- Drücken Sie Strg-C, um die Home Assistants zu stoppen. Das Konfigurationsverzeichnis enthält jetzt eine Reihe von Beispiel-Konfigurationsdateien, die Sie bearbeiten können.
Führen Sie den Home Assistant als Dienst aus
- Wenn dies funktioniert, wechseln Sie wieder auf Ihren Standard-Benutzer, gehen Sie in das Verzeichnis
/etc/systemd/system/
und erstellen Sie einen Dienst, der den Home Assistant automatisch startet.
exit
cd /etc/systemd/system/
sudo nano homeassistant.service
- Erstellen Sie die folgende
systemd init
Datei:
[Unit]
Description=Home Assistant
After=network.target mosquitto.service
[Service]
Type=simple
User=homeassistant
ExecStart=/opt/homeassistant/bin/hass -c /opt/homeassistant/config --log-file /opt/homeassistant/hass.log
[Install]
WantedBy=multi-user.target
- Mit Ihrem Standard-Benutzer - kopieren Sie die Servicedatei in das System, und aktualisieren Sie systemd, um den Service auszuführen.
sudo systemctl --system daemon-reload
sudo systemctl enable homeassistant
sudo systemctl start homeassistant
- Wenn beim Startbefehl etwas schief geht, überprüfen Sie die Log Dateien:
sudo systemctl status homeassistant
Um es einfacher zu machen, Konfigurationsdateien zu bearbeiten und Codeänderungen auszuprobieren, erteilen Sie Ihrem regulären Benutzer Schreibberechtigungen in dem homeassistant Verzeichnis. Dazu müssen wir beiden, unseren normalen Benutzer - in meinem Fall ist dies der nodeadmin
- und der homeassistant
Benutzer, die homeassistant Gruppe zuweisen.
sudo groupadd homeassistant
sudo usermod -a -G homeassistant nodeadmin
sudo usermod -a -G homeassistant homeassistant
Stellen Sie sicher, dass sich beide Benutzer in der erstellten Gruppe befinden:
sudo chgrp -R homeassistant /opt/homeassistant
sudo chmod -R g+w /opt/homeassistant/
Home Assistant konfigurieren
Wir haben den Home Assistant in /opt/homeassistant
installiert. Die Konfigurationsdatei befindet sich im Unterordner config
. Lassen Sie uns die Datei öffnen, um einen Blick darauf zu werfen:
sudo nano /opt/homeassistant/config/configuration.yaml
MQTT-Broker hinzufügen
Wenn Sie eine INSTAR Full HD (1080p) Kamera verwenden, brauchen Sie keinen separaten MQTT Broker zu installieren, da Ihre Kamera bereits mit einem vorinstallierten INSTAR MQTT Broker ausgestattet ist.
Wenn Sie eine INSTAR HD (720p) oder VGA-Kamera verwenden möchten, können Sie den Broker verwenden, der mit dem Home Assistant installiert werden kann - wie unten beschrieben. Um Ihre HD- oder VGA-Kamera an diesen Broker anzuschließen, können Sie ein Tool wie Node-RED verwenden - für das wir hier ein detailliertes Tutorial haben.
Sobald Sie über die MQTT-Schnittstelle auf die API Ihrer Kamera zugreifen können, können Sie die MQTT-Seite mit dem Home Assistant verbinden. Wie das aussieht, ist hier beschrieben für den INSTAR MQTT Broker und funktioniert genauso, wenn Sie Ihren eigenen MQTT Broker + Node-RED verwenden.
Als erstes sollten wir unseren Mosquitto-Server (Ersetzen Sie die 192.168.2.111 durch die IP Adresse Ihres Servers) als MQTT-Broker hinzufügen. Dazu können Sie folgende Zeilen am Ende des Dokuments hinzufügen:
# MQTT Communication
mqtt:
broker: 192.168.2.111
port: 1883
user: debian
password: mysecretpassword
Der Home Assistant wird mit einem eingebetteten MQTT-Broker geliefert. Da wir den Mosquitto MQTT Broker mit Node-RED bereits installiert haben, haben wir diesen sekundären Broker durch Hinzufügen der obigen Konfiguration deaktiviert. Stellen Sie sicher, dass der Mosquitto-Service vor dem Home Assistant ausgeführt wird.
Wenn Sie nicht vorhaben, den Mosquitto Server zu verwenden, überspringen Sie diesen Schritt und der eingebettete MQTT-Broker wird stattdessen automatisch gestartet.
Um zu überprüfen, dass wir die Konfiguration keine Fehler beinhaltet, können Sie im Home Assistant auf den Tab __Configuration__ gehen:
Öffnen Sie den General Abschnitt:
Klicken Sie auf Check Config und - wenn es erfolgreich war - auf Restart Server:
Die Home Assistant Lovelace UI
Nun können wir mit dem Hinzufügen von Komponenten zur Benutzeroberfläche von Home Assistant beginnen - genannt Lovelace. Das Hinzufügen von Schaltflächen und Schaltern zur Interaktion mit der API Ihrer Kamera über eine MQTT-Schnittstelle ist hier im Detail für den INSTAR MQTT Broker beschrieben. Beachten Sie, dass der INSTAR MQTT Broker nur für INSTAR Full HD Kameras verfügbar ist. Wenn Sie eine HD- (720p) oder VGA-Kamera verwenden, können Sie dennoch einen MQTT verwenden, um Ihre Kamera zu verbinden. Installieren Sie den MQTT Broker auf Ihrem Linux-System, wie oben beschrieben, und verwenden Sie Node-RED als Schnittstelle zwischen Ihrer Kamera und dem MQTT Broker. Sobald Sie diese Einrichtung vorgenommen haben, können Sie Ihre Kameras über das INSTAR MQTT Broker Tutorial mit dem Home Assistant verbinden.
Der Artikel über den INSTAR MQTT Broker bespricht bereits alles, was Sie wissen müssen, um die Funktion Ihrer Kamera in die Benutzeroberfläche des Home Assistant aufzunehmen. Aber was dort noch fehlt, ist das Live Video.
Hinzufügen des Live-Videos Ihrer Kamera
Home Assistant wird mit einem Kameramodul geliefert, mit dem wir das Live-Video unserer Kamera hinzufügen können. Beginnen wir mit der Haupt-Konfigurationsdatei configuration.yaml
. Wenn Sie den obigen Schritten gefolgt sind, finden Sie diese Datei in /opt/homeassistant/config/configuration.yaml
. Wenn Sie dem INSTAR MQTT Broker Tutorial gefolgt sind und Home Assistant auf einem Raspberry Pi installiert haben, befindet sie sich in Ihrem Standard Benutzer-Home-Verzeichnis.: /home/pi/.homeassistant/configuration.yaml
. Öffnen Sie die Konfigurationsdatei und fügen Sie die Zeile hinzu:
camera: !include cameras.yaml
Erstellen Sie nun die Datei cameras.yaml
neben der Konfigurationsdatei und fügen Sie die folgenden Zeilen hinzu:
- platform: generic
name: 'IN-8015FHD'
still_image_url: http://192.168.2.165/tmpfs/snap.jpg
stream_source: 'rtsp://192.168.2.165:554/11'
verify_ssl: false
authentication: 'basic'
username: 'admin'
password: 'instar'
Falls Sie die Bandbreite, die dieser Livestream benötigt, einschränken müssen, verwenden Sie auto.jpg
oder auto2.jpg
anstelle von snap.jpg
in der still_image_url oben. Auch die RTSP stream_source kann einen kleineren Livestream verwenden, indem sie die /11
durch eine /12
oder /13
ersetzt. Alternativ können Sie mit der folgenden Konfiguration auf den MJPEG-Stream Ihrer Kamera zugreifen:
- platform: mjpeg
name: 'IN-9010FHD'
mjpeg_url: http://192.168.2.117/mjpegstream.cgi?-chn=11
verify_ssl: false
authentication: 'basic'
username: 'admin'
password: 'instar'
Und wieder, um den Bandbreitenbedarf dieses Live-Streams zu reduzieren, verwenden Sie chn=12
oder chn=13
anstelle von chn=11
.
Hiermit wird eine lokale INSTAR HD- oder Full HD-Kamera mit der IP-Adresse 192.168.2.165
auf dem Standard HTTP Port 80
und mit dem Standard RTSP Port 554 hinzugefügt. In diesem Beispiel lautet das Login der Kamera admin/instar
- aber beachten Sie, dass Sie für den Zugriff auf das Live-Video nicht das Administratorkonto verwenden müssen.
Laden Sie nun den Home Assistant neu, um die gerade vorgenommenen Änderungen zu sehen. Sobald die Benutzeroberfläche wieder verfügbar ist, klicken Sie bitte oben rechts auf Configure UI:
Sie können eine neue Registerkarte für Ihre Kamera hinzufügen, indem Sie auf das kleine + Symbol neben Ihren vorhandenen Registerkarten klicken. Klicken Sie dann auf den großen + Button, um eine neue Karte hinzuzufügen.
Hier müssen wir eine neue Entität hinzufügen und die Kamera auswählen, die wir gerade hinzugefügt haben - im obigen Fall war dies camera.in_8015fhd
:
Speichern Sie Ihre Einstellung und verlassen Sie den UI-Konfigurationsmodus. Sie sollten jetzt eine kleine Kachel mit einem Schnappschuss von Ihrer Kamera sehen. Klicken Sie darauf, um zum Live-Video zu gelangen:
Verwendung von Home Assistant als Alarmserver für Ihre INSTAR Kamera
Alle INSTAR Full HD Kameras verfügen über eine Funktion zum Senden einer POST-Anfrage an einen HTTP-Webhook, wenn ein Alarm ausgelöst wird (HD-Kameras unterstützen derzeit nur GET-Anfragen, die nicht von Home Assistant unterstützt werden - allerdings können Sie z.B. mit Node-RED eine GET-Anfrage von Ihrer HD-Kamera empfangen, um eine POST-Anfrage an den Home Assistant zu senden).
Wenn ein solcher POST Request vom Home Assistant empfangen wird, kann ein solches Ereignis als Auslöser für Ihre Automatisierung zur Steuerung Ihrer INSTAR Full HD Kamera verwendet werden.
Für Details zum Hinzufügen der Kamerasteuerungen zur Home Assistant UI für Ihre INSTAR FUll HD-Kamera folgen Sie bitte unserem INSTAR MQTT Broker Tutorial
Um einen Webhook einzurichten, der von Ihrer Kamera als Alarmserver verwendet werden kann, öffnen Sie zunächst bitte die Lovelace-Benutzeroberfläche und gehen Sie zu Configuration und öffnen öffnen dort die Registerkarte Automation:
Klicken Sie auf das Symbol +, um eine neue Automatisierung hinzuzufügen, und wählen Sie Webhook als Automatisierungstrigger - der Name, den Sie hier für den Webhook wählen, wird verwendet, um die resultierende URL zu benennen, z.B. mqtt_test
(besser keine Leerzeichen oder Sonderzeichen verwenden):
Jetzt müssen wir eine Aktion definieren, die wir auslösen wollen. Dazu verwenden wir einen MQTT Publish Service, den wir im INSTAR MQTT Broker Tutorial erstellt haben. Für diesen Service ist es erforderlich, dass ein MQTT-Topic (Target) und eine MQTT Payload (Message) übergeben werden:
{
"message": "{\"val\":\"1\"}",
"target": "instar/000389888811/features/ptz/preset"
}
Hier wählen wir das features/ptz/preset
MQTT Topic und senden den Payload 1
, der der Kamera mit der MAC-Adresse 000389888811
sagt, sie solle zu Preset Position 2 gehen (die Nummerierung dieser Positionen beginnt bei 0
).
Wenn Sie Save drücken, wird diese Automatisierung in der Datei automations.yaml
im Home Assistant Verzeichnis gespeichert:
- id: '1571301476710'
alias: TEST MQTT Webhook
trigger:
- platform: webhook
webhook_id: mqtt_test
condition: []
action:
- data:
message: '{"val":"1"}'
target: instar/000389888811/features/ptz/preset
service: script.send_mqtt_command
Sie können die Auslösung der obigen Automatisierung testen, indem Sie einen POST HTTP Request an folgende Adresse senden
http://your-home-assistant:8123/api/webhook/mqtt_test
Der Befehl curl -d "" http://192.168.2.43:8123/api/webhook/mqtt_test
löst die Automatisierung aus und sendet die Kamera in die zweite gespeicherte Position.
Nachdem wir nun wissen, dass unsere Automatisierung funktioniert und der Webhook eingerichtet ist, können wir unsere Kamera so konfigurieren, dass sie Home Assistant kontaktiert, wenn ein Alarm durch die internen Erkennungssysteme der Kamera ausgelöst wird. Bitte öffnen Sie die Alarmserver Konfiguration in der Web-Benutzeroberfläche Ihrer Kamera und fügen Sie den erstellten Webhook dem folgenden Formular hinzu. Sie müssen hier den POST Request aktivieren und einen Dummy Request Parameter hinzufügen - im Screenshot unten haben wir homeassistant=alarm
hinzugefügt. Dieser Parameter kann jedoch frei gewählt werden:
Jedes Mal, wenn ein Alarm ausgelöst wird, kontaktiert unsere Kamera den Alarmserver und startet die hinterlegte Automatisierung.
Weitere Beispiele, wie Sie Ihre Kamera mit dem Home Assistant automatisieren können, finden Sie in unserer Smarthome Übersicht. Wechseln Sie einfach das verwendete MQTT Topic, um verschiedene Funktionen Ihrer Kamera zu automatisieren.
Diskutieren Sie diesen Artikel im INSTAR Forum !