TVHeadend und Sleep...


Go to solution Solved by alturismo,

Recommended Posts

7 minutes ago, husmoaschta said:

Dies aber nur, wenn das Backend in der Lage ist, den Server geplant für Aufnahmen zu wecken. Weiß jemand, ob diese Funktion implementiert ist?

Kannst du mal genauer erklären was dein Setup jetzt ist bzw. welches Backend du meinst?

Gibt es so ein Setup wie du beschreibst irgendwo schon oder ein Tutorial?

Link to comment

Mit Backend ist der TVHeadend-Container gemeint. Ich bin vor kurzem von einem Windows Server auf UnRaid umgestiegen. Unter Windows war das ja kein Problem. Da hat die TV-Serveranwendung die Events in die Aufgabenplanung eingetragen, und die Maschine ist dann zur Aufnahmezeit aufgewacht

Link to comment
  • Solution
1 hour ago, husmoaschta said:

Mit Backend ist der TVHeadend-Container gemeint.

TVHeadend hat dies nicht implementiert ... einen shutdown zu initiieren und den wake RTC zu setzen.

 

Da die Hardware dies bei dir unterstützt (unter Win ging es auf dieser Hardware) wäre die Hürde genommen, so, der rest ist Fleisarbeit und Lernkurve/n nehmen ...

 

ein Ansatz, bevor du den sleep setzt ... je nachdem wie du den "triggerst", ein script ausführen welche die DVR Files scannt, entsprechend dem den timer setzt um dann das "weiterzugeben" und dann entsprechend den sleep command abzugeben ...

 

hört sich simpel an, ist es aber nicht so ganz ... aber, lösbar ...

 

wäre jetzt ein Ansatz ...

 

oder alternativ mit inotify jede Veränderung im DVR Ordner überwachen und immer die "nächste" Zeit abgleichen ... oder oder oder ...

 

Zusammengefasst, oob, Nein ... lösbar, ja.

 

abgesehen davon ob es jetzt TVH oder ein anderes Backend ist, wenn das im Docker läuft musst du eh diverse Hürden nehmen ... da ein Docker per se nicht dein System in den Sleep setzen kann (und auch nicht sollte) ...

Link to comment

kleiner Nachtrag, hier wird für jede Aufnahme eine Datei erzeugt anhand denen du dann die passenden Daten finden kannst

 

image.thumb.png.6a5d888766638c37e158fb43238b5e9f.png

 

wo anhand unix timestamps die Startzeiten auch hinterlegt sind ...

 

image.png.0bd8346a71698d5de22914b5b7343a46.png

 

der Rest ist jetzt wie gesagt, Lernkurven, Fleisarbeit, ... die Zeit dann in einem File speichern, dann bei dem sleep Auslöser anhand der Zeit - X Vorlauf die Wake Zeit setzen ...

 

wie gesagt, oob, Nope, Lösbar, klar doch ;) viel Erfolg dabei.

Link to comment
1 minute ago, husmoaschta said:

Schlafen tut der Server ja durch das Sleep-Plugin. Es geht um's Aufwecken

yo ... das ist mir schon klar, aber du musst dem was "mitgeben" ...

 

das ist etwas anderes ... war auch bei Windows so, der Aufgabenplaner schickt etwas ans BIOS damit der Rechner auch dann aufwacht ...

Windows ist auch aus im sleep ;)

 

Lernkurve wird steil ... ;)

Link to comment

Also ist es grunsätzlich möglich, dass TVHeadend eine Aufwachzeit ans BIOS schickt?

Steile Lernkurve bedeutet übrigens, dass man schnell lernt. Du hast vermutlich das Gegenteil gemeint. Womit Du vermutlich nicht ganz unrecht hast...

Aber ganz allgemein finde Ich, dass die Schlaf-/Weckfunktionen von UnRaid stark verbesserungswürdig, bzw. eigentlich gar nicht vorhanden sind.

Die Entwickler gehen davon aus, dass jeder seine Kiste 24/7 am Laufen hat. Da UnRaid aber doch eher in Heimnetzumgebungen angesiedelt ist, anstatt in high availability Datenzentren, finde Ich diese Sichtweise etwas seltsam...

Link to comment
52 minutes ago, husmoaschta said:

Also ist es grunsätzlich möglich, dass TVHeadend eine Aufwachzeit ans BIOS schickt?

 

Nein ...

 

1/ TVHeadend hat das nicht eingebaut ...

2/ TVHeadend läuft als Docker, der kann nichts ans "System" senden ... zumindest nicht einfach, durch 1/ eh obsolet.

 

