Ankündigung

Einklappen
Keine Ankündigung bisher.

uPnp Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    uPnp Plugin

    Hallo zusammen,

    da sich hier jetzt einiges uPnp Zeugs angesammelt hat, würde ich mich mal an einem Plugin versuchen.
    Ggf. sollte man eine python lib nehmen. Gefunden habe ich:
    Coherence - a DLNA/UPnP Framework for the Digital Living - Trac
    Wäre das noch tragbar oder zu "mächtig"?
    Derzeit zwischen Kistenauspacken und Garten anlegen.
    Baublog im Profil.

    #2
    Was genau soll das Plugin denn machen?

    Gesendet von meinem GT-I9100 mit Tapatalk

    Kommentar


      #3
      Schauen, ob mein Sony Lautsprecher "da" ist. Anschliessend vom Mediatomb zur bestimmten Uhrzeit ne Playlist zum Lautsprecher jagen. Vorher natürlich das RGB Licht im Bad dimmen, aber das geht ja schon
      Derzeit zwischen Kistenauspacken und Garten anlegen.
      Baublog im Profil.

      Kommentar


        #4
        Geht doch sicher per externen Aufruf der Linux Kommandos aus einer Logik heraus. Der Aufwand und Sinn das als Plugin zu realisieren erschließt sich mir nicht wirklich.

        Gesendet von meinem GT-I9100 mit Tapatalk

        Kommentar


          #5
          Klar, da gehen aber auch viele andere "Plugins"
          Man könnte dann auch in der Visu Sachen anzeigen, Playlists, die Audioausgabe auf diesem und jenen Gerät aktivieren. "Alles aus" = Mute. Usw...

          Mir war nur daran gelegen, das jemand mit Erfahrung mal einen Blick auf die Lib wirft und sagt "Monsterteil, vergiss es in sh.py" oder "naja, quäl dich"
          Derzeit zwischen Kistenauspacken und Garten anlegen.
          Baublog im Profil.

          Kommentar


            #6
            Ja, ich denke das ist ein Monsterteil insbesondere da auch noch twisted benötigt wird.

            Erfahrungsgemäß kann man eine stark reduzierte Funktionalität auch ohne Abhängigkeiten realisieren. Ist halt unter Umständen etwas aufwändiger.
            Die Frage ist: welche Funktionalität wird wirklich benötigt?

            Bis bald

            Marcus

            Kommentar


              #7
              Kennst Du was leichteres?
              Ich brauche ein paar Sachen eines upnp-controllers denke ich.
              - Devices suchen
              - Abspielen initieren (von A nach B etc)
              - Status anzeigen
              - Abspielen stoppen

              Playlists würd ich wohl erstmal nicht über die Visu zusammenfriemeln wollen...
              Derzeit zwischen Kistenauspacken und Garten anlegen.
              Baublog im Profil.

              Kommentar


                #8
                Hallo,

                mir ist spontan nicht kleines schnuckliges bekannt.
                Ist aber nur ein bisserl HTTP und XML. Das habe ich für meine Anwendungsfälle auch so hinbekommen.

                Prinzipiell kannst Du auch eine fette Bibliothek einbinden. Das macht halt primär die Installation schwieriger und es kostet meist einen separaten Thread, da die Vorzüge der SmartHome.py-Umgebung (lib.connection) nicht genutzt werden.

                Bis bald

                Marcus

                Kommentar


                  #9
                  Beim Sonos-Plugin habe ich die ganze Funktionalität in einen Standalone Broker-Service ausgelagert, damit das Plugin klein bleibt. Kannst dir ja da was abschauen. Ich benutze das SoCo - Github-Projekt, die uPnP benutzen (Kommunikation mit und zwischen den sonos-Speakern).

                  Gesendet von meinem GT-N7000 mit Tapatalk
                  Sonos

                  Kommentar


                    #10
                    Zitat von pfischi Beitrag anzeigen
                    Beim Sonos-Plugin habe ich die ganze Funktionalität in einen Standalone Broker-Service ausgelagert, damit das Plugin klein bleibt.
                    Ich kann darin keinen Vorzug sehen. Die Installation wird schwieriger und die Komplexität und der Ressourcenverbrauch steigt.

                    Mit persönlich gefallen kleine schlanke Plugins, die keine Abhängigkeiten haben.
                    Zugegeben es kostete wahrscheinlich etwas mehr Zeit, aber man lernt eine Menge dabei.
                    Aber es ist Sache des Plugin-Authors seine Werkzeuge zu wählen. Ich gebe da nichts vor. Nur wenn ich wählen muss, dann nehme ich das mit weniger Abhängigkeiten und Komplexität.

                    Bis bald

                    Marcus

                    Kommentar


                      #11
                      Zitat von mknx Beitrag anzeigen
                      Ich kann darin keinen Vorzug sehen. Die Installation wird schwieriger und die Komplexität und der Ressourcenverbrauch steigt.



                      Mit persönlich gefallen kleine schlanke Plugins, die keine Abhängigkeiten haben.

                      Zugegeben es kostete wahrscheinlich etwas mehr Zeit, aber man lernt eine Menge dabei.

                      Aber es ist Sache des Plugin-Authors seine Werkzeuge zu wählen. Ich gebe da nichts vor. Nur wenn ich wählen muss, dann nehme ich das mit weniger Abhängigkeiten und Komplexität.



                      Bis bald



                      Marcus

                      Ich gebe dir grundsätzlich vollkommen recht. Klein und fein solls sein. Nur die Funktionalität gerade von den Sonos-Speakern ist enorm , uPnP, die ganze Verwaltung der Events und und und. Ich glaube das ab einer gewissen Komplexität das Plugin einfach nicht die richtige Plattform ist und man eine Zwischenschicht einziehen sollte.


                      Gesendet von meinem iPad mit Tapatalk
                      Sonos

                      Kommentar


                        #12
                        Hallo,

                        ist aus der Sache des UPNP Plugins eigentlich was geworden?

                        Kommentar


                          #13
                          Ich versuche mich seit neustem an einem generischen UPnP-Plugin.
                          Als lib könnte ich mir https://github.com/flyte/upnpclient vorstellen.

                          Meine Idee wäre grob etwa folgende:

                          Bei UPnP werden ja per SOAP Aktionen auf Devices aufgerufen. Diese Calls können mehrere Parameter haben und auch mehrere Werte zurückgeben.

                          Es gäbe also neue Konfigurationsoptionen in Items, z.B:
                          upnp_device_id - ID des Geräts
                          upnp_action - Name der Action
                          upnp_params - Liste der Parameterwerte
                          upnp_eval - Verarbeitung der Rückgabewerte. (optional, wenn nicht angegeben wird der ganze Rückgabewert dem Item zugewiesen oder allenfalls gar nichts - TBD)

                          Eine Aktion kann das ausgelöst werden, indem man dem Item einen Wert zuweist (z.B. per Visu oder KNX).
                          Um Parameterwerte auch dynamisch setzen zu können, gäbe es in upnp_params einen Platzhalter "value" (ähnlich wie beim bestehenden eval). Dort wird der an das Item übergebene Wert eingesetzt.


                          Nun kann man in UPnP auch noch Events abonieren, die interessant wären (z.B. welches Lied ein Player gerade spielt, ...).
                          Das wird von der Library (noch) nicht unterstützt und ich habe mich auch noch nicht im Detail damit beschäftigt.
                          Wahrscheinlich würde man statt upnp_action dann einfach ein Attribut upnp_event setzen, das upnp_eval kümmert sich dann wieder um das Verarbeiten des empfangenen Wertes.


                          Damit man auch weiss, was bei den Items einzutragen ist, gäbe es im Backend Plugin eine neue Page, welche alle UPnP-Geräte im Netzwerk und deren verfügbaren Aktionen inkl. Parameter auflistet.
                          Diese habe ich mit genannter Library bereits rudimentär umgesetzt, das funktioniert.


                          Ich habe ehrlich gesagt keine Ahnung, ob das so umsetzbar ist. Gerne höre ich auch eure Kommentare zu dem Vorhaben.
                          Würde das überhaupt jemand benutzen? Seht ihr Probleme oder Verbesserungen?

                          Es gibt ja unterdessen UPnP-Profile für alle möglichen Geräte, nicht nur AV (es gibt z.B. sogar eines für Solar Protection Blind, für HVAC oder IoT Management and Control).
                          Da würde ein generisches Plugin IMHO Sinn machen.

                          Kommentar

                          Lädt...
                          X