Wie TVHeadend Server runterfahren und bei Bedarf wieder starten? Sualfred's Scripte "tvhwakeup" und "autoshutdown" hier brauchbar?

  • hi

    Zu Anfang: Ich würde dir empfehlen, alles was du bisher in Bezug auf das tvheadend-autosuspend Script gemacht hast, zu löschen. Du hast zum teil einiges vermischt, bzw. editiert, was nicht (so) notwendig wäre und es dann möglicher weise zu Komplikationen kommen kann.


    Zum Verständnis: Dieses Script basiert auf dem AutoSuspend von Ubuntu und besteht aus zwei Teilen. Zum einen auf das Konfigurationsscript (unter etc) und dem ausführenden Script (unter /usr/local/sbin), das die Werte vom Konfigurationsscript benutzt.

    Wichtig! Damit das Script überhaupt (richtig) funktioniert, muß das Bios/System dementsprechend eingestellt sein. Umbedingt prüfen (siehe ACPI_Wakeup Prüfen und Testen). Ansonsten kann es sein, das dein Server nicht aufwacht bzw. zur falschen Zeit.

    Jetzt zum eigentlichen Script
    Gehe mal davon aus, das du wie in der Anleitung von tvheadend-autosuspend die komplette Installation vorgenommen hast. Im Konfigurationsscript sind zwei Punkte besonders wichtig, die anderen kann man nach eigenem Ermessen editieren.

    Zeile 33

    #TVHEADEND_ENABLED='yes' - auskommentieren TVHEADEND_ENABLED='yes'


    Zeile 37/41
    #TVHEADEND_USER= und #TVHEADEND_PASSWORD=
    Damit ist kein (neuer) Systemuser gemeint, sondern ein User/Profil in TVheadend - man legt am besten ein neues Userprofil in TVheadend an in der Web_Gui unter Configuration->users-> Add mit folgenden Rechten

    Web Interface - Admin - Videorecorder

    und natürlich wieder auskommentieren.

    Zur Erläuterung: Das Script/root muß natürlich die Möglichkeit/Rechte haben, die Werte u.a. Aufnahmezeiten aus TVheadend heraus zu lesen.

    Code
    # User for access to the Tvheadend REST API
    TVHEADEND_USER=autosuspend
    # Password for access to the Tvheadend REST API
    TVHEADEND_PASSWORD=xxx

    In meinem Fall habe ich ihn/es autosuspend genannt zur besseren Unterscheidung.
    Zusätzlich habe ich Zeile 45 editiert, meine ansonsten hätte es bei mir nicht funktioniert

    Code
    # IP for access to the Tvheadend REST API. Default: Autodetected from hostname
    TVHEADEND_IP=localhost

    Jetzt fehlen noch zwei Bedingungen:
    1.Das Script soll regelmäßig ausgeführt werden. dazu verwenden wir das Programm cron. Wir machen es uns einfach mit
    sudo nano /etc/crontab
    Bei mir sieht es wie folgt aus

    Code
    */15 * * * * root /usr/local/sbin/autosuspend.sh


    Jede viertel Stunde wird bei mir das Script ausgefüht
    Nebenbei: Mit echo "*/15 * * * * root /usr/local/sbin/autosuspend.sh" | sudo tee -a /etc/crontab  benutzt du das Programm echo, um direkt eine Textdatei zu editieren ohne sie extra zu öffnen. Kann man so machen, muß man nicht
    2. Zu guter letzt muß das ausführende Script ausführbar gemacht werden
    sudo chmod u+x /usr/local/sbin/autosuspend.sh 
    Am besten einmal überprüfen mit
    nepo@hp:~$ ls -lah /usr/local/sbin/autosuspend.sh

    Code
    -rwxr-xr-x 1 root root 4,6K Mär  9  2019 /usr/local/sbin/autosuspend.sh

    Das war's !

    Alles andere würde ich erstmal weglassen - Das Script sollte erstmal laufen, danach kann man fein-justieren.

    Tschau nepo

    Ach ja, hier mal mein autosuspend Script

    Spoiler anzeigen


    # Turn on auto suspend
    AUTO_SUSPEND='yes'


    # Suspend method: one of 'suspend', 'hibernate', 'hybrid-sleep', 'poweroff'
    SUSPEND_METHOD='poweroff'


    # Turning suspend by day (8 a.m. to 3 a.m.) off
    #DONT_SUSPEND_BY_DAY='no'


    # Automatically reboot once a week when the system isn't in use
    #REBOOT_ONCE_PER_WEEK='yes'


    # Daemons that always have one process running, only if more that one process is active we prevent the suspend
    # The values are used with grep, so just a unique portion is sufficient
    #DAEMONS=''


    # Important applications that shall prevent the suspend
    # The values are used with grep, so just a unique portion is sufficient
    #APPLICATIONS='^nxagent$ ^rsnapshot$ ^wsus$ ^wget$ ^screen$ ^mlnetp$ ^apt-get$ ^aptitude$ ^dpkg$ ^cp$'
    APPLICATIONS='^WebGrab+Plus.exe$ ^mono'
    # Network IP range for checking any open samba connections
    # The value is used with grep, so just a unique portion is sufficient
    #SAMBANETWORK='192.168.1.'


    # Names or IP for computers that shall prevent the suspend
    # We ping these computers in the list to check whether they are active.
    CLIENTS='192.168.178.6 192.168.178.2 192.168.178.4 192.168.178.7'


    #
    # Activation of Tvheadend support. If set to 'yes', Tvheadend status will be
    # used to determine if the machine is active. Default: yes
    TVHEADEND_ENABLED='yes'


    #
    # User for access to the Tvheadend REST API
    TVHEADEND_USER=autosuspend


    #
    # Password for access to the Tvheadend REST API
    TVHEADEND_PASSWORD=autosuspend


    #
    # IP for access to the Tvheadend REST API. Default: Autodetected from hostname
    TVHEADEND_IP=localhost


    #
    # TVheadend HTTP port. Default: 9981
    #TVHEADEND_HTTP_PORT=9981


    #
    # TVheadend HTSP port. Default: 9982
    #TVHEADEND_HTSP_PORT=9982


    #
    # Boot duration of the machine. Used to wake the machine timely before the next
    # recording. Default: 180 seconds
    TVHEADEND_BOOT_DELAY_SECONDS=900


    #
    # Autosuspension will be aborted if a recording is upcoming within the given
    # duration (unit: minutes). Default: 15 minutes
    TVHEADEND_IDLE_MINUTES_BEFORE_RECORDING=60


    #
    # Consider over-the-air EPG grabbing as an activity that prevents suspend?
    # If set to anything other than 'yes', and if the only activity is
    # over-the-air EPG grabbing, the machine will be suspended. Default: 'yes'
    TVHEADEND_CONSIDER_EPGGRABBING='yes'
    root@hp:/home/nepo# exit
    exit
    nepo@hp:~$ sudo nano /etc/cron
    cron.d/ cron.daily/ cron.hourly/ cron.monthly/ crontab cron.weekly/
    nepo@hp:~$ sudo nano /etc/crontab
    [sudo] Passwort für nepo:
    nepo@hp:~$ sudo nano /etc/crontab
    nepo@hp:~$ ls -lah /usr/local/sbin/autosuspend.
    autosuspend.sh autosuspend.tvheadend-functions
    nepo@hp:~$ ls -lah /usr/local/sbin/autosuspend.sh
    -rwxr-xr-x 1 root root 4,6K Mär 9 2019 /usr/local/sbin/autosuspend.sh
    nepo@hp:~$ cat /etc/autosuspend
    autosuspend autosuspend.d/ autosuspend_resumeplan
    nepo@hp:~$ cat /etc/autosuspend
    # Turn on auto suspend
    AUTO_SUSPEND='yes'


    # Suspend method: one of 'suspend', 'hibernate', 'hybrid-sleep', 'poweroff'
    SUSPEND_METHOD='poweroff'


    # Turning suspend by day (8 a.m. to 3 a.m.) off
    #DONT_SUSPEND_BY_DAY='no'


    # Automatically reboot once a week when the system isn't in use
    #REBOOT_ONCE_PER_WEEK='yes'


    # Daemons that always have one process running, only if more that one process is active we prevent the suspend
    # The values are used with grep, so just a unique portion is sufficient
    #DAEMONS=''


    # Important applications that shall prevent the suspend
    # The values are used with grep, so just a unique portion is sufficient
    #APPLICATIONS='^nxagent$ ^rsnapshot$ ^wsus$ ^wget$ ^screen$ ^mlnetp$ ^apt-get$ ^aptitude$ ^dpkg$ ^cp$'
    APPLICATIONS='^WebGrab+Plus.exe$ ^mono'
    # Network IP range for checking any open samba connections
    # The value is used with grep, so just a unique portion is sufficient
    #SAMBANETWORK='192.168.1.'


    # Names or IP for computers that shall prevent the suspend
    # We ping these computers in the list to check whether they are active.
    CLIENTS='192.168.178.6 192.168.178.2 192.168.178.4 192.168.178.7'


    #
    # Activation of Tvheadend support. If set to 'yes', Tvheadend status will be
    # used to determine if the machine is active. Default: yes
    TVHEADEND_ENABLED='yes'


    #
    # User for access to the Tvheadend REST API
    TVHEADEND_USER=autosuspend


    #
    # Password for access to the Tvheadend REST API
    TVHEADEND_PASSWORD=xxxx


    #
    # IP for access to the Tvheadend REST API. Default: Autodetected from hostname
    TVHEADEND_IP=localhost


    #
    # TVheadend HTTP port. Default: 9981
    #TVHEADEND_HTTP_PORT=9981


    #
    # TVheadend HTSP port. Default: 9982
    #TVHEADEND_HTSP_PORT=9982


    #
    # Boot duration of the machine. Used to wake the machine timely before the next
    # recording. Default: 180 seconds
    TVHEADEND_BOOT_DELAY_SECONDS=900


    #
    # Autosuspension will be aborted if a recording is upcoming within the given
    # duration (unit: minutes). Default: 15 minutes
    TVHEADEND_IDLE_MINUTES_BEFORE_RECORDING=60


    #
    # Consider over-the-air EPG grabbing as an activity that prevents suspend?
    # If set to anything other than 'yes', and if the only activity is
    # over-the-air EPG grabbing, the machine will be suspended. Default: 'yes'
    TVHEADEND_CONSIDER_EPGGRABBING='yes'

  • Hi,
    mittlerweile läuft es super.
    Ein Problem hatte ich noch. Der PC fuhr nie runter. Im Log stand immer drin

    some users still connected, auto suspend terminated

    Dieser "Kommentar" steht in der Datei "austosuspend.sh" in Zusammenhang mit diesem Softwarecode
    USERCOUNT=`who | wc -l`;
    # No Suspend if there are any users logged in
    test $USERCOUNT -gt 0 && { logit "some users still connected, auto suspend terminated"; return 1; }

    Ich habe im Terminal dann mal eingegeben "who | wc -l". Als Ergebnis kam "1" heraus. Da ich mit Linux Mint arbeite, bin ich als User ständig angemeldet, darum das Ergebnis "1". Wenn man mit Ubuntu Server arbeitet, kommt hier sicherlich nur eine "1" heraus, wenn man auf den Server aufgeschaltet ist, ansonsten eine "0".
    Ich habe nun aus der "autosuspend.sh" diesen kompletten Softwarecode herausgelöscht und nun macht der PC poweroff. Und er fährt bei Aufnahmen auch hoch. Alles wie es sein soll. Super.

    Jetzt werde ich in der "autosuspend.sh" noch etwas testen. Aus diesem Softwarecode
    # only auto-suspend at night
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "3" -a "`date +%H`" -lt "8" \) ]; then
    # notice resume-plan

    mache ich diesen Softwarecode
    # only auto-suspend at night
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "18" -a "`date +%H`" -lt "22" \) ]; then
    # notice resume-plan

    Dann setze ich in der "autosuspend" DONT_SUSPEND_BY_DAY='yes'.
    Ich möchte nämlich gern, daß der PC um 18 Uhr geweckt wird und dann von 18 Uhr bis 22 Uhr durchläuft. Ich schätze, daß das mit dieser Änderung funktionieren wird.

    Also danke an die tolle Unterstützung hier.

  • hi

    Freut mich für dich, das alles läuft !

    Betreff autosspend off wäre ich auch so vorgegangen, das script in dieser weise zu ändern.
    Betreff handbrake: Wenn du möchtest, das der Rechner nach dem codieren runter fährt, muß man im Handbrake-Progarmm angeben, nach dem codieren das Programm zu schließen. Ob dies möglich ist, weiß ich im Moment nicht.
    Da du den TVheadend-Server auch als Arbeitsrechner verwendest, denke daran den Rechner nicht selbst runter zu fahren sondern vom Script. Wenn du ihn per Desktopoberfläche ausschaltest, setzt er im Bios keine (neue) Aufweckzeit.

    Tschau nepo

  • Es funktioniert leider noch nicht, daß der PC in der Zeit von 18 Uhr bis 22 Uhr an bleibt trotz dieser Softwarecode Änderung. Funktioniert es bei jemand anderem?
    # only auto-suspend at night
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "18" -a "`date +%H`" -lt "22" \) ]; then
    # notice resume-plan

  • hi

    Als erstes würde ich testen, ob diese Funktion/Bedingung überhaupt funktioniert. Also das Script mit den Originalwerten testen, ob dann der Server von 8Uhr bis 3 Uhr an bleibt.

    Vor weg: Kann selber nicht programmieren/Scripte erstellen!

    mache ich diesen Softwarecode
    # only auto-suspend at night
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "18" -a "`date +%H`" -lt "22" \) ]; then
    # notice resume-plan

    Du hast glaube ich die Zeiten vertauscht. Man gibt den Zeitraum an, an dem das Script mit seinen Bedingungen ausgeführt werden soll, also gegebenen falls ausgeschaltet wird. In deinem Fall wäre möglicher weise folgender Eintrag richtig

    Code
    # only auto-suspend at night
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "22" -a "`date +%H`" -lt "18" \) ]; then
    # notice resume-plan

    Bin mir aber nicht sicher, ob es so funktioniert. Das Script könnte die Werte falsch interpretieren, da es über die 00:00 Grenze hinaus geht, einfach mal ausprobieren. Wenn dem so ist, den 22 Uhr Wert mit 0 (00?) tauschen, dann bleibt dein Rechner von 18 Uhr bis 24 Uhr an.

    Tschau nepo

  • Es funktioniert jetzt. Mit dieser Befehlszeile geht mein PC nur zwischen 0 Uhr und 18 Uhr bei Bedarf in poweroff. Zwischen 18 Uhr und 0 Uhr bleibt er an.
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "0" -a "`date +%H`" -lt "18" \) ];

    Dafür muß der Parameter "DONT_SUSPEND_BY_DAY=yes" (in der Autosuspend) sein. Diesen Parameter hatte ich bis gestern noch auf "no" eingestellt und mich gewundert, warum der PC auch nach 18 Uhr in Poweroff ging. Im Ordner "activities" habe ich eine Datei abgelegt, über die der PC täglich um 18 Uhr geweckt wird. Natürlich wacht der PC zwischendurch auch auf, wenn eine Timer Programmierung anliegt. Das schöne ist auch, daß meine Hardware ein WakeOnLan aus dem Poweroff Zustand unterstützt. Mein Android TV und meine 2 TV Boxen senden beim Start von Kodi ein WakeOnLan an den PC und er wird geweckt.

    Da ich ein Linux Mint System benutze und kein reines Server System, war bei mir diese Änderung des Softwarecodes noch wichtig (siehe hierzu mein Kommentar weiter oben #22)
    Diese 3 Zeilen mit "#" auskommentieren oder komplett löschen
    #USERCOUNT=`who | wc -l`;
    # No Suspend if there are any users logged in
    #test $USERCOUNT -gt 0 && { logit "some users still connected, auto suspend terminated"; return 1; }


    Danke an alle für die tolle Unterstützung hier.

  • Guten Abend zusammen,

    ich habe mich ebenfalls an der Funktion "DONT_SUSPEND_BY_DAY" versucht. Ich möchte, dass mein Server zwischen 20 Uhr und 22 Uhr wach bleibt. Daher habe ich im Skript folgendes eingetragen:

    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "22" -a "`date +%H`" -lt "20" \) ];

    In der autosuspend habe ich dann noch "DONT_SUSPEND_BY_DAY=yes" gesetzt.

    Jetzt habe ich aber das Problem, dass mein System den gesamten Tag über anbleibt und gar nicht mehr herunterfährt, also weder zwischen 20 - 22 Uhr noch zwischen 22 - 20 Uhr.

    In der syslog steht jetzt zu jeder Uhrzeit, wenn das autosuspend-Skript per cron ausgeführt wird:

    autosuspend[2042]: did not auto suspend because it is broad day

    Hat jemand eine Idee, warum es nicht klappt? Muss ich noch was anderes einstellen?


    Gruß
    Tim

  • Hallo zusammen,

    letzte Nacht kam mir noch eine Idee, die, wen sie funktioniert, sehr einfach und unkompliziert ist:
    Hier geht es doch darum zu verhindern, dass das autpsuspend-Skript das System in einem gewissen Zeitraum ausschaltet. Vermutlich wird jeder einen cronjob erstellt haben, der das autosuspend-Skript regelmäßig ausführt. Also warum nicht einfach in der crontab folgenden Eintrag vornehmen:

    */15 22-19 * * * /usr/local/sbin/autosuspend.sh

    In meinem Fall dürfte cron das autosuspend-Skript lediglich zwischen 22:00, 22:15, 22:30 .... 19:30, 19:45 ausführen. Im Zeitraum zwischen 20:00 bis 21:59 Uhr dürfte cron das autosuspend-Skript gar nicht ausgeführen und das System bleibt wie gewünscht an.

    Also falls ich da keinen Denkfehler habe, dürfte das eine recht simple Lösung sein oder?


    Gruß
    Tim

  • Code
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "22" -a "`date +%H`" -lt "20" \) ];

    Du sagst dem skript hiermit, daß der server zwischen 22Uhr und 20Uhr an bleiben soll, also von 22:00 bis 20:00 (nächsten Tag !).

    Code
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "20" -a "`date +%H`" -lt "22" \) ];

    müßte der richtige code sein

  • Mhhh komisch, Olli14 hatte doch oben dasselbe Problem und hatte zunächste folgendes drinstehen:

    ( "`date +%H`" -ge "18" -a "`date +%H`" -lt "22" \) ]; then

    Das hat doch genau dazu geführt, dass sein System zwischen 22 bis 18 Uhr anblieb.
    Seine Lösung war dann doch:

    ( "`date +%H`" -ge "0" -a "`date +%H`" -lt "18" \) ]; then

    Daher habe ich bei mir ja auch dieses eingestellt:


    ( "`date +%H`" -ge "22" -a "`date +%H`" -lt "20" \) ]; then


    Also wieso sollte es bei mir dann genau andersrum funktionieren?

  • das ist das Null Uhr Problem

    Bin mir aber nicht sicher, ob es so funktioniert. Das Script könnte die Werte falsch interpretieren, da es über die 00:00 Grenze hinaus geht, einfach mal ausprobieren. Wenn dem so ist, den 22 Uhr Wert mit 0 (00?) tauschen, dann bleibt dein Rechner von 18 Uhr bis 24 Uhr an.

  • Hi Tim2016
    diese Bedingung
    ( "`date +%H`" -ge "0" -a "`date +%H`" -lt "18" \) ]
    prüft ob die Uhrzeit größer gleich Null Uhr ist UND ob die Uhrzeit kleiner als 18 Uhr ist. Wenn das zutrifft und "DONT_SUSPEND_BY_DAY=yes" ist, fährt der PC runter. Zwischen 18 bis 23:59 Uhr bleibt der PC an.

    Wenn du nun einträgst

    ( "`date +%H`" -ge "22" -a "`date +%H`" -lt "20" \) ];
    bedeutet das, daß geschaut wird, ob die Uhrzeit kleiner als 20 Uhr ist UND die Uhrzeit größer gleich 22 Uhr ist. Das trifft natürlich NIE zu.

    Du mußt eintragen
    ( "`date +%H`" -ge "0" -a "`date +%H`" -lt "20" \) ];

    dann bleibt dein PC von 20 Uhr bis 23:59 Uhr an. Anders geht es nicht.

  • Hallo,

    besten Dank für eure Tipps.
    Da mein System nicht zwangsweise bis Mitternacht laufen muss, habe ich mein Problem nun recht einfach über die Cron-Einstellung gelöst. Jedoch hatte ich hier zunächst auch das Problem mit der 0-Uhr Grenze. Folgendes habe ich nun als cronjob eingestellt und es funktioniert problemlos:

    # Autosuspend-Skript wird alle 15 Minuten von 00:00 - 19:45 Uhr ausgeführt:
    */15 0-19 * * * /usr/local/sbin/autosuspend.sh

    # Von 20:00 - 21:59 Uhr wird das Autosuspend-Skript nicht ausgeführt --> System bleibt wie gewünscht an

    # Autpsuspend-Skript wird alle 15 Minuten von 22:00 - 23:45 Uhr ausgeführt:
    */15 22-23 * * * /usr/local/sbin/autosuspend.sh

    Also für alle als Tipp, die ihre Zeiten gezielt und unabhängig einstellen wollen.

    Gruß
    Tim

  • So kann man es natürlich auch machen. Aber wie gesagt, genau dafür ist das Skript da, um nicht noch woanders etwas eintragen zu müssen, wie z.B. über Cron.
    Mit

    Code
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H`" -ge "20" -a "`date +%H`" -lt "22" \) ];

    wäre es auch erledigt.
    Aber jeder so wie er es mag

  • Hi nepo,
    das dürfte so nicht stimmen. Diese Befehlszeile

    ( "`date +%H`" -ge "20" -a "`date +%H`" -lt "22" \)

    stellt eine UND Bedingung dar. Das "-a" ist das UND. "-ge" bedeutet "greater equal" also "größer gleich". "-lt" bedeutet "lesser than" "also kleiner als". Somit wird mit dieser Bedingung geprüft, ob die Uhrzeit größer gleich 20 Uhr ist UND ob die Uhrzeit kleiner als 22 Uhr ist. Trifft diese Bedingung zu UND wenn "DONT_SUSPEND_BY_DAY=yes" ist, fährt der PC runter.
    Wenn man hier möchte, daß der PC bei Uhrzeit kleiner als 20 Uhr ODER Uhrzeit größer als 22 Uhr ist runterfährt, wäre das eine ODER Verknüpfung. Ein ODER wird mit "-o" dargestellt. Habe aber keine Ahnung, wie man diese ODER Verknüpfung genau aufbauen muß.

  • Ich mußte meinen PC nochmal neu aufsetzen und mußte mich in dem Zuge nochmal mit dem Autosuspend Script beschäftigen. Eine Sache hat mich dabei ca. einen halben Tag beschäftigt und ganz schön Nerven gekostet. Und zwar diese Parameter in der Autosuspend:

    1. # User for access to the Tvheadend REST API
    2. TVHEADEND_USER=autosuspend
    3. # Password for access to the Tvheadend REST API
    4. TVHEADEND_PASSWORD=xxx

    Wie hier in Beitrag #21 von nepo schon geschrieben, ist es wichtig, daß der hier eingetragene User besondere Rechte hat (Web Interface - Admin - Videorecorder). Ich habe es mir hier nun einfach gemacht und den User und das Passwort eingetragen, mit dem ich mich in der Weboberfläche von TVHeadend anmelde.

    Dann noch etwas: ich möchte daß mein PC um 19 Uhr angeht und bis 22:30 Uhr durchläuft. Vor 19 Uhr und nach 22:30 Uhr soll der PC ausgehen, wenn kein Client aktiv ist und natürlich, wenn keine Aufnahme läuft.
    Dafür kann man diese Zeile wie folgt anpassen:
    if [ \( "$DONT_SUSPEND_BY_DAY" != "true" -a "$DONT_SUSPEND_BY_DAY" != "yes" \) -o \( "`date +%H%M`" -lt "1900" -o "`date +%H%M`" -ge "2230" \) ];
    Hier wird geprüft, ob die aktuelle Systemzeit kleiner als 19 Uhr ist ("-lt" bedeutet hier less than) oder ("-o" ist hier eine ODER Abfrage) größer als 22:30 Uhr ist ("-ge" bedeutet hier greater or equal). Wichtig ist weiterhin, daß der Parameter DONT_SUSPEND_BY_DAY=NO ist.

    Für die Zukunft hiermit dokumentiert :)

  • Ich hätte noch ein Anliegen, aber keine Lösung dafür. Wenn ich mein Laptop am Laufen habe und auf meinem Laptop Kodi am Laufen habe, möchte ich, daß der TVHeadend Server (auf dem das Autosuspend Script läuft) an bleibt. Wenn ich meinen Laptop für andere Zwecke am Laufen habe und Kodi darauf nicht gestartet ist, soll der TVHeadend Server ausgehen dürfen. Ich habe in dem Script dafür keine Lösung gefunden. Wenn ich in der Autosuspend unter CLIENTS die IP meines Laptops eintrage, bleibt der TVHeadend Server ja solange an, wie mein Laptop an ist. Aber das möchte ich ja nicht unbedingt.
    Hat da jemand eine Lösung für?

  • Ich habe meinen TVHeadend Server noch ein bischen "verfeinert".
    WIe oben geschrieben möchte ich gern, daß der TVHeadend Server anbleibt, wenn auf ihn zugegriffen wird, z.B. wenn ich auf Musik Dateien oder Film Dateien zugreife, die auf meinem TVHeadend Server liegen.

    Ich habe ein Script gefunden und verfeinert (ich nenne das Script traffic), das sich die Netzwerklast anschaut, die von meinem TVHeadend Server abgerufen wird. Es macht im Prinzip folgendes:

    Bilde die Differenz von der aktuellen Netzwerkausgangslast und der Netzwerkausgangslast von vor 5 Sekunden.
    Wenn die Differenz größer als ein bestimmter Schwellwert (z.B. 1000) ist, dann siehe nach, ob die Datei "suspend_counter" im Ordner "/var/spool" existiert und lösche sie.

    Was hat es mit der Datei "suspend_counter" auf sich?
    Ich habe mir das Script "Autosuspend" mal genauer angesehen und konnte Folgendes herausfinden. Wenn "Autosuspend" erkennt, daß der PC herunterfahren darf, erzeugt "Autosuspend" eine Datei "suspend_counter" im Ordner "/var/spool". Wenn dann "Autosuspend" erneut aufgerufen wird und wieder erkennt, daß der PC herunterfahren darf UND wenn nun auch noch die Datei "suspend_counter" existiert, wird ein Wakeup für das nächste Aufwachen gesetzt und dann wird der PC heruntergefahren.
    Diesen Umstand mit der Datei "suspend_counter" habe ich ausgenutzt. Wenn Daten vom TVHeadend Server abgerufen werden, löscht dasScript "traffic" einfach die Datei "suspend_counter" und schon fährt der PC nicht mehr runter.

    Im Anhang das Script "traffic" als Textdatei und eine kleine Beschreibung, wie man das Script "traffic" im Autostart zum Laufen bekommt.

    Vielleicht interessiert das ja jemanden?

Jetzt mitmachen!

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