[Erledigt] Vu+ Ultimo 4k - wie per Kommandozeile Display ein-/ausschalten ?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [Erledigt] Vu+ Ultimo 4k - wie per Kommandozeile Display ein-/ausschalten ?

    Leider nix gefunden zu dem Thema hier im Forum, deshalb die (vielleicht blöde?) Frage:

    Ich will per Cron abends das Standby Display komplett abschalten, ab einer gewissen Uhrzeit soll es wieder angehen.

    Ich suche also eine funktionierende Kommandozeile wie "/usr/bin/switch_display ON", die ich per Crontab aufrufen kann.

    (und kommt mir nicht mit lcdforlinux oder wie das Zeuch heißt. Das ist mit Kanonen auf Spatzen geschossen und produziert hier nur leere Displays und nicht mehr booten wollende Boxen. Das kommt mir nicht mehr unter!)
  • Hi,
    da musst Du vielleicht selbst suchen. Wenn dann wird es über /proc gehen. Du könntest mal schauen unter /proc/stb/lcd und da vielleicht
    echo disable >/proc/stb/live_enable

    ciao
  • @RickX: na ja, DAS würde ich jetzt nicht so als "Lösung" akzeptieren wollen. Deep Standby gibts hier nicht, die Kisten haben immer irgendwas zu tun, bzw. müssen erreichbar sein.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mam ()

  • nimm doch einfach LCD4Linux da kannste das alles wunderbar einstellen mein Display geht auch abends um 22 Uhr immer aus und morgens um 7 Uhr wieder an und zeigt die Uhrzeit wieder normal an


    auch wenn du LCD4Linux nicht willst das Programm ist super und ich benutze es schon mehrere jahre ohne probleme

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Jolinho ()

  • Will er doch nicht.

    @mam: ich habe hier ein Mini-Programm gebaut (aus den Sourcen des Vuplus-Repos), das bei meiner Solo4k funktioniert; die Ultimo4k hat aber ein anderes Display - musst du versuchen, ob es bei der Ultimo4k auch funktioniert. Gut möglich, dass die Utlimo4k auch die Datei /proc/stb/lcd/oled_brightness hat - dann solltest du das Display mit "echo 0 > /proc/stb/lcd/oled_brightness" runter dimmen können.

    Source-Code:

    C-Quellcode: lcd.c

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <sys/ioctl.h>
    4. #include <fcntl.h>
    5. #include <unistd.h>
    6. #define FP_IOCTL_LCD_DIMM 3
    7. int setLCDBrightness(int brightness)
    8. {
    9. printf("setLCDBrightness %d\n", brightness);
    10. FILE *f=fopen("/proc/stb/lcd/oled_brightness", "w");
    11. if (!f)
    12. {
    13. f = fopen("/proc/stb/fp/oled_brightness", "w");
    14. }
    15. if (f)
    16. {
    17. if (fprintf(f, "%d", brightness) == 0)
    18. printf("write /proc/stb/lcd/oled_brightness failed.\n");
    19. fclose(f);
    20. }
    21. else
    22. {
    23. int fp;
    24. if ( (fp=open("/dev/dbox/fp0", O_RDWR)) <= 0 )
    25. {
    26. printf("[LCD] can't open /dev/dbox/fp0");
    27. return -1;
    28. }
    29. if (ioctl(fp, FP_IOCTL_LCD_DIMM, &brightness) <= 0)
    30. {
    31. printf("[LCD] can't set lcd brightness\n");
    32. }
    33. close(fp);
    34. }
    35. return 0;
    36. }
    37. int main(int argc, char* argv[])
    38. {
    39. if (argc > 0)
    40. {
    41. int brightness = atoi(argv[1]);
    42. setLCDBrightness(brightness);
    43. }
    44. return 0;
    45. }
    Alles anzeigen
    Aufruf:
    LCD komplett runter dimmen: ./lcd 0
    LCD komplett hell: ./lcd 100
    Dateien
    • lcd.zip

      (2,54 kB, 8 mal heruntergeladen, zuletzt: )
    Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
  • /proc/stb/fp

    Trial schrieb:

    Hi,
    da musst Du vielleicht selbst suchen. Wenn dann wird es über /proc gehen. Du könntest mal schauen unter /proc/stb/lcd und da vielleicht
    echo disable >/proc/stb/live_enable
    Also DER Tip ist schon mal SEHR GUT, danke.
    Ist allerdings genau andersrum, wenn man "enable" reinschreibt, geht das Display AUS, bei "disable" wieder an und bei "standby" gehts aus und man kriegt es nicht wieder an (ausser mit der FB)

    Einziger Wermutstropfen dabei: es kümmert sich einen Dreck darum, ob die Box gerade "aktiv" (normales Senderdisplay") ist, oder im Standby (Uhrenanzeige).

    Ich bräuchte dann zusätzlich noch n Tip, wo ich den aktuellen Betriebszustand abfragen kann :D (warscheinlich auch irgendwo im /proc Bereich ?)

    @rdamas: auch nicht schlecht, allerdings ist hier dasselbe "Problem", es fehlt die Abfrage des Betriebszustand (PS: C ist etwas overdressed für ein einfaches "echo $1 > /proc/stb/fp/oled_brightness" aber ich erkenne lobend an, dass Du offensichtlich verschiedene Boxtypen absuchst und im Notfall sogar zum IOCTL greifst). Ist auf jeden Fall eine gute Alternative, danke :D

    @alle die LCD4Linux propagieren: total overdressed, funktioniert hier auch nicht wirklich richtig und für das simple AN/AUS braucht man das Dingen nun wirklich nicht.
    (und ich hab auch keine gesteigerte Lust, rauszufinden, WAS daran nicht funktioniert, es hat nun schon diverse Male mit "flash mich neu" geendet, weil irgendwann die Benutzeroberfläche gar nicht mehr startet, Ausserdem will ich gar nix am Inhalt des Displays ändern, und wenn man das LCD4Linux aktiviert ist erstmal ALLES WEG und man muß mühsam sich die Teile wieder zusammenbasteln, bis es so aussieht, wie vorher. Wer soviel Lebenszeit investieren will, werdet glücklich, meine ist mir dafür zu schade)
  • Der Code kommt von vuplus - die Python LCD-Klasse basiert darauf.

    Betriebszustand kannst du wohl am einfachsten über die API im OpenWebif abfragen. Und sag nicht wieder "overdressed" - wenn es keine Interfaces gibt, geht es nicht anders. OpenWebif API documentation · E2OpenPlugins/e2openplugin-OpenWebif Wiki · GitHub
    Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
  • rdamas schrieb:

    Und sag nicht wieder "overdressed"
    na gut :D
    Also "von hinten durch die Brust ins Auge", aber ok.

    Dummerweise gibts auf der Box weder "fetch" noch "curl", also, wie soll ich an die /web/powerstate Daten kommen???


    Quellcode

    1. fetch http://localhost/web/powerstate /tmp/xxx
    2. grep -i "true" /tmp/xxx
    3. INSTANDBY=$?
    4. rm -f /tmp/xxx
    5. HOUR=`date "+%H"`
    6. if [ $HOUR -lt 6 -a $INSTANDBY -equ 0 ]
    7. then
    8. OnOFF="disable"
    9. else
    10. OnOFF="enable"
    11. fi
    12. echo $OnOFF > /proc/stb/lcd/live_enable
    13. exit 0
    Alles anzeigen
    wäre sonst mein "Angebot" (kann man auch deutlich kürzer schreiben, das ist hier nur fürs Verständnis)
    (jaja, ist mir schon klar, dass man "curl" nachinstallieren kann :-))) ich meinte nur so "out of the Box"))

    Nachtrag: meine Frau hat gerade in Panik den Nachteil obigen Codes berichtet :D :D :D

    Offensichtlich geht das Display nur deshalb aus, weil die Kiste im Standby ist. Wenn sie an ist, dann wird stattdessen das Fernsehbild auf das Display projeziert. Nicht schlecht, aber sicherlich nicht gewünscht. Aber zumindest erklärt es den merkwürdigen Namen "live_enable".
    Na ja, ich werde dann wohl doch harmloser die Helligkeit auf 0 setzen (und vorher rausfinden, wo sie denn laut Settings "normalerweise" sein sollte, geht bestimmt auch irgendwie über das Webinterface...).

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mam ()

  • wget ist immer installiert (als Teil von Busybox); also: "wget -q -O- powestate". Und nein, das Display ist bisher nicht im OpenWebif abfragbar - wäre aber kein großer Akt, das zu implementieren. Aber solange der Weg über das proc-Interface funktioniert, ist doch alles gut!?
    Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
  • Wenn Boxen nach Installationen v. Erweiterungen/Plugins nicht mehr booten wollen
    könnte das Image nicht auf den neuesten Stand sein.
    Deine Box & das Image kennen wir nicht
  • Ich aber und etwas Neueres habt Ihr nicht im Angebot. Aber, das ist ja auch gar nicht das Thema hier, mir ist völlig egal, ob das Plugin toll ist, oder überall geht. Ich will es nicht haben, Ende der Diskussion.
    (PS nur der Vollständigkeit halber: die Box bootet nicht mehr nach DEINSTALLATION des Plugins)

    rdamas schrieb:

    Und nein, das Display ist bisher nicht im OpenWebif abfragbar - wäre aber kein großer Akt, das zu implementieren. Aber solange der Weg über das proc-Interface funktioniert, ist doch alles gut!?
    Nein, DAS ist gar kein Problem, ich war nur auf die Idee gekommen, es sei besser "lcd_brightness" auf "0" zu setzen, wie von Dir vorgeschlagen.

    Das ist ja auch easy.

    Allerdings muss man es ja auch später wieder auf den Wert setzen, den der User in den Einstellungen unter VTI-Einstellungen_Display hinterlegt hat. DEN Wert zu finden wird nicht so ganz einfach sein (in meinem Fall weis ich natürlich, dass ich da "1" drinstehen habe, aber man denkt ja daran, auch andere damit eventuell zu beglücken, da wäre es schon wichtig, den richtigen Wert zu finden)

    Wenn es etwas kühler geworden ist, werde ich wieder rumsuchen, bei diesen Temperaturen sträuben sich meine Nervenzellen :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hgdo () aus folgendem Grund: 2 Beiträge zusammengefasst

  • Wenn du's einmal in den Settings eingestellt hast, findest du den richtigen Wert unter dem Schlüssel config.lcd in den Settings; z.B.:

    Shell-Script

    1. grep config.lcd.bright /etc/enigma2/settings
    Diesen Wert noch mit 25 multiplizieren, das ist dann der richtige Wert für das proc-Interface.

    Also sowas wie


    Shell-Script

    1. bright=$(grep config.lcd.bright /etc/enigma2/settings|cut -d "=" -f2)
    2. proc_bright=$((bright*25))
    3. echo $proc_bright > /proc/stb/lcd/oled_brightness
    Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
  • rdamas schrieb:

    Wenn du's einmal in den Settings eingestellt hast, findest du den richtigen Wert unter dem Schlüssel config.lcd in den Settings; z.B.:
    Schankedöhn ;)
    Damit kann ich dann demnächst nachts besser schlafen :D

    wens interesssiert, hier die "finale" Version.
    (eventuell muessen für andere Boxen andere Pfade für die Helligkeitsregelung eingegeben werden, das Skript sucht etwas rum, gibt aber auf, wenn nix gefunden wird)

    Skript kann zu jeder Zeit aufgerufen werden. Zwischen 0 Uhr und 6 Uhr (und nur im Standby) wird die Helligkeit "0" eingestellt, Ausserhalb dieser Zeiten im Standby der in den Settings konfigurierte Wert für Standbyhelligkeit. Wenn nicht im Standby wird zu jeder Uhrzeit der in den Settings konfigurierte Wert für "normale" Helligkeit geschrieben. Sind die Werte nicht vom Anwender konfiguriert worden, so werden (hoffentlich) sinnvolle Defaults von "1" für Standby und "5" für Normalbetrieb angenommen.

    Quellcode

    1. #! /bin/sh
    2. wget http://localhost/web/powerstate -O - 2>/dev/null | grep -i "true"
    3. #curl http://localhost/web/powerstate 2>/dev/null | grep -i "true"
    4. INSTANDBY=$?
    5. HOUR=`date "+%H"`
    6. if [ $HOUR -lt 6 -a $INSTANDBY -eq 0 ]
    7. then
    8. HELL=0
    9. else
    10. HELL=`grep config.lcd.standby /etc/enigma2/settings | cut -d "=" -f2`
    11. if [ "$HELL" = "" ]
    12. then
    13. HELL=2
    14. fi
    15. fi
    16. if [ $HOUR -ge 6 -o $INSTANDBY -eq 1 ]
    17. then
    18. HELL=`grep config.lcd.bright /etc/enigma2/settings | cut -d "=" -f2`
    19. if [ "$HELL" = "" ]
    20. then
    21. HELL=5
    22. fi
    23. fi
    24. proc_bright=$((HELL*25))
    25. BRIGHT=/proc/stb/fp/oled_brightness
    26. if [ ! -f $BRIGHT ]
    27. then
    28. BRIGHT=/proc/stb/fb/oled_brightness
    29. if [ ! -f $BRIGHT ]
    30. then
    31. echo "Kann Helligkeitsregelung nicht finden. Bitte Skript ueberarbeiten!"
    32. exit 99
    33. fi
    34. fi
    35. echo $proc_bright > $BRIGHT
    36. exit 0
    Alles anzeigen


    Nachtrag: Ein Test heute Nacht auf 2 Boxen gab suboptimale Ergebnisse:

    a) die Version mit Helligkeitssteuerung hat völlig versagt. Egal in welches Device man den Sollwert reinschreibt, es passiert einfach NIX. Auslesen kann man die Devices aber schon, es kommt immer brav der in den Settings eingestellte Wert (*25) zurück
    b) die Version mit Aktivierung des Live Bildes im Standby (was dann einen "schwarzen Bildschirm" liefert) klappt schon, überzeugt aber auch nicht wirklich. Das Display bleibt ja an, die Hintergrundbeleuchtung, trotz fehlendem Bildinhalt, strahlt aber recht unangenehm und stört gewaltig.

    Wenn es gelänge, die Helligkeitssteuerung korrekt zum Laufen zu bringen, könnte man die beiden Ansätze zu etwas Sinnvollen kombinieren. Aber da bleibt wohl nur die Hoffnung auf den IOCTL (den ich mangels Compiler nicht ausprobieren kann).

    Hat noch jemand andere Vorschläge?
    (nein nein, nicht wieder lcd4linux bitte!)
  • schomi schrieb:

    Das Programm von @rdamas schon ausprobiert?
    Jein. Den Quelltext hab ich schon "eingearbeitet", allerdings konnte ich mangels Compiler nicht das Binary ausprobieren.
    Oder, wo kann man ne "fertige" Version runterladen?
    (ich bin etwas irritiert, denn per Einstellungen kann man die Helligkeit sehr wohl (und sofort) ändern, das sagt mir, dass es irgendwo einen "legalen" Weg dazu geben muss)
  • Das Binary steckt doch im ZIP-File!?

    Aber das wird bei der Ultimo 4k auch nichts anderes machen als den Wert über das proc-Interface zu setzen.

    Wenn ich dein Script so überfliege, kommt mir der Verdacht, dass du da einen Logik-Fehler drin hast in den ersten beiden if-Bedingungen. Ist das zweite "if" nicht im Prinzip "not" vom ersten "if"?

    Edit: für einen C-Compiler links bei meinen Database-Einträgen klicken.
    Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von rdamas ()

  • rdamas schrieb:

    Das Binary steckt doch im ZIP-File!?

    Wenn ich dein Script so überfliege, kommt mir der Verdacht, dass du da einen Logik-Fehler drin hast in den ersten beiden if-Bedingungen. Ist das zweite "if" nicht im Prinzip "not" vom ersten "if"?
    Edit: für einen C-Compiler links bei meinen Database-Einträgen klicken.
    Zip File? bin ich blind? ;_( Ich seh da nur Quelltext... (mal die Brille putzen und nochmal gucken...)
    Ach sooo... ja, da isset ja der kleiner Racker 8o
    Ich hab gar nicht mitbekommen, dass da noch ein Attachment..., lol :love:

    Die IF Logik sieht ziemlich identisch aus, der Teufel steckt aber im Detail. Im Standby wird der gedimmte Wert genommen, zwischen 0;00 und 6:00 sogar der Wert "0". Ohne Standby wird der Wert für die "normale" Helligkeit genommen, egal zu welcher Uhrzeit.