Ich verwende seit einiger Zeit Tvheadend (https://tvheadend.org/) als TV-Recorder und habe nach einer Integration für Heimautomatisierungssysteme gesucht.
Meine Anforderungen:
- Übersicht über vergangene und künftige Aufnahmen
- Übersicht über die Auslastung der Speicherplatzes
- Vermeidung von Polling: nach Abschluss einer Aufnahme soll der aktuelle Tvheadend-Status aktiv versendet werden
- Möglichkeit zur Integration in FHEM und andere Heimautomatisierungssysteme
- Wenig Abhängigkeiten und möglichst hohe Isolation vom System
- Erweiterbarkeit und Konfigurierbarkeit durch den Anwender
Punkt 1 ist über Aufrufe der Tvheadend-HTTP-API möglich.
Punkt 2 ist derzeit (Tvheadend
4.3-1789~g6bfeca6c0) nicht über die Tvheadend-HTTP-API möglich (https://github.com/tvheadend/tvheadend/pull/1018), sondern nur über das HTSP-Protokoll oder das Betriebssystem.
Punkt 3 lässt sich über die in Tvheadend eingebauten Post-Prozessoren umsetzen.
Punkt 4 verlangt standardisierte Protokolle für Kommunikation und Datenformat.
Punkt 5 steht in Konkurrenz zu den Punkten 2, 3 und 4.
Da ich keine passende Lösung gefunden habe, habe ich eine entwickelt: einen Adapter der Tvheadend-API auf MQTT namens
tvheadend-mqtt.
Funktionsweise: Interessierte Clients abonnieren ein MQTT-Topic und erhalten nach jeder Aufnahme den aktuellen Tvheadend-Status im JSON-Format. Zusätzlich sind aktive Abfragen möglich. Betrieben wird der Adapter in einem Docker-Container, getrennt von Tvheadend und FHEM. Falls Clients durch Tvheadend benachrichtigt werden sollen, müssen Tvheadend und
tvheadend-mqtt gemeinsamen Zugriff auf ein Verzeichnis haben.
tvheadend-mqtt befindet sich auf Github (https://github.com/git-developer/tvheadend-mqtt) und Docker Hub (https://hub.docker.com/r/dockomento/tvheadend-mqtt). Dort liegt auch die Dokumentation mit einem Beispiel für die Einbindung in FHEM.
Als Alternative zur Einbindung von Tvheadend in FHEM gibt es übrigens auch das Modul 70_Tvheadend (https://forum.fhem.de/index.php/topic,85932.html).