INSTAR Deutschland GmbH

Home Assistant unter Debian



Diskutieren Sie diesen Artikel im INSTAR Forum

INSTAR MQTT Broker

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

Home Assistant with your INSTAR IP Camera


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

Home Assistant with your INSTAR IP Camera


  1. 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

Home Assistant with your INSTAR IP Camera


  1. Wechseln Sie zum homeassistant-Benutzer, um die Installationen durchzuführen.
sudo su -s /bin/bash homeassistant

Install Home Assistant

  1. 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

Home Assistant with your INSTAR IP Camera


  1. Installieren Sie HA mit Pip. Möglicherweise werden einige Pip-Installationsfehler angezeigt, die aber später kein Problem verursachen:
pip3 install --upgrade homeassistant

Home Assistant with your INSTAR IP Camera


  1. Ö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

Home Assistant with your INSTAR IP Camera


Wechseln Sie dann wieder zum homeassistant Benutzer.

  1. 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

Home Assistant with your INSTAR IP Camera


  1. 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/:

Home Assistant with your INSTAR IP Camera


  1. Geben Sie Ihre bevorzugten Anmeldedaten ein und klicken Sie, um das Konto zu erstellen:

Home Assistant with your INSTAR IP Camera


  1. Melden Sie sich mit Ihren Anmeldeinformationen bei der Home Assistant-Weboberfläche an:

Home Assistant with your INSTAR IP Camera


  1. 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

  1. 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
  1. Erstellen Sie die folgende systemd init Datei:

Home Assistant with your INSTAR IP Camera


[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



  1. 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
  1. Wenn beim Startbefehl etwas schief geht, überprüfen Sie die Log Dateien:
sudo systemctl status homeassistant

Home Assistant with your INSTAR IP Camera


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:


Home Assistant with your INSTAR IP Camera


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

INSTAR MQTT Broker

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.


Home Assistant with your INSTAR IP Camera


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

Hinweis:

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:


Home Assistant with your INSTAR IP Camera


Öffnen Sie den General Abschnitt:


Home Assistant with your INSTAR IP Camera


Klicken Sie auf Check Config und - wenn es erfolgreich war - auf Restart Server:


Home Assistant with your INSTAR IP Camera


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 stillimageurl 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:


Home Assistant with your INSTAR IP Camera


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.


Home Assistant with your INSTAR IP Camera


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:


Home Assistant with your INSTAR IP Camera

Home Assistant with your INSTAR IP Camera


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:


Home Assistant with your INSTAR IP Camera


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:


Home Assistant with your INSTAR IP Camera


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):


Home Assistant with your INSTAR IP Camera


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"
}

Home Assistant with your INSTAR IP Camera


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

Home Assistant with your INSTAR IP Camera


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:


Home Assistant with your INSTAR IP Camera

Home Assistant with your INSTAR IP Camera


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.