ich habe mehrere Instar Kameras (Full HD) und würde diese gerne so in openHAB einbinden, dass ich bei einer Bewegung einen virtuellen Switch schalte.
Nun habe ich bereits viel hier und im openHAB-Forum darüber gelesen, aber eine funktionierende Lösung habe ich nicht gefunden.
Derzeitiger Stand:
Die Kameras sind in openHAB via ONVIF eingebunden und der Alarmserver der jeweiligen Kamera wurde mit „POST-Request“ → aktiv und „Alarmauslöser anhängen“ → aktiv konfiguriert.
Nun weiß ich aber leider nicht so ganz, was beim Serverpfad anzugeben ist und wie ich openHAB dazu bekomme, dass bei einer Bewegung der virtuelle Switch geschalten wird.
Hat jemand vielleicht diese Konstellation bereits eingerichtet und kann mir da weiterhelfen?
damit habe ich selber noch nicht gearbeitet in OpenHAB - aber die Alarmserver Funktion kontaktiert einfach eine URL die in OpenHAB eingerichtet werden muss. D.h. man braucht bei OpenHAB die sog. REST API:
Diese API stellt dann eine URL bereit, die man z.B. mit dem Browser aufrufen kann. Jedes mal wenn man die Seite dann im Browser aktualisiert, wird in OpenHAB ein Ereignis ausgelöst - welches man dann entsprechend an eine Aktion anbinden kann.
Achtung: Auf diese Weise kann man nur GET Requests testen. Für POST Requests braucht man spezielle Tools. Zum Beispiel POSTMAN. Ich würde daher erstmal versuchen den GET Weg zum Laufen zu bekommen, da er einfacher zu debuggen ist.
Sobald man das am Laufen hat, kann man diese URL beim Alarmserver in der Kamera hinterlegen. Die Kamera macht dann im Alarmfall genau das, was man zuvor per Browser gemacht hat.
Dann sind da ein paar Fehler in der Alarmserver Einstellung:
Im Befehl ist der Port 1111 und in der UI steht 8443
Die ausgeschwärzte Adresse in der UI ist 192.123.1.123 ?
Der Pfad in der UI ist zu kurz - da müsste dann /rest/items/Motion_Event_frontcam rein
Der Befehl sendet nur den String ON als data payload als JSON formatiert. Der Alarmserver ist aber konfiguriert das als Payload zu senden: {"dummy_switch":"ON"} - d.h. der Switch in OpenHAB müsste da mit JSONPath.dummy_switch erstmal das ON extrahieren.
@m.polinowski entschuldige vielmals, bei dem Befehl handelte es sich nur um ein Beispiel.
Ich habe mittlerweile die Lösung gefunden. Es lag an meinen Netzwerkeinstellungen. openHAB läuft in einem Docker und es wurde vom Binding das zugehörige Subnetz dafür verwendet, worauf ich keinen Zugriff hatte. Nachdem ich in den Netzwerkeinstellungen von openHAB die richtige IP-Adresse und somit das richtige Subnetz als Standard definiert hatte, lief alles problemlos.
Sollte jemand über diesen Thread stolpern, es muss eigentlich nichts gemacht werden, außer das ipcamera-Binding zu installieren und den entsprechenden Channel (MotionAlarm) zu aktivieren. Die Einstellungen für den Alarmserver macht das Binding automatisch.
Wo kann man das in der Oberfläche auswählen ? Hat man da ein Drop Down Menü in dem alle verfügbaren Interfaces gelistet werden? Oder muss man es von Hand eingeben?
Wenn man den Container mit --net=host sollte er eigentlich auch nichts von den virtuellen Welten mitbekommen. Es sei denn der Container wird parallel noch einem zusätzlichen Netzwerk zugeordnet. Aber nicht sicher ob das geht in Docker.
Genau, Docker schaut bei mir auch nicht viel anders aus, nur dass ich einen Stack mit der openhab:latest Version laufen habe. Am Raspberry/Docker sind mehrere virtuelle Netzwerke eingerichtet, denke jedoch, dass es bei einer openHABian Standardinstallation oder einer „Standard-Docker“ Installation zu keinerlei Probleme kommen sollte.
Aber vielleicht irgendwo einen Hinweis setzen, dass man da mal nachschaut, sollte beim Alarmserver ein anderes Netz vom Binding eingetragen werden. Dies gilt auch für die URL-Channels, dort wird dann auch diese IP-Adresse verwendet.