Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS(Sammlung) Squeeze

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

    #16
    Zitat von rdeckard Beitrag anzeigen
    Wegen Client kann ich erst am Abend testen. (Wobei ich heute vermutlich nicht viel Zeit habe.)
    Keine Eile

    Wobei mir noch einfaellt, wegen der Sync Geschichte:
    Ich habe selber noch nix damit gemacht, aber in der Theorie waee es natuerlich moeglich, dass Du deswegen keine Ausgabe bekommst - also der LMS nur Daten fuer den Chef der Syncgruppe rausgibt. Das wuerde zwar meinem Verstaendnis widersprechen, ist aber natuerlich trotzdem im Bereich des Moeglichen
    Und ja, auch das Syncen laeuft ueber CLI Kommandos - ich werd mal versuchen in naechster Zeit rauszufinden wie genau das funktioniert.

    dank & gruss :: Michael

    Kommentar


      #17
      Kleiner Tipp: Seit 1.21 gibt's den "Telegrammgenerator"-LBS: Funktioniert ähnlich wie ein Oszillator, der Ausgang wechselt aber nicht zwischen 1 und 0, sondern bekommt zyklisch immer den gleichen Wert (E1) zugewiesen. Dies dürfte für viele Zwecke besser geeignet sein als der Oszillator.
      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

      Kommentar


        #18
        Zitat von gaert Beitrag anzeigen
        Dies dürfte für viele Zwecke besser geeignet sein als der Oszillator.
        Stimmt, hier wohl auch.. Danke!

        Also wer den Oszi zur Aktualisierung der Abspielposition braucht(e), braucht ihn jetzt nicht mehr - bitte durch den Telegrammgenerator ersetzen

        Kommentar


          #19
          Michael, bin jetzt auf 1.21 (von 1.18) und nun bekomme ich Resultate. Cool! Schon voll nutzbar.

          Was bei mir nicht richtig geht, ist Volume auf einen festen Wert zu setzen. Was für ein Typ sollte dieses KO denn haben?
          Wenn ich z.B. in der Visu den Wert auf 19 setze, dann wird die Lautstärke nicht verändert, aber der Ausgang (Volume) hat den Wert 19. Solange, bis es ein Refresh gibt. Dann hat er wieder den alten Wert (der auch so zu hören ist).

          Hast du schon mal einen Lautstärke-Regler getestet. Da bei mir der (sinnvolle) Lautstärke-Bereich sehr klein ist (so zwischen 15 und 35), sollte der Regler auch nur diesen Bereich umfassen. (Möchte verhindern, dass man aus Versehen einen zu hohen Wert erreicht)
          Die Regler sind ja glaub intern zwischen 0-255.

          Kommentar


            #20
            Zitat von rdeckard Beitrag anzeigen
            Michael, bin jetzt auf 1.21 (von 1.18) und nun bekomme ich Resultate. Cool! Schon voll nutzbar.
            Freut mich
            Die "Suite" geht erst ab 1.19, wie im ersten Post beschrieben, dann lags sicherlich daran.

            Zitat von rdeckard Beitrag anzeigen
            Was bei mir nicht richtig geht, ist Volume auf einen festen Wert zu setzen. Was für ein Typ sollte dieses KO denn haben?
            ...
            Die Regler sind ja glaub intern zwischen 0-255.
            Der Wert liegt zwischen 0 und 100, alles ueber 100 "bleibt" 100.
            Wieso das nicht funktioniert, versteh ich allerdings nicht wirklich... wenn du im Client LBS auf E3 ein "mixer volume 25" anlegst, passiert dann was?
            Und mit Lautstärker-Regler meinst du was genau? Ein Visu-Element? Nein, leider nicht - ich hab noch immer keine Visu

            gruesse :: Michael

            Kommentar


              #21
              Zitat von rdeckard Beitrag anzeigen
              Die Regler sind ja glaub intern zwischen 0-255.
              Sind se nicht Du bestimmst den Wertebereich selbst, indem Du in der Konfiguration des entsprechenden KOs einen Min/Max-Wert angibst. Bei DPT-Typen bestimmen ggf. die Wertebereiche des DPTs den Min/Max-Wert (wenn keine Angaben gemacht wurden), aber bei "Variant" funktioniert dies natürlich nicht - der Wertebereich ist ja nicht bekannt bzw. "unendlich".

              Kurz gesagt: Die "Schieberegler" brauchen Min/Max-Werte, denn sonst haben die Burschen keine Anschläge und können naturgemäß nicht funktionieren. Der "Drehregler" braucht nicht unbedingt Min/Max-Werte, da dieser quasi ein Endlosregler ist (ohne Anschläge) - aber natürlich kann man bei Bedarf auch hier Min/Max angeben.
              EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

              Kommentar


                #22
                Übrigens: Wenn der Oszi/Telegrammgenerator ohnehin im Sekundentakt triggert, kann man auch gleich das System-KO "Uhrzeit" (oder so ähnlich) nehmen - denn dieses könnte den LBS ganz einfach im Sekundentakt triggern... Bei Bedarf (Ein/Aus) kann man ja noch eine Sperre dazwischen schalten.
                EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                Kommentar


                  #23
                  So, nachdem ich den Baustein jetzt ein paar Tage im Einsatz habe ist mir aufgefallen, dass nach einem Neustart der Ausgang eines Clients keine Werte enthält.
                  Die Ausgänge der Clients werden erst gefüllt, wenn irgendein Kommando gesendet wird oder wenn der Squeezebox Status sich ändert (Position reicht aber anscheinend nicht).
                  Das führt dann z.B. auch dazu, dass wenn ich auf den Eingang eines Commando Bausteines auf Pause eine 1 schreibe, was ja sonst Pause macht, der entsprechende Client auf Play geht.
                  Im Normalbetrieb also ohne Neustart habe ich sonst keine Probleme feststellen können und bin immer noch sehr zufrieden!
                  Grüße
                  Matze

                  Kommentar


                    #24
                    Zitat von fisch3009 Beitrag anzeigen
                    So, nachdem ich den Baustein jetzt ein paar Tage im Einsatz habe ist mir aufgefallen, dass nach einem Neustart der Ausgang eines Clients keine Werte enthält.
                    Danke, das ist ein Bug...

                    Da ich bald auch mal den Command-LBS fixen wollte: wie ist das jetzt gewuenscht?
                    Soll es einzelne Eingaenge fuer (zB) Play/Pause/Stop geben?
                    Oder nur einen?
                    Oder so wie es jetzt ist (also quasi eine Mischform)?
                    Oder soll ich einfach zwei LBS machen?

                    Ich weiss naemlich selber nicht wie ich das am liebsten haette

                    Kommentar


                      #25
                      Volume Slider
                      Ich wollte mal einen Volume-Slider testen, aber scheinbar mache ich noch was falsch.
                      Habe beim Slider als Status KO den KO genommen, der vom Squeeze Client LBS als Ausgang kommt, also den aktuellen Wert zeigt.
                      Als zweiten KO dann den Befehls-KO, der als Eingang im Squeeze Command LBS kommt.
                      squeeze4.png

                      In der Visu sieht es aber dann so aus:
                      squeeze3.png
                      D.h. der aktuelle Wert wird angezeigt, aber der Knopf ist auf der 0-Position. Komischerweise kann ich den Knopf auch gar nicht bewegen. Er ist wie festgenagelt und dabei blinken in der Mitte dann 2 Fragezeichen.
                      Ich muss dazu sagen, dass ich noch nicht mit den Slidern gearbeitet habe. Denke nicht, dass es mit dem LBS zu tun hat.

                      Absoluter Volume-Wert
                      Ich habs noch nicht hinbekommen, einen absoluten Volume-Wert (z.B. fix 20) mitzugeben. Zurzeit sieht beim LBS so aus:
                      squeeze5.png

                      Habe auch schon mal im E3 "mixer volume=20" eingegeben. Der Volume-Ausgang wurde dabei aktualisiert, aber der Player hat den Befehl nicht angenommen.
                      Funktioniert das denn bei dir? Kannst du z.B. im E10 beim Squeeze Command einen Wert eingeben und wird der auch so gespielt?

                      Status-Werte
                      Eine Frage noch generell zu den Status-Werten (also Ausgänge vom Squeeze-Client). Sind das rein intern gehaltene Variablen oder kannst du diese vom LMS abrufen?
                      Mir ist nämlich aufgefallen, dass wenn ich die Lautstärke mit meinen alten HTTP-Befehlen verändere, dann wird dies von deinem LBS nicht erkannt. Zu Testzwecken habe ich im Moment nicht meine alte Steuerung auf der Visu, deshalb ist mir das aufgefallen. Klar werde ich diese bald entfernen und alles läuft über dein LBS. ABER...ich habe auf dem Handy noch einen Squeeze-Client (iPeng) installiert. D.h. es ist durchaus möglich (und teilweise auch sinnvoll), dass ich den LMS darüber steuere. Oder auch über die LMS-Webseite. Somit kann es passieren, dass die Squeeze-Player ausserhalb vom LBS gesteuert werden. Dies sollte der LBS natürlich erkennen.

                      Squeeze Command Eingänge
                      Bezüglich deiner letzten Frage bin ich auch noch etwas am Zweifeln. Die aktuelle Variante mit jeweils einem Eingang/KO pro Befehl ist sicher im LBS übersichtlich, aber "verbraucht" halt viele interne KO's. Zudem können widersprüchliche Werte definiert werden (Play=1 UND Stop=1), was ich generell als Entwickler ungern sehe. Auch wenn es später sequentiell verarbeitet wird und somit nichts "passieren" kann. Irgendwie ist es bisschen unschön.
                      Zuviele Befehle in ein KO zu packen, ist aber auch etwas doof.
                      Du hast weiter oben mal geschrieben, dass diese Befehle im E3 des Squeeze Client hintereinander abgearbeitet werden. Welche Reihenfolge wird denn da verwendet?
                      Evtl. wärs wirklich nicht so schlecht, zusammengehörende Befehle in ein KO gruppieren (z.B. Stop/Play/Pause) und diese dann mittels eine Zahl zu definieren. Nachteil ist, dass es nicht mehr selbstsprechende KOs sind, d.h. man muss in der Visu wissen, dass ein 1 ein Stop ist und 3=Pause.
                      Wieviele Befehle gibt es eigentlich noch? Hängt also sicher auch davon ab, wie gross irgendwann mal dieser Squeeze Command LBS mal wird. (Es fehlen ja noch Befehle für die Synchronisierung/Gruppierung von Playern)

                      Kann man dein Debugging ein/ausschalten oder sind deine TraceToLog-Befehle fix? (Habe gesehen, dass du das Trace-Log beschreibst).

                      Kommentar


                        #26
                        Erstmal danke fuer das umfangreiche Feedback!

                        Zitat von rdeckard Beitrag anzeigen
                        Volume Slider
                        Ich wollte mal einen Volume-Slider testen, aber scheinbar mache ich noch was falsch.
                        Ich hab noch immer keine Visu
                        Aber bitte bedenken, dass der LMS den Status etwas zeitversetzt zurueckliefert...

                        Zitat von rdeckard Beitrag anzeigen
                        Absoluter Volume-Wert
                        Ich habs noch nicht hinbekommen, einen absoluten Volume-Wert (z.B. fix 20) mitzugeben. Zurzeit sieht beim LBS so aus:
                        Das sieht alles gut aus, ich hab das grad bei mir auch nochmal getestet, prinzipiell funktioniert es.
                        Da hilft vermutlich nur, das debugging im Client (oder im Server) zu aktivieren und zu schauen was genau als LMS Kommando rausfaellt.

                        Zitat von rdeckard Beitrag anzeigen
                        Status-Werte
                        Eine Frage noch generell zu den Status-Werten (also Ausgänge vom Squeeze-Client). Sind das rein intern gehaltene Variablen oder kannst du diese vom LMS abrufen?
                        Mir ist nämlich aufgefallen, dass wenn ich die Lautstärke mit meinen alten HTTP-Befehlen verändere, dann wird dies von deinem LBS nicht erkannt.
                        Mir scheint, da ist noch irgendwo ein tieferliegendes Problem o\
                        Selbstredend sollte da aktualisiert werden, wenn irgendwelche Werte von aussen geaendert werden - das passiert ja zB auch bei nem Track-Wechsel.
                        Ich hab hier momentan nen SqueezePlay unter Windows zum Testen, parallel ne Android-App, wenn ich da die Lautstaerke aendere, kommt das auch im Baustein an.

                        Technisch: der LBS meldet sich am LMS fuer bestimmte Ereignisse an (das ist diese "subscription"). Sobald der LMS fuer einen betreffenden Player eine Aenderung feststellt, teilt er das also dem LBS mit. Egal, wer diese Aenderung angeschubst hat.

                        Natuerlich ist das so geplant, dass mehrere Clients parallel arbeiten koennen/muessen/sollen/duerfen, das hat aber mit dem LBS erstmal nix zu tun, das liegt im Prinzip des LMS

                        Kann es sein, dass irgendwas mit Deinem StatusKO nicht so ist wie es sein sollte? Das wuerde das Verhalten vllt erklaeren...

                        Zitat von rdeckard Beitrag anzeigen
                        Squeeze Command Eingänge
                        ...
                        Zudem können widersprüchliche Werte definiert werden (Play=1 UND Stop=1), was ich generell als Entwickler ungern sehe.
                        Ja, ne... das ist bei so event-gesteuerten Systemen etwas anders. Es geht ja um den Ereigniswechsel, nicht um den aktuellen Status eine Objektes (der wird sofort wieder vergessen). Und da etwas nie gleichzeitig passieren kann, kann es da auch (technisch) nie Probleme geben.
                        EDIT: gibt es sowas wie Quantum::Entanglement eigentlich auch fuer PHP?

                        Zitat von rdeckard Beitrag anzeigen
                        Du hast weiter oben mal geschrieben, dass diese Befehle im E3 des Squeeze Client hintereinander abgearbeitet werden. Welche Reihenfolge wird denn da verwendet?
                        First come, first serve

                        Zitat von rdeckard Beitrag anzeigen
                        Hängt also sicher auch davon ab, wie gross irgendwann mal dieser Squeeze Command LBS mal wird.
                        Weiss ich auch noch nicht
                        Der Kommando LBS war auch eher ein POC-Dingen, ich setze die Befehle bisher immer direkt ab... ich muss da nochmal in mich gehen o\

                        Zitat von rdeckard Beitrag anzeigen
                        Kann man dein Debugging ein/ausschalten oder sind deine TraceToLog-Befehle fix? (Habe gesehen, dass du das Trace-Log beschreibst).
                        Im (in jedem) LBS sollte es (irgendwo am Ende) eine debug Routine geben, da drin steht das writeToLog, einfach auskommentieren.

                        dank & gruss :: Michael
                        Zuletzt geändert von wintermute; 03.03.2016, 21:57. Grund: LMS/LBS typo, Quantum::Entanglement

                        Kommentar


                          #27
                          Hi Michael,

                          Habe gerade etwas mit den Squeezebox LBS gespielt und festgestellt, dass die Verwendung von Credential noch nicht funktioniert. Ursache ist ein Fehler im php Code.
                          Es fehlt der Befehl "login". Derzeit wird bei der Initialisierung der Verbindung nur "username password" gesendet. Es muss jedoch "login username password" sein.

                          In der funktion init_connection müsste also

                          PHP-Code:
                          if ($credentials) { parseResponse(send($credentials)); } 
                          in

                          PHP-Code:
                          if ($credentials) { parseResponse(send("login ".$credentials)); } 
                          geändert werden. Danach funktioniert die Authentisierung am Squeezeboxserver problemlos.

                          Viele Grüße
                          André

                          Kommentar


                            #28
                            Zitat von jonofe Beitrag anzeigen
                            Derzeit wird bei der Initialisierung der Verbindung nur "username password" gesendet. Es muss jedoch "login username password" sein.
                            Huch, danke
                            Ist in der naechsten Version gefixt!

                            Kommentar


                              #29
                              Zum Slider kurz:
                              Du musst(!) einen Min/Max-Wert in der KO-Konfiguration angeben - sonst würde der Slider keine "Anschläge" haben und kann somit auch nicht funktionieren... Oder Du nimmst stattdessen den "Drehregler" - der hat keine Anschläge und braucht somit auch kein Min/Max.
                              EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                              Kommentar


                                #30
                                Hab ich ja getan (entsprechend deiner Antwort bezüglich meiner anderen Slider-Frage). Ich nehme an, das ist nur beim KO, welcher steuert wichtig und nicht beim KO-Status, der ja nur für die aktuelle Anzeige wichtig ist. Oder muss man bei beiden KOs ein Max/Min definieren?
                                Könnte es auch daran liegen, dass der Status KO vom Typ variant ist? (Wert wird zwar im Slider-Knopf angezeigt)

                                Kommentar

                                Lädt...
                                X