Home of the Squeezebox™ & Transporter® network music players.
Page 1 of 3 123 LastLast
Results 1 to 10 of 21
  1. #1
    Junior Member
    Join Date
    Dec 2016
    Posts
    14

    Playlist speichern, CLI "playlist name ?" ist leer

    Guten Tag,
    ich habe 4 Raspberry Pi 3 im Einsatz (alle mit max2play-Image, als Squeezelight-Player, einer als Logitech Media Server). Die MP3's liegen auf einem NAS (QNAP TS-119). Im großen und ganzen bin ich mit der Einrichtung als Multiroom-System gut zurechtgekommen. Für 2 Probleme habe ich bisher keine Lösung gefunden:

    1. Obwohl die MP3's und auch M3U's abgespielt werden, kann ich keine neuen Playlisten abspeichern. Im Telnet mit "playlist save name" kriege ich einen writeError. Das wird vermutlich am Account liegen, jedoch ist der Account, den ich für die Samba-Freigabe zum NAS in max2play eingetragen habe mit Admin-Rechten ausgestattet und sollte dadurch auch Schreibrechte auf die Verzeichnisse haben. Oder der LMS versucht das intern mit einem anderen Account? Kann mir dazu einer helfen? Übrigens genau das Gleiche, wenn ich den Ordner für die Playlists auf die Speicherkarte des Raspberry Pi lege.

    2. Ich werde eine Funkfernbedienung einsetzen. Dabei will ich eine Funktion "nächste Playlist abspielen" programmieren. Das alles läuft über das CLI-Interface. Was nicht geht: Der Aufruf von "playlist name ?" gibt einen leeren Wert zurück, obwohl eine Playlist mit "playlist start Beatles" gestartet wurde und die auch läuft. Das Komische daran ist, dass wenn ich die Playlist über das Webfrontend des LMS starte, der Name korrekt ermittelt wird. Ich dachte, dass dort genau der gleiche Befehl "playlist start Beatles" benutzt wird. Was läuft da anders?

    Ich hoffe, dass mir jemand die entscheidenden Tipps geben kann.
    Freundliche Grüße
    PetiJ
    Last edited by PetiJ; 2016-12-04 at 01:22.

  2. #2
    Senior Member
    Join Date
    Sep 2005
    Posts
    2,848
    Hi,

    tu mir und dir einen Gefallen - mach das mit den Doppelposts nicht mehr.
    Wenn du dich im enu Teil nicht so wohl fühlst, schreibs im deutschen teil.

    Weil heute Artzvent ist mach ich mal ne Ausnahme (ich hab schliesslich einen Ruf zu verlieren, den ich mir mühevoll aufgebaut habe) *lach

    Das ist mein Autoplayer von einem RPI - den kannst du dir mal zu gemüte ziehen (ist aber hier bestimmt schon gepostet worden...)

    Der Abschnitt vars: ist der Teil, den du zuerst anpassen musst -

    • playerID ist die MacAdresse des RPI
    • my_playlist die Playlist incl. des pfades, wie Ihn lms sieht - also bei dir wahrscheinlichlich mit /media/nas/x/y/z
    • server die IP des lms
    • port der cliport üblicherweise ist deiner der gleiche.


    Code:
    #! /bin/sh
    
    ###vars:
    playerID="CA:FE:04:DJ:AN:GO"
    my_playlist="/home/jan/[playlist]/Garten.m3u"
    server=192.168.199.11
    port=9090
    playerstatus=0
    sleep 4
    
    playerstatus=$(printf "$playerID power ?\nexit\n" |nc $server $port|cut -d ' ' -f 3)
    echo  [$playerstatus]
    if [ $playerstatus = 1 ]
       then
       playerstatus=on
    fi
    
    if [ ! $playerstatus = on ]
       then
       echo "powering player on"
       printf "$playerID power 1\nexit\n"|nc $server $port
    else
       echo "player is on"
    fi
    
    playermode=$(printf "$playerID mode ?\nexit\n" |nc $server $port|cut -d ' ' -f 3)
    if [ ! $playermode = play ]
       then
       echo "nothing to play"
       echo "try to play players playlist"
       printf "$playerID  play\nexit\n"|nc $server $port
       sleep 2
       playermode=$(printf "$playerID mode ?\nexit\n"|nc $server $port|cut -d ' ' -f 3)
       if [ ! $playermode = play ]
          then
          echo "no playlist loaded we play Garten.m3u now"
          printf "$playerID playlist play $my_playlist\nexit\n"|nc $server $port
       fi
    else
       echo "playing"
    fi
    viel Spass hier im Forum
    Jan

  3. #3
    Junior Member
    Join Date
    Dec 2016
    Posts
    14
    Hallo Jan,
    ich entschuldige mich für den Doppel-Post und werde das zukünftig vermeiden. Und erstmal Danke für Deine Antwort und Deine Mühe.
    Wenn ich Dein Script richtig verstehe: Du fragst ab, ob der Player was abspielt, falls nicht wird die "Garden.m3u" abgespielt. Das was ich suche ist die Rückgabe per CLI, welche Playlist läuft und nicht ob "irgendetwas" läuft. Das sollte mit "playlist name ?" gehen. So steht es in der CLI Hilfe (die ich aufmerksam gelesen habe). Aber obwohl eine Playlist läuft, kriege ich einen leeren Rückgabewert. Ich brauche die aktuelle Playlist, um die nächste (Liste habe ich über CLI eingelesen) auswählen zu können. Das sehe ich bei Deinem Script leider nicht (soweit meine geringen Erfahrungen mit der Linux-Shell dafür genügen).

    Vielleicht hatte ich mich im 1. Post auch nicht richtig ausgedrückt?

    Freundliche Grüße
    PetiJ

  4. #4
    Senior Member
    Join Date
    Sep 2005
    Posts
    2,848
    Quote Originally Posted by PetiJ View Post
    Das was ich suche ist die Rückgabe per CLI, welche Playlist läuft und nicht ob "irgendetwas" läuft. Das sollte mit "playlist name ?" gehen.
    Welche Version hast du denn?
    ich hab die aktuellste unter debian und das läuft immer noch...

    printf "$playerID playlist name ?\nexit\n"|nc $server $port|cut -d ' ' -f4-
    Garten

  5. #5
    Junior Member
    Join Date
    Dec 2016
    Posts
    14
    Hallo,
    Logitech Media Server Version: 7.9.0 - 1480516903 @ Wed Nov 30 15:37:58 UTC 2016
    ... das sollte die aktuellste sein.
    Es ist ja auch komisch, dass nur wenn ich eine Playlist über "playlist play Beatles" starte die Abfrage mit "playlist name ?" leer ist. Wenn ich das gleiche Album über das Web Front End starte, dann kriege ich den Namen mit "playlist name ?" korrekt als Ergebnis. Du hast geschrieben, dass in der CLI-Hilfe noch mehr stehen müsste (zusätzliche Parameter beim starten). Da gibt es nur die Option zum Einblenden, mehr leider nicht. Ich kann den Unterschied beim Starten der Playlist nicht erkennen. Sollte doch das Gleiche sein (macht ja auch beides das Gleiche), nur das folgende Auslesen geht mal und mal nicht.
    Danke für Deine Bemühungen.
    Grüße
    PetiJ

  6. #6
    Senior Member
    Join Date
    Sep 2005
    Posts
    2,848
    Quote Originally Posted by PetiJ View Post
    Es ist ja auch komisch, dass nur wenn ich eine Playlist über "playlist play Beatles" starte die Abfrage mit "playlist name ?" leer ist. Wenn ich das gleiche Album über das Web Front End starte, dann kriege ich den Namen mit "playlist name ?" korrekt als Ergebnis.
    steht denn in beiden Fällen rechts unten auf der WebOberfläche auch der Playlistname?

    Quote Originally Posted by PetiJ View Post
    Du hast geschrieben, dass in der CLI-Hilfe noch mehr stehen müsste (zusätzliche Parameter beim starten). Da gibt es nur die Option zum Einblenden, mehr leider nicht. Ich kann den Unterschied beim Starten der Playlist nicht erkennen. Sollte doch das Gleiche sein (macht ja auch beides das Gleiche), nur das folgende Auslesen geht mal und mal nicht.
    Danke für Deine Bemühungen.
    Grüße
    PetiJ
    schau dir mal die Ausgabe und Hilfe von status 0 5 tags an.

    Ich vermute mal, du solltest zuerst dein rechteprpblem mit den Playlistordnern in den Griff kriegen, wahrscheinlich ist die kosmische Ausgabe in deinem Fall darin begründet.

    btw: wie holst du die Info?

  7. #7
    Junior Member
    Join Date
    Dec 2016
    Posts
    14
    Hallo,
    da hast Du Recht, unten rechts steht nur beim Start der Playlist über das Web Front End der Name der Playlist, beim Start über CLI steht dort nichts. War mir noch nicht aufgefallen. Wie kann ich das ändern?
    "status 0 5 tags" gibt mir in beiden Fällen das Gleiche aus, unter anderem playlist mode: off ....?

    Ich kann mir nicht vorstellen, dass die Rechte damit zu tun haben sollen, aber das werde ich in Angriff nehmen. Ich denke, dass ich auf dem NAS den Benutzer squeezeboxserver einrichten muss (welches Passwort hat der?) und mit Rechten auf das entsprechnde Verzeichnis versehen muss, richtig?

    Ich hole die Info über das CLI-Interface: Ich starte eine Telnet-Sitzung auf die IP des LMS mit Port 9090. Dort gebe ich die Befehle ein (so wie in der Hilfe beschrieben): "[MAC] playlist play Beatles". Dann rufe ich den Namen ab mit "[MAC] playlist name ?". Das halte ich für den schnellsten Weg um die Befehle zu testen bevor ich sie in mein Python-Script einbaue.

    Danke für Deine Bemühungen.
    Grüße
    PetiJ

  8. #8
    Senior Member
    Join Date
    Sep 2005
    Posts
    2,848
    Quote Originally Posted by PetiJ View Post
    "status 0 5 tags" gibt mir in beiden Fällen das Gleiche aus, unter anderem playlist mode: off ....?
    dann spiel mal mit den Werten "status 0 20 tags"

    Quote Originally Posted by PetiJ View Post
    Ich kann mir nicht vorstellen, dass die Rechte damit zu tun haben sollen, aber das werde ich in Angriff nehmen.
    es gibt einen Grund, warum ich das behaupte eischene erfahrung

    Quote Originally Posted by PetiJ View Post
    Ich denke, dass ich auf dem NAS den Benutzer squeezeboxserver einrichten muss (welches Passwort hat der?) und mit Rechten auf das entsprechnde Verzeichnis versehen muss, richtig?
    machs nicht zu kompliziert...

    • der User squeezeboxserver kommt mit dir in eine gruppe lms
    • in deinem lms vergibst du die rechte für /media/deinnaspfad für dich und die lms gruppe
    • du sorgst dafür, dass dein nas vorm lms start gemappt ist
    • und stellst die rechte auf den playlistordner wie oben ein.


    Quote Originally Posted by PetiJ View Post
    Ich hole die Info über das CLI-Interface: Ich starte eine Telnet-Sitzung auf die IP des LMS mit Port 9090. Dort gebe ich die Befehle ein (so wie in der Hilfe beschrieben): "[MAC] playlist play Beatles". Dann rufe ich den Namen ab mit "[MAC] playlist name ?". Das halte ich für den schnellsten Weg um die Befehle zu testen bevor ich sie in mein Python-Script einbaue.

    Danke für Deine Bemühungen.
    Grüße
    PetiJ
    weil z.b printf immer funktioniert echo aber nicht. Aber da du manuell via cli arbeitest ist das in dem Moment noch ohne belang.

    "[MAC] playlist play Beatles"
    Genau das war doch der Grund, warum ich die mein autostartplay script geschickt habe.
    "[MAC] playlist play /mein/pfad/zur/playlist/Beatles.m3u"

  9. #9
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    20,430

    Playlist speichern

    > Es ist ja auch komisch, dass nur wenn ich eine Playlist über "playlist
    > play Beatles" starte die Abfrage mit "playlist name ?" leer ist. Wenn


    Könntest du mal den exakten Befehl geben, den du verwendest? "playlist
    play Beatles" würde m.E. gar nichts spielen, da hier ein Pfad oder eine
    ID erwartet wird.

    --

    Michael

  10. #10
    Junior Member
    Join Date
    Dec 2016
    Posts
    14
    Hallo Michael,

    im Telenet mit dem Befehl: [MAC] playlist play Beatles
    Dann wird die Playlist mit dem Namen "Beatles" abgespielt. Das funktioniert. Ich benötige in einem Script die gerade verwendete Playlist. Das sollte über [MAC] playlist name ? abgefragt werden können (laut CLI Hilfe). Bei mir geht das nicht, siehe oben.

    Grüße
    PetiJ

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •