JBMedia Lightmanager Addon

  • Hallo habe mich mal die Tage dran gesetzt selbst ein Addon zu schreiben, da ich nach langen suchen,nicht fündig geworden bin.
    Hab ein Addon gesucht, mit dem ich meinen Lightmanager bei bestimmten Aktionen steuern kann.
    Kurz gesagt wollte mein Licht ausschalten lassen, wenn ein Film beginnt aber auch wieder anschalten, wenn der Film zuende ist.
    Angefangen habe ich ein Script auf eine taste zu legen, was natürlich auch ging. Nur war es nicht so wie ich es mir vorgestellt habe.

    Dann bin ich auf das FHEM-Addon von Tuxpoldo gestoßen und habe mir gedacht damit lässt sich doch was draus machen.
    Und so hat mich der Ehrgeiz gepackt und habe mich an meine ersten versuche gemacht, ein Addon zu schreiben.

    Würde es hier gern zur Verfügung stellen, vielleicht finden sich ja ein paar Abnehmer.
    Oder besser gesagt auch ein paar Tester um noch ein paar Sachen zu verbessern.
    Bin jederzeit für Verbesserungen, Tipps und Kritiken zu haben.
    Habt aber bitte Rücksicht mit mir, isst mein erster Versuch mit Python.


    Funktionen:

    Eine Lichtszene vom Lightmanagaer bei einer Aktion aufzurufen.
    Natürlich kann man auch die Aktoren selbst steuern. Die Codes dafür findet man im Webspace des Lightmanagers.

    Code
    192.168.1.1/config.xml
    
    
    IP Adresse anpassen.

    Bsp.: Um einen Aktor auf 87% zu dimmen: http://192.168.1.1/control?cmd=dim,typ,int,hc,0,ch,0,lrn,1,acmd,5,lvl,14,seq,5&id=3


    Aktionen die belegt werden können:

    Kodi Start
    Kodi Beenden
    Video Play
    Video Pause
    Video Stop
    Audio Play
    Audio Pause
    Audio Stop

    Habt viel Spaß damit.

    Euer Mario

  • Sehr schön, gute Idee!
    Habe zwar selber keinen lightmanager, kenne aber jemanden, der einen hat und sich bestimmt drüber freut.
    Ich nutze einen Rasp mit pilight, schaue mich mal um, ob es etwas vergleichbares dafür gibt.

  • Sie lassen sich z.B. über ein Webinterface steuern.
    Habe mich gestern und heute nochmal dran gesetzt.

    Für pilight gibt es ein xbmc plugin, welches sich über die JSON-RPC API wohl den Status von XBMC holt.
    Play/Stop geht bisher ganz gut(Licht an/aus), nur weiß ich nicht, ob ich auch so viele events habe wie du in deinem plugin

  • hi,

    ich habe auch nen JBmedia und habe es so gelöst:

    Aufgabe ist, das Kodi über das Cinema experience Events ausgibt (meinetwegen film_start). Eventghost muss diese Events aber auch lesen können.
    Für Kodi ist es notwendig ein Webserver zu starden,hier als Bsp mit Port 8080. Der Internetzugriff ist dabei auf DHCP gestellt und es muss keine IP/Port vergeben werden.

    Als nächsten Schritt wird dann das Cinema experience Addon installiert in dem lediglich nur im Reiter "Home Automation" die Automation mit einer bestimmten Aktion (meinetwegen film_start) verknüpft wird. Im Eventghost legt man nur Drei Plug-ins an. XBMC Eventreceiver, XBMC2 und das selbst erstellte Plug in JBMediaPro (dazu komme ich noch)

    XBMC Eventreceiver wird in meinem Bsp. so konfiguriert:
    Host Ip des Rechners: 192.168.178.37 Port 81

    XBMC2 wird in meinem Bsp so konfiguriert:
    Ip adress: 192.168.178.37:8080 Login und PW ausfüllen. Muss mit dem übereinstimme was im Webserver vom KODI steht Event Server Port 8080

    JBMediaPro wird in meinem Bsp so konfiguriert:
    IP: 192.168.178.37:81
    JBMediaPro datei wird im Plugin Order vom Eventghost erstellt. In der Datei kann man auch Login und PW anpassen. Ich hab es offen gelassem.

    Nach dem alle Plugins im Eventghost stehen, teste ich erst einmal ob die Verbindung vom Eventghost zum JBmediaPro steht und zwischen KODI und Eventghost. KODI erkennt selbständig den Webserver "Event Receiver" Wenn alles geht muss man nur die ankommenden Events vom KODI im Eventgost mit den vorprogrammierten Lichtszenen verknüpfen.

    http://i.imgur.com/qJBsRMv.png


    Im Anhand gibts noch das Addon "JB Media Pro"

    Axchso, geil wäre ja wenn es ein standalone Programm gäbe Ohne eventghost..
    greetz

  • Ich hab mich jetzt nochmal intensiv damit beschäftigt und anscheinend brauch man kein XBMC EventReceiver ! Ich habe ihn rausgenommen und es geht trotzdem, Danke ;)
    Das war schon etwas verwirrend mit dem Eventreceiver^^

    Den Eventgohst brauchst du als "Verbindungsstück" zwischen KODI und JB Media Lightmanager.
    Das Cinema experience im KODI gibt Events aus (Film_ab) und gibt es an den KODI internen Webserver weiter. Das XBMC2 Plugin im Eventgohst brauchst du um die Events auszulesen die im KODI internen Webserver zu verfügung gestellt wurden (wichtig dabei ist das die PORT´s vom KODI Webserver und XBMC2 Plugin gleich sind). Dann werden die Events auch in dem LOG vom Eventgohst zu verfügung gestellt. Wenn alles geht muss man nur die ankommenden Events vom KODI aus dem LOG im Eventgost mit den vorprogrammierten Lichtszenen vom JB Media Lightmanager verknüpfen. http://i.imgur.com/qJBsRMv.png

    Ich hoffe das ist etwas besser erklärt ;)

  • Achso, du machst das direkt aus dem cinema experience, das habe ich frech überlesen. Ich habs eben direkt in der[definition=2,0][definition='3','0']keymap[/definition][/definition] auf die Pause Taste gelegt.
    Werde mir mal eventghost genauer anschauen, scheint ja einiges mehr machbar zu sein.

    Danke fürs erklären.

  • Hallo
    bekomme es einfach nicht hin
    habe den Dimmer von intertechno Welchen Code muss ich da nehmen das es bei start von Kodi 80% an geht und beim schauen aus

    habe beim Lightman Studio unter Optionen dann Pronto Code Tabelle mal genommen aber nichts

    das zeigt er mir an

    0000 006D 0000 000A 005F 005F 0013 0013 0013 005F 0013 0013 0013 0013 0013 0013 0013 0013 0013 005F 0013 005F 005F 076C

    ist das so ein Code oder welchen muss ich da nehmen
    oder reicht das Plugin für Kodi alleine nicht aus um das zusteuern
    danke für eure Hilfe


    Okay hat sich erledigt
    habs jetzt hin bekommen

  • Ich musste openelec leider auf meinem Pi 2 neu installieren und habe nun folgendes Problem: Bei der Neuinstallation des Plugins aus dem ZIP File bekomme ich ca. eine Minute nach Installation eine Fehlermeldung, dass das Plugin nicht mehr funktioniert. Danach habe ich die SD formatiert, OSMC aufgespielt, getestet, hat wieder funktioniert. Eine erneute Formatierung und Neusinstallation von OSMC führt nun wieder zum gleichen Fehlerbild wie bei openelec. Das Plugin funktioniert nicht mehr.
    Hat jemand schonmal ein ähnliches Fehlerbild gehabt? Ich steh echt auf dem Schlauch...

    Hier die Fehlemeldungen:

    09:55:22 79.869949 T:1589638128 ERROR: CPythonInvoker(3, /home/osmc/.kodi/addons/service.jbmedia/addon.py): script didn't stop in 5 seconds - let's kill it
    09:55:35 93.223267 T:1296036848 NOTICE: Starting up Cinema...
    09:56:31 148.802673 T:1760556016 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
    Error Type: <class 'urllib2.URLError'>
    Error Contents: <urlopen error [Errno 110] Connection timed out>
    -->End of Python script error report<--
    09:57:07 185.228760 T:1957777968 NOTICE: Samba is idle. Closing the remaining connections
    09:57:38 215.889572 T:1623192560 NOTICE: ES: Client from 192.168.0.24 timed out
    09:57:42 220.645737 T:1296036848 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
    Error Type: <class 'urllib2.URLError'>
    Error Contents: <urlopen error [Errno 110] Connection timed out>
    Traceback (most recent call last):
    File "/home/osmc/.kodi/addons/service.jbmedia/addon.py", line 137, in <module>
    handler.StartUp()
    File "/home/osmc/.kodi/addons/service.jbmedia/addon.py", line 89, in StartUp
    self.JBMedia('onstartup')
    File "/home/osmc/.kodi/addons/service.jbmedia/addon.py", line 25, in JBMedia
    response = urllib2.urlopen(req)
    File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
    File "/usr/lib/python2.7/urllib2.py", line 431, in open
    response = self._open(req, data)
    File "/usr/lib/python2.7/urllib2.py", line 449, in _open
    '_open', req)
    File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
    File "/usr/lib/python2.7/urllib2.py", line 1227, in http_open
    return self.do_open(httplib.HTTPConnection, req)
    File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open
    raise URLError(err)
    URLError: <urlopen error [Errno 110] Connection timed out>
    -->End of Python script error report<--

    Einmal editiert, zuletzt von gugsi (30. April 2016 um 12:06)

  • @marioir
    Ich habe das plugin gerade mal ausprobiert. Erst einmal ein dickes fettes Dankeschön dafür. Das macht es einem um lääängen einfacher und erspart den Umweg über Eventghost. Toll!
    Funktioniert übrigens super bei mir und ist von der Einrichtung her echt Idiotenkompatibel, wenn ich es auf Anhieb zum laufen bekommen habe :)

    Nur eine Frage hätte ich wohl: Besteht die Möglichkeit irgendwie zwischen Serien und Filmen zu unterscheiden? Ich denke das ist so nicht geplant, da es dem Addon wohl egal ist was da für ein Video gestartet wird. Ist auch kein muss, aber manche haben ja für Filme eine andere Lichteinstellung als für Serien

  • Hi, ich versuche gerade das JBMedia Lightmanager Addon auf Python 3 zu aktualisieren, damit ich es unter Matrix weiternutzen kann.
    Leider komme ich gerade nicht weiter!
    Vielleicht kann ja wer helfen?

    Hier der Auszug aus dem [definition=9,3]Kodi.[definition='1','0']log[/definition][/definition]

    EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
    Error Type: <class 'IndentationError'>
    Error Contents: expected an indented block (addon.py, line 105)
    File "D:\Kodi\portable_data\addons\service.jbmedia\addon.py", line 105
    def onPlayBackStarted(self):
    ^
    IndentationError: expected an indented block
    -->End of Python script error report<--

    Es sind nur Leerzeichen verwendet wurden. Also kein tab/Leerzeichen Problem.

    Als Anhang hier noch das Addon mit meinen Änderungen und der komplette [definition=9,3]Kodi.[definition='1','0']log[/definition][/definition].


    Vielen Dank im voraus.

  • @wolfen72

    ersetze mal Deinen Run-Block mit diesem Code:

    Python: addon.py
    def Run(self):
            monitor = xbmc.Monitor()
            while not monitor.abortRequested():
                if xbmc.Player().isPlaying():
                    if xbmc.Player().isPlayingVideo():
                        self.isplayingvideo = True
                    else:
                        self.isplayingvideo = False
                if monitor.waitForAbort(1000):
                    break

    dann müsste der Code fehlerfrei sein ! [ad]

    Gruß

Jetzt mitmachen!

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