Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test/Support Adapter SqueezeboxRPC

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Test/Support Adapter SqueezeboxRPC

    This topic has been deleted. Only users with topic management privileges can see it.
    • metaxa
      metaxa @metaxa last edited by metaxa

      Edit zu oberhalb: mit dem Linux Befehl cat (unter Problemlösungen) funktioniert es blitzschnell! (Geht aber nur, wenn die Bitrate ident ist) z.B.:

      cat 002_Andreas.mp3 001_Renata.mp3 > kombi.mp3
      

      Jetzt muss ich mal schauen, wie ich das real mit Blockly umsetze.

      @OliverIO danke für den Schubs in die Richtung!

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @metaxa last edited by

        @metaxa
        Verketten von Dateien geht gemäß LMS-konvention nicht. Wie gesagt, dazu musst du eine Playlist erstellen. Die Beschreibung des formats findest du hier
        https://de.wikipedia.org/wiki/M3U
        http://www.scvi.net/pls.htm
        LMS kann M3U und PLS, beide Formate wurden damals von Nullsoft/winamp erfunden.
        Zum abspielen dann die url zur playlist an den LMS übergeben.

        1 Reply Last reply Reply Quote 1
        • OliverIO
          OliverIO @metaxa last edited by

          @metaxa
          Wenn cat funktioniert, dann super. da du die mp3 dateien ja vorproduzierst, kannst du die kodierung ja selbst bestimmen.
          ansonsten hier die deutsche beschreibung für mp3wrap
          https://wiki.ubuntuusers.de/mp3wrap/

          OliverIO 1 Reply Last reply Reply Quote 1
          • OliverIO
            OliverIO @OliverIO last edited by

            @OliverIO
            mir ist da noch ein LMS-plugin eingefallen. ob das noch richtig funktioniert
            weiß ich nicht.
            https://www.nexus0.net/pub/sw/lmsannounce/

            metaxa 1 Reply Last reply Reply Quote 1
            • metaxa
              metaxa @OliverIO last edited by metaxa

              @OliverIO danke für die weiteren Links.
              Auf der https://wiki.ubuntuusers.de/mp3wrap/ habe ich den Hinweis mit cat gefunden und mittlerweile auch schon damit ein wenig herumprobiert. Für mich optimal, ja, weil ich die Standardansagen schon alle vorliegen habe. Genau so eine Lösung hatte ich gesucht!
              In dem Link steht zwar 'cat' macht nur bei gleicher bitrate Sinn, ich habs dennoch versucht und funktioniert auch. Das Ergebnis wird augenscheinlich auf die geringste Bitrate angepasst.

              Lieben Dank und Grüße aus Wien, mxa

              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @metaxa last edited by

                @metaxa
                cat fügt dateien einfach nur binär hintereinander.
                cat ist es egal um welche daten es sich da handelt

                1 Reply Last reply Reply Quote 1
                • I
                  iobroker_Alex @metaxa last edited by

                  @metaxa meine Idee dazu: du installierst in iobroker den Adapter tts say it und wählst „linux Ausgabe“ tts erstellt dann bei jedem speak Befehl eine mp3 diese schiebst du per cp auf lms und danach spielst du es ab. Zwischen dem erzeugen und kopieren müssen ein paar ms Pause sein, sonst spielt er das „alte“ ab. Funktioniert so...

                  metaxa 1 Reply Last reply Reply Quote 0
                  • metaxa
                    metaxa @iobroker_Alex last edited by

                    @iobroker_Alex
                    danke für deine Rückmeldung!

                    @iobroker_Alex sagte in Test Adapter SqueezeboxRPC v0.8.x Latest:

                    wählst „linux Ausgabe“

                    Wo genau wäre das bitte einzustellen?
                    bf62f125-7d24-44fd-8009-79d1089747ff-grafik.png
                    5edd0870-6f95-41c2-a512-94c2465843a9-grafik.png
                    Beschäftige mich schon länger mit SayIt, passend wäre da nur "System".
                    15d7802c-45b8-44e1-9faf-018f3b906d64-grafik.png
                    LG

                    1 Reply Last reply Reply Quote 0
                    • S
                      stsch83 last edited by

                      Hallo, ich spiele seit ein paar Tagen mit dem Adapter herum und muss sagen er funktioniert hervorragen.

                      Nun zu meiner Frage: gibt es eine Möglichkeit in blocky herauszufinden, wie viele Favoriten ich habe? Zum Hintergrund. Ich habe mir einen Taster mit 4 Buttons von Aqara besorgt (16€).

                      Oben links - langer Tastendruck: player ausschalten
                      Oben links - kurzer Tastendruck: player volume kleiner

                      Oben rechts - langer Tastendruck: player einschalten
                      Oben rechts - kurzer Tastendruck: player volume größer

                      Unten links - kurzer Tastendruck: vorheriger Favorit
                      Unten rechts - kurzer Tastendruck: nächster Favorit

                      Ich möchte die Favoriten in einer Art Karussell durchschalten können. Dafür benötige ich allerdings die Anzahl der vorhandenen Favoriten.

                      Favoriten sind bei mir aktuell nur Radiosender.

                      OliverIO W 2 Replies Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @stsch83 last edited by

                        @stsch83
                        Mit blockly kenne ich mich leider gar nicht aus.
                        Mit javascript müsste man einfach alle states unter squeezeboxrpc.0.Favoriten abrufen und durch 6 teilen.

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          stsch83 @OliverIO last edited by

                          @OliverIO Wie zählt man denn die Anzahl der States in javascript?

                          OliverIO 1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @stsch83 last edited by OliverIO

                            @stsch83
                            Achtung die Vorgehensweise ist auf dem Server eine andere wie auf dem client.
                            In den Skripten auf dem Server (also in iobroker) kannst du den folgenden Befehl verwenden um alle States nach einem bestimmten Muster zu erhalten

                            $('squeezeboxrpc.0.Favorites.*')
                            Mit dem einfachen teilen habe ich mich geirrt, da je nach Favoritentyp es mehr wie 6 Datenpunkte geben kann.

                            du kannst ja mal in ein Skript den folgenden Befehl eintragen und dann dir die Logausgabe anschauen

                            log( $('squeezeboxrpc.0.Favorites.*'))
                            
                            S 1 Reply Last reply Reply Quote 0
                            • S
                              stsch83 @OliverIO last edited by

                              @OliverIO Da kommt folgendes heraus:

                              {'0':'squeezeboxrpc.0.Favorites.0.Name','1':'squeezeboxrpc.0.Favorites.0.hasitems','2':'squeezeboxrpc.0.Favorites.0.id','3':'squeezeboxrpc.0.Favorites.0.isaudio','4':'squeezeboxrpc.0.Favorites.0.type','5':'squeezeboxrpc.0.Favorites.0.url','6':'squeezeboxrpc.0.Favorites.1.Name','7':'squeezeboxrpc.0.Favorites.1.hasitems','8':'squeezeboxrpc.0.Favorites.1.id','9':'squeezeboxrpc.0.Favorites.1.isaudio','10':'squeezeboxrpc.0.Favorites.1.type','11':'squeezeboxrpc.0.Favorites.1.url','12':'squeezeboxrpc.0.Favorites.2.Name','13':'squeezeboxrpc.0.Favorites.2.hasitems','14':'squeezeboxrpc.0.Favorites.2.id','15':'squeezeboxrpc.0.Favorites.2.isaudio','16':'squeezeboxrpc.0.Favorites.2.type','17':'squeezeboxrpc.0.Favorites.2.url','18':'squeezeboxrpc.0.Favorites.3.Name','19':'squeezeboxrpc.0.Favorites.3.hasitems','20':'squeezeboxrpc.0.Favorites.3.id','21':'squeezeboxrpc.0.Favorites.3.isaudio','22':'squeezeboxrpc.0.Favorites.3.type','23':'squeezeboxrpc.0.Favorites.3.url','length':24}

                              Ich kann auch nachvollziehen, wie ich es machen kann. Allerdings müsste man ja die Elemente irgendwie gezählt bekommen und nicht nur im Log angezeigt bekommen. Meine skills in Javascript gehen aber gen 0, so dass ich nicht weiß wie ich weiter machen soll.

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @stsch83 last edited by OliverIO

                                @stsch83
                                Hier sehr kompakt:

                                var count = Object.entries($('squeezeboxrpc.0.Favorites.*')).reduce((values, [k,v]) => {
                                	if (k !== 'length' && typeof v !== "function") {
                                		v=v.split(".").slice(0,-1).join(".");
                                		if (!values.set[v]) {
                                			values.set[v] = 1;
                                			values.count++;
                                		}
                                	}
                                	return values;
                                  }, { set: {}, count: 0 }).count;
                                  
                                log(String(count));
                                
                                

                                Als Erklärung
                                $('squeezeboxrpc.0.Favorites.*') ermittelt alle Favoritendatenpunkte
                                Object.entries ergibt eine Auflistung der Datenpunkte in einem Array in Form key,value
                                .reduce klappert das Array der Reihe nach ab.
                                v.split(".").slice(0,-1).join(".") ermittelt den Datenpunktnamen, ohne das letzte Element
                                Der Rest innerhalb von Reduce speichert die Werte in ein internes Array und zählt.

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  stsch83 @OliverIO last edited by stsch83

                                  @OliverIO said in Test Adapter SqueezeboxRPC v0.8.x Latest:

                                  var count = Object.entries($('squeezeboxrpc.0.Favorites.*')).reduce((values, [k,v]) => { if (k !== 'length' && typeof v !== "function") { v=v.split(".").slice(0,-1).join("."); if (!values.set[v]) { values.set[v] = 1; values.count++; } } return values; }, { set: {}, count: 0 }).count;

                                  Vielen Dank. Das funktioniert ausgezeichnet.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    stsch83 last edited by

                                    Hallo,

                                    nach einigen testen des Adapters muss ich sagen er funktioniert wirklich Super. Danke schon mal für die tolle Arbeit.

                                    Jetzt hab ich allerdings ein Problem und weiß nicht wie ich es lösen kann. Wenn ich einen meiner Favoriten (Radio) abspiele und dann per AirPlay einen Titel von meinem Handy streame funktioniert das einwandfrei. Gibt es jetzt eine Möglichkeit, wenn der AirPlay stream gestoppt wird, wieder automatisch den letzten Favoriten zu hören ohne eine Bedienhandlung durchzuführen?

                                    Mit freundlichen Grüßen
                                    Stefan

                                    OliverIO 1 Reply Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @stsch83 last edited by OliverIO

                                      @stsch83
                                      da muss ich etwas tiefer eintauchen.
                                      Der LMS signalisiert zwar verschiedene Zustände.
                                      Sie auch hier: https://github.com/elParaguayo/LMS-CLI-Documentation/blob/master/LMS-CLI.md#notifications
                                      Ob die etwas bringen muss man ausprobieren.
                                      Darüber hinaus, welchselt der Datenpunkt state von 1 auf 2 (1=play,2=stop,0=pause) wenn ein Lied/Playlist zu Ende ist.
                                      Ob das auch für airplay gilt musst du mal ausprobieren.
                                      Ich hatte mal das airplay-plugin auf dem lms laufen, heute allerdings nicht mehr. Kann es daher aktuell nicht selber testen.

                                      Wenn der state schon reicht, dann müsste man mal genau ermitteln bei welchem Zustand was passieren soll und wann er fortsetzen soll und wann er nicht mehr fortsetzen soll.
                                      Daraus könnte man dann ein skript basteln, der dir den Status überwacht, sich den letzten gespielten Favoriten merkt und dann bei Beendigung eines Liedes, dann den letzten Favoriten wieder anstartet.

                                      S 1 Reply Last reply Reply Quote 0
                                      • S
                                        stsch83 @OliverIO last edited by

                                        @OliverIO Es ist definitiv so, dass der State nach beenden von AirPlay auf 2 geht. Dies Idee mit dem Merken und Fortsetzen hatte ich auch schon. Nur leider ist es so, wenn ich airplay erfassen will, weiß der Server nicht mehr welcher Favorit gerade gespielt wurde. Dazu evtl. einen Idee.

                                        OliverIO 1 Reply Last reply Reply Quote 0
                                        • OliverIO
                                          OliverIO @stsch83 last edited by

                                          @stsch83
                                          Wie sieht den deine Oberfläche aus? Wie steuerst du aktuell?
                                          Mir würde ein skript vorschweben, welche alle Befehle annimmt, sich die entsprechende Werte merkt und dann erst den squeezebox Adapter ansteuert, den Play-Status monitort und dann zu gegebener Zeit den letzten Favoriten wieder startet.
                                          Der LMS oder squeezebox merkt sich tatsächlich das nicht.
                                          Je nachdem wieviele Player und Favoriten du hast, kann das ein wenig Fleißarbeit sein.

                                          OliverIO 1 Reply Last reply Reply Quote 0
                                          • OliverIO
                                            OliverIO @OliverIO last edited by

                                            Neue Version v1.3.2

                                            • Fehler in den dependencies korrigiert, welcher im vorliegenden Fall unter Windows auftrat, wenn kein git installiert war
                                            • Der Datenpunkt lieferte bisher nur Alarme/Wecker die enabled waren. Nun liefert der Datenpunkt alle Alarme für einen Player
                                            OliverIO 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            821
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            squeezeboxrpc adapter
                                            29
                                            375
                                            56945
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo