GELÖST : "LinVdr 0.7, Pundit und Settime"

  • Hallo zusammen,
    ich habe da mal ne Frage !


    Ich habe mich jetzt hier im Board schon zu Tode gesucht,
    aber leider wurde mein Wissensdurst noch nicht gestillt.



    Der Asus Pundit hat bei mir sowie bei vielen anderen Usern ein Problem mit dem WakeUp!


    Wenn man einen Timer eingibt, so startet das Edle Gerät jeden Tag um die gleiche Uhrzeit.
    Das ist doch zum heulen, denke nur an die Stromkosten :(


    Hat jemand im laufe der Zeit eine LÖSUNG gefunden,
    das der Pundit nur am GEWÜNSCHTEN TAG zur GEWÜNSCHTEN ZEIT sich einschaltet ?



    EDIT :


    Erfolg auf der ganzen Linie.


    SUPER



    Der Pundit wacht jetzt bei mir nichtmehr jeden tag auf,
    nur noch am Tag der Aufzeichnung.



    Habe die Datei in den Anhang gepackt.


    Einfach am ende der datei das ".txt" entf

  • Das hättes du aber finden müssen...


    must in der /usr/bin/poweroff.pl einfach die Methode auf Settime umstellen

    Hardware: Elitegroup 741GX-M + AMD Athlon 1400 (läuft auf 1200 wegen Temperaturgründen) + Technotrend FF + IR Empfänger

  • Was muss ich den da abändern :( X(


    #!/usr/bin/perl


    ##
    # by Thomas Koch <tom@linvdr.org>
    ##
    use POSIX qw(strftime sprintf);
    use Time::Local;


    my $PROC_ALARM = "/proc/acpi/alarm";
    my $SETTIME = "/usr/bin/settime.sh";
    my $DEBUG = 0;
    my $WAKEUP_MARGIN = 5;
    my $TWOOCLOCK = 0;
    my $METHOD = 0; # 0 = ACPI-Wakeup, 1 = settime


    sub true() { 1; }
    sub false() { 0; }


    sub dprint {
    $_ = join("", @_);
    chomp;
    print "$_\n" if($DEBUG);
    }


    sub setTime {
    system("hwclock -w");
    #system("hwclock -w --directisa");
    }


    sub setAlarm {
    my $Next = shift;
    my $TwoOclock = NextTwoOclock();
    my $NextStart;
    my $ShouldStart;
    setTime();

    if($Next) {
    if($Next > $TwoOclock) {
    $ShouldStart = true;
    }
    $NextStart = $Next - ($WAKEUP_MARGIN * 60);
    dprint("Next event at ", strftime("%d.%m.%Y %H:%M", localtime($Next)));
    } else {
    $ShouldStart = true;
    }


    if($TWOOCLOCK && $ShouldStart) {
    $NextStart = $TwoOclock;
    }

    if($NextStart) {
    dprint("Programming wakeup at ", strftime("%d.%m.%Y %H:%M:%S", localtime($NextStart)));
    if($METHOD == 0) {
    if(-e $PROC_ALARM) {
    system(sprintf("echo \"%s\" > %s", strftime("%Y-%m-%d %H:%M", localtime($NextStart)), $PROC_ALARM));
    } else {
    dprint("$PROC_ALARM does not exist");
    }
    } else {
    if(-e $SETTIME) {
    system(sprintf("%s \"%s\"", $SETTIME, strftime("%Y-%m-%d %H:%M:00", localtime($NextStart))));
    } else {
    dprint("$SETTIME does not exist");
    }
    }
    }
    }


    sub PowerOff {
    system("/bin/busybox poweroff") if(!$DEBUG);
    }


    sub NextTwoOclock {
    my $now = time();
    # Array-Format: ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
    my @today = localtime($now);
    @today[0..2] = (0, 0, 2);


    # get today 2:00 in seconds since epoc
    my $TwoOclock = timelocal(@today);

    # Check: Is today 2:00 in future or past?
    if($now < $TwoOclock) {
    # Today two oclock is in future
    return $TwoOclock;
    } else {
    # We're past two oclock, next two oclock is tomorrow (+86400s)
    return $TwoOclock+86400;
    }
    }


    if(scalar(@ARGV)) {
    # called from vdr
    die "Wrong parameter count\n" if(scalar(@ARGV) != 5);
    die "$PROC_ALARM missing" if(!-e $PROC_ALARM);


    my($Next, $Delta, $Channel, $Recording, $UserShutdown) = @ARGV;

    setAlarm($Next);
    PowerOff();
    } else {
    # called from cmdline
    $next = `svdrpsend.pl next abs`;
    if($next =~ /550 No active timers/) {
    setAlarm(0);
    PowerOff();
    } elsif($next =~ /250 \d+ (\d+)/) {
    setAlarm($1);
    PowerOff();
    } else {
    PowerOff();
    }
    }

  • Zitat

    Original von r9pxd


    my $METHOD = 0; # 0 = ACPI-Wakeup, 1 = settime


    Bei $METHOD = 1 reinschreiben (Wie schon hinter dem Comment steht: 1 = settime ):D
    Das war's.


    Probiers mal aus. Hatte vorher auch den Pundit. Hat prima geklappt.
    Wenn nicht: noch mal melden.







    Thomas

    Mahlzeit 3.2
    FJS Scenic N300 (seeeehr leise)
    Pentium 4 2,53 GHz Seagate 250 GB
    1024MB Ram
    Nexus-S 2.2

  • OK:
    POWER: ACPI 2.0 Support: Yes
    ACPI APIC Support: YES


    APM Config: Power OFF
    Disabled
    Disabled
    Disabled



    Es wäre auch gut, wenn Du die modifizierte poweroff.pl nach /usr/bin kopieren würdest ( $Method wieder ändern :D).


    Der VDR muss im übrigen mit der FB ausgeschaltet werden, damits 'funzt'.

  • Ich muss es auf den Augen haben,


    aber diese einstellungsmöglichkeiten ,


    Menu POWER:
    ACPI 2.0 Support YES
    ACPI APIC Support ENABLED


    APM Configuration:
    Restore on AC power loss POWER OFF
    Power on... DISABLED
    Power on... DISABLED
    RTC Resume DISABLED


    ,


    finde ich nicht bei meinem Pundit im Bios.

  • Habe es erfolglos ausprobiert !


    Da werden alles falsche Daten ins Bios gesendet. Angefangen mit der falschen Uhrzeit


    hier sind mal meine Bios Daten


    Asus Pundit "S" laut Linvdr.org


    Mainboard : Asus P4S8L


    Bios V. : 1009

  • Zitat

    Es kann doch nicht sein, das der Pundit jeden Tag um die gleiche Uhrzeit aufwachen muss.


    Doch. Das ist nunmal der Nachteil von ACPI-Wakeup. Bei ausnahmslos jedem Board. Wer aber eh einen EPG-Scan nachts um 2 Uhr macht, den stört das nicht weiter.


    Ansonsten benutz settime und stell die Wakeup-Zeit im BIOS entsprechend, siehe auch http://www.linux-magazin.de/Ar…004/08/wakeup/wakeup.html


    Viele Grüße, Mirko

  • Ich bin seit zwei Tagen mich mit diesem LEIDIGEN Thema am herumschlagen. "Herbrennerli" hat mir schon einige gute TIPS gegeben ( /usr/bin/poweroff.pl abänderung ) , aber leider funktioniert das bei mir nicht. Ich habe wie verlangt den Pundit auf Power on by Date gestellt ( Tag 31 Uhrzeit 23.59 ) aber er geht nicht zur gewünschten Zeit/Tag an. Habe jedoch bemerkt, das die Real Uhrzeit sich bei jedem Timer ändert. Also klappt dies schonmal (Settime). Nur leider klappt das Wecken nicht am gewünschten Tag.

Jetzt mitmachen!

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