Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 3 of 3
  1. #1
    Junior Member
    Join Date
    Mar 2018
    Posts
    2

    Squeezelite -S Power script

    Hallo zusammen,

    ich hoffe ihr könnt mir weiterhelfen,
    ich habe hier ein funktionierendes System mit Raspberries/Max2Play.
    Nun habe ich im Wohnzimmer einen Raspberry mit OSMC und Kodi. Auf diesen läuft Squeezelite bereits erfolgreich.
    Das System wollte ich nun mit einem "Power Script" und dem Argument -S ausführen um meinen AV-Receiver über CEC einzuschalten.
    Dazu habe ich ein Script mit folgenden Inhalt:
    #!/bin/sh
    echo "tx 15:70:13:00" | cec-client -s >/dev/null
    echo "AV-Reciever Kanal gewechselt"

    exit 0


    Wenn ich nun über SSH Squeezelite starte funktioniert alles wie es soll. squeezelite -S /home/osmc/squeezepower.sh
    (Das Script wird zwar auch beim Abschalten ausgeführt, das kann ich jedoch verkraften)

    Starte ich squeezelite jetzt über den Service (sudo service squeezelite start) läuft zwar Squeezelite, der AV-Receiver wird jedoch nicht eingeschaltet.
    In /etc/default/squeezelite steht: SB_EXTRA_ARGS="-S /home/osmc/squeezepower.sh"
    Über den status des Dienst kann ich leider keinen Fehler erkennen, denn der Start Befehl ist der selbe, wie wenn ich squeezelite per Hand starte.

    sudo service squeezelite status
    * squeezelite.service - LSB: Lightweight headless Squeezebox emulator
    Loaded: loaded (/etc/init.d/squeezelite; generated; vendor preset: enabled)
    Active: active (running) since Mon 2018-03-12 18:58:02 CET; 11s ago
    Docs: man:systemd-sysv-generator(8)
    Process: 3250 ExecStop=/etc/init.d/squeezelite stop (code=exited, status=0/SUCCESS)
    Process: 3373 ExecStart=/etc/init.d/squeezelite start (code=exited, status=0/SUCCESS)
    CGroup: /system.slice/squeezelite.service
    `-3380 /usr/bin/squeezelite -n Wohnzimmer -S /home/osmc/squeezepower.sh

    Mar 12 18:58:02 osmc systemd[1]: Starting LSB: Lightweight headless Squeezebox emulator...
    Mar 12 18:58:02 osmc systemd[1]: Started LSB: Lightweight headless Squeezebox emulator.


    Hat jemand eine Idee, ich weiß leider nicht mehr weiter und im Internet finde ich kaum Themen bezüglich diesen Power-Scripts

    Vielen Dank,

    freundliche Grüße
    VaniX

  2. #2
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    742
    Quote Originally Posted by VaniX View Post
    Starte ich squeezelite jetzt über den Service (sudo service squeezelite start) läuft zwar Squeezelite, der AV-Receiver wird jedoch nicht eingeschaltet.
    In /etc/default/squeezelite steht: SB_EXTRA_ARGS="-S /home/osmc/squeezepower.sh"
    Über den status des Dienst kann ich leider keinen Fehler erkennen, denn der Start Befehl ist der selbe, wie wenn ich squeezelite per Hand starte.
    Überprüfe, ob /home/osmc und /home/osmc/squeezepower.sh die korrekten Berechtigungen gesetzt haben, um von dem Benutzer, unter dem es von squeezelite (als service) gestartet wird, gelesen/ausgeführt werden können.

  3. #3
    Junior Member
    Join Date
    Mar 2018
    Posts
    2
    Quote Originally Posted by Roland0 View Post
    Überprüfe, ob /home/osmc und /home/osmc/squeezepower.sh die korrekten Berechtigungen gesetzt haben, um von dem Benutzer, unter dem es von squeezelite (als service) gestartet wird, gelesen/ausgeführt werden können.
    Danke für die Antwort,
    der Service startet squeezelite mit den Benutzer osmc. So wird es zumindest in htop angezeigt.
    Mit:
    Code:
    chmod +x squeezepower.sh
    habe ich es geschafft, das squeezelite mit dem Script im SSH manuell zu starten.
    Zusätzlich habe ich folgende Kommandos für den Service getestet:
    Code:
    sudo chown osmc:osmc squeezepower.sh
    sudo chown 777 squeezepower.sh
    Leider ohne Erfolg.
    In SSH bin ich auch mit osmc angemeldet, somit sollten die gleichen Rechte benötigt werden, wie beim Service oder habe ich etwas grundsätzlich falsch gemacht?



    Edit:
    Ok, nachdem ich den Output in eine Logfile schreiben lies, habe ich den Fehler gefunden.
    Er erkannte einfach den Befehl cec-client nicht. Lösung: /usr/home/osmc/bin/cec-client

    Nachdem das nun funktioniert habe ich noch etwas getüftelt, damit er den AV-Receiver ein und auch ausschaltet (und das jeweils nur einmal).
    Möglicherweise hat noch jemand Bedarf:

    Code:
    #!/bin/bash
    #rm /home/osmc/squeezepow.log -f
    #LOG_FILE=/home/osmc/squeezepow.log
    #exec > >(tee -a ${LOG_FILE} )
    #exec 2> >(tee -a ${LOG_FILE} >&2)
    
     LMS_server=IP
     LMS_port=9090
     OLDPSFILE="/home/osmc/squeezepow_oldps"
     playerID="MAC Player"
    
     OLSPS=0
     PS=0
    
    
     power=$(printf "$playerID power ?\nexit\n" | nc $LMS_server $LMS_port | cut -d ' ' -f 3  )
    
    
    case $power in
    0) PS=0 ;;
    1) PS=1 ;;
    esac
    
    if [ -f "$OLDPSFILE" ]; then
            OLDPS=1
    else
            OLDPS=0
    fi
    
    if [ $PS -ne $OLDPS ]; then
            if [ $PS -eq 1 ]; then
                    echo "tx 15:70:13:00" | sudo /usr/osmc/bin/cec-client -s -d 1 >/dev/null
                    echo "AV Receiver - Power On"
                    echo "1" > $OLDPSFILE
            else
                    echo "standby 5" | sudo /usr/osmc/bin/cec-client -s -d 1 >/dev/null
                    echo "AV Receiver - Power Off"
                    rm $OLDPSFILE -f
            fi
    
    fi
    exit 0
    Last edited by VaniX; 2018-03-13 at 11:24. Reason: Lösung gefunden

Tags for this Thread

Posting Permissions

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