(Bash-)Befehl über Menüpunkt ausführen

  • Hallo!

    Ich nutze Libreelec auf einem Raspberry Pi und habe eine hyperion-LED-Hintergrundbeleuchtung. Diese hängt an einem externen Netzteil. Dieses möchte ich gerne per Funksteckdose schalten. Das könnte ich irgendwie mit einem bash-Script hinkriegen. Über die Konsole geht das ja einfach, aber ich hätte gerne einen Menüpunkt, mit dem ich das Script direkt aufrufen kann. Ich habe bisher nichts Entsprechendes gefunden, auch kein Addon. Ich halte das aber für schier unglaublich, daß ich der Erste mit so einem Gedanken sein sollte und das noch keiner das Problem gelöst hat.

    Kennt jemand eine Lösung, wie ich mit einem Menüpunkt, möglichst weit "oben" in der Struktur ein beliebiges Linux-Kommando aufrufen kann?

    flitzeschnell

  • Dieses möchte ich gerne per Funksteckdose schalten. Das könnte ich irgendwie mit einem bash-Script hinkriegen.

    Ich bin hoch-interessiert wie du eine "Funk"!!!-Steckdose mit einem Bash-Script ansprechen möchtest. Du hast also einen Funk-Sender an deinem LibreELEC-Gerät integriert? Welchen?

    Wenn ich das weiß, kannn ich dir helfen ein kleines Add-on selbst zu schreiben welches du entweder aus LibreELEC selbst ausführen kannst oder halt via Befehl von der Kommandozeile auch von einem anderem Computer aus ausführen könntest.

    Aber erstmal würde mich interessieren wie du die Funksteckdose aus LibreELEC an- und/oder ausschaltest.

    Danke vorab für die Infos.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Da reicht doch System.Exec
    Da gibt es viele Beispiele zu.
    Skript ausführbar machen und richtigen Pfad angeben.
    Weiterhin muss er die Steckdose nicht lokal angeschlossen haben, mittels bash Skript könnte er auch einen (Rest) api call ausführen

  • Ich bin hoch-interessiert wie du eine "Funk"!!!-Steckdose mit einem Bash-Script ansprechen möchtest. Du hast also einen Funk-Sender an deinem LibreELEC-Gerät integriert? Welchen?

    An einem anderen Pi habe ich einen kleinen 433 MHz-Sender über den ich die Funksteckdosen (normale Baumarktware) schalten kann. Das Ganze läuft über die Software Pilight. Es gibt ein Webinterface, man kann aber auch über die Kommandozeile einen Befehl "pilight-send" absetzen. Vom Kodi-Pi ginge das denn über

    Code
    ssh <servername> -l <username> -t "pilght-send [options]"
  • Ah, sehr cool :thumbup:

    Wir haben da echt viele Möglichkeiten, wie @SLiX schon sagte.

    Falls du eine Fernbedienung nutzt, kannst du zum Beispiel einen der Buttons entsprechend definieren, dass er ein Script startet. Das könnte dann ungefährt so aussehen:

    Code
    <[definition='3','0']keymap[/definition]>
      <remote>
        <red>RunScript(/full/path/to/script/script.py)</red>
      </remote>
    </[definition='3','0']keymap[/definition]>


    Einziger Nachteil...das ganze muss (laut Wiki) ein Python Script sein. Du kannst es auch mit einem Bash-Script versuchen, welches du damit dann triggerst.

    Das Python Script könnte dann ungefähr so aussehen.


    Code
    import os
    os.system('ssh <servername> -l <username> -t "pilight-send [options]"')

    Über System.Exec gehts auch mit der Fernbedienung:

    Code
    <[definition='3','0']keymap[/definition]>
      <remote>
        <red>System.Exec("/full/path/to/bash-script/script.sh")</red>
      </remote>
    </[definition='3','0']keymap[/definition]>

    Dafür musst du halt nur das Bash script entsprechend schreiben und dann mit dem roten Knopf deiner Fernbedienung triggern.

    Das ganze geht natürlich auch als Add-on. Dann aber halt nur in Python.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Also, es hat alles geklappt. Danke für die Tipps.

    Die Funksteckdose bzw. der Sender hatte aber nicht genügend Reichweite. Ich habe dann eine von den Obi Wifi-Steckdosen genommen (siehe c't 11/18 Seite 152). Die kann man einfach über

    Code
    curl http://[IP]/cm?cmnd=Power%20TOGGLE

    schalten

Jetzt mitmachen!

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