Robot als Spotify Lautsprecher

  • Hallo als ich die Idee von MicroDevil mit MiPlay entdeckt habe, hab ich einfach mal "spotify" drauf installiert.

    Das funktioniert wunderbar einfach mit "librespot" oder einfach per "raspotify" (https://github.com/dtcooper/raspotify)

    einfach die .dep datei runterladen, mit dpkg -i https://github.com/dtcooper/raspotify installieren


    da unsere robo leider noch keine systemd unterstützt, hab ich es einfach in den autostart per cronjob gepackt

    Code
    1. @reboot /usr/bin/librespot --name staubi1 --backend alsa --bitrate 160 --disable-audio-cache --enable-volume-normalisation --linear-volume --initial-volume=100

    so wenn ihr Spotify premium habt, könnt ihr den Staubsauger nun als Spotify Lautsprecher auswälen



    mfg

  • catraxx

    Approved the thread.
  • Was bedeutet denn dep Datei runterladen? :/


  • Könntest du mir bitte erklären, wie das mit dem cronjob funktioniert. Ich bin leider mit Linux nicht so vertraut. Ich komme aber mit WinSCP auf den Robbi :-)


    Das Installieren von Spotify hat funktioniert, und auch das starten mit Putty (hatte also Audioausgabe) Sobald ich aber Putty geschlossen habe - Musik aus


    Danke

    da unsere robo leider noch keine systemd unterstützt, hab ich es einfach in den autostart per cronjob gepackt

    Code
    1. @reboot /usr/bin/librespot --name staubi1 --backend alsa --bitrate 160 --disable-audio-cache --enable-volume-normalisation --linear-volume --initial-volume=100
  • Könntest du mir bitte erklären, wie das mit dem cronjob funktioniert. Ich bin leider mit Linux nicht so vertraut. Ich komme aber mit WinSCP auf den Robbi :-)


    Das Installieren von Spotify hat funktioniert, und auch das starten mit Putty (hatte also Audioausgabe) Sobald ich aber Putty geschlossen habe - Musik aus


    Danke

    Die cronjobs konfiguriert man unter Linux mit folgenden Befehl:

    Code
    1. crontab -e

    Bei meinen S5 habe ich es aber noch nicht getestet...

  • Habe viel gelesen über Crontabs und mit crontab -e auch deine Zeile

    Code
    1. @reboot /usr/bin/librespot --name staubi1 --backend alsa --bitrate 160 --disable-audio-cache --enable-volume-normalisation --linear-volume --initial-volume=100

    eingetragen. Wird mir auch bei erneuten aufrufen von crontab -e angezeigt.

    Reboot habe ich auch mehrfach durchgefüht.

    Leider erscheint aber der Saugi nicht unter Wiedergabegeräte.


    Nur wenn ich den Befehl unter Putty (ohne @reboot) eingebe funktioniert das wiedergeben von Spotify, solange bis ich Putty schließe.


    Hat jemand noch eine Idee und Sorry für meine Unwissenheit


  • Ich habe das ganze bei mir so gelöst.

  • Knallochse

    NOCH bist Du nicht fit mit Linux, aber sehr bald, glaube es mir. Der Robbi sorgt schon dafür ;)


    *Programm kann auch ein Skript sein*


    Die Erklärung zu Deinem Problem (auch für die Nachwelt):

    Bei @Reboot ist nicht immer sichergestellt, dass der Bootvorgang soweit abgeschlossen ist, dass ein bestimmtes Programm bereits lauffähig ist. Das kann leider immer wieder vorkommen. cmus ist z.B. auch so ein Kandidat und erwartet bestimmte Variablen, die beim Booten noch nicht gesetzt sind.


    Daher hat 0x539 über upstart sichergestellt, dass das Dateisystem und Netzwerk verfügbar sind start on filesystem and net-device-up IFACE=wlan0, bevor das Tool gestartet wird. Das Tool läuft nun automatisch als Service, sobald beide Bedingungen beim Reboot erfüllt sind.


    Zu dem 2. Problem -> Programm wird bendet, wenn Du Putty schließt:

    Falls ein Programm weiterlaufen soll, nach dem Du Putty geschlossen hast, dann musst Du das Programm von der aktuellen Session trennen.

    Das macht man z.B. mit nohup <command> &


    In Deinem Fall:

    nohup /usr/bin/librespot --name r0bi --backend alsa --bitrate 160 --disable-audio-cache --enable-volume-normalisation --linear-volume --initial-volume=100 &

    Würdest Du nun Dein Putty schließen, würde das Programm dennoch weiterlaufen.


    Erklärung für &:

    Um ein Programm im Hintergrund auszuführen, fügt man einfach ein & dahinter <command> &

    Du siehst zwar das Programm dann nicht mehr und die Konsole wird nicht von dem Programm blockiert, aber Meldungen, oder Fehler werden dennoch auf der Konsole ausgegeben.


    Das kannst Du verhindern, in dem Du die Ausgaben zusätzlich wie folgt umleitest <command> >/dev/null 2>&1 &

    Jetzt wird (2)stderr auf (1)stdout und beide auf /dev/null umgeleitet. Das ist quasi das schwarze Loch von Linux, das alles verschwinden lässt, was rein kommt.


    Verbunden mit dem & am Ende würdest Du nun weder das Programm, noch seine Ausgaben sehen.

    Du könntest nun quasi ungestört auf der Konsole arbeiten, ohne von dem Programm gestört zu werden. Es läuft im Hintergrund.



    Gruß

    MD

    Xiaomi Vacuum GEN 1

  • MicroDevil Danke für die ausführliche Hilfestellung.

    Bis ich fit für Linux bin, dauert garantiert noch eine ganze Weile 😀

    Du kannst hervorragend Wissen vermitteln.
    Ich habe auf Anhieb alles verstanden, und wieder um ein paar grundlegende Sachen schlauer 👍


    Vielen Dank