Beiträge von nero0345

    Hi,

    klasse Projekt. Da wir kein Sonos System haben, habe ich jetzt die Version V1.6 mit dem spotifycontroller von andi82 aufgesetzt.

    Problem: Egal welche Device ID ich in der Config hinterlege, es wird immer auf dem zuletzt ausgewählten Gerät abgespielt. Wenn ich mich in der Spotify App auslogge, dann das oberste auf der http://localhost:5005/getDevices Liste.

    Irgendwo hatte ich von dem Problem schon gelesen, aber keine Lösung gefunden.

    Habe den Log Mode auf debug gesetzt. Wo finde ich eigentlich die debug logs?

    Du findest die logs unter "pm2 logs".

    Mit der spotifycontroll ist etwas kompliziert und funktioniert nicht immer. Entweder codest du es hart um, oder du wartest ein bisschen.
    Wir arbeiten gerade an einem fertigem Image mit aller Funktionalität ohne die Sonosbox und ein paar Extras.

    VG

    BTW: Welche crontab (root, <user>, systemweite) benutzt Du und wie sieht z. Zt. der (funktionierende) Eintrag in dieser crontab aus?

    Das sind die Einträge die ich dort hinzugefügt habe im crontab. Hab für andere und weniger "komplexe" Sachen auch ein paar Services in Nutzung (ohne Timer) die funktionieren. Naja wer weiß.

    @reboot > /home/pi/idle-shutdown/log/idle_shutdown.log

    * * * * * /bin/bash /home/pi/idle-shutdown/idle_shutdown.sh

    # - - - -

    Hey nero,

    Respekt, das klingt nicht übel.

    Aber wo ist der Code...? ;)

    (Noch eine Frage: Du schreibst "Anbindung von Spotify Premium": Das war doch vorher schon eingebaut, oder nicht? Oder läuft das jetzt bei Dir anders als vorher? Erzähl mal!)

    Den "Code" oder sagen wir die files mit den Anpassungen und der Anleitung dazu was wo hin muss würde ich die nächsten Tage mal machen. Bin erstmal froh, dass ich es geschafft habe.

    Weiß auch noch nicht so richtig wie ich das alles zusammen fass. Hab auch überlegt einfach ein Image von meinem System zu machen und die Informationen wo was angepasst werden muss.

    Mit Anbindung an Spotify meinte ich einfach, das ich die Anbindung nutze, von der du eine Anleitung gemacht hast und keine Sonosbox nutze.

    Hallo zusammen,

    ich habe mich die letzten zwei Wochen im Zimmer eingeschlossen, um das ganze System so umzubiegen, dass es auf meine Anforderungen passt. Nun habe ich es endlich geschafft und würde wenn ihr interesse daran habt meine Umsetzung mit euch teilen. Ich muss nur dazu sagen, dass es nicht immer "sauber" programmiert wurde, aber mit meiner begrenzten Erfahrung bin ich sehr stolz auf das was bei rausgekommen ist.

    Sicherlich nichts für die Sonos-Nutzer, aber alle anderen die kein Sonossystem besitzen sicherlich ganz gut.

    Ich habe folgendes umgesetzt:

    • Nutzung ohne Sonos
    • völlig autark, nur mit Powerbank
    • herunterfahren per Knopfdruck und lösen vom Akku (OnOffShim)
    • automatisches herunterfahren nach x Minuten wenn keine Musik abgespielt wird
    • automatisches ausschalten des Bildschirms nach x Sekunden
    • Wechsel von der direkt angeschlossenen Boxen des Pi's zu einem Klinkenstecker
    • Anbindung von Spotify Premium
    • Keine Schrift beim hoch und runterfahren
    • Splashscreen beim hochfahren
    • Sound beim Starten und runterfahren
    • lokaler Musikplayer für lokal abgelegte Musik
    • lokale Nutzung von Covern
    • TTS Nutzung
    • Und all das über das wundere Interfache von @Thyraz
    • Ergänzung von Vor- und Zurückspulen im Track

    Vielen Dank für eure großartige Arbeit und Unterstützung.

    Danke @Thyraz @andi82 @iee168 @harteknut

    Mein Sohn wird sich freuen wenn es fertig ist.

    Das will mir einfach nicht in den Kopf, warum es nicht funktionieren will... :conf:

    nero0345 Eine Idee habe ich noch. Setz mal den ausführenden User in die *.service Datei rein.

    Ergänze dazu mal direkt unter ExecStart=/bin/bash /home/pi/test.sh die Zeile User=pi

    Gute Idee habe ich auch schon gemacht, aber trotzdem Danke für deine Mühe.

    Von mir aus musst du nicht weiter daran rum basteln. Ich bin mit der crontab Lösung sehr zufrieden.

    Was mich stutzig macht, ist..

    Warum hast du denn einmal =60 (Sec.) und einmal =1min?

    Was passiert denn wenn du beide Male =60 eingibst?

    Das hatte ich schon gehabt, hatte aber keine Auswirkung, habe es nur auf anraten eingefügt mit dem gleichen Ergebniss.


    Hast Du hier (Beitrag 40) 7 Minuten gewartet? Falls nicht, dann entferne mal das /7 und versuche das bitte nochmals.

    Ja hab gewartet und es ist nichts passiert, kann aber auch sein, das ich was falsches gemacht habe oder vielleicht die Berechtigungen nicht passen, wie gesagt mit crontab kenne ich mich nicht aus. Auch beim Entfernen passiert nichts.

    Genau das hatte ich befürchtet! ^^ Ich mag "meine" Crontabs auch sehr, aber es wäre echt schön, wenn Du uns helfen könntest, den Fehler in den Units zu finden, denn genau darum geht es in Foren. Wir wollen alle etwas dazulernen um das Wissen dann mit anderen Hilfesuchenden zu teilen. Du hilfst somit direkt anderen Leuten mit ähnlichen Problemen. ;)

    Das hört sich gut an. Mach ich doch gerne. Was soll ich denn tun? Wie gesagt bin mit meinem Latein am Ende, probiere aber gerne Vorschläge aus.

    Die Leerung der Datei wäre mit einem Skript was beim booten ausgeführt wird am besten umgesetzt oder? Ach ne das funktioniert ja gerade nicht so wie es soll. Mhh

    Wenn es eine root crontab ist, kannst Du sudo weglassen.

    Den Zeitintervall solltest Du auch erhöhen, denn nur 1 Min., kann zu kurz (zum testen) sein.

    Versuch mal am Ende, in der systemweiten crontab mit z. B,:

    Code
    */7 * * * * root /bin/systemctl start idle_shutdown.service > /dev/null 2>&1
    # - - - - 

    Rechtzeitig nachschauen, d. h. noch vor dem 2. starten.

    Hab es genau so im crontab eingefügt, aber da startet das Skript wie gehabt und läuft nicht weiter.

    Mhh aber eigentlich habe ich jetzt ja schon eine Lösung oder? Ich nutze einfach crontab und rufe damit aller 2 Minuten das Skript auf und dann sollte es so gehen.

    Dann müsste ich nur noch einmalig beim booten oder vor dem runterfahren die entsprechende Zähldatei leeren.

    ... und die service-unit war auch deaktiviert?

    Du kannst beides testen/probieren: Script und deaktivierte service-unit.

    Ja das war sie.


    Versuch erstmal nur das Skript und wenn das funktioniert, dann auch die Service Unit! Im Skript kannst Du die Zeit auch mal zu Testzwecken auf 3 oder 5 Minuten runter nehmen.

    Hab es mit deinem ***** im crontab und den Skript direkt probiert und das klappt. Wie rufe ich über den crontabe den Service auf? Über "sudo systemctl start idle_shutdown.service"?

    Hier die Werte von den Ausgaben.

    Ja ich habe jeweils einen Reboot gemacht und nein es kam leider auch nach weit über einer Minute kein Ergebniss.

    Sollte ich dann im Chronjob den Service oder gleich das Skript aufrufen?

    P.S.: Danke übrigens schon mal jetzt für eure Mühen. Auch wenn das Ziel noch nicht erreicht ist bin ich unendlich dankebar nach zwei Tagen endlich Unterstützung zu bekommen.

    Konzipiere als Test (d. h. temporär), deine timer-unit so, dass diese z. B. 45 Sekunden nach dem Booten nur das macht, was Du manuell und erfolgreich mit deiner service-unit schon gemacht hast.

    Es tut mir leid wenn ich mich etwas doof anstelle oder nicht genau das mache was du sagst, aber der Timer ist do so eingestellt, dass er genau das machen soll was ich manuell getestet habe, nur halt nicht 45 Sekunden nach dem Bootvorgang sondern 60 Sekunden? Ich hab das Gefühl ich stehe auf dem Schlauch.

    Edit1: Hab nun OnUnitActiveSec=1min im Timer rausgenommen und ein daemon-reload gemacht und neugestartet. Nichts. Hab dann einfach den Service gestopt und wieder start gemacht und es wird genau einmal durchgeführt.

    Das ist meine aktuelle Einstellung:

    idle_shutdown.service

    Code
    [Unit]
    Description=Idle Shutdown Script
    After=multi-user.target
    
    [Service]
    Type=simple
    ExecStart=/bin/bash /home/pi/test.sh
    
    [Install]
    WantedBy=multi-user.target

    idle_shutdown.timer

    Code
    [Unit]
    Description=Runs my service every minute
    
    [Timer]
    OnBootSec=60
    OnUnitActiveSec=1min
    Unit=idle_shutdown.service
    
    [Install]
    WantedBy=timers.target

    Status bei beiden ist folgender:


    Code
    pi@gravitymusik:~$ sudo systemctl status idle_shutdown.timer
    ● idle_shutdown.timer - Runs my service every minute
         Loaded: loaded (/etc/systemd/system/idle_shutdown.timer; enabled; vendor preset: enabled)
         Active: active (running) since Sat 2022-01-29 14:43:04 CET; 6h ago
        Trigger: n/a
       Triggers: ● idle_shutdown.service
    
    Jan 29 14:43:04 gravitymusik systemd[1]: Started Runs my service every minute.

    Es wäre schön wenn du ihr mir helfen könnt das Problem zu finden.