Skip to content

Home Assistant Integration ​

Die camera.ui Integration verbindet einen bestehenden camera.ui Server mit Home Assistant. Deine Kameras, ihre Sensoren, Bewegungs- und Objekterkennung, PTZ-Steuerung und die komplette camera.ui Oberfläche erscheinen direkt in Home Assistant.

Sie spricht den Server direkt über dein lokales Netzwerk an, Ereignisse kommen per Push. Kein MQTT-Broker und kein Cloud-Dienst ist beteiligt. Die Domain der Integration ist cameraui. Um camera.ui selbst in Home Assistant OS laufen zu lassen, siehe die Seite App.

Installation ​

Die Integration wird über HACS als Custom-Repository verteilt.

  1. Füge in HACS cameraui/homeassistant-integration als Custom-Integration-Repository hinzu.
  2. Installiere camera.ui aus HACS.
  3. Starte Home Assistant neu.

Verbinden ​

Erkennung ​

camera.ui kündigt sich im lokalen Netz über mDNS an (_camera-ui._tcp.local.). Sobald Home Assistant den Server sieht, erscheint unter Einstellungen → Geräte & Dienste eine camera.ui gefunden-Karte. Öffne sie und gib deinen API-Token ein, Host und Port kommen aus der Erkennung.

Die gefundene camera.ui-Karte in Home Assistant

Manuelle Einrichtung ​

Wenn die Erkennung den Server nicht erreicht (zum Beispiel in einem anderen Subnetz), füge ihn von Hand hinzu:

  1. Gehe zu Einstellungen → Geräte & Dienste → Integration hinzufügen und suche nach camera.ui.
  2. Gib Host, Port (Standard 3443) und deinen API-Token ein.

API-Token ​

Beide Wege brauchen einen API-Token. Erstelle einen in camera.ui unter Einstellungen → Account → API-Tokens.

Nimm den Token eines Admin-Accounts. Das Steuern von camera.ui-Sensoren aus Home Assistant (Schlösser, Tore, Lichter, Sirenen, Alarmanlagen, PTZ) braucht Admin-Rechte; mit einem Viewer-Token erscheinen die Entitäten zwar, ihre Befehle werden aber abgelehnt.

Die Einrichtung prüft den Token gegen den Server: ein abgelehnter Token ergibt einen Authentifizierungsfehler, ein unerreichbarer Server einen Verbindungsfehler.[1]

Was du bekommst ​

Die Integration legt ein Home Assistant Gerät pro Kamera an und hält die Liste aktuell. Sie liest die Kameraliste alle 60 Sekunden neu, und eine Kamera, die du in camera.ui entfernst, wird automatisch aus Home Assistant entfernt.

Kameras ​

Jedes Kameragerät trägt eine Kamera-Entität, die live streamt und Snapshots liefert. Das Gerät ist mit dem Hersteller camera.ui gekennzeichnet und verlinkt zurück auf die Weboberfläche des Servers.

Ein camera.ui-Gerät in Home Assistant mit seinen Sensoren

Sensoren ​

Jeder freigegebene Sensor in camera.ui wird auf der passenden Plattform in Home Assistant gespiegelt, egal ob er zu einer Kamera gehört oder nicht:

camera.ui SensorHome Assistant Plattform
Binär / Kontaktbinary_sensor
Messwertsensor
Schalterswitch
Lichtlight
Sirenesiren
Schlosslock
Abdeckungcover
Alarmanlagealarm_control_panel

Kamera-Hardware (das eigene Spotlight, die Sirene oder die Batterie einer Kamera) landet am Gerät der Kamera. Jeder andere Sensor wird ein eigenes Gerät und hängt unter seiner Kamera, wenn er genau einer zugewiesen ist. Ob ein Sensor überhaupt rüberkommt, entscheidet der Schalter Sensor freigeben auf der Sensoren-Seite. Kamera-Hardware hat keinen Schalter, sie folgt immer ihrer Kamera.

