Ankündigung

Einklappen
Keine Ankündigung bisher.

uPnp Plugin

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

  • smai
    antwortet
    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.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo,

    ist aus der Sache des UPNP Plugins eigentlich was geworden?

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    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

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    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

    Einen Kommentar schreiben:


  • greentux
    antwortet
    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...

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    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

    Einen Kommentar schreiben:


  • greentux
    antwortet
    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"

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    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

    Einen Kommentar schreiben:


  • greentux
    antwortet
    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

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    Was genau soll das Plugin denn machen?

    Gesendet von meinem GT-I9100 mit Tapatalk

    Einen Kommentar schreiben:


  • greentux
    hat ein Thema erstellt uPnp Plugin.

    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"?
Lädt...
X