Skip to content

Video DoorBell

Nico Hartung edited this page Apr 7, 2018 · 15 revisions

Es gibt die Möglichkeit eine Kamera mit einem Türöffner und einem Klingelsensor zusammen zu einem Homekit VideoDoorBell Device zu verknüpfen.

Folgende Einträge sind in der config.json dafür als eine neues Element von "special" notwendig:

"special": [ .... ] 

und bei ... muss

{	
	"name" : "FrontDoor",
	"type" : "HM-THKL-VIDEODOORBELL",
	"parameter" : {
		"camera" : {
	        "name": "Front Door",
    			"videoConfig": {
				"source": "-re -i rtsp://url_to_rtsp_of_your_camera/livestream2",
    				"stillImageSource": "-i http://url_of_a_jpg_snapshot_from_ur_camera",
		    		"maxStreams": 2,
		    		"maxWidth": 640,
		    		"maxHeight": 480,
		    		"maxFPS": 30,
		    		"vcodec": "libx264"
				}
			},			
			"address_key_event" : "BidCos-RF.1234567:1.PRESS_SHORT",
			"address_unlock_actor":"BidCos-RF.ABC12345:1.STATE",
			"pir" :{
				"address" : "BidCos-RF.1234567:1.MOTION",
				"upload":true
	    		}
		}

}

Damit das Homematic Plugin weiß, was es damit machen soll muss in der config.json noch unter services dies hier eingerichtet werden:

{   
   "type": "HM-THKL-VIDEODOORBELL",
   "service": "HomeMaticHomeKitDoorBellVideoService"
}

address_key_event entspricht der Adresse des Klingelsensors (oder jedes anderen Sensors der ausgelöst wird, wenn der Postmann klingelt

Im Normalfall werden ja KEY Kanäle für sowas verwendet. Also entweder eine Virtuelle Taste oder ein Klingelsensor. Sollte ein anderes Gerät auf das Klingeln reagieren, was zwei Zustände kennt (also Klingel gedrückt und wieder losgelassen) kann auch nur auf einen dieser gesendeten Zustände reagiert werden.

Auf welchen das Klingeln erkannt werden soll kann mit "state_key_event": .... festgelegt werden.

address_unlock_actor ist die Adresse des Datenpunktes für den Türöffner. Im Normalfall wird eine 1 gesendet. Das kann aber mit unter command_unlock_actor eingestellt werden. Der Syntax ist

"command_unlock_actor" : {"on":true,"off":false}

Es wenn ein Off Kommando gesendet werden soll, kann dies um X Sekunden verzögert werden. Diese Zeit kann mit:

"ontime_unlock_actor" : 10

eingestellt werden. Vorgabe sind 5sek.

Auf dem Raspberry Pi muss ffmpeg installiert sein. Wie das geht steht hier : https://github.com/KhaosT/homebridge-camera-ffmpeg/wiki/Raspberry-PI

VideoConfig Parameter: Es können diverse Parameter im Abschnitt videoConfig übergeben werden:

Parameter Standard / Bsp. Erklärung
source RTSP Url für den Motion Stream der Kamera
stillImageSource URL für den Snapshot der Kamera
maxWidth maximale Breite des Bildes
maxHeight maximale Höhe des Bildes
maxFPS 30 Frames per Second
maxBitrate maximale Bitrate des Streams
vcodec libx264 (Default) / h264_omx (for RPi) Motion Codec
acodec libfdk_aac Audio Codec
packetsize 1316 Paketgröße
audio true -> Audio soll mit übertragen werden

WICHTIG

Die Kamera wird nicht innerhalb der bestehenden Homebridge angezeigt. Diese muss als eigenes Gerät hinzugefügt werden. Der PIN ist der Gleiche wie zum Hinzufügen der Homebridge. (siehe pin in der config.json)

Optional kann ein PIR (oder auch jedes andere Gerät welches einen Event auslöst) zusätzlich noch eingebunden werden. Das passiert über den "pir" Eintrag in der Config. Hier muss wieder die Adresse des auslösenden Datenpunktes hinterlegt werden. Wird ein "pir" Eintrag gefunden, wird dem Door Device ein Motion Detector hinzugefügt. Dieser sendet dann auch Push Nachrichten mit einem Snapshot der Kamera.

Google Drive

Die Snapshots welche der PIR Event auslöst können optional auf einem Google Drive Konto gespeichert werden.

Setup Google Drive für Snapshot Upload:

Durchlaufen der Einrichtungserklärung : https://developers.google.com/drive/v3/web/quickstart/nodejs Schritt 1-h -> das Verzeichnis zur Ablage der Datei ist .homebridge (dort wo die config.json liegt) Schritt 2 und 3 überspringen In Schritt 4 die quickstart.js folgendermaßen aufrufen node /usr/lib/node_modules/homebridge-homematic/ChannelServices/quickstart.js

Hinweis für die GitHub Version. Es müssen folgende zwei node module manuell installiert werden:

sudo npm install -g googleapis@^18.0.0 --save
sudo npm install -g google-auth-library@0.* --save