Die steuerbaren funktionieren in beide Richtungen: ein switch und eine siren schalten an und aus, ein light schaltet an und aus (und dimmt, wenn es Helligkeit meldet), ein cover öffnet und schließt, ein lock ver- und entriegelt, und ein alarm_control_panel aktiviert Home, Away oder Night und deaktiviert.

Fügst du in camera.ui einen Sensor hinzu, benennst ihn um, weist ihn neu zu, gibst ihn frei oder löschst ihn, folgt die passende Home Assistant Entität live, ohne Neustart. Ein Sensor, dessen Plugin offline ist, zeigt sich als nicht verfügbar.

Bewegungs- und Objekterkennung ​

Jede Kamera bekommt einen motion-Binärsensor, der eingeschaltet ist, solange eine Erkennung aktiv ist.

Kameras mit Objekterkennung bekommen zusätzlich je einen Binärsensor für person, vehicle, animal und package. Jeder ist eingeschaltet, solange das Objekt im Bild ist, und geht aus, wenn die Erkennung endet.[2]

Erkennungssensoren ​

Kameras mit dem passenden Detektor bekommen Wert-Sensoren für face, license plate und classification. Der Wert des Sensors sind die erkannten Labels, die rohen Erkennungen liegen in seinen Attributen.

Updates ​

Home Assistant bekommt außerdem Update-Entitäten für den camera.ui-Server und seine Plugins. Verfügbare Updates erscheinen in der Updates-Liste von Home Assistant und lassen sich von dort installieren. Der Update-Dialog bietet an, vorher eine Sicherung anzulegen: Dann schreibt camera.ui zuerst ein Backup und bricht das Update ab, wenn das schiefgeht. Schalte Updates aus Home Assistant erlauben in den Optionen der Integration aus, um die Updates sichtbar zu lassen, aber ohne Installieren-Knopf.

PTZ ​

Schwenken, Neigen und Zoomen wird als Dienst bereitgestellt, cameraui.ptz, nicht als Entität. Wähle eine oder mehrere Kamera-Entitäten als Ziel und eine Aktion:

  • continuous. Mit fester Geschwindigkeit bewegen, bis gestoppt wird, pan, tilt und zoom sind dabei Geschwindigkeiten.
  • stop. Eine laufende Bewegung stoppen.
  • move. Um einen relativen Schritt bewegen.
  • absolute. Zu einer absoluten Position fahren.
  • home. Zur Home-Position zurückkehren.
  • preset. Ein gespeichertes Preset per Name aufrufen.

Die Felder pan, tilt und zoom reichen von -1 bis 1. Die Aktion preset braucht einen Preset-Namen. Hat keine der Zielkameras PTZ, meldet der Dienst einen Fehler.

yaml
action:
  - service: cameraui.ptz
    target:
      entity_id: camera.driveway
    data:
      action: preset
      preset: gate

Automatisierungen ​

Geräte-Trigger ​

Jedes Kameragerät bietet drei Trigger im Automatisierungs-Editor:

  • Detection started. Eine Erkennung hat an der Kamera begonnen.
  • Detection ended. Die Erkennung ist beendet.
  • Object recognized. Ein Gesicht, Kennzeichen oder eine Klassifizierung wurde während einer Erkennung erkannt.

Der Event-Bus ​

Die Integration feuert außerdem ein cameraui_event auf dem Home Assistant Event-Bus, mehrmals über den Verlauf einer Erkennung:

stateWann
startEine Erkennung beginnt.
objectEin neues Objekt-Label taucht während der Erkennung auf.
recognizedEin Gesicht, Kennzeichen oder eine Klassifizierung wird während der Erkennung erkannt.
endDie Erkennung endet.

Jedes Ereignis trägt diese Felder:

FeldInhalt
camera_idDie id der Kamera.
camera_nameDer Name der Kamera.
stateEiner der Werte oben.
detection_typesDie beteiligten Erkennungstypen.
event_idDie id, die alle Ereignisse einer Erkennung teilen.
labelsGesehene Objekt-Labels.
facesErkannte Gesichter.
platesErkannte Kennzeichen.
classificationsWeitere erkannte Attribute.
attributesDie vollständige rohe Attributliste.

Filtere auf state, um auf einen bestimmten Punkt im Verlauf zu reagieren:

yaml
automation:
  - alias: Notify on recognized face
    trigger:
      - platform: event
        event_type: cameraui_event
        event_data:
          state: recognized
    action:
      - service: notify.mobile_app
        data:
          message: >-
            {{ trigger.event.data.faces | join(', ') }}
            seen at {{ trigger.event.data.camera_name }}
yaml
automation:
  - alias: Turn on light when a person appears
    trigger:
      - platform: event
        event_type: cameraui_event
        event_data:
          state: object
    condition:
      - "{{ 'person' in trigger.event.data.labels }}"
    action:
      - service: light.turn_on
        target:
          entity_id: light.driveway

Für den Zustand object gibt es keinen Geräte-Trigger, nutze dafür den Event-Bus.[3]

Die Einrichtung fügt der Home Assistant Seitenleiste einen camera.ui-Eintrag hinzu, der die komplette camera.ui Oberfläche einbettet. Das Panel ist nur für Admins: Es erscheint für Administrator-Konten und bleibt für alle anderen verborgen.

Dashboard-Karten ​

Drei Karten kommen mit der Integration und melden sich selbst an: eine Kamera, eine Camview-Ansicht und ein Streifen mit den letzten Ereignissen. Ihre Optionen stehen unter Dashboard-Karten.

Kartenzugriff ​

Die Optionen der Integration legen fest, wer sie nutzen darf: standardmäßig nur Administratoren, wahlweise alle Home-Assistant-Nutzer. Die Karten erreichen camera.ui über Home Assistant mit dem Token der Integration, wer sie freigibt, gibt also jedem Home-Assistant-Nutzer das, was dieses Token sehen darf. Viewer-Token nimmt ein zweites camera.ui-Token, das für alle ohne Home-Assistant-Adminrechte verwendet wird, damit lässt sich ein eingeschränktes camera.ui-Konto dahinter setzen.

Aufnahmen im Medien-Browser ​

Ereignisse mit Aufnahme erscheinen im Medien-Browser von Home Assistant unter camera.ui: erst die Kameras, dazu ein Eintrag Alle Kameras, dann die Tage, dann die Ereignisse selbst, jedes mit Vorschaubild und benannt nach Uhrzeit und Erkanntem. Ein Klick spielt den Clip ab, und zwar schon während der Export noch läuft. Jeder Eintrag lässt sich per media_player.play_media auf einen Fernseher oder Lautsprecher schicken.

Der Medien-Browser mit den Ereignissen eines Tages und Vorschaubildern

Clip-Qualität in den Optionen bestimmt, was diese Clips nutzen: den Sub-Stream, klein und schnell, oder den Haupt-Stream in voller Qualität.

Nächste Schritte ​

  • App — camera.ui selbst als Home Assistant OS App betreiben.
  • Dashboard-Karten — die Karten auf einem Dashboard konfigurieren.
  • Sensoren — einer Kamera Sensoren zuweisen, damit sie Home Assistant erreichen.

  1. Der Server wird über HTTPS erreicht. Die Integration prüft das Zertifikat nicht, ein selbstsigniertes camera.ui Zertifikat funktioniert also ohne zusätzliche Einrichtung. ↩︎

  2. Bewegungs- und Objekt-Binärsensoren werden mit der Geräteklasse motion registriert, sie erscheinen in Home Assistant also als Bewegungssensoren und nicht als eigene Objektklasse. ↩︎

  3. Die drei Geräte-Trigger entsprechen start, end und recognized. Um auf ein bestimmtes Objekt-Label mitten in einer Erkennung zu reagieren, lausche wie oben gezeigt auf cameraui_event mit state: object. ↩︎