es ist grundsätzlich möglich

 

1/ die Recording Times auszulesen

2/ daraus eine "Vorgabe" zu erstellen und bereitstellen

3/ den RTC wake Befehl abzulassen vom Host System aus

 

das Ganze händisch und per scripts ... sprich, ja, du kannst dir diese Funktion "bauen", mein Ansatz wenn ich so etwas machen wollte steht oben ...

 

54 minutes ago, husmoaschta said:

Aber ganz allgemein finde Ich, dass die Schlaf-/Weckfunktionen von UnRaid stark verbesserungswürdig, bzw. eigentlich gar nicht vorhanden sind.

das ist auch gut so ... einiges an Hardware verträgt es nämlich nicht .... und wer ist dann schuld ? wenn er die Funktion einbaut und ...

und wo landen die Fragen ... und wer will es dann nicht wahr haben .... ist leider so.

 

55 minutes ago, husmoaschta said:

Die Entwickler gehen davon aus, dass jeder seine Kiste 24/7 am Laufen hat. Da UnRaid aber doch eher in Heimnetzumgebungen angesiedelt ist, anstatt in high availability Datenzentren, finde Ich diese Sichtweise etwas seltsam...

ganz im Gegenteil ... aber darüber brauchen wir jetzt nicht zu philosophieren ... 

 

55 minutes ago, husmoaschta said:

Steile Lernkurve bedeutet übrigens, dass man schnell lernt. Du hast vermutlich das Gegenteil gemeint.

das stimmt, nur so verstehen es die meisten direkt was gemeint ist ;)

Link to comment
11 hours ago, husmoaschta said:

Wäre halt ein Gerät weniger gewesen

wenn du Lust hast ... ich hatte etwas Zeit und Lust (da ich TVH mag ;)) und TVH auch ne API hat ...

 

kannst mal folgendes versuchen

 

#!/bin/bash

### TVH Credentials
TVHEADEND_HTTP_URL="http://192.168.1.80:9981"	### adjust to your tvheadend ip:port
TVHEADEND_USER="your_user"						### TVH Username
TVHEADEND_PASSWORD="your_pass"					### TVH Password

### Pre waketime in seconds to add before wake, sample, 120 == 120 seconds == 2 Minutes ahead
rtc_wakeahead="120"

### Config end here ###

### Fetch upcoming recordings in TVH
tvheadend_dvr_upcoming=$(curl -s --user "$TVHEADEND_USER:$TVHEADEND_PASSWORD" "$TVHEADEND_HTTP_URL/api/dvr/entry/grid_upcoming?sort=start_real&dir=ASC&limit=5")

## fetch unix time
IFS=$'\n' rtc_time+=($(echo $tvheadend_dvr_upcoming | jq -r ".entries[] | (.start_real | tostring)"))

## convert unix to date
recordtime=$(date -d @$rtc_time)

## fetch channelname
IFS=$'\n' channelname+=($(echo $tvheadend_dvr_upcoming | jq -r ".entries[] | .channelname"))

## fetch recordtitle
IFS=$'\n' recordtitle+=($(echo $tvheadend_dvr_upcoming | jq -r ".entries[] | .disp_title + if (.disp_subtitle | length > 0) then \" (\" + .disp_subtitle + \")\" else \"\" end"))

echo "$recordtime $channelname $recordtitle"

### Set rtc waketime
## clear wakealarm
echo 0 > /sys/class/rtc/rtc0/wakealarm

## set wakealarm
rtc_waketime="$((rtc_time-rtc_wakeahead))"

## write wakealarm
echo $rtc_waketime > /sys/class/rtc/rtc0/wakealarm

## convert unix to date
rtc_waketimer=$(date -d @$rtc_waketime)

echo "$rtc_waketimer RTC Wake set"

 

output sollte dann so aussehen, 1/ nächste Aufnahme startet ... 2/ RTC Timer gesetzt abzgl. der Pre Zugabe ... (120 Sek in diesem Fall)

root@AlsServerII:/mnt/cache/system# ./tvh_sleep.sh
Wed Mar 20 15:09:30 CET 2024 ProSieben HD Modern Family (Sonnenfinsternis)
Wed Mar 20 15:07:30 CET 2024 RTC Wake set
root@AlsServerII:/mnt/cache/system#

 

Bedingung, wake on RTC ist im BIOS aktiviert ...

 

das script muss laufen bevor der Rechner in den sleep geht ... Bsp. sleep plugin run before ... oder du lässt es alle Stunde mal laufen ... oder ...

 

kannst ja mal feedback geben wenn Lust das zu testen.

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.