Zum Inhalt
NEXVIEW

Betrieb · Kapitel 15

Home Assistant.

Jemand fragt einen Film an, dein Handy meldet sich, zwei Knöpfe, fertig. Das ist der Kern der Integration für Home Assistant. Der Rest ist Zugabe: jede Radarr- und Sonarr-Instanz als eigenes Gerät, die Medienserver daneben, die Kontingente der Bewohner und ein Kalender mit dem, was demnächst erscheint. Die Integration ist ein eigenes Projekt unter der MIT-Lizenz, mit eigenen Fassungsnummern, eigenen Tests und eigenem Fehlerbericht. Dieses Kapitel zeigt, wie du sie einrichtest.

Jeder verbindet sich selbst

Das Ungewöhnliche zuerst: Es gibt keine Haus-Anbindung, in die alle hineinsehen. Jeder trägt in seinem eigenen Home Assistant seinen eigenen Schlüssel ein und bekommt seine eigenen Zahlen. Wer im selben Haushalt ein eigenes Home Assistant betreibt, bekommt seines, und keiner sieht das des anderen.

Der Schlüssel entscheidet, was entsteht. Die Rechte eines API-Tokens hängen am Konto, dem er gehört. Die Integration fragt zuerst nach, was ein Schlüssel darf, und legt nur an, was dazu passt. Ein persönlicher Schlüssel ergibt eine Handvoll Einträge, ein Schlüssel eines Administrators alles. Nichts steht grau herum, nichts antwortet beim Drücken mit einem Verbot. Ein Schlüssel mit „Darf nur lesen“ reicht für alles Anzeigen und auch für die Benachrichtigungen. Er bekommt keine Knöpfe und darf keine Anfrage entscheiden, wird aber benachrichtigt.

Einrichten

  1. Die Integration holen

    Sie liegt nicht im Katalog von Home Assistant, sondern in einem eigenen Projekt. In HACS fügst du sie einmal als benutzerdefiniertes Repository hinzu: HACS, die drei Punkte, „Custom repositories“, Adresse DerKezorm/nexview-homeassistant, Art „Integration“. Danach installierst du sie, startest Home Assistant neu und wählst „Geräte & Dienste“ und die Integration „Nexview“. Danach wird sie wie alles andere aktualisiert.

  2. Den Schlüssel anlegen

    In Nexview öffnest du „Profil › Konto › Sicherheit“ und legst unter „API-Token“ mit „Token anlegen“ einen an. Gib ihm einen Namen, den du später wiedererkennst, etwa „Home Assistant“. Er beginnt mit nxv_ und wird genau einmal angezeigt, kopiere ihn gleich. Die Integration nennt den Abschnitt in ihrem Dialog „Access keys“, gemeint ist derselbe.

  3. Verbinden

    In Home Assistant trägst du die „Address“ ein, unter der Nexview antwortet, etwa http://nexview.local:5173, und den „Access key“. Mehr ist es nicht. Was daraus entsteht, hängt am Konto, dem der Schlüssel gehört.

Home Assistant
Home Assistant, Geräte und Dienste: Der Dialog „Connect to Nexview“ mit den zwei Feldern „Address“ und „Access key“ und dem Hinweis, dass Nexview 0.30.0 oder neuer gebraucht wird.
Zwei Felder. Der Dialog sagt gleich dazu, woher der Schlüssel kommt und was ein Nur-Lese-Schlüssel bedeutet.

Gebraucht werden Nexview 0.30.0 oder neuer und Home Assistant 2026.3 oder neuer. Eine zu alte Nexview-Installation weist die Integration mit einem Satz ab, der den Grund nennt, statt mit einem Fehler, den niemand deuten kann. Wie du die Adresse bei einem Proxy angibst, steht im Kapitel Hinter einem Proxy.

Was entsteht

Ein Eintrag in Home Assistant, aber nicht ein Gerät: Was Nexview getrennt kennt, wird auch drüben getrennt geführt. Fällt eine Instanz weg oder kommt eine dazu, wächst und schrumpft die Liste mit, ohne Neustart.

