Autostart Skript mit Skip-Funktion

  • Hallo zusammen,


    ich habe unter Raspbian Kodi installiert und eine .desktop datei erstellt, mit der ich Kodi starten kann.

    Ich würde jetzt gerne, wenn ich mit dem Raspberry unterwegs bin und keine Tastatur zur Hand habe, die Verknüpfung automatisch starten.

    Bis hierhin komme ich noch alleine, allerdings würde ich gerne nicht einfach nur automatisch starten, sondern die Konsole für etwa 10s einblenden lassen.

    Dann könnte man die Leertaste o.ä. auf der Tastatur drücken, um den Autostart zu unterbinden und Raspbian statt Kodi nutzen.

    Hat jemand eine Idee, wie man das umsetzen kann?

  • Baue dir ein Script, das auf Vrohandensein einer Tastatur prüft. Wenn keine gefunden wird, startest du Kodi.

    Keine Ahnung ob dies universell klappt, aber als Ansatz:

    grep -i keyboard /sys/class/input/*/name || echo keine tastatur gefunden

    Menschen die keine Ironie verstehen finde ich super!

  • Wozu ein Autostart, wenn es dann nicht gestartet werden soll? Du kannst doch von Desktop aus Kodi nach belieben starten.

    Damit Kodi automatisch startet, wenn ich unterwegs mal keine Tastatur habe. Kodi lässt sich dann über die TV-Fernbedienung steuern.

    Baue dir ein Script, das auf Vrohandensein einer Tastatur prüft. Wenn keine gefunden wird, startest du Kodi.

    Keine Ahnung ob dies universell klappt, aber als Ansatz:

    grep -i keyboard /sys/class/input/*/name || echo keine tastatur gefunden

    Kann man das Skript dann quasi in den Autostart hängen, und per IF-Anweisung dann die .desktop-Datei starten?

    Meinst du ein einfaches Script mit Countdown zum abbrechen ?

    Im Prinzip ja. Ich dachte einfach an eine Kommandozeile, die einen Tastendruck erwartet und dann abbricht. Ohne Taste würde die .desktop-Datei gestartet.

  • Damit Kodi automatisch startet, wenn ich unterwegs mal keine Tastatur habe. Kodi lässt sich dann über die TV-Fernbedienung steuern.

    Ja, das macht Sinn. Ich hatte irgendwie gelesen, das du ein Touchdisplay benutzt, wenn keine Tastatur angeschlossen ist. Mein Fehler.


    Der Ansatz von llutz ist meiner Meinung nach besser, als ein Abfrage-/Abbruchfenster. Ich meine man kann mit einem Fernbedienungsempfänger auch den Desktop bedienen. Das wäre ggf. noch eine Alternative.

  • Ich meine man kann mit einem Fernbedienungsempfänger auch den Desktop bedienen. Das wäre ggf. noch eine Alternative.

    Das hatte ich auch schon überlegt, aber ich wollte eigentlich kein Geld mehr investieren :shy:


    Ich habe die Datei autoKodi.sh so geschrieben:

    Bash
    #!/bin/sh
    echo "Starte Kodi..."
    if [ grep -i keyboard /sys/class/input/input7/name ]; then
      /usr/bin/kodi;
    fi

    input 7 ist aktuell die Tastatur, um die es geht. Ändert sich diese Bezeichnung oder hat diese Tastatur jetzt diese Nummer?


    Das Skript scheint so allerdings nicht zu funktionieren, bzw wird nicht aufgerufen...

    Die Datei /etc/rc.local habe ich um die folgende Zeile ergänzt:

    Code
    /home/pi/Dokumente/autoKodi.sh

    selbst wenn die If-Abfrage nicht funktionieren würde, müsste ich nicht wenigstens das Command-Fenster sehen?

  • Laeuft es mit dieser Version vom Script?


    Bash
    #!/bin/bash
    echo "Starte Kodi..."
    if grep -i keyboard /sys/class/input/*/name
    then
      /usr/bin/kodi
    fi

    Nein, auch damit seh ich nicht einmal das Kommando-Fenster mit dem Text...

    Muss man die rc.local erst freischalten oder so?

  • Natürlich siehst Du da keine Ausgabe, wenn es in der rc.local eingetragen ist. Die Frage war/ist, ob das Skript funktioniert, wenn Du das manuell startest...

    Bei manueller Ausführung erhalte ich "Starte Kodi..." aber mehr nicht, da ich das Skript ja ohne Tastatur nicht ausführen kann...

    Kann ich es jetzt mit dem Autostart verknüpfen?

  • Bei manueller Ausführung erhalte ich "Starte Kodi..." aber mehr nicht,

    Wie ist die Ausgabe von:

    Code
    bash -x </Pfad/Script>

    (Pfad und Script anpassen und ohne spitze Klammern)?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • Wie ist die Ausgabe von:

    Code
    bash -x </Pfad/Script>

    (Pfad und Script anpassen und ohne spitze Klammern)?

    Code
    +echo 'Starte Kodi'
    Starte Kodi...
    + grep -i keyboard /sys/class/input/input7/name
    • Official Post

    Bei manueller Ausführung erhalte ich "Starte Kodi..." aber mehr nicht, da ich das Skript ja ohne Tastatur nicht ausführen kann...

    Das verstehe wer kann... Wie startest Du das Skript manuell? Per SSH? :conf: Sehr verwirrend, das Thema.


    Also ohne Tastatur ausgeführt (wie auch immer) erhälst Du nur die Ausgabe "Starte Kodi", richtig? Und startet Kodi dann? Und was passiert, wenn Du mit der Tastatur das Skript startest?

  • Das verstehe wer kann... Wie startest Du das Skript manuell? Per SSH? :conf: Sehr verwirrend, das Thema.


    Also ohne Tastatur ausgeführt (wie auch immer) erhälst Du nur die Ausgabe "Starte Kodi", richtig? Und startet Kodi dann? Und was passiert, wenn Du mit der Tastatur das Skript startest?

    Ich habe den Raspberry per HDMI mit einem Fernseher verbunden, öffne die Konsole und tippe den Befehl ein, also immer MIT Tastatur.

    Das Skript kann ich also gar nicht ohne Tastatur testen.

  • Lange Rede, kurzer Sinn, Kodi startet nicht.

    Startet Kodi denn, wenn du /usr/bin/kodi in der Konsole eintippst und mit Enter bestätigst ?

    Wenn nicht, ist möglicherweise der Pfad falsch, oder die Berechtigung stimmt nicht.

    Dann kannst du suchen mit sudo find / -name kodi.

    Oder du guckst in die Logs.

    Zudem könntest du uns den Inhalt deiner .desktop-Datei zeigen, damit wir nicht dauernd im Nebel rumstochern müssen.

  • Das Skript kann ich also gar nicht ohne Tastatur testen.

    Ja, aber die Tastatur kann direkt mit dem PI verbunden sein oder mit einem anderen Gerät.


    BTW: Ist diese Zeile:

    Code
    if grep -i keyboard /sys/class/input/*/name

    in deinem Script, richtig bzw. brauchbar?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • So aus den Hüften herraus :

    Bash
    #!/bin/bash
    read -a key -t 10 -p "Drücke Taste A und dann ENTER : "
    if [ $key ==  "a" ];then
      echo "a gedrückt"
      exit
    fi
    echo "Nicht a gedrückt"

    read wartet 10 Sekunden, wird nix eingegeben ist $key leer.

    Kann sein das if einen Fehler raus wirft, ist stehe mit if in der Bash etwas auf Kriegsfuß ;)


    EDIT:

    if [ "$key" == "a"]


    oder besser ;

    Bash
    #!/bin/bash
    read -a key -t 10 -p "Drücke Taste und Enter: "
    if [ "$key" != "" ];then
      echo "<$key> eingegeben"
      exit
    fi
    echo "nix eingegeben"

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Edited once, last by Der_Imperator ().