'Security Cam Overlay Addon' Reloaded

  • Hallo kodinerds Community,

    bisher war ich hier nicht als Entwickler aktiv, obwohl ich für den "Hausgebrauch" schon ein paar kleinere kodi Addons gebaut habe.

    In meinem letzten Projekt habe ich mir ein existierendes, älteres Projekt von Ryan Melena Noesis vorgenommen, das in der Lage ist, den JPEG Feed einer Security Cam als Overlay auf dem kodi Bildschirm darzustellen. Das Addon trägt den Namen 'Security Cam Overlay' und findet sich auf Github

    Es gab bereits einige Ansätze, das Addon für mehrere Security Cams zu erweitern, wovon mir aber keiner richtig gefiel. Ich habe daher das bestehende Addon überarbeitet und habe hier eine neue Version abgelegt, mit der es nun möglich ist, bis zu vier Camera Feeds in einem Overlay darzustellen. Die Feeds und verschiedene Darstellungsoptionen lassen sich über die Addon-Einstellungen anpassen. Das Addon unterstützt Deutsch und Englisch und sollte "eigentlich" auf allen Plattformen laufen. Ich selber habe es mit kodi 18 beta 1 auf Ubuntu 18.04 getestet.


    Die Installation sollte über den Download des Zip Archivs möglich sein.

    Ich hoffe, dass es dem ein oder anderen gefällt bzw. nützt. Für Fehler und Erweiterungen gebe ich gerne über diesen Thread Support. Allerdings bitte ich vorab zu entschuldigen, wenn die Rückmeldung mal nicht zeitnah erfolgt, da ich beruflich oft unterwegs bin und dann auch nicht immer die Zeit oder Zugang zum Internet habe.

    Als kleine Ergänzung habe ich ein Skript erstellt, welches die Ausführung des Addons automatisch anstößt, wenn eine Email von einem bestimmten Absender (Security Cam) mit einer bestimmten Betreffzeile empfangen wird. Das Skript läuft bei mir auf einem Raspberry. Getestet habe ich mit einem Mail Account von web.de (Freemail).

    Wen es interessiert, der findet das Skript hier.

    Der Paulemann

  • danke für deine arbeit.
    das addon löst mein bisheriges script welches mit cec-utils und openhab arbeitet ab.
    bisher hab ich bei einem trigger per cec umschalten lassen und omxplayer hat einen cam stream wiedergegeben, mit dem addon ist das natürlich noch ein wenig hübscher.
    btw...vlt packs du das addon noch in ein installierbares archiv auf github, so entstehen evt weniger fragen von weniger versierten kodi usern.

  • Danke für den netten Kommentar. Freut mich, dass Dir das Addon gefällt.

    Was meinst Du mit dem installierbaren Archiv auf github? Üblicherweise kann man ja ein ZIP-File als Downlaod Option direkt auswählen. Hab es jetzt für das Addon nicht explizit getestet, aber so hat es bei mir immer funktioniert. Das ZIP File läßt sich dann in Kodi installeren.

    Hab mir jetzt übrigens für ein paar EURO einen PIR Bewegungsmelder besorgt, der auf 433 Mhz einen Alarm schickt und einen 433 MHz Empfänger in einen Raspberry Pi eingebaut. In meinem Repository liegt ein Script für den RPI (KODI-ALERT-433), was bei Signalempfang, eine Benachrichtigung an mein Kodi-System schickt und das Addon triggert. So hab ich nicht mehr den Delay mit dem E-Mail-Empfang.

  • Was meinst Du mit dem installierbaren Archiv auf github? Üblicherweise kann man ja ein ZIP-File als Downlaod Option direkt auswählen. Hab es jetzt für das Addon nicht explizit getestet, aber so hat es bei mir immer funktioniert. Das ZIP File läßt sich dann in Kodi installeren.

    ich hatte irgendeinen fehler beim installieren des archives...nicht unbedingt nett von mir, aber ich hab nicht hingeschaut was es genau war und auch nicht im [definition='1','0']log[/definition] nachgeschaut...sorry :whistling:

    In meinem Repository liegt ein Script für den RPI (KODI-ALERT-433), was bei Signalempfang, eine Benachrichtigung an mein Kodi-System schickt und das Addon triggert. So hab ich nicht mehr den Delay mit dem E-Mail-Empfang

    ich hab bei mir openhab zu laufen und dort cams integriert, wenn die cams eine bewegung erkennen dann aktiviert mein openhabsystem dein addon und blendet die cam ein....geht also auch alles in echtzeit :thumbup: .

  • Ich probier das von github erzeugte zip-File am Wochenende mal aus. Wenn beim Installieren ein Fehler auftritt, versuch ich das natürlich zu beheben.

    Openhab kannte ich bisher nicht. Klingt aber interessant. Werde ich mir mal anschauen.

    Edited once, last by Paulemann (September 26, 2018 at 8:44 PM).

  • Hallo Paulemann,
    ich habe jetzt dein Addon "Security Cam Overlay" testen wollen.
    Ich bekomme unter Kodi 17.6 als auch unter 18 Beta 2 einen Fehler.

    Installation des Addons aus Zip Datei fehlgeschlagen.


    Code
    14:34:43.973 T:3512   ERROR: Failed to read 'zip://C%3a%5cUsers%5cKlaus%5cDesktop%5cXbmcSecurityCamOverlayAddOn-master.zip/XbmcSecurityCamOverlayAddOn-master/addon.xml'

    Gruß

  • Danke schon mal für die schnelle Fehlersuche und Hilfe.

    Ich vermute, dass der Fehler darin liegt, dass das Repository und damit das ZIP-Archiv anders heißt als das Addon-Verzeichnis. Kodi schient sich primär am Namen des ZIP-Archivs zu orientieren und sucht darin ein Verezichnis mit entsprechendem Namen.

    Man sieht das an der Fehlermeldung in Pietos Post; Kodi sucht nach:
    XbmcSecurityCamOverlayAddOn-master.zip/XbmcSecurityCamOverlayAddOn-master/addon.xml
    Die Struktur ist aber:
    XbmcSecurityCamOverlayAddOn-master.zip/script.securitycam/addon.xml

    Ich weiß nicht, ob man das durch einfaches Umbenennen des ZIP-Archivs fixen kann. Evtl. muss ich das Repository umhängen oder erzeuge manuell eine ZIP-Datei zum Download, wie von horschte vorgeschlagen. Letzteres hat den Nachteil, dass ich die ZIP-Datei nach jeder Änderung aktualisieren muss.

    Update:
    Da war ich wohl etwas auf dem Holzweg mit meinen Spekulationen bzw. hatte Tomaten auf den Augen. Es war einfach nur eine Verzeichnis-Ebene zuviel vorhanden.

    Ich hab die Dateien im Repository nun alle eine Ebene höher geschoben. Den Repository-Namen habe ich zusätzlich auf das Addon-Verzeichnis geändert. Auf meinem RPI-Kodi-Testsystem konnte ich jetzt das von Githib heruntergeladene ZIP-Archiv problemlos installieren.

    So gefällt es mir besser, da damit immer ein aktuelles Archiv erzeugt wird und ich es nicht manuell erstellen muss.

    Edited 2 times, last by Paulemann (September 27, 2018 at 8:42 PM).

  • Moin,

    ich hätte da einen Verbesserungsvorschlag. Ich nutzte das Plugin um beim klingeln an der Haustür per jsonrpc die Frontkamera auf Kodi einzublenden. Nun habe ich zum Garten hin nun auch eine Klingel und Kamera. Es wäre praktisch wenn man per Parameter im JSON Aufruf angeben könnte, welche Kamera man darstellen möchte. So würden mir ja immer beide Kameras angezeigt obwohl ich eigentlich nur die Front oder die Rück-Kamera brauche.

    MfG

    Daniel

  • Es wäre praktisch wenn man per Parameter im JSON Aufruf angeben könnte, welche Kamera man darstellen möchte.

    Die Idee ist gut. Ich schau mal, ob und wie sich das umsetzen lässt.

    Welches Skript nutzt Du um das Addon zu triggern (E-Mail oder 433)? Du rufst das Addon direkt über einen jsonrpc call auf? Würde mich interessieren, wie Du das realisiert hast. Bei mir läuft das über einen Funk-Bewegungsmelder mit entsprechendem Empfangsmodul (433MHz) am Raspberry Pi.

    Edit: Hab den entsprechenden Code im Addon und im Script kodi_alert_433 eingebaut und werde es bei mir mal ein paar Tage testen. Wenn alles soweit stabil läuft, aktualisiere ich das Repository zeitnah.

    Edit 2: Da die notwendigen Änderungen/Erweiterungen recht einfach zu implementieren waren und die Tests allesamt positiv verliefen, habe ich die neue Version 1.3.0 des Addons online gestellt. Die Änderungen sind in README.md dokumentiert: Im jsonrpc call kann nun mit 'streamid' der Index des Cam Feeds, der dargestellt werden soll, mitgegeben werden.

    Edited 3 times, last by Paulemann (June 10, 2019 at 8:32 PM).

  • Also Smart-Home Software nutze ich FHEM, dort gibt es ein Kodi Modul welches die Funktion "jsonraw" zur Verfügung stellt. Damit lasse ich ein Popupaufruf sowie den Pluginaufruf beim Klingeln an Kodi senden.

    In FHEM sieht das ganze dann so aus:

    fhem('set kodi_wohnzimmer msg "Es hat geklingelt" "Haustür" 15000 warning')
    fhem('set kodi_wohnzimmer jsonraw {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.securitycam"},"id":1}')

    Wenn ich heute Abend Zeit finde, werd ich deine Änderung mal testen und berichten. Schon mal vielen Dank für die schnelle Änderung.

    BTW: Ist es möglich anstatt JPG Snapshots einen RTSP Stream zu bekommen? meine Foscam liefert auch JPG's, meine billigen China Cams allerdings nur einen RTSP Stream und ich muss die JPG's über Blue Iris ziehen. Ich meine mal irgendwo gelesen zu haben das gibt Kodi nicht her, stimmt das?

    Edited 2 times, last by cyablo (June 11, 2019 at 11:07 AM).

  • Ist auch mein Kenntnisssatnd, dass kodi kein Videooverlay beherrscht. Daher gehen auch kein PiP und ähnliche Sachen. Das wurde zwar zwischendurch immer mal wieder in Aussicht gestellt, aber aktuell hat es wohl noch keiner geschafft, das zu implementieren. Vielleicht kommt das jetzt in kodi 19... solange muss man wohl noch den Workaround über JPG nutzen.

    Ich hoffe, dass es auch bei Dir direkt mit den Änderungen funktioniert. In Deinem Aufruf müsstest Du dann {"addonid":"script.securitycam'"} ersetzen durch {"addonid":"script.securitycam'","params":{"streamid":"1"}, wobei die letzte "1" für den Index des Cam Feeds gem. Konfiguration im Addon steht, d.h. erklaubte Werte sind "1" bis "4".

    Das Skript mach eine rudimentäre Fehlerüberprüfung ob streamid im erlaubten Bereich ist und ob für diesen Index eine URL konfiguriert ist.

    P.S: Das SKript sollte "abwärtskompatibel" mit dem alten Aufruf sein. D.h. wird streamid nicht als zusätzlicher Parameter angegeben, erfolgt der Aufruf wie bisher und es werden die im Addon als aktiv markierten Feeds angezeigt.

    Edited once, last by Paulemann (June 11, 2019 at 3:00 PM).

  • Moin,

    klappt bestens :) Das Einzige was mir jetzt noch auffällt: Meine Kameras haben unterschiedliche Seitenverhältnisse, eine 16:9 die andere 4:3. Egal was ich als Fenstergröße einstelle, bei einer Cam ist dann immer was abgeschnitten.

    EDIT1: Ich hab die zweite cam jetzt einfach mal per Blue Iris im Aufruf auf 4:3 gezwungen, sieht zwar dann falsch aus, aber wenigstens hab ich bei beiden das ganze Bild drauf. Wäre schln wenn man vielleicht pro Cam die Fenstergröße einstellen könnte.

    EDIT2: Ich bekomme kein Aktualisierungsintervall unter 600ms hin ohne das er Frames wiederholt und mehrere Sekunden zurück springt, per Hand (Browser -> F5) kann ich die eine wesentlich höhere Rate erreichen.

    Edited 2 times, last by cyablo (June 12, 2019 at 11:58 PM).

  • Freut mich, dass es mit den Änderungen wie gewünscht funktioniert.

    Individuelle Größen pro Cam Feed dürften nur sehr schwierig umzusetzen sein. Evtl. gibt aber eine recht einfache Möglichkeit, unterschiedliche Bildformate zu berücksichtigen. Die genutzte kodi-Funktion ControlImage hat einen AspectRatio Parameter. Aktuell ist der so eingestellt, dass Bilder ggf. hochskaliert werden, wodurch es zum Abschneiden von Bildteilen kommt, wenn das Format nicht passt. Man kann es aber wohl auch so einstellen, dass runterskaliert wird, so dass der Bildinhalt erhalten bleibt, aber ggfs. schwarze Balken entstehen. Ich könnte das in den Addon-Einstellungen als Option verfügbar machen.

    Bei der Bildaktualisierung fürchte ich, dass Raten um 1 fps schon das Optimum abbilden. Hier spielt vermutlich die Performanz des kodi-Pythoninterpreters und die Geschwindigkeit beim Speichern auf das lokale Medium eine große Rolle, da die Bilder als Datei gespeichert werden bevor Sie über die oben beschriebene kodi-Funktion dargestellt werden. Diesen Mechanismus habe ich vom Originalcode übernommen und ich sehe leider zurzeit keinen Weg, das zu optimieren (für Tipps oder Ideen wäre ich natürlich dankbar).

    Edit: Ich hab eine neue Version online gestellt. Darin ist der Parameter Aspect Ratio (Bildformat-Anpassung) konfigurierbar. Da ich selber nur Feeds im 16:9 Format habe, würden mich Rückmeldungen interessieren, ob das Verhalten so besser ist. Im Moment ist das Verhalten global änderbar. Technisch gesehen, könnte man es auch pro Feed/Fenster einstellen; darin habe ich aber bisher keinen Sinn sehen können. Falls es dafür ein gutes Argument gibt, würde ich das ggfs. noch umsetzen.

    Edited 2 times, last by Paulemann (June 13, 2019 at 9:19 PM).

  • Dann probier doch bitte mal die aktuelle Version aus. Die Einstellung ist zwar für alle Feeds, sollte aber dafür sorgen, dass Streams mit unterschiedlichem Aspect Ratio in einheitlichen Frames wiedergegeben werden. Evtl. führt das ja bereits zum gewünschten Ergebnis.

    Edited once, last by Paulemann (October 6, 2019 at 11:21 PM).

  • Hallo

    ich nutze das Addon auch um meine 3 Cams bei motion anzuzeigen

    heute bin ich auf KODI 19 umgestiegen hier funktioniert es leider nicht mehr hier der Fehlercode

    --> gesteste in Linux Mint sowie verschiedene lieberelec

    Code
    2020-01-04 12:42:14.137 T:3077   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                 - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                Error Type: <class 'ModuleNotFoundError'>
                                                Error Contents: No module named 'urllib2'
                                                Traceback (most recent call last):
                                                  File "/storage/.kodi/addons/script.CAM_I/default.py", line 2, in <module>
                                                    import os, time, urllib2, xbmc, xbmcaddon, xbmcgui, xbmcvfs
                                                ModuleNotFoundError: No module named 'urllib2'
                                                -->End of Python script error report<--

    => wäre super wenn man das anpassen könnte :)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!