Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Neues Plugin: Logitech Squeezebox - Anregungen?

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

    Das dürfte am struct im struct liegen, das geht zumindest aktuell noch nicht. Leg also einfach dein Item so an:
    Code:
    Musik:
        name: "{{ basic.value('value1', 'item.player.player_name') }} @ {{ basic.value('value2', 'item.player.player_ip') }}"
        squeezebox_playerid: b8:27:eb:XX:XX:XX
        player:     
            struct: squeezebox.player
        info:
            struct: squeezebox.info
    Wobei du die struct auch eine Hierarchieebene höher einbinden kannst, wenn du willst. Also
    Code:
    Musik:
        struct:
            - squeezebox.player
            - squeezebox.info

    Kommentar


      Hallo zusammen,

      ist es möglich -und wenn ja wie- Meldungen einzuspielen und anschliessend den gespielten Sender/Wiedergabeliste wieder weiterlaufen zu lassen?

      Konkret möchte ich meine Türklingel darüber laufen lassen, aber auch andere Meldungen Tür auf, Waschmaschine fertig usw. wären denkbar.

      Für Tipps über Möglichkeiten der Einbindung und Codeschnipsel wäre ich sehr dankbar.

      cu Yfkt5A
      DALI(ABB DG/S1.1), KODI Odroid, QNAP TS-509, Zehnder ComfoAir 200 L Luxe
      microk8s-Cluster: openHAB, mosquitto, smartVISU, TVHeadend, jellyfin

      Kommentar


        Du kannst bei squeezebox_send: <playerid> jeden beliebigen CLI Command einfügen, der hier gelistet ist: http://<DeinServer>:9002/html/docs/cli-api.html?player=#Supported%20Commands

        Als Beispiel playlist play /music/abba/01_Voulez_Vous.mp3 und dann könntest du über ein squeezebox_recv abfangen, ob der Song fertig ist, zB über playlist status. Am besten machst du da ne Logik, die zuerst den Namen der aktuellen Playlist in ein Item speichert, dann eben den obigen Befehl auslöst. Dann von einem Item, das den Status auf "pause" erkennt, wiederum abhängig machen, dass die vorige Playlist geladen wird. Codebeispiel hab ich hier leider keins. Ich habe für solche Situationen einfach eigene Playlisten mit je 1 Song erstellt und nutze da dann nur <playerid> playlist resume

        Kommentar


          Nach den vielen Updates des Squeezebox-Plugins: Wie lädt man denn da eine Playliste rein? Bzw. lassen sich auch Favoriten verwenden, die im Server hinterlegt sind und ggf. auch die Icons (für die SmartVisu) verwenden?

          Kommentar


            Fürs Laden einer Playliste müsste playlist.load mit Angabe des Filenamen gehen.
            Ich hab hier zB ein zusätzliches Item mit dem Inhalt
            Code:
            type: bool
            enforce_updates: True
            visu_acl: rw
            knx_dpt: 1
            squeezebox_send: <playerid> playlist resume <NAME OHNE M3U>
            Favoriten sollten eigentlich auch klappen, da gibt es im Struct ein Item dafür.
            Es wird allerdings demnächst eine gänzlich neue Version des Plugins geben - daher nicht zu viel Zeit hier investieren

            Kommentar


              Zitat von Onkelandy Beitrag anzeigen
              Es wird allerdings demnächst eine gänzlich neue Version des Plugins geben - daher nicht zu viel Zeit hier investieren
              Wie ist denn da der Stand der Dinge? Denn die aktuelle Version läuft nicht wirklich zufriedenstellend. Mein Log ist ständig voll von Fehlermeldungen:

              Code:
              2022-08-10  00:02:10 WARNING  plugins.squeezebox  Can not send because squeezebox is not connected.
              Allein heute schon 2300x der Gleiche Log-Eintrag. Das ist nicht schön.

              Kommentar


                Ist noch nicht komplett durch, aber Tester sind herzlich willkommen! Gib mir Bescheid, was nicht klappt und was dir noch fehlt..
                Hier ist das plugin von Morg:
                https://github.com/Morg42/plugins/tr...sdp_squeezebox

                Dann brauchst du noch von smartdeviceplugin.py und den sdp Ordner von hier:
                https://github.com/Morg42/smarthome/tree/sdp/lib/model

                So bindest du das Plugin ein:
                Code:
                squeezebox:
                    plugin_name: sdp_squeezebox
                    host: 10.0.0.100
                    port: 9090
                    web_port: 9002
                    plugin_enabled: true
                Idee wäre, zukünftig nicht über das CLI zu gehen, sondern json. Das ist aber noch ganz in den Anfängen:
                https://github.com/Morg42/plugins/tr...echmediaserver

                Kommentar


                  Zitat von Onkelandy Beitrag anzeigen
                  Dann brauchst du noch von smartdeviceplugin.py und den sdp Ordner von hier:
                  Klingt ja erst mal spannend. Muss ich die Original-Dateien von SmartHomenNG überschreiben oder nur den Ordner SDP und smartdeviceplugin.py hinzufügen?

                  Kommentar


                    nur hinzufügen sollte reichen

                    Kommentar


                      Zitat von Onkelandy Beitrag anzeigen
                      Ist noch nicht komplett durch, aber Tester sind herzlich willkommen! Gib mir Bescheid, was nicht klappt und was dir noch fehlt..
                      Hier ist das plugin von Morg:
                      Ich habe das jetzt zumindest erst einmal installiert und gestartet. Der Server wird erkannt und dessen Daten auch geladen. Aber ich weiß nicht, wie ich den Player konfigiguriere, squeezebox_playerid gibt es ja nicht mehr. Wie teile ich dem itemstruct "sdp_squeezebox.player" mit, welcher Player angesteuert werden soll?

                      Nachtrag: Gefunden! Etwas kryptisch "sqb_custom1". :-)
                      Zuletzt geändert von Cannon; 11.09.2022, 09:15.

                      Kommentar


                        Wie sind die bisherigen Erfahrungen Cannon ?

                        Kommentar


                          Zitat von Onkelandy Beitrag anzeigen
                          Wie sind die bisherigen Erfahrungen
                          Ich habs installiert, wollte dann gleich mal ne Logik bauen, die dann die Musik "mitwandern" lässt, indem ich die Präsenzmelder nutze und war dann erst mal frustiert, dass das nicht geht. Das liegt aber sicherlich nicht an dem plugin, sondern an dem Squeezebox-System an sich. Wenn man den Player woanders startet und dann woanders wieder beendet, dann stoppt die Wiedergabe - zumindest mit Spotify habe ich das so getestet.

                          ABER: Meine Logs sind voll mit lauter Fehlermeldungen:

                          Code:
                          2022-09-29  22:31:02 WARNING  plugins.sdp_squeezebox Command player.control.volume yielded value 53, not assigned to any item, discarding data
                          2022-09-29  22:31:02 WARNING  plugins.sdp_squeezebox Command player.control.volume yielded value 53, not assigned to any item, discarding data
                          2022-09-29  22:34:10 WARNING  plugins.sdp_squeezebox Command player.info.connected yielded value False, not assigned to any item, discarding data
                          2022-09-29  22:39:09 WARNING  plugins.sdp_squeezebox Command player.control.set_alarm yielded value _cmd, not assigned to any item, discarding data​

                          Kommentar


                            Na gut, da könntest dann ja über die Logik den Play-Klick triggern, damit es weiterläuft oder nicht..? Wie machst du denn das mitwandern?
                            Die Meldungen können eigentlich nur kommen, wenn du nicht alle deine Squeezebox Players integriert hast. So sollte die items.yaml aussehen. Wenn nicht für alle Player ein Eintrag drin ist, wird es die obigen Meldungen geben.

                            Code:
                            squeezebox:
                              struct:
                                - sdp_squeezebox.database
                                - sdp_squeezebox.server
                            
                            squeezebox_1:
                                sqb_custom1: MAC
                            
                                struct: sdp_squeezebox.player​

                            Kommentar


                              Zitat von Onkelandy Beitrag anzeigen
                              Die Meldungen können eigentlich nur kommen, wenn du nicht alle deine Squeezebox Players integriert hast. So sollte die items.yaml aussehen. Wenn nicht für alle Player ein Eintrag drin ist, wird es die obigen Meldungen geben.
                              Ich habe auch nicht alle Player integriert, weil es nicht für alle Player Sinn macht, weil die zum Teil auch keine richtigen Player sind. Es wäre aber sinnvoll die nicht integrierten Player einfach zu ignorieren.

                              Zitat von Onkelandy Beitrag anzeigen
                              ie machst du denn das mitwandern?
                              Ih wollte erst mal nur testen, ob das sinnvoll ist. Die Idee war, dass ich als erstes auf die PM in einer logik triggere. Dann schaue ich ob und wo der Player an ist. Schalte auf den Player an, wo die PM ausgelöst wurde und synchronisiere dann mit den ersten Player, schalte ihn ein und starte die Wiedergabe.

                              Aber wie gesagt geht das zumindest mit Spotify nicht so recht. Denn Spotify stoppt beim synchronisieren die Wiedergabe. Auch eine Wiedergabe ist mit Play/Pause nicht möglich. Nur mit der Spotify App kann man dann die Wiedergabe erneut starten.

                              Kommentar


                                Nicht integrierte Player ignorieren geht nicht so wirklich, da der Server ja trotzdem die Infos dazu versendet, diese also im Plugin ankommen. Wenn du sie nicht im Log haben willst, musst du Filter nutzen -> siehe Doku.

                                Ad Spotify: OK, das ist fies

                                Kommentar

                                Lädt...
                                X