Tastaturbefehl durch Script simulieren um PI aufzuwecken

  • Hallo,


    ich möchte über einen externen PIR sensor mein HDMI Display wieder einschalten.

    Kann man nicht einfach Script einen Tastaturbefehl simulieren?

    Bspw. druck der Leertaste, wie ich den Monitor sonst auch via ext. Tastatur wieder aktivieren kann?

  • Hallo,


    vcgencmd und tvservice waren auch mein erste Ansatz, aber bei funktionieren scheinbar mit meinem Monitor nicht.

    Ausschalten geht, aber einschalten will er leider nicht. Dachte daher wäre evtl. die Taste einfacher :D


  • Ja - das habe ich auch nicht hingekriegt, und auch hier im Forum keine Lösung gefunden.

    Mit einem Bewegungsmelder denn Bildschirm wieder zu aktivieren, der sich dann über sein Timeout wieder abschaltet.

  • Mit CEC will es auch irgenwie nicht:


    pi@raspberrypi:~ $ echo pow 0 | cec-client -s -d 1

    opening a connection to the CEC adapter...

    power status: unknown

    Segmentation fault


    > Also ausschalten würde ich den normalen Energiesparende nutzen (10min), das ist ok.

    > Müsste halt nur aufwachen irgendwie... was aktuell nur via Maus oder USB Tastatur geht...

  • Das würde vermutlich über ein simuliertes Taste gedrückt Event funktionieren. Auf dem Amiga habe ich so ein Programm (RawInsert) dafür benutzt. Ob es das für Raspbian gibt, oder eine andere Möglichkeit, ist mir nicht bekannt.

  • JoernPI bitte korrigiere Dein Thema:

    Tastaturbefehl durch Script simulieren um PI aufzuwachen ==> ....aufzuwecken

    [Predigt]

    Groß-/Kleinschreibung, Interpunktion, korrekte Rechtschreibung, richtiger Satzbau... erhöhen die Lesbarkeit von Texten.

    [/Predigt]

    Schönen Gruß, kle

  • JoernPI

    Changed the title of the thread from “Tastaturbefehl durch Script simulieren um PI aufzuwachen” to “Tastaturbefehl durch Script simulieren um PI aufzuwecken”.
  • Dachte daher wäre evtl. die Taste einfacher

    Taste könnte einfach sein, hat der bis jetzt hier unbekannte Monitor eine Taste zum Wecken?


    Das ihr immer so sparsam mit Infos seid, es gibt ja auf der ganzen Welt nur einen HDMI Monitor und nur Genies haben den Plan sofort im Kopf, nur mögen Genies selten antworten :lol: die sind mit viel zu wichtigen dingen beschäftigt.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo


    Monitor ist ein Packard Bell Maestro 223 DXL (21,5 Zoll) LED.


    Mir geht's um die Simulation einer Taste/ Mausbewegung via Script, um dann den sleep mode zu beenden & so den Monitor zu aktivieren. Funktioniert wunderbar mit der echten HW...

  • ich bin ja kein Softie, ich würde perverserweise ein billigste USB Tastatur schlachten und per GPIO einfach eine Taste drücken vom GPIO über Optokoppler auf eine Tasten Zeile/Spalte, dann ist dem Kodi genüge getan, Taste gedrückt und SW braucht man auch nicht viel, unter OSMC kann das klappen, ist sehr kontaktfreudig und nicht so zugeknöpft wie andere ELECs

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Eine Tastatureingabe besteht aus 2 Teilen

    Einem keyboard-event (Taste gedrückt/losgelassen

    einem keyboard-code (welche Taste)

    Siehe #< showkey -s /showkey -k >


    Lässt sich nicht [0x39 0xb9], also Leertaste gedrückt losgelassen, von der Shell > auf das zuständige input-Device ausgeben ?


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Servus,

    nicht dass ich wüsste ...

    Hardware und Software sind strikt getrennt und unterliegen zudem dem Rechtesystem.

    Eine Taste löst einen Interrupt im Treiber aus -> dann wird der Tastencode je nach Layout übersetzt -> der Code wird anschliessend nach den Regeln der Terminal-Einstellungen nochmals "bearbeitet" und schliesslich auf stdout ausgegeben.

    Programme hingegen lesen nur stdin ... d.h. Du kannst ganze Zeichenfolgen per Pipe an sie schicken, ohne dass auch nur eine Taste gedrückt wird.

    Ausnahme ist dabei, und das aus gutem Grund, jegliche Art von Passwort-Eingaben ...


    //EDIT: eventuell könnte so was mit einem ioctl auf das aktuelle Terminal-Device möglich sein ... das habe ich aber noch nie gebraucht/probiert und müsste mal recherchiert werden ...


    cu,

    -ds-

  • Simulation einer Taste/ Mausbewegung via Script

    Probier mal xdotool. Allerdings setzt das einen X11 Server voraus. Vielleicht passts ja, Du schreibst ja von Tastatur und Maus.


    Grüße, STF


    Edith ist noch expect eingefallen, vielleicht lässt sich damit was hinbiegen.

    • Official Post

    Hallo JoernPI,


    ich frage mich auch wozu das ganze? :denker:


    vcgencmd display_power 0 macht imho den Moni aus und vcgencmd display_power 1 schaltet ihn wieder ein. Oder @all irre ich mich da etwa? Habe ich zumindest mal gelesen, aber nie getestet. Meine RPi laufen Kopflos.


    Übrigens... Display nach Power safe mode per Script anschalten /tvservice -p geht nicht ein anderer Weg, aber das selbe Ziel?




    //Edit: Ah hier ganz unten wars: https://www.elinux.org/RPI_vcgencmd_usage

  • Hi,

    Probier mal xdotool. Allerdings setzt das einen X11 Server voraus. Vielleicht passts ja, Du schreibst ja von Tastatur und Maus.

    Unter X11 kann man dem "Hauptfenster" einen Mouse- oder Keyboard-Event schicken, das wäre kein Problem ...

    Allerdings befürchte ich, dass die "wakeup-Funktion" auf ein Hardware-Event reagiert ... dann wäre das auch wieder keine Option.

    Nen Versuch wär's wohl wert ...


    cu,

    -ds-

  • So hab ichs gemacht, allerdings geht dann das Timeout zum Display Ausschalten nicht mehr, und muss zu Fuss gemacht werden.


    AUS

    sudo echo 1 > /sys/class/backlight/rpi_backlight/bl_power

    EIN

    sudo echo 0 > /sys/class/backlight/rpi_backlight/bl_power

  • Allerdings befürchte ich, dass die "wakeup-Funktion" auf ein Hardware-Event reagiert ...

    Genau so ist es !

    Offensichtlich hast Du das nicht probiert, denn eine der folgenden Zeilen

    Code
    DISPLAY=:0 xdotool key "shift"
    DISPLAY=:0 xdotool mousemove_relative 2 0
    DISPLAY=:0 xdotool mousemove 10 10

    weckt den Monitor zuverlässig wieder aus dem Schlaf. DISPLAY=:0 habe ich nur verwendet, weil ich die Befehle über ssh eingegeben habe.

    AUS

    sudo echo 1 > /sys/class/backlight/rpi_backlight/bl_power

    funktioniert auf einem aktuellen Raspbian und angeschlossenem HDMI Monitor nicht. /sys/class/backlight ist leer. Aber wiegesagt, xdotool setzt ein laufendes X voraus.


    Grüße, STF