Díky specifické konfiguraci a systému provozu v domácí instalaci jsem dospěl k potřebě umět rozlišit, zda byl systém, na kterém běží společně Tvheadend server a Kodi, spuštěn tzv. RTC Alarm-em (tzn. díky plánovanému nahrávání) nebo jinak (DO, klávesnice, Power tlačítko). Důvodem této potřeby bylo to, že pokud se systém spustí díky RTC Alarm, není třeba pouštět server na síti, zatímco při jiném spuštění je to naopak nutné. Nejsem velký znalec Linuxu, ale bylo mi jasné, že velmi pravděpodobně po spuštění nikde informace o tom, jak (čím) k němu došlo, není. Odpověď jak na to jsem našel na blogu GdH Automatické časové zapínání počítače pro nahrání pořadu s Tvheadend.
Mé řešení využívá pouze tu část výše odkazovaného řešení, která po spuštění zjišťuje, zda je aktuální čas systému "blízký" původně nastavenému času spuštění v RTC Alarm. Klíčové je, jak zjistit původně nastavený čas spuštění. Ten je po spuštění už také nedostupný, proto se v každém případě, kdy se hodnota RTC Alarm před uspáním/vypnutím nastavuje, zapsat ji v každém případě současně do souboru. Důležité je ono "v každém případě". Je tedy třeba vědět, kdo všechno může RTC Alarm nastavit. V mém případě, je to pouze TVHeadend Power and Recording Manager (P&RM) addon.
Řešení tedy obsahuje:
(*) V současné době si rozdíly času zapisuji do souboru, abych zjistil, jaký bude největší rozdíl těchto časů. Podle toho pak velikost časového okna v testu upravím, aby bylo co možná nejmenší.
Mé řešení využívá pouze tu část výše odkazovaného řešení, která po spuštění zjišťuje, zda je aktuální čas systému "blízký" původně nastavenému času spuštění v RTC Alarm. Klíčové je, jak zjistit původně nastavený čas spuštění. Ten je po spuštění už také nedostupný, proto se v každém případě, kdy se hodnota RTC Alarm před uspáním/vypnutím nastavuje, zapsat ji v každém případě současně do souboru. Důležité je ono "v každém případě". Je tedy třeba vědět, kdo všechno může RTC Alarm nastavit. V mém případě, je to pouze TVHeadend Power and Recording Manager (P&RM) addon.
Řešení tedy obsahuje:
- upravit script /storage/.kodi/addons/service.tvh.manager/resources/lib/shutdown.sh a současně se zápisem hodnoty času spuštění do /sys/class/rtc/rtc0/wakealarm, zapsat stejnou hodnotu (je obsažena v parametru $1) také do souboru, např. příkazem echo $1 > /storage/.config/wakealarm
- při spuštění systému otestovat, zda je čas spuštění blízký času uloženému ve výše uvedeném souboru. Já mám v současné nastaveno v testu nastaveno časové okno +/= 30 s (*). Pokud ano, tak je pravděpodobné, že systém byl spuštěn díky dosažení času uloženému v RTC Alarm, pokud ne, tak byl spuštěn jinak.
(*) V současné době si rozdíly času zapisuji do souboru, abych zjistil, jaký bude největší rozdíl těchto časů. Podle toho pak velikost časového okna v testu upravím, aby bylo co možná nejmenší.