unRaid S3 Sleep Plugin - darkside40 Edition
-
darkside40 -
2. Januar 2020 um 13:21 -
Unerledigt
-
-
Ggf noch pcie power on aktivieren…
-
-
Nachdem ich das wieder eingestellt habe, funktionierte es aus Windows heraus mit dem Wecken.
Was mich nervt: Warum sind die Einstellungen nach einem Neustart des Servers wieder weg? Speichert der das nicht was ich einstelle? -
@darkside40 und @SkyBird1980 mal an euch bezüglich der Vergesslichkeit des Sleep. Im Unraid Forum hat man mir empfohlen, das
ethtool -s eth0 wol g
in ein go file einzutragen, damit es abgespeichert, und nicht "vergessen" wird von unraid. Nun brauche ich mal eine Aufklärung wie und wo ich das mache?Edit: Also habe mich per FTP mit dem Server verbunden, die Datei go gefunden, und auf meinen PC kopiert. Aber nun? Was trage ich da wie ein??
-
-
Das go file liegt auf dem flash laufwerk im ordner config.
Terminal starten auf dem Server
sudo vi /mnt/user/flash/config/go
anpassen und speichern. -
Das go file liegt auf dem flash laufwerk im ordner config.
Terminal starten auf dem Server
sudo vi /mnt/user/flash/config/go
anpassen und speichern.Aber wie anpassen?? einfach ethtool -s eth0 wol g eintragen, oder wie/was???
-
-
Ja, vor der http zeile.
-
-
-
direkt unter /bin/bash kannste folgendes eintragen:
/usr/sbin/ethtool -s eth0 wol gDie Go File wird bei jedem Booten aufgerufen, das bedeutet wenn der Fehler nach einem Reboot auftritt kann das helfen. Die File wird nicht nach dem aufwachen aus dem Sleep aufgerufen.
-
direkt unter /bin/bash kannste folgendes eintragen:
/usr/sbin/ethtool -s eth0 wol gDie Go File wird bei jedem Booten aufgerufen, das bedeutet wenn der Fehler nach einem Reboot auftritt kann das helfen. Die File wird nicht nach dem aufwachen aus dem Sleep aufgerufen.
Das hat geholfen, nun ist der Eintrag nach einem Neustart des Servers korrekt. Ich hoffe mal, das hilft mir jetzt. Damit wecken aus dem Sleep endlich zuverlässiger geht!
-
-
-
das bedeutet an dieser Stelle, dass er in der eingestellten Zeit nicht schlafen geht, Aufwecken geht so nicht!
-
-
das bedeutet an dieser Stelle, dass er in der eingestellten Zeit nicht schlafen geht, Aufwecken geht so nicht!
Dann ist/sollte er ja auch wach sein. Nur in der übrigens Zeit schlafen. Oder verstehe ich das falsch? Und wenn er schläft, sollte er im Bedarfsfalle zu wecken gehen.
-
Wenn er vorher aufgeweckt wurde, sollte der Server, in der von dir festgelegten Zeit, nicht schlafen gehen.
Er sollte im Berdarfsfall in der definierten Zeit zu wecken sein, richtig.
-
-
Also ich habe das noch immer nicht verstanden. Wenn ich da die Uhrzeit ab 16:00 Uhr wähle, ist der nun nur am Sa + So ab 16 Uhr wach, oder täglich? Ich schnalle das irgendwie nicht mit dem Plugin.
Der Server soll eben täglich ab 16 Uhr an sein, und nur Sa + So den ganzen Tag. Läst sich das so einstellen? Aktuell mit den Einstellungen ist er nie an. Läst sich auch noch immer nicht per WOL aufwecken. Das nervt mich echt. Wäre euch dankbar für eine Aufklärung was ich wie einstellen muss!Edit:
Bei den Tagen: By default all days are included, select here the days that sleep or shutdown is not effective. This setting works in combination with excluded hours.
Übersetzt:
Standardmäßig werden alle Tage berücksichtigt. Wählen Sie hier die Tage aus, an denen der Schlaf oder das Herunterfahren nicht wirksam ist. Diese Einstellung funktioniert in Kombination mit ausgeschlossenen Stunden.
Bei Stunden: By default all hours are included, select here the hours that sleep or shutdown is not effective. This setting works in combination with excluded days.
Übersetzt:
Standardmäßig sind alle Stunden eingeschlossen, wählen Sie hier die Stunden aus, in denen der Schlaf oder die Abschaltung nicht wirksam ist. Diese Einstellung funktioniert in Kombination mit ausgeschlossenen Tagen.Danach sollte bei mir doch alles richtig eingestellt sein, oderß
-
So wie es jetzt eingestellt sollte der Server am Samstag und Sonntag den Befehl zum Schlafen im Zeitraum von 16 Uhr bis zu deinem Endzeitpunkt ignorieren.
Er wird aber nicht zu diesem Zeitpunkt aufwachen das muss du anders bewerkstelligen. Dafür gibt es in dem Script keine funktion, es verhindert nur den Schlaf wenn der Server schon an ist. -
-
Ok, ich gehe also davon aus, das er allein nicht wach werden kann, eben wie ich dacht: Zeit xyz aufwachen und bis abc wach bleiben. Das ist Schade, war ich so aus Lightsout unter Windows so gewohnt. Gab da einen Kalender, in dem ich allerlei Dinge eingeben konnte.
Wenn ich nun TVH auf dem Server laufen hätte, würde der dann bei TV-Aufnahmen geweckt, damit die Aufnahmen laufen? -
Muss ich mal suchen, es gab eine bash Script welches die nächste Recordingzeit von TVH ausgelesen hat und dann den ACPI Timer im Bios des Rechners passen stellte damit der Rechner auch automatisch aufwacht.
Bash
Alles anzeigen#!/bin/bash # # set ACPI Wakeup alarm # safe_margin - minutes to start up system before the earliest timer # script does not check if recording is in progress # # echo 1 > /timer # bootup system 60 sec. before timer safe_margin=120 # modyfy if different location for tvheadend dvr/[definition='1','0']log[/definition] path cd /mnt/cache/.appdata/tvheadend/dvr/[definition='1','0']log[/definition] ###################### start_date=0 stop_date=0 current_date=`date +%s` for i in $( ls ); do tmp_start=`cat $i | grep '"start":' | cut -f 2 -d " " | cut -f 1 -d ","` tmp_stop=`cat $i | grep '"stop":' | cut -f 2 -d " " | cut -f 1 -d ","` # check for outdated timer if [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -gt $((current_date)) ]; then # take lower value (tmp_start or start_date) if [ $((start_date)) -eq 0 -o $((tmp_start)) -lt $((start_date)) ]; then start_date=$tmp_start stop_date=$tmp_stop fi fi done wake_date=$((start_date-safe_margin)) echo $start_date >> /timer echo $wake_date >> /timer # set up waleup alarm if [ $((start_date)) -ne 0 ]; then echo 2 >> /timer echo 0 > /sys/class/rtc/rtc0/wakealarm echo $wake_date > /sys/class/rtc/rtc0/wakealarm fi
Pfade müssen ggf. angepasst werden. Ich habe das Script dann immer über die Pre-Sleep Funktion des Sleep Plugins aufrufen lassen.
-
-
Hab mal was im Unraid Forum gefunden zum Thema Hier wird einiges zu dem Thema und extra Script geschrieben. Da kann man den Server zu beliebigen Zeiten wecken lassen. Werde das mal Testen, und sehen, wie das klappt.
-
Muss ich mal suchen, es gab eine bash Script welches die nächste Recordingzeit von TVH ausgelesen hat und dann den ACPI Timer im Bios des Rechners passen stellte damit der Rechner auch automatisch aufwacht.
Ich habe damals mir von OMV ein Script geschnappt und ein wenig angepasst, läuft seit Jahren nun problemlos als Custom-Script. Hier sind ein paar Telegram-Notifications drin welche man rauswerfen müsste wenn man es nicht nutzen will. Sicherlich nicht perfekt, aber es tut was es soll. Es weckt vor jeder Aufnahme und überprüft ob es im Zeitfenster bereits wach ist etc. das ganze lasse ich als Cron alle 7 Minuten laufen.
Bitte nicht steinigen, das lief als Service bei OMV und nun per Cron, daher sind da noch Altlasten drin welche nur auskommentiert wurden.
Bash
Alles anzeigen#!/bin/bash #sleep 1m # Default wake up time based on the day sys_start_mo=17:00:00 sys_start_tu=17:00:00 sys_start_we=17:00:00 sys_start_th=17:00:00 sys_start_fr=17:00:00 sys_start_sa=8:00:00 sys_start_su=8:00:00 #check intervall loop_sleep_timer=10m #tv headend connection tvh_url="http://<user>:<password>@192.168.X.X:9981" #telegram integration TELEGRAM_API_KEY=<KEY> TELEGRAM_CHAT_ID=<ID> telegram_exec=/boot/config/plugins/user.scripts/scripts/telegram_notification/script _log() { [[ "$*" =~ ^([A-Za-z]*):(.*) ]] && { PRIORITY=${BASH_REMATCH[1]} LOGMESSAGE=${BASH_REMATCH[2]} [[ "$(basename "$0")" =~ ^(.*)\. ]] && LOGMESSAGE="${BASH_REMATCH[1]}[$$]: $PRIORITY: '$LOGMESSAGE'"; } logger -p $PRIORITY "$LOGMESSAGE" } get_default_wake(){ if [ "$today" = "1" ]; then wake_today=$sys_start_mo wake_tomorrow=$sys_start_tu elif [ "$today" = "2" ]; then wake_today=$sys_start_tu wake_tomorrow=$sys_start_we elif [ "$today" = "3" ]; then wake_today=$sys_start_we wake_tomorrow=$sys_start_th elif [ "$today" = "4" ]; then wake_today=$sys_start_th wake_tomorrow=$sys_start_fr elif [ "$today" = "5" ]; then wake_today=$sys_start_fr wake_tomorrow=$sys_start_sa elif [ "$today" = "6" ]; then wake_today=$sys_start_sa wake_tomorrow=$sys_start_su elif [ "$today" = "7" ]; then wake_today=$sys_start_su wake_tomorrow=$sys_start_mo fi # Check to see if the default wake up time for today is already in the past and set it for today or tomorrow wake_today_seconds=$(date -d "today ${wake_today}" +%s) wake_tomorrow_seconds=$(date -d "tomorrow ${wake_tomorrow}" +%s) if [ "$current_time_seconds" -gt "$wake_today_seconds" ]; then default_wake=$wake_tomorrow_seconds else default_wake=$wake_today_seconds fi default_wake_converted=$(date --date=@"$default_wake") } get_recordings(){ tvhcon=$(curl -s "$tvh_url"/api/dvr/entry/grid_upcoming) recordings=$(echo "$tvhcon" | jq '.entries' | jq 'sort_by(.start_real)') echo "$tvhcon" echo "$recordings" if ! [ "$recordings" == "[]" ]; then found_recordings=true else found_recordings=false fi } get_recording_time(){ # Check for valid recordings unset channel unset timestamp unset title unset subtitle unset episode for row in $(echo "${recordings}" | jq -r '.[] | @base64'); do _jq() { echo ${row} | base64 --decode | jq -r ${1}; } timestamp=$(_jq '.start_real') recording=$(_jq '.total') channel=$(_jq '.channelname') title=$(_jq '.disp_title') subtitle=$(_jq '.disp_subtitle') episode=$(_jq '.episode_disp') timestamp_converted=$(date -d @$timestamp) timestamp_with_buffer=$((timestamp-180)) if [ "$current_time_seconds" -gt "$timestamp_with_buffer" ]; then _log "INFO: TVH WakeUp: Found [$timestamp_converted - Timestamp $timestamp]" _log "INFO: TVH WakeUp: Recording already in progress or in the past. Skip." rtc_wake=$default_wake else _log "INFO: TVH WakeUp: Found [$timestamp_converted - Timestamp $timestamp]" _log "INFO: TVH WakeUp: $channel - $subtitle - $title" if [ "$default_wake" -lt "$timestamp_with_buffer" ]; then rtc_wake=$default_wake _log "INFO: TVH WakeUp: Recording starts after the server has been booted up. Use default waking time." else rtc_wake=$timestamp_with_buffer _log "INFO: TVH WakeUp: Recording starts before the server has been booted up. Use it as waking time." fi break fi done } get_rtclock(){ rtc_wake_current_converted=$(rtcwake -l -m show | grep "alarm: on" | sed s/"alarm: on "//g) } set_rtclock(){ if [ -z "$rtc_wake_current_converted" ] ;then _log "INFO: TVH WakeUp: No alarm set. Set default wake as fallback and proceed." rtcwake -m no -t $default_wake fi get_rtclock if ! [ -z "$rtc_wake_current_converted" ] ;then rtc_wake_current=$(date -d "${rtc_wake_current_converted}" +%s) rtc_wake_converted=$(date -d @$rtc_wake) rtc_wake_difference=$(($rtc_wake_current-$rtc_wake)) if [ "$rtc_wake_difference" -gt "-60" ] && [ "$rtc_wake_difference" -lt "60" ]; then _log "INFO: TVH WakeUp: Boot is already correctly scheduled at $rtc_wake_current_converted" else _log "INFO: TVH WakeUp: Current scheduled boot: $rtc_wake_current_converted" _log "INFO: TVH WakeUp: Existing scheduled boot does not match. Set new waking time at $rtc_wake_converted" rtcwake -m no -t $rtc_wake if ! [ -z "$telegram_exec" ]; then if ! [ -z "$channel" ]; then /bin/bash $telegram_exec "<b>Aufnahme geplant</b>%0A%0A$timestamp_converted%0A$episode%0A$channel - $subtitle - $title" fi /bin/bash $telegram_exec "Nächster geplanter Boot:%0A $rtc_wake_converted" fi fi fi } # Loop get_rtclock _log "INFO: Running TVH Recording Wake-Up Script" #while true; do _log "INFO: ### TVH WakeUp - Scan started ###" # Update current time variables today=$(date +'%u') current_time_seconds=$(date +%s) # Set the default wake up time based on the weekday get_default_wake _log "INFO: TVH WakeUp: Next default waking time is $default_wake_converted" # Get next scheduled recording time get_recordings # Check if recordings are scheduled _log "INFO: ### TVH WakeUp - Check for recordings ###" if [ $found_recordings = true ]; then get_recording_time else _log "INFO: TVH WakeUp: No recordings found. Use default waking time." rtc_wake=$default_wake fi # Check the current set time and update it if required _log "INFO: ### TVH WakeUp - Set wake up time ###" set_rtclock #Sleep #_log "INFO: ### TVH WakeUp - Wait $loop_sleep_timer ###" #sleep $loop_sleep_timer #done
-
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!