Kontaktieren Sie mich unter info@tiemerding.com

Günstige Kamera für HomeKit (Tutorial)

Günstige Kamera für HomeKit (Tutorial)
Neben Lampen, Thermostaten und Sensoren können in HomeKit auch Kameras integriert werden. Typische Anwendungsfälle sind die Überwachung des Carport oder des schlafenden Babys. Erhältliche Kameras wie die Logitech Circle 2* oder Netatmo Presence* funktionieren direkt mit HomeKit, sind dafür aber auch sehr teuer (ab ca. 150€). Eine kostengünstige Alternative ist die Einbindung einer USB-Webcam via Homebridge.

In diesem Blogeintrag schauen wir uns die Integration der Logitech HD Webcam C270* an. Die hier beschriebenen Schritte lassen sich jedoch auch für viele andere USB-Webcams anwenden. Als Vorbedingung wird lediglich ein Raspberry Pi (z.B. Pi Zero W*, Pi 3 Model B*, Pi 3 Model B+*) mit einer Installation von Homebridge benötigt. Homebridge ist eine Open-Source-Lösung um inkompatible Geräte über einen Raspberry Pi mit HomeKit zu verbinden.

Webcam in Homebridge einbinden

System vorbereiten

Für die Integration der Webcam in Homebridge ist die Installation des Plugins homebridge-camera-ffmpeg notwendig. Dieses Plugin benötigt FFmpeg. Dabei handelt es sich um eine Reihe von Programmbibliotheken, zur Bearbeitung von digitalen Video- und Audiomaterial.

Standardmäßig hat der Prozessor des Raspberry Pi jedoch nicht genug Leistung für FFmpeg. Daher muss FFmpeg mit dem Plugin OpenMAX H.264 GPU acceleration (OMX) verwendet werden. Dieses Plugin ermöglicht eine Unterstützung der Grafikkarte bei vielen Operationen.

FFmpeg mit OMX kann entweder (relativ kompliziert) selbst erstellt werden oder man nutzt vorkompilierte Pakete externer Entwickler. Diese Vorgehensweise nutzen wir auch hier. Zunächst wird das vorkompilierte Paket heruntergeladen.

1
$ sudo wget goo.gl/gMGA81 -O ffmpeg.deb

Im Anschluss kann das Paket (wie gewohnt) installiert werden.

1
$ sudo dpkg -i ffmpeg.deb

Homebridge Plugin

Wie bereits erwähnt, nutzen wir das Plugin homebridge-camera-ffmpeg des Programmierers Khaos Tian. Die Installation des Plugins läuft wie gewohnt.

1
$ (sudo) npm install -g homebridge-camera-ffmpeg

Sudo ist nicht zwingend erforderlich, kann aber je nach Setup aber notwendig sein. Im Anschluss muss die Konfiguration config.json von Homebridge erweitert werden.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
  "platform": "Camera-ffmpeg",
  "cameras": [
    {
      "name": "Logitech C270",
      "videoConfig": {
        "source": "-f v4l2 -r 30 -s 1280x720 -i /dev/video0",
        "stillImageSource": "-f v4l2 -s 1280x720 -i /dev/video0",
        "maxStreams": 2,
        "maxWidth": 1280,
        "maxHeight": 720,
        "maxFPS": 30,
        "vcodec": "h264_omx"
      }
    }
  ]
}

Die Parameter wie Bildgröße (maxWidth / maxHeight) und Bilder pro Sekunde (maxFPS) sind auf die verwendete Kamera anzupassen. Die Werte sind auch bei source und stillImageSource Verwendung (-r 30 / -s 1280×720) einzutragen.

Für die hier verwendete Logitech Camera wird für source und stillImageSource auf /dev/video0 verwiesen. Unter dieser “Adresse” kann das Betriebssystem auf USB-Kameras zugreifen.

Als Parameter für den Videocodec (vcodec) ist h264_omx zu wählen, so dass FFmpeg mit OMX verwendet wird. Der Standardwert libx264 ist hier nicht geeignet.

Nach der Einrichtung muss Homebridge einmalig neu gestartet werden.

Webcam in der Home App einrichten

Nach der Einrichtung in Homebridge muss die Kamera noch als Gerät in der Home App hinzugefügt werden. Dabei ist ein achtstelliger Code notwendig. Es handelt es sich hier um den Code, welcher schon bei der Einrichtung der Homebridge verwendet wurde. Sofern die Standardkonfiguration genutzt wird, ist der Code 031-45-154.

Die Kamera kann anschließend verwendet werden.

Alternative

Wer keine USB-Webcam zur Hand hat kann entweder auch ein altes iPhone nutzen oder greift, wie oben erwähnt, auf erhältliche Kameras wie die Logitech Circle 2* oder Netatmo Presence* zurück.

Hinweise

  • Auf den Wikiseiten des Plugins werden einige Tipps und Hinweise sowie getestete Konfigurationen aufgeführt.
  • Die Übertragung von Ton wird standardmäßig nicht unterstützt. Hierzu muss FFmpeg mit der Option enable-libfdk-aac erstellt / installiert und der Parameter audio auf true gesetzt werden, siehe hierzu auch GitHub.

 

Die mit Sternchen (*) gekennzeichneten Verweise sind sogenannte Provision-Links. Wenn du auf so einen Link klickst und darüber einkaufst, bekomme ich von deinem Einkauf eine Provision. Für dich verändert sich der Preis nicht.