SSH Befehl direkt in Kodi ausführen

  • Hallo,
    ich habe eine womöglich dumme frage, aber ich hab jetzt schon ewig gegoogled und nichts dazu gefunden.

    Kurz zur Situation:
    Ich habe einen RPi3 mit LibreELEC + Ambilight. Mein Ziel ist es, die Ambilight Effekte über Kodi auszuführen (z.B. per CEC). Ich kann die Effekte per SSH mit dem Hyperion JSON Interface ausführen. Ich wähle mich also einfach per SSH auf den Pi und gebe dann z.B. den Befehl "hyperion-remote --effect 'Rainbow swirl'" ein und der Effekt läuft ab.

    Wie kann ich diesen Befehl per Kodi ausführen? Ich nehme mal an, das läuft über ein shell script oder? Kann mir da jemand weiterhelfen oder kennt jemand ein tutorial dazu?

    Vielen Dank schon mal
    LG
    Steffen

  • über CEC könnte es vielleicht schwierig werden. Du könntest dir aber mit ein paar Zeilen Python ein eigenes kleines Add-on schreiben, welches dann ein shell-script aufruft.

    Man kann shell scripte auch mit der Fernbedienung aufrufen indem man einen Button darauf mappt. Ich weiß nur nicht, wie und ob das mit CEC möglich ist.

    Bei einer normalen IR-Fernbedienung kannst auf den roten Knopf einfach inbuilt scripting verwenden und auf den Button: <red>XBMC.RunScript(/pfad/zum/script.sh)</red> legen.

    Gemacht habe ich das noch nicht, also alles nur graue Theorie und ein wenig google ;)

  • yeah läuft! Vielen Dank! :thumbup:

    EDIT: Okay, ich bin grad dabei das zu optimieren. Ich würde gern einen random Effekt abspielen. Hab das so umgesetzt:


    funktioniert leider nicht. Hast du (oder jemand anders) ne Idee wo der Fehler liegt?

  • Da wir hier ein shell script (sh) erstellen und Arrays nur in der Bash und Kornshell zur Verfügung stehen, klappt das so nicht ;)

    Ich gestehe aber, dass ich selbst googlen U d basteln muss. Gib mir mal bis morgen Zeit. Dann sollte ich was für dich haben :thumbup:

  • sollte gehen - zumindest die echos sehen gut aus

  • sollte gehen - zumindest die echos sehen gut aus

    vielen dank aber das funktioniert leider nicht

    EDIT: Wäre es vllt einfacher, mit der einen Taste durch die Effekte durchzuschalten? Das wäre eigentlich auch zufriedenstellend für mich

  • ups :D Fehler in der Logik, das sollte gehen

  • Also, ich weiß nicht...ich habe das mal getestet und ich habe niemals "Snake" angezeigt bekommen wenn ich einen echo gemacht habe ;). Es kam immer var_1 oder var_2 aber niemals var_3

    Spoiler anzeigen


    LibreELECVM-Desktop:~/testing # cat ran.sh
    #!/bin/sh
    #vars
    var_1="Rainbow swirl"
    var_2="Police Lights Solid"
    var_3="Snake"
    # random generation 1-3
    r=$(( $RANDOM % 2+1 ))
    # bash magic to create "var_$r" variable
    actual_var=var_${r}
    eval "var=\${$actual_var}"
    # command
    echo ${var}
    LibreELECVM-Desktop:~/testing # ./ran.sh
    -sh: ./ran.sh: Permission denied
    LibreELECVM-Desktop:~/testing # vi ran.sh
    LibreELECVM-Desktop:~/testing # ./ran.sh
    -sh: ./ran.sh: Permission denied
    LibreELECVM-Desktop:~/testing # chmod +x ran.sh
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # vi ran.sh
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing #
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid

    Ich habe also mal ein wenig gespielt und fand das hier ganz gut:

    Spoiler anzeigen


    LibreELECVM-Desktop:~/testing # cat ran.sh
    #!/bin/sh
    #vars
    var_1="Rainbow swirl"
    var_2="Police Lights Solid"
    var_3="Snake"
    # random generation 1-3
    r=$(( $RANDOM %3 +1 ))
    # bash magic to create "var_$r" variable
    actual_var=var_${r}
    eval "var=\${$actual_var}"
    # command
    echo "${var}"
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Snake
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Snake
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Rainbow swirl
    LibreELECVM-Desktop:~/testing # ./ran.sh
    Police Lights Solid
    LibreELECVM-Desktop:~/testing #

    somit sollte es so:

    funktionieren.

    Einmal editiert, zuletzt von DaVu (2. September 2017 um 09:19)

  • ups :D Fehler in der Logik, das sollte gehen


    das hat leider auch nicht funktioniert. Es ist gar nichts passiert, als ich den Knopf gedrückt hab

    als ich mit den echos getestet hab, haben die ausgaben gestimmt, aber mit den Effekten hab ich dann komischerweise nur "Snake" bekommen ?(

  • das hat leider auch nicht funktioniert. Es ist gar nichts passiert, als ich den Knopf gedrückt hab

    ich habs bei mir getestet
    einzig ein copy/paste fehler meinerseits
    r=$(( $RANDOM % 2+1 )) -> r=$(( $RANDOM % 3+1 ))


    es zeigt aber keinen Effekt an selbst wenn ich normal hyperion-remote --effect Snake eingebe über die Konsole
    damit passiert gar nichts

    Code
    LibreELEC:~ # hyperion-remote --effect Snake
    hyperion-remote:
            version   : 355a324
            build time: Jul 15 2017 11:51:15
    Connected to localhost:19444
    Start effect Snake
    LibreELEC:~ # systemctl restart service.hyperion
    LibreELEC:~ #

    Ist der Befehl schlicht nicht der den man haben will ?

    Einmal editiert, zuletzt von CvH (2. September 2017 um 17:31)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!