Home Assistant › Nexview
Die Geräteseite „Nexview (admin)“ in Home Assistant mit Sensoren wie „Failed in the last 7 days“, „Findings, warnings“, „Free space“ und „Used by the library“, drei Ereignis-Entitäten, der Aktualisierungsmeldung und den verbundenen Geräten Plex Server, Radarr, Radarr 4K und Sonarr.
Ein Gerät, mehrere Karten: Sensoren, Ereignisse und darunter die Instanzen.
  • Nexview selbst. Das Haus auf einen Blick und die eigenen Zahlen des Kontos: Kontingent und Verbrauch, ungelesene Benachrichtigungen, eigene offene Tickets. Mit einem Administrator-Schlüssel kommen die Werte für das ganze Haus dazu: wartende Anfragen, Anfragen in Arbeit, Fehlschläge der letzten sieben Tage, Befunde je Stufe, freier und belegter Speicher. Dazu der Kalender „Upcoming“, drei Ereignis-Entitäten (Anfragen, Speicher, Betrieb) und die Aktualisierungsmeldung. Alle Werte führen Verlauf.
  • Jedes Radarr und jedes Sonarr als eigenes Gerät unter Nexview, mit „Reachable“, „Problems“, „Version“, „Queue“ und „Stuck in queue“ und dem Knopf „Test connection“. Wer zwei Radarr fährt, eines davon für 4K, sieht beide getrennt. Home Assistant spricht nie selbst mit ihnen, sondern immer über Nexview.
  • Jeder Medienserver. Plex, Jellyfin und Emby bekommen je eines: wie viele Titel darauf liegen, wie viele Wiedergaben laufen und wie viele davon der Server umrechnet.
  • Ausgewählte Konten. Kontingente und Verbrauch je Person. Ohne Auswahl entsteht hier nichts, das ist Absicht: Eine Installation mit dreißig Konten soll nicht mit zweihundert Werten überschüttet werden. Die Auswahl steht in den Optionen der Integration.

Wo keine Grenze ist, entsteht kein Eintrag. Wer kein Kontingent hat, bekommt keinen Rest-Wert, der auf Dauer „nicht verfügbar“ sagt. Was ein Administrator anfragt, gehört in Nexview dem Haus, also entsteht sein belegter Platz gar nicht erst. Jede einzelne Entität erklärt die Seite des Projekts auf GitHub.

Vom Handy aus entscheiden

Das ist der Grund, warum es die Integration gibt. Nexview sagt Home Assistant, dass jemand etwas angefragt hat, dein Handy zeigt es mit zwei Knöpfen, und die Antwort geht gleich zurück. Dafür meldet die Integration bei der Einrichtung ein Ziel bei Nexview an, und Nexview schickt von sich aus, statt dass Home Assistant im Takt nachfragen muss. Sie richtet das selbst ein, auch den vierstelligen Bestätigungscode, den Nexview für jedes Ziel verlangt, fängt sie selbst ab. Du tippst nichts zwischen zwei Fenstern ab.

Dieses Ziel gehört deinem Schlüssel und niemandem sonst. Es trägt genau das, was auch in deiner Glocke in Nexview stünde: deine Anfragen, deine Tickets, dein Speicher. Du siehst die Adresse in Nexview unter „Profil › Konto › Sicherheit“, neben dem Schlüssel, der sie angemeldet hat, und trennst sie dort mit „Nicht mehr benachrichtigen“. Ein Administrator sieht unter „Einstellungen › Benachrichtigungen“ im Abschnitt „Rückkanäle“ alle angemeldeten Ziele auf einmal.

Kann Nexview Home Assistant nicht erreichen, läuft alles weiter, nur langsamer, und ein Reparaturhinweis in Home Assistant nennt den Grund. Eine Automation, die auf eine wartende Anfrage antwortet, sieht so aus:

automations.yaml
automation:
  - alias: Nexview, Anfrage wartet
    triggers:
      - trigger: event.received
        target:
          entity_id: event.nexview_requests
        options:
          event_type: pending
    actions:
      - action: notify.mobile_app_dein_handy
        data:
          title: "{{ trigger.to_state.attributes['title'] }}"
          message: "{{ trigger.to_state.attributes['body'] }}"
          data:
            actions:
              - action: NEXVIEW_APPROVE
                title: Freigeben
              - action: NEXVIEW_REJECT
                title: Ablehnen

Zwei Einzelheiten, die einen Abend gekostet haben. target: ist nicht optional, die Entität steht darunter und nicht daneben, sonst meldet der Editor „no target set“ und speichert nicht. Und das Ereignis kommt als Zustandsänderung, nicht als Bus-Ereignis: Seine Felder stehen in trigger.to_state.attributes, und trigger.event.data gibt es nicht. Nimm eckige Klammern, denn attributes.title löst zur String-Methode title auf statt zum Feld.

