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
Home Assistant (LINUX)
Dies ist eine aktualisierte Anleitung, die Docker zur Installation von Home Assistant verwendet, anstatt die Software direkt über die Python-Pakete zu installieren, wie es in unserer jetzt veralteten Anleitung beschrieben ist. Dieser Leitfaden wurde auch aktualisiert, um mit INSTAR-Kameras neueren Datums als der Full HD-Serie verwendet werden zu können. Es gibt auch eine Liste von FAQs), die bereits aktualisiert sind.
- Home Assistant (LINUX)
Installation
Home Assistant bietet jetzt ein Docker-Image, das aus dem Docker Hub gezogen werden kann:
docker pull homeassistant/home-assistant:stable
Um alle vom Home Assistant erzeugten Daten aufzubewahren, können wir Verzeichnisse erstellen, die später in den laufenden Container eingebunden werden können. Auf einem Linux-Hostsystem müssen Sie auch die richtigen Lese- und Schreibrechte setzen, z. B.:
(sudo) mkdir -p /opt/homeassistant/config
(sudo) chmod -R 775 /opt/homeassistant
Der Container kann nun wie folgt gestartet werden:
docker run -d --rm --privileged --net=host --name='home-assistant' -e 'TZ=Europe/Berlin' -v /opt/homeassistant/config:/config homeassistant/home-assistant:stable
Und das Web-Frontend erscheint unter http://localhost:8123
:
Live Video
RTSP, MJPEG und JPG Streaming
Wir empfehlen, dass Sie den unten beschriebenen ONVIF-Dienst verwenden, um das Live-Video Ihrer Kamera hinzuzufügen. Sie können den Stream aber auch manuell über die Generic Camera Integration unter Verwendung des RTSP & MJPEG Stream oder Snapshots Ihrer Kamera hinzufügen.
WebRTC
In der Regel wird es als stabiler angesehen, WebRTC für Ihren Kamera-Videostream zu verwenden. Ihre Kamera bietet noch keinen WebRTC-Dienst an - aber Sie können go2RTC zum Re-Streaming des RTSP-Streams Ihrer Kamera verwenden. Diese Einrichtung ist etwas fortgeschrittener und erfordert das Starten eines Docker-Containers, der parallel zu Ihrem Home Assistant-Container läuft.
Hinzufügen eines Kamera-Live-Streams über den ONVIF-Dienst
Stellen Sie zunächst sicher, dass der ONVIF-Dienst in der WebUI Ihrer Kamera tatsächlich aktiv ist. Wir benötigen die ONVIF WS-Security, um HomeAssitant die Verbindung zu ermöglichen - aber ich werde sie hier für den Admin-Benutzer deaktiviert lassen und im nächsten Schritt einen Benutzer mit eingeschränkten Rechten für die ONVIF-Security erstellen:
Um einen ONVIF-Benutzer zu erstellen, öffnen Sie das Benutzerverwaltung Menu und klicken Sie auf das +
Symbol, um einen neuen Benutzer mit der Voreinstellung Gast und der Rolle ONVIF (Admin) zu erstellen:
Zurück auf der Home Assistant Oberfläche gehen Sie in das Menü Einstellungen und öffnen Sie die Registerkarte Geräte & Dienste:
Hier können wir nun eine neue ONVIF Integration hinzufügen:
Die automatische Erkennung sollte Ihre Kamera automatisch finden. Andernfalls wählen Sie, um die ONVIF-Kamera manuell hinzuzufügen:
Verwenden Sie den zuvor erstellten ONVIF-Benutzer sowie die lokale IP und den ONVIF-Port Ihrer Kamera, um Ihre Kamera hinzuzufügen:
Nach dem Speichern Ihrer Einstellungen sollte die Kamera mit allen ONVIF-Funktionen zum Home Assistant-Dashboard hinzugefügt werden:
Steuern Sie Ihre Kamera über MQTT
Verbinden Sie Ihren MQTT-Broker
Um loszulegen, verbinden Sie entweder Ihre Kamera mit Ihrem bereits konfigurierten MQTT-Broker. Oder aktivieren Sie den MQTT v5-Broker auf Ihrer Kamera:
Zurück auf in Home Assistant gehen Sie in das Menü Einstellungen und öffnen Sie die Registerkarte Geräte & Dienste:
Hier können wir nun eine neue MQTT Integration hinzufügen:
Fügen Sie die IP-Adresse Ihrer Kamera sowie den MQTT-Port und den MQTT Benutzer hinzu, die Sie zu Beginn in Ihrer Kamera konfiguriert haben:
Für 2K+ WQHD-Modelle ist es auch möglich, MQTT v5 für die Verbindung zu verwenden, was in den erweiterten Einstellungen konfiguriert werden kann:
Übermitteln Sie Ihre Änderungen und der Home Assistant verbindet sich mit Ihrem INSTAR MQTT Broker:
Add MQTT Topics to the Home Assistant UI
Nun haben Sie Zugriff auf die gesamte MQTT-Schnittstelle Ihrer Kamera und können Funktionen an Schalter, Tasten oder Schieber binden. Dies wurde bereits in einem FAQ :: Home Assistant 2022.8.6 Konfiguration für Ihren WQHD INSTAR MQTTv5 Broker beschrieben.
Anlegen der Kamera-MQTT-Entität
Wenn Sie dem oben beschriebenen Installationspfad gefolgt sind, finden Sie nun die Hauptkonfigurationsdatei unter /opt/homeassistant/config/configuration.yaml
. Hier können wir einen Import für Schalterelemente hinzufügen, die wir zum Umschalten des Kamerazustands über die MQTT-API verwenden möchten:
# MQTT
# switch: !include mqtt/switches.yaml /deprecated
mqtt: !include mqtt/entities.yaml
Erstellen Sie nun den Ordner mqtt neben der Konfigurationsdatei und erstellen Sie darin die Datei entities.yaml
:
mkdir mqtt
nano mqtt/entities.yaml
Hier können wir z.B. 4 Schalter erstellen, die die Privatsphärenmasken in unserer Kamera mit Hilfe der MQTT-Befehlstopics umschalten können. Wenn Sie z.B. Ihre Kamera so einstellen, dass sie das Präfix cameras
und die mqtt ID 201
verwendet:
Erstellen wir zunächst eine Entität für unsere Kamera, indem wir das Last-Will & Testament (LWT) Topic als Herzschlag der Kamera verwenden.
Es gibt eine neue Alarmserver API für WQHD 2K+ Kameras. Die einzelnen Schritte unten sind weiterhin gültig. Nur der URL Query nennt sich jetzt &trigger
anstelle von &active
, die Zahlenwerte haben sich geändert und ermöglichen jetzt das auswerten mehrerer, zeitgleicher Alarmauslöser! Sie finden eine Beispiel-Implementierung der MQTT- and HTTP-Alarmserver v2 API mit Node-RED hier.
Zusätzlich können wir den MQTT-Alarmserver als Sensor hinzufügen, der bei jedem Alarm benachrichtigt wird:
sensor:
- device:
identifiers: in8415_office
manufacturer: INSTAR Deutschland GmbH
model: INSTAR 2k+ IN-8415 WLAN
name: IN-8415 2k+ Office
configuration_url: "http://192.168.2.201:80"
availability:
topic: cameras/201/status/connection
payload_available: '{"val":"online"}'
payload_not_available: '{"val":"offline"}'
object_id: in8415_office_testament
unique_id: in8415_office_testament
name: IN-8415 LWT
state_topic: cameras/201/status/connection
value_template: '{{ value_json.val }}'
- unique_id: office_alarmserver
name: Office Alarmserver
state_topic: cameras/201/status/alarm/triggered
device_class: current
value_template: '{{ value_json.val }}'
Laden Sie die Konfigurationsdatei erneut und überprüfen Sie, ob das neue Gerät nun registriert ist:
Das Gerät sollte mit einem Sensor erscheinen, der den Online-Status unserer Kamera anzeigt:
Der Alarmserver funktioniert ebenfalls und aktualisiert das Auslöser Topic status/alarm/triggered
mit den Payload-Werten 1 - 10 (oder 99 für einen manuellen Auslöser), z.B. {"val":"1"}
:
- Alarm Bereich 1 ausgelöst: ->
{"val":"1"}
- Alarm Bereich 2 ausgelöst: ->
{"val":"2"}
- Alarm Bereich 3 ausgelöst: ->
{"val":"3"}
- Alarm Bereich 4 ausgelöst: ->
{"val":"4"}
- Alarm-In / PIR ausgelöst: ->
{"val":"5"}
- Audio Alarm ausgelöst: ->
{"val":"6"}
- PIR ausgelöst & Alarm Area 1 ausgelöst: ->
{"val":"7"}
- PIR ausgelöst & Alarm Area 2 ausgelöst: ->
{"val":"8"}
- PIR ausgelöst & Alarm Area 3 ausgelöst: ->
{"val":"9"}
- PIR ausgelöst & Alarm Area 4 ausgelöst: ->
{"val":"10"}
- Manuell ausgelöst (cmd=pushhostalarm): ->
{"val":"99"}
Fügen die folgende Konfiguration zur Datei entities.yaml
hinzu - tauschen Sie bei Bedarf die verwendeten MQTT-Topics durch beliebige Topic aus unserer MQTTv5 API. Sobald Sie die Konfiguration neugeladen haben, werden alle Topics als Entitäten angezeigt:
MQTT Schalter
Schalter können für Topics mit binäre Zustände verwendet werden - alles, was entweder "ein" oder "aus" sein kann:
switch:
- unique_id: office_red_alarm_area
name: Office Red Alarm Area
state_topic: cameras/201/status/alarm/areas/red/enable
command_topic: cameras/201/alarm/areas/red/enable
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_blue_alarm_are
name: Office Blue Alarm Area
state_topic: cameras/201/status/alarm/areas/blue/enable
command_topic: cameras/201/alarm/areas/blue/enable
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_green_alarm_are
name: Office Green Alarm Area
state_topic: cameras/201/status/alarm/areas/green/enable
command_topic: cameras/201/alarm/areas/green/enable
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_yellow_alarm_area
name: Office Yellow Alarm Area
state_topic: cameras/201/status/alarm/areas/yellow/enable
command_topic: cameras/201/alarm/areas/yellow/enable
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_privacy_mask_1
name: Office Privacy Mask 1
state_topic: cameras/201/status/multimedia/privacy/region1/enable
command_topic: cameras/201/multimedia/privacy/region1/enable
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_privacy_mask_2
name: Office Privacy Mask 2
state_topic: cameras/201/status/multimedia/privacy/region2/enable
command_topic: cameras/201/multimedia/privacy/region2/enable
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_privacy_mask_3
name: Office Privacy Mask 3
state_topic: cameras/201/status/multimedia/privacy/region3/enable
command_topic: cameras/201/multimedia/privacy/region3/enable
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_privacy_mask_4
name: Office Privacy Mask 4
state_topic: cameras/201/status/multimedia/privacy/region4/enable
command_topic: cameras/201/multimedia/privacy/region4/enable
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_auto_gamma
name: Office Auto Gamma
state_topic: cameras/201/status/multimedia/image/gamma/auto
command_topic: cameras/201/multimedia/image/gamma/auto
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_auto_denoise
name: Office Auto Denoise
state_topic: cameras/201/status/multimedia/image/denoise/auto
command_topic: cameras/201/multimedia/image/denoise/auto
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_flip
name: Office Flip
state_topic: cameras/201/status/multimedia/image/transform/flip
command_topic: cameras/201/multimedia/image/transform/flip
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
- unique_id: office_mirror
name: Office Mirror
state_topic: cameras/201/status/multimedia/image/transform/mirror
command_topic: cameras/201/multimedia/image/transform/mirror
qos: 1
payload_on: '{"val":"1"}'
payload_off: '{"val":"0"}'
optimistic: false
retain: false
MQTT Schaltflächen
Schaltflächen können für Topics verwendet werden, die zustandslose Auslöser sind - z.B. um einen Alarm oder einen Kameraneustart auszulösen:
button:
- unique_id: office_alarm_trigger
- name: Office Alarm Trigger
command_topic: cameras/201/alarm/pushalarm
payload_press: '{"val":"1"}'
icon: mdi:alarm-light
qos: 2
retain: false
- unique_id: office_reboot
name: Office Reboot
command_topic: system/reboot/now
payload_press: '{"val":"1"}'
icon: mdi:cog-refresh-outline
qos: 2
retain: false
Die Verwendung des Auslösers alarm/pushalarm
löst einen Alarm aus, der durch den vom MQTT-Alarmserver empfangenen Wert 99
auf dem Status-Topic alarm/triggered
erkannt werden kann:
MQTT Schieberegler
Eine Entität des Typs Number ermöglicht die Erstellung von Schiebereglern in der Oberfläche des Home Assistant. Sie können für jedes Topic verwendet werden, das einen Zahlenbereich als Payload hat:
number:
- unique_id: office_brightness
name: Office Brightness
object_id: in9408_brightness
icon: mdi:brightness-6
state_topic: cameras/201/status/multimedia/image/brightness
command_topic: cameras/201/multimedia/image/brightness
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 1
max: 100
step: 1
unit_of_measurement: '%'
qos: 1
optimistic: false
- unique_id: office_contrast
name: Office Contrast
object_id: in9408_contrast
icon: mdi:contrast-box
state_topic: cameras/201/status/multimedia/image/contrast
command_topic: cameras/201/multimedia/image/contrast
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 1
max: 100
step: 1
unit_of_measurement: '%'
qos: 1
optimistic: false
- unique_id: office_saturation
name: Office Saturation
object_id: in9408_saturation
icon: mdi:palette-outline
state_topic: cameras/201/status/multimedia/image/saturation
command_topic: cameras/201/multimedia/image/saturation
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 1
max: 100
step: 1
unit_of_measurement: '%'
qos: 1
optimistic: false
- unique_id: office_hue
name: Office Hue
object_id: in9408_hue
icon: mdi:palette-outline
state_topic: cameras/201/status/multimedia/image/hue
command_topic: cameras/201/multimedia/image/hue
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 0
max: 360
step: 1
qos: 1
optimistic: false
- unique_id: office_sharpness
name: Office Sharpness
object_id: in9408_sharpness
icon: mdi:shark-fin-outline
state_topic: cameras/201/status/multimedia/image/sharpness
command_topic: cameras/201/multimedia/image/sharpness
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 1
max: 100
step: 1
unit_of_measurement: '%'
qos: 1
optimistic: false
- unique_id: office_vibrancy
name: Office Vibrancy
object_id: in9408_vibrancy
icon: mdi:palette-outline
state_topic: cameras/201/status/multimedia/image/vibrancy/value
command_topic: cameras/201/multimedia/image/vibrancy/value
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 1
max: 255
step: 1
qos: 1
optimistic: false
- unique_id: office_gamma
name: Office Gamma
object_id: in9408_gamma
icon: mdi:gamma
state_topic: cameras/201/status/multimedia/image/gamma/preset
command_topic: cameras/201/multimedia/image/gamma/preset
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 1
max: 18
step: 1
qos: 1
optimistic: false
- unique_id: office_denoise
name: Office Denoise
object_id: in9408_denoise
icon: mdi:contrast-box
state_topic: cameras/201/status/multimedia/image/denoise/preset
command_topic: cameras/201/multimedia/image/denoise/preset
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 0
max: 15
step: 1
qos: 1
optimistic: false
- unique_id: office_max_iso
name: Office Max ISO
object_id: in9408_isomax
icon: mdi:brightness-6
state_topic: cameras/201/status/multimedia/image/isomax
command_topic: cameras/201/multimedia/image/isomax
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 1
max: 32
step: 1
qos: 1
optimistic: false
- unique_id: office_auto_ir
name: Office Auto IR LEDs
object_id: in9408_autoled
icon: mdi:lightbulb-night-outline
state_topic: cameras/201/status/features/nightvision/autoled
command_topic: cameras/201/features/nightvision/autoled
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 0
max: 2
step: 1
qos: 1
optimistic: false
- unique_id: office_auto_ircut
name: Office Auto IRcut
object_id: in9408_autoircut
icon: mdi:lightbulb-night-outline
state_topic: cameras/201/status/features/nightvision/autoircut
command_topic: cameras/201/features/nightvision/autoircut
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 0
max: 2
step: 1
qos: 1
optimistic: false
- unique_id: office_red_alarm_area_sensitivity
name: Office Red Alarm Area Sensitivity
object_id: in9408_red_area_sense
icon: mdi:cctv-off
state_topic: cameras/201/status/alarm/areas/red/sensitivity
command_topic: cameras/201/alarm/areas/red/sensitivity
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 0
max: 100
step: 1
qos: 1
optimistic: false
- unique_id: office_blue_alarm_area_sensitivity
name: Office Blue Alarm Area Sensitivity
object_id: in9408_blue_area_sense
icon: 'mdi:cctv-off'
state_topic: cameras/201/status/alarm/areas/blue/sensitivity
command_topic: cameras/201/alarm/areas/blue/sensitivity
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 0
max: 100
step: 1
qos: 1
optimistic: false
- unique_id: office_green_alarm_area_sensitivity
name: Office Green Alarm Area Sensitivity
object_id: in9408_blue_area_green
icon: mdi:cctv-off
state_topic: cameras/201/status/alarm/areas/green/sensitivity
command_topic: cameras/201/alarm/areas/green/sensitivity
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 0
max: 100
step: 1
qos: 1
optimistic: false
- unique_id: office_yellow_alarm_area_sensitivity
name: Office Yellow Alarm Area Sensitivity
object_id: in9408_blue_area_yellow
icon: mdi:cctv-off
state_topic: cameras/201/status/alarm/areas/yellow/sensitivity
command_topic: cameras/201/alarm/areas/yellow/sensitivity
value_template: '{{ value_json.val }}'
command_template: '{"val":"{{ value }}"}'
min: 0
max: 100
step: 1
qos: 1
optimistic: false
Stellen Sie den Schieberegler ein, um die Empfindlichkeit für den entsprechenden Bewegungserkennungsbereich einzustellen:
Diskutieren Sie diesen Artikel im INSTAR Forum !