'Security Cam Overlay Addon' Reloaded

  • Das Skript ist in Python2 geschrieben. Kodi 19 unterstützt aber nur noch Python3. Das verwendete urllib2 Modul gibt es dort so nicht mehr.
    Man kann das Skript sicherlich nach Python3 portieren. Da mir persönlich Kodi19 aber noch zu "frisch" ist, hab ich mich damit bisher nicht auseinandergesetzt. Könnte mir vorstellen, das in den nächsten 1-2 Monaten anzugehen.

    Update:
    Ich hab einen Testbranch Python3 angelegt. Wenn möglich, bitte diesen mal für einen Test unter Kodi 19 verwenden. Laut Tool 2to3 waren die Änderungen realtiv gering, so dass der Code aus diesem Branch sowohl unter Python2 wie auch unter Python3 laufen sollte. Ist aber erstmal nur ein Schuss ins Blaue, da ich selber aktuell kein Kodi 19 System zum Testen habe.

    Einmal editiert, zuletzt von Paulemann (6. Januar 2020 um 14:56) aus folgendem Grund: Update

  • Da haben sich Deine Antwort und mein Edit überschnitten ;). Wenn Du den Code aus dem Testbranch mal unter Kodi 19 ausprobieren könntest und mir dann eine Rückmeldung gibst, ob es läuft bzw. welche Fehlermeldungen kommen, wäre das super!

  • sehr gerne leider geht es noch nicht!

  • Ich denke, das liegt diesmal nicht am Code. Das requests module musst Du noch mit

    Code
    pip3 install requests

    installieren.

    Update: Ich hab jetzt im addon.xml noch explizit die Abhängigkeit von script.module.requests eingefügt. Evtl. hilft das auch ...

    Einmal editiert, zuletzt von Paulemann (6. Januar 2020 um 19:28) aus folgendem Grund: Update

  • Autsch. Danke für den Hinweis. Hab's korregiert.

    Update: Jetzt bin ich aber auch neugierig: Funktioniert es denn unter Kodi 19 mit den Anpassungen oder liegt noch was im Argen?

    Die angepasste Version läuft bei mir auch unter Kodi 18 Leia einwandfrei. Wenn die Tests unter Kodi 19 positiv sind, würde ich die Änderungen in den Master Branch mergen.

    Einmal editiert, zuletzt von Paulemann (7. Januar 2020 um 19:34)

  • Nabend,

    also bei mir tuts nicht libreelec Milhouse 0103

    --> Fehlermeldung =>

  • Danke für's erneute Testen. Da hat sich blöderweise noch ein Typo eingeschlichen:

    Code
    ImportError: cannot import name 'HTTPPasswordMgrWithDefaultRealmc'

    Das 'c' am Ende von 'HTTPPasswordMgrWithDefaultRealmc' gehört da nicht hin. Das macht sich leider nur unter Python3/Kodi 19 bemerkbar. Entweder direkt in default.py ändern oder nochmal neu vom Repo holen. Hab es dort korrigiert.

    Sorry dafür.

  • Danke für deine mühe!
    => also fast bekomme die Fenster werden schon mal angezeigt aber versucht das Bild zu laden und da kommt noch die Fehlermeldung

    2020-01-08 09:46:40.128 T:1378 ERROR: EXCEPTION: argument "buffer" for "write" must be a string or a bytearray

    2020-01-08 09:46:40.128 T:1378 NOTICE: [script.securitycam] argument "buffer" for "write" must be a string or a bytear

    mit den selben Einstellungen mit der selben Version klappts unter Kodi 18 ohne Probleme

  • Kannst Du in default.py folgende Zeile:

    Code
    file.write(imgData)

    ändern in:

    Code
    file.write(bytearray(imgData))

    und damit bitte testen?

  • ja PERFEKT geht!!!!

    Puuh. An dem Punkt bin ich jetzt echt ins Schwitzen gekommen. Danke für's geduldige Testen.

    Es scheint aber hier eine Besonderheit des xbmcvfs.File() Aufrufs zu sein, die nach meiner Ansicht diese Exception unter Python3 verursacht. Ich hab aus dem default.py mal folgenden Code extrahiert, der anstelle von xbmcvfs.File() einfach nur open() verwendet:

    Dieser Code funktioniert sowohl unter python2 wie auch unter python3 und kommt ohne die explizite Konvertierung mit bytearray() aus.

    Wenn es mit der expliziten Konvertierung nun sowohl unter Kodi18/Python2 und Kodi19/Python3 funktioniert, werde ich den Code auch im Repo so aktualisieren. Vielleicht liest ja noch der ein oder andere Addon-Entwickler mit und kann ggfs. noch ein paar Tipps zur Optimierung und Konvertierung geben.

    3 Mal editiert, zuletzt von Paulemann (8. Januar 2020 um 22:13)

  • JPG und RTSP sind exakt die Formate, die aktuell unterstützt werden. Hast Du die Anleitung gelesen und das Addon mal getestet?

  • Genau, die Anleitung auf Github. Poste den Log Error am besten hier und dann schauen wir uns das zusammen an.

    Edit: Obwohl, sehe gerade, die "Anleitung" ist ja tatsächlich eher eine Kurzbeschreibung. Sollte ich mal aktualisieren und erweitern ;)

    Ist aber an sich recht einfach vom Setup her; Du kannst bis zu 4 URLs, wenn erforderlich mit User und Passwort, konfigurieren. Entweder beginnend mit http://... , dann geht das Skript davon aus, dass es über diese URL ein JPG abrufen kann, oder beginnend mit rtsp://..., dann zapft das Skript, den RTSP Stream an und versucht daraus die erforderlichen JPGs zu erzeugen.

    Letzteres setzt voraus, dass ffmpeg auf Deinem System installiert ist.

    Dritte Option ist, Du konfigurierst direkt den Speicherpfad, wo Deine Cam Snapshots im JPG-Format ablegt. Das skript erwartet aber, dass die Quell-Datei (z.B. "snapshot.jpg") automatisch aktualisiert, d.h. überschrieben, wird, und sucht nicht selbst nach dem aktuellsten File.

    Einmal editiert, zuletzt von Paulemann (25. Juni 2020 um 09:34)

  • Genau, die Anleitung auf Github. Poste den Log Error am besten hier und dann schauen wir uns das zusammen an.

    Edit: Obwohl, sehe gerade, die "Anleitung" ist ja tatsächlich eher eine Kurzbeschreibung. Sollte ich mal aktualisieren und erweitern ;)

    Ist aber an sich recht einfach vom Setup her; Du kannst bis zu 4 URLs, wenn erforderlich mit User und Passwort, konfigurieren. Entweder beginnend mit http://... , dann geht das Skript davon aus, dass es über diese URL ein JPG abrufen kann, oder beginnend mit rtsp://..., dann zapft das Skript, den RTSP Stream an und versucht daraus die erforderlichen JPGs zu erzeugen.

    Letzteres setzt voraus, dass ffmpeg auf Deinem System installiert ist.

    Dritte Option ist, Du konfigurierst direkt den Speicherpfad, wo Deine Cam Snapshots im JPG-Format ablegt. Das skript erwartet aber, dass die Quell-Datei (z.B. "snapshot.jpg") automatisch aktualisiert, d.h. überschrieben, wird, und sucht nicht selbst nach dem aktuellsten File.


    also hier der error

    Code
    2020-06-25 16:03:11.859 T:123145366577152   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                 - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                Error Type: <type 'exceptions.ImportError'>
                                                Error Contents: No module named requests
                                                Traceback (most recent call last):
                                                  File "/Users/xxx/Library/Application Support/Kodi/addons/script.securitycam/default.py", line 16, in <module>
                                                    import urllib2, requests, subprocess
                                                ImportError: No module named requests
                                                -->End of Python script error report<--
    2020-06-25 16:03:11.859 T:123145366577152   DEBUG: onExecutionDone(131, /Users/xxxx/Library/Application Support/Kodi/addons/script.securitycam/default.py)

    ich habe das requests Addon installiert

    2020-06-25 16:08:15.811 T:4648140224 NOTICE: ADDON: script.module.requests v2.22.0 installed

    EDIT
    hat sich erledigt, er hat irgendwie version 1.4.0 installiert anstatt 1.4.1 mit der neueren version geht alles. danke für das Addon.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!