Die beiden Knöpfe verdrahtest du mit einer zweiten Automation, die auf mobile_app_notification_action hört und nexview.approve_request oder nexview.reject_request aufruft. Jedes Ereignis trägt title, body, level, url (wohin es in Nexview zeigt), image und nexview_event mit dem Namen, den Nexview verwendet hat. Dieselbe Form gilt für event.nexview_operations mit event_type: ticket bei einem neuen Ticket und event.nexview_storage mit release_requested, wenn jemand einen Titel abgegeben hat.

Gut zu wissenZeigt url an eine unerwartete Stelle, prüfe die öffentliche Adresse von Nexview unter „Einstellungen › System › Adresse“. Nexview baut den Link selbst, und eine falsche Adresse schickt jede Benachrichtigung dorthin, nicht nur die an Home Assistant.

Aktionen

Was eine Automation tun kann, steht als Aktion bereit und nicht als Schalter. Entscheiden darf nur, wessen Schlüssel es darf. Die lesenden Aktionen gehen mit jedem Schlüssel.

AktionWas sie tut
approve_requestEine Anfrage freigeben.
reject_requestEine Anfrage ablehnen, auf Wunsch mit Begründung.
defer_requestEine Anfrage zurückstellen, statt sie abzulehnen.
cancel_requestEine laufende Anfrage abbrechen.
list_requestsDie wartenden Anfragen holen, mit Titel, Konto und Datum.
searchIn Nexview nach einem Titel suchen.
active_downloadsWas gerade geladen wird, mit Fortschritt.
get_quotaDas Kontingent eines Kontos abfragen.
now_playingWer gerade was schaut.

Wer gerade was schaut, ist bewusst keine Entität. Es kommt aus einer Aktion, weil es in den Moment gehört, in dem jemand fragt, und nicht in eine Datenbank, die alles jahrelang behält.

Was bewusst fehlt

  • Einstellen kann man nichts. Keine Schalter für Konten, keine für Kontingente, kein Zurücksetzen. Gelesen wird alles, entschieden werden Anfragen, und ein paar Betreiber-Handgriffe gibt es als Knöpfe: nach Updates suchen, den Speicherabgleich laufen lassen, Befunde als gesehen markieren. Knöpfe gibt es nur mit Schreibrecht. Eine Automation, die um drei Uhr nachts danebengeht, soll an nichts anderes herankommen.
  • Kinderkonten tauchen nicht auf. Sie sind in Nexview Unterprofile ihrer Eltern, und ihre Namen und Wünsche gehören nicht in eine Datenbank, die alles für immer mitschreibt. Ein Kinderwunsch löst ein Ereignis bei den Eltern aus, mehr nicht.
  • Anfragen stellen geht nicht. Entschieden wird in Home Assistant, gesucht auch, aber angefragt wird in Nexview. Eine Anfrage hat Folgen für ein Kontingent, und die gehört dorthin, wo man sieht, was man auslöst.
  • Ein Eintrag je Konto. Dasselbe Nexview lässt sich zweimal mit zwei Schlüsseln anlegen, dasselbe Konto zweimal nicht.
  • Eine Sprache je Rückkanal. Die Integration fragt nach der Sprache, auf die dieses Home Assistant eingestellt ist. Ändert sich die Sprache später, behält das Ziel die alte, bis du den Eintrag neu einrichtest.

Wieder entfernen

Lösche den Eintrag in Home Assistant. Das nimmt Entitäten und Geräte mit und meldet das Ziel ab. In Nexview bleiben zwei Dinge liegen, die du aufräumst: Im Profil widerrufst du den Schlüssel („Widerrufen“), und das trennt auch das Ziel. Unter „Einstellungen › Benachrichtigungen“ steht außerdem möglicherweise ein Webhook-Ziel mit dem Namen „Home Assistant (…)“. Löschst du es nicht, ruft Nexview weiter eine Adresse an, die nicht mehr lauscht, und füllt seinen Ausgang mit Fehlschlägen.

Gut zu wissenWenn nur „Reachable“ entsteht: Der Schlüssel entscheidet, was es gibt. Lade in Home Assistant die Diagnose des Eintrags herunter. Dort steht, was der Schlüssel darf. Ist er „nur lesen“, kann er nur Zahlen zeigen. Eine Zahl, die „nicht verfügbar“ sagt, ist bei einem Kontingent die richtige Antwort: Das Konto hat keine Grenze, also bleibt nichts übrig, das man zählen könnte.

Als Nächstes folgt der Umzug von einem anderen System: Umzug von Seerr. Die Seite Home Assistant unter den Funktionen fasst die Integration zusammen, das Projekt selbst liegt auf GitHub.