• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 1 Hlas(ů) - 5 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Tvheadend BB (Black Box)
#1
Provozuji Kodi už léta a není to mé první mediální cetrum. Před tím to byl Media Portal (MP) a vždycky jsem, kromě funkcí mediálního přehrávače preferoval i funkci TV serveru. Proto byl také MP před více než 15 lety mou první volbou. V té době Kodi žádnou možnost ani podporu přehrávání TV nenabízelo. Prošel jsem za tu dobu různými fázemi a konfiguracemi, od MP client/server, přes MP clients + MP server, MP server + MP clients + Kodi client až po dnešní Kodi client/Tvheadend Server + Kodi Clients.

Pro toho, koho by moje počátky zajímaly, ukázka mých prvních MP sestav. Je na nich první velký server, který zastával roli NAS (Windows) na kterém už běžel i dedikovaný MP server, a pak ukázky dvou MP klientů (Windows), z prvního z nich se po čase stal i první Kodi klient (Windows, posléze OpenELEC).
           
Dnes Kodi client/Tvheadend Server provozuji na LibreELEC instalovaném na hlavním obývákovém HTPC a krmím s ním několik Kodi klientů (LibreELEC Generic, Windows), ale protože čas je neúprosný, rozhodl jsem se tak trochu se vrátit ke kořenům a postavit si dedikovaný Tvheadend server a domácí klienty při další postupné obnově už dál řešit jen s pomocí HW na bázi Arm (momentálně mám zatím pouze jeden Beelink GT2 Mini).

Při řešení tohoto úkolu jsem si stanovil několik zásad. Nejdříve HW:
  • malý jednoduchý HW pro vlastní server (funkce NAS neřeším, na to používám standardní komerční řešení)
  • ideálně nějaké přiměřeně kompaktní řešení, které se schová "kamkoliv"
  • výkon CPU tak akorát, spíše normální (paticový) procesor, ale spokojím se i s integrovaným
  • paměť není kritická, min 4 GB, předpokládám možnost její výměny/rozšíření pokud se to ukáže nutné
  • GPU bez zvláštních nároků (žádné překódování streamů)
  • více USB konektorů pro připojení DVB-T přijímačů (u mne přichází v úvahu pouze DVB-T, T2, případně C - ale pouze free - mám doma UPC, ale beru si z něj pouze free DVB-T a C)
  • standardní ethernet (žádný ethernet přes USB), lépe 2 rozhraní (pro případné IPTV), ale spokojím se i s jedním
  • možnost instalace disku pro ukládání nahrávek 1-2 TB (podle dlouholetých zkušeností je to pro naši rodinu optimální, nyní máme na HTPC 1 TB a je většinou zaplěnný ze 75%), postačí 2,5"
  • ideálně něco bez ventilátoru (nejde o hluk, spíše o jednoduchost a 0 údržbu HW - prach)
  • podpora pro uspávání a wake-on-lan
a potom i SW, vč. systémových:
  • poběží tam Tvheadend a pár dalších aplikací (např. WG++), mělo by to být nenáročné a stabilní - tedy Linux
  • pokud možno něco uživatelsky jednoduchého, nejsem znalec Linuxu, spíše jen obyčejný uživatel co pracuje s manuálem v ruce...
  • klidně se spokojím i s desktopovým OS, myslím že není nutně třeba serevrová verze (i když...)
  • možná, že později přejdu na serverové řešení, ukáže-li se, že desktop má nějaká omezení (i když si to nemyslím, protože tomu zase nebudu nijak "nakládat")
  • ideálně, aby měl i GUI (pro počáteční seznamování je to pro mě pohodlnější), které budu ale pro vlastní provoz moci vypnout a bootovat bez něj
  • jen chvíli jsem zvažoval nějaké modernější řešení (např. využít docker). Chápu, že by to z obecného hlediska asi bylo lepší, zejména s ohledem na budoucí přenositelnost do jiného prostředí, ale tohle je už nad mé síly a ochotu tomu věnovat více energie. Musel bych to studovat a to se mi, s ohledem na čas, už moc nechce. 
Tak a teď bude následovat několik stručných kapitol o jednotlivých částech mého řešení, přibližně v rozsahu:
  1. Hardware
  2. Operační systém
  3. Tvheadend
  4. WG++
  5. Ostatní
Další povídání pak nechám na další posty, které budou následovat a které bych rád koncipoval jako inspiraci (či dokonce návod) pro ostatní, jak lze takové věci řešit. Čekám také diskusi a rady či doporučení. Očekávám i kritiku zvolených postupů nebo produktů, ale chápejte to tak, že si sem nejdu primárně pro radu, spíše chci pomoci jiným, kteří se do podobné aktivity taky chtějí pustit a nejsou, stejně jako já, natolik zkušení aby to dali z jedné vody načisto. Ale dobrou radou, doporučením nebo návodem samozřejmě nepohrdnu. Já už si s tím hraju pár hodin a zatím jsem dospěl do situace, že má HW v kupě, nainstalovaný systém, Tvheadend, WG++ a na jednom klientovi už v Kodi přijímám TV. U Tvheadend a WG++ jsme se soustředil na to, abych si přensel všechno, co provozuji na dosavadním HTPC, což se mi podařilo. Ale k tomu se dostanu...

Hardware

Hardware mám v tuto chvíli vyřešené. Z jednoho projektu mi zbyl docela hezký kousek HW. Původně jsem měl na mysli o něco větší výkon CPU (tady to má Intel Celeron N2955), ale první pokusy ukázaly, že to bude pro první chvíli dostatečné. Jako systémový disk mSATA 60 GB ze šuplíku, paměť 4 GB jsme nalezl tamtéž. Provedení je téměř dokonalé. Kovová krabička z masivního tlakově litého hliníku, horní žebrované plocha je zároveň chladičem CPU, disk je naopak přišroubán na spodní víčko. Na čelní straně celkem 6x USB, další dvě vzadu, kde je i RJ45 zásuvka Ethernetu a VGA + HDMI. Provedení krabičky dalo i název tomuto projektu Tvheadend BB (Black Box). Tak trochu navazuji na projekt mého prvního Kodi konceptu, kterému jsem zase říkal T. I. B. (Three in Black), což byla čtveřice (po vzoru Tří mušketýrů, kteří byli také čtyři) Server + Kodi klient + Logitech Harmony One + TV Samsung, vše v černé barvě, poslední tři dokonce v "piano" lesklé.
Jo, abych nezapomněl. Jako HDD jsem zatím použil jedno šuplíkové 2,5 " HDD 160 MB (abych si to všechno nastavil a odzkoušel), ale počítám, že tam ve finále nainstaluji HDD z HTPC, samozřejěm včetně aktuálních nahrávek.
   

Operační systém

Napíšu to rovnou. Ubuntu, dektop. Na virtuálkách jsem si odzkoušel instalaci a práci s různými distribucemi a pro mne, jako laika, se Ubuntu ukázalo jako nejoptimálnější. Beru to ale také tak, že až si to vše odladím, nebude problém to celé zopakovat na jiné distribuci, třeba i serverové. Ale protože jsem zatím na začátku, tak s ním určitě ještě chvilku vydržím. Vím, že mezi Linux odborníky jsou na tento OS různé názory, ale vzhledem k tomu, že už mi to dva dny běží a nevypadá to na nějaké problémy, měnit to zatím nehodlám. A vzhledem k tomu, že mi funguje jak uspávání/probouzení, tak provoz bez GUI, včetně remote desktop/VPN přístupu, nepotřebuji právě tohle teď nijak zvlášť řešit. A kdybych potřeboval, tak převod hotového řešení je záležitost jendoho odpoledne.

Tvheadend

Nainstaloval jsem poslední stabilní 4.2 verzi, konečně zprovoznil USB DVB-T přijímač AverMedia TD310 (DVB-T, T2, C) a soustředil se na to, přenést do BB nastavení Tvheadend z LibreELEC, protože tam toho mám požehnaně. DVB-T se podařilo na první dobrou k tomu přibyly nově free kanály z DVB-C, některé jako úplně nové (v DDBV-T nejsou), jiné se zařadily jako druhá služba ke kanálům přijímaným přes DVB-T. Bohužel některé kanály, i když už je přijímám přes DVB-T, se vytvořily jako nové, protože mají jméno odlišné od těch v DVB-T. Ale to si vyřeším "ručně".

Ostatní přijímače (1x single a 2x Double USB DVB-T) zatím nechávám připojené k HTPC, až přijde čas, spustím akci "Kulový blesk", kdy to půjde na BB společně s HDD a aktuálními nahrávkami. Jen technická poznámka, mezi tím, po instalaci OS, samozřejmě následovala instalace několika dalších SW balíčků, ale k tomu se dostanu v detailním popisu v některém z dalších postů.

Dalším krokem bylo spuštění příjmu OTT služeb. Tady postupuji obezřetně, abych u některých služeb nepřekročil daná omezení, protože se znova neregistruji, ale využívám toho, že "jedu" přes stejnou IP. Vím, neměl bych to dělat, ale vzhledem k tomu, že z toho nijak neprofituji, jen potřebuji ověřit 100% funkčnost před definitivním převedení provozu, tak z toho žádné velké vyčítky nemám. Až to celé převedu, všechny služby si znova na nový server přeregistruji. Proto jsem zatím převedl jen dvě služby z celkem 5, které používám. Jediné, co asi na nový server nepřevedu, je Live TV příjem z Youtube. Už teď s tím jsou problémy a brzy přijdou další, takže tato větev vývoje příjmu v Tvheadend se ukázala jako slepá. Škoda, byl to pěkný zdroj streamů, mnohdy velmi zajímavý a unikátní.

WG++

Tady skoro není o čem psát. Instalace aplikace, překopírování "config" z HTPC a několika speciálně upravených ini souborů, změna adresy umístění výsledného souboru a spuštění, pak ještě cron a tato služba už v pohodě fičí, včetně toho, že se EPG dostalo v Tvheadend tam kam má.

Ostatní

Co lze čekat? Zde opravdu jen heslovitý výčet, další až v konkrétních postech.
  • další aplikace - například ffmpeg, ale i celá řada dalších...
  • cron-y - ten pro spouštění wg++ už funguje, ostatní přijdou na řadu postupně
  • scripty - uspávání při nečinnosti, probouzení pro nahrávání nebo pro stažení EPG
  • zálohování SW i dat a parametrů
  • aktualizace SW
  • ...
Pokračování příště...
 
Citovat
#2
Ad Ostatní - scripty: Uspávání serveru při nečinnosti

Celkem očekávaná záležitost, kterou ale někdo opomíjí a nechává server běžet soustavně. Také bych sice mohl, můj HW není nijak žravý, ale z principu jsme si upsávání serveru při nečinnosti ve svém projektu ujít nenechal.

Začnu probouzením, i když to není záležitost serveru. Ale chci-li server uspávat, měl bych mít plán, jak ho také umět probudit, tedy jinak než svými vlastními silami, externími událostmi. Tento typ probouzení mají na starosti jednotliví klienti. A řeším ho dvojím způsobem. U stabilních Kodi instalací (všechny jsou *ELEC), mám vložené do startup scripru (.../.config/autostart.sh) nebo do místa, kde se spouší scripty pro probuzení (../.config/sleep.d/), scripty, které server v potřebném okamžiku probudí. U těch ostatních (vesměs jsou to PC s jiným primárním určením než je jen Kodi platforma) nechávám probouzení servevu na samotné aplikaci Kodi, případně jeho addons.

A teď tedy k uspávání serveru. Scriptů, které to řeší, je plno a najít je na interetu je záležitost chvilky. Udělal jsme to stejně a zjistil, i když to na první pohled tak nevypadá, že je to vlastně strašně jednoduché. Je třeba mít samozřejmě nějaké základy scriptování (já pro to používám ten nejjednodušší sh shell), pak se hodí znalost Tvheadend web api (na to je dobré se podívat na post Tvheadend a web api) a pak nějakou základní představu o tom, jak chci, aby to fungovalo. Současnou verzi (ještě značně nedokonalou, ale v základních obrysech už funkční ukáži v závěru), teď tedy o tom, jak chci, aby to fungovalo. Co je třeba si stanovit?
  • kdy a jak chci script spouštět - často se spouštění scriptu odvozuje od skončen nahrávání. Já jsem si to ale zobecnil a script spouštím periodicky. Důvodem je to, že chci, aby script řešil i jiné situace, než jen spojení s vlastním Tvheadend apliakcí. Používám tedy cron. Peridou spouštění zatím neřeším, pro ladění script buď spouštím ručně nebo si nastavím nějakou krátkou peridou, ale pro praktické používání to vidím na nějakých 10 nebo 15 minut.
  • co všechno by se na rozhodnutí o tom, že se má/nemá server uspat, podílet - to je hodně individuální a závisí to na tom, co všechno (kromě Tvheadend) na serveru porvozujete a také, jaký systém práce máte zavedený. Mě z toho vyšly následující kritéria (záměrně píši o situacích, kdy server nechci uspat, respektive uspání blokovat, brzy uvidíte proč):
    • je aktivní alespoň jeden webový klient (port 9981) - tzn. na nějakém webovém prohlížeči je zobrazeno gui Tvheadend
    • na serveru je spuštěné gui operačního systému - to bych mohl bez problémů na serveu pracovat
    • zatím nekontroluji přihlášení, ale brzy to také přidám - z podobného důvodu jako v přechozím bodu
    • na serveru běží vybrané aplikace - v dané chvíli testuji pouze běh Webgrab++, ale tuto část brzy zobecním a přibude možnost jednoduše zadat další aplikace, jejichž běh bude uspání blokovat
    • je aktivní alespoň jeden klient Tvheadend (port 9982) - tady jsem obvyklá řešení trochu doplnil, netestuji puze aktvního klienty (přes web api), ale protože v některých situacích (např. uspání Kodi) to trvá delší dobu než spojení spadne, testuji ještě jejich aktuální dostupnost (ping). Tento poslední test není samozřejmě nutný. Pokud není použit, tak prostě serveru bude uspání trvat trochu déle, než spojení vyhodnotí jako "vypadlé".
    • běží alespoň jedno nahrávání
    • pokud všechny testy dopadnou tak, že je možné serevr uspat (tzn. nic neblokuje uspání) následuje zjištění data a času přístího nahrávání (pokud žádné není - což se prakticky asi stát nemůže, ale budiž - to tak se nastavuje probuzení na zítřejší den), které se (po nezbytném přidání rezervy) dále použije jako čas porbuzení
    • no a ještě obligátní test, zda by další probuzení nemělo proběhnout za příliš krátkou dobu a nevyplatí se tedy, nechat server raději běžet
    • pokud se dojde až sem, tam pak už jen obligátní nastavení času probuzení a nakonec vlastní uspání
  • jak by script měl vypadat - jak už jsme napsal, je takových scriptů celá řada, mně se ale žádný z nich moc nelíbil. Byly příliš nepřehledné a orientace v nich nepříliš jednoduchá. Stanovil jsem si jednoduchou zásadu. Ve scriptu budou za sebou uspořádány jednotlivé testy, v nichž se v každém bude testovat, zda má server běžet dál. Poku test dopadne dobře, tak se běh scriptu v tomto místě ukončí a k uspání serveru nedojde. Je to přehledné, velice rychle a jednoduše se přidávají další podmínky a také se, což je dobré pro ladění na živém systému, velice rychle a jednoduše mění pořadí podmínek.
  Součásná verze scriptu (v0.2) je zde:
Kód:
#!/bin/sh

# Version v0.2
# TV Server suspend script
# Dependencies: curl, jq

# Parameters

addsec=3600
presec=60

timetostop=5

# Common

name=[SERVER]

# Debug & test parameters

noexit=
nowake=
noexec=

logger ${name} Warming
sleep 15
logger ${name} Start

[ ${noexit} ] && logger ${name} NOEXIT mode
[ ${nowake} ] && logger ${name} NOWAKE mode
[ ${noexec} ] && logger ${name} NOEXEC mode

# Check who logged - prepared for future function

logged=$(who)
users=$(who -q | grep -E "users|uživatelů" | cut -f2 -d=)
logger ${name} Login criteria ${users} user: ${logged}


# Check for active connections - Tvheadend web gui clients

match=$(netstat -an | grep -iE "SPOJENO|ESTABLISHED" | grep -E "9981")
if [ $? = 0 ] ; then
    logger ${name} At least one general connection is active, continue...
    [ ! ${noexit} ] && exit
fi

# Check for running gui

match=$(ps -e | grep gnome)
if [ $? = 0 ]; then
    logger ${name} GUI runs, continue...
    [ ! ${noexit} ] && exit
fi

# Check for running wg++

match=$(ps -e | grep run.sh)
if [ $? = 0 ]; then
    logger ${name} WG++ runs, continue...
    [ ! ${noexit} ] && exit
fi

# Check for active connections - Tvheadend front-end clients

json=$(curl -s "http://localhost:9981/api/status/connections")

count=$(echo ${json} | jq -r '.totalCount')
entries=$(echo ${json} | jq '.entries')
lenght=$(echo ${entries} | jq '.|length')
logger ${name} Tvheadend status - Connection: ${count} Entries: ${lenght}
i=0
while [ ${i} -lt ${lenght} ] ; do
    peer=$(echo ${entries} | jq -r ".[${i}]|.peer")
    resp=$(ping -c 1 ${peer})
    if [ $? = 0 ] ; then
        logger ${name} Client IP: ${peer} is alive
        logger ${name} At least one client is alive, continue... 
        [ ! ${noexit} ] && exit
    else
        logger ${name} Client IP: ${peer} is dead
    fi
    i=$((i+1))
done

# Check for recordings

json=$(curl -s "http://localhost:9981/api/dvr/entry/grid_upcoming?limit=99999")

# Check for recordings - active recordings

match=$(echo ${json} | grep -c '"sched_status":"recording",')
if [ $? = 0 ]; then
    logger ${name} Recording runs, continue... 
    [ ! ${noexit} ] && exit
fi

# Check for recordings - next recording

next=$(echo ${json} | tr , '\n' | grep start_real | sed "s/.*start_real.:\([0-9]*\).*/\1/" | sort -n | head -1)
if [ ${next} ] ; then
    next=${next}
    logger ${name} Next recording at $(date -d @${next})
else
    next=$(date -d "tomorrow" +%s)
    logger ${name} No recording, next activity tomorow at $(date -d @${next}) 
fi

# Check gap to next activity

gap=$((${next}-$(date +%s)))
logger ${name} Next recordig/activity start at ${gap} sec
if [ ${gap} -lt 300 ] ; then
    logger ${name} Gap to next recording is too short, continue...
    [ ! ${noexit} ] && exit
fi

# Set the wakeup and go to stop

wakeup=$((next-presec))
logger ${name} Waking up at $(date -d @${wakeup})

wakeup=$((wakeup-addsec+addsec))

[ ! ${nowake} ] && sudo /usr/sbin/rtcwake -m no -t ${wakeup} > /dev/null

logger ${name} Waiting for stop in ${timetostop} seconds
sleep ${timetostop}

[ ! ${noexec} ] && sudo /usr/sbin/pm-suspend &

logger ${name} Suspend

exit (0)
Jak už jsem tu napsal několikrát, nejsem programátor a všechny tyto věci řeším s manuálem v ruce (či spíše na obrazovce), proto buďte shovívaví. Samozřejmě budu velice rád za každý dobrý nápad či námět, stejně jako konstruktivní kritiku.

To-Do:
  • samozřejmě jde  o úplně první verzi, na které budu ještě pracovat, takže ke změnám bude ještě docházet
  • zatím jsou všechny parametry v kódu, v dalším kroku vše přepíši do proměnných a umístím je do úvodu scriptu tak, aby adaptace na kontrétní podmínky a použití byla co nejjednodušší
  • ještě bych rád doplnil probuzení pro běh některých dalších úloh - např. již zmíněné wg++ či případných dalších. Znamená to vložit jako čas probuzení místo data a času další nahrávky datum a čas spuštění úlohy, pokud tento předchází datu a času další nahrávky. Tohle trochu bourá tu jednoduchu systematičnost řešení, ale není to nic, co by se vyřešit nedalo, jen se mi do toho ještě nechtělo.
  • co se týče parametrů, zvažuji vytvoření externího parametrizačního souboru, ve kterém budou uložené parametry. Tohle by bylo určeno pro ty méně zkušené, takže by si pak jen nakopírovali dva soubory, script a soubor s parametry, soubor s parametry by podle návodu vyplnili, nastavili by si cron a ... 

EDIT 2020-11-16: Poněkud jsem upravil výše uvedený script. Do jeho verze v0.1 se mi vloudila chybička, na kterou jsem přišel bohužel až později. Zároveň jsem doplnil i možnost spouštění scriptu bez toho, že by skutečně do běhu systému zasahoval. Je to dobré pro ladění a testování.
 
Citovat
#3
Ad Ostatní - scripty: Monitor

U mých dosavadních řešení Tvheadend provozovaných na LibreELEC má velký úspěch idea jednoduchého addon Monitor, který nedělá nic jiného, než že spouští různé scripty a jejich výsledek promítá do Kodi proměnných typu properties. Ty se pak dají využít ve skinu a s jejich pomocí zobrazovat informace o stavu systému, Tvheadend či jiných aplikací.

U dedikovaného Tvheadend už to tak jednoduché není, proto mám v úmyslu vytvořit dvojici client/server, kde na straně TV serveru poběží script, který bude sbírat potřebná data a ukládat je do souboru (např. ve formátu json), dostupném přes sdílení. Na Kodi klientech pak stačí vytvořit jednoduchý addon, který bude číst informace z tohoto souboru, zpracovávat a ukládat do odpovídajících Kodi proměnných. Nebude to samozřejmě žádný fofr, předpokládám aktualizaci řádově v jednotkách desítech vteřin, ale to pro základní informaci stačí. Ostatně vliv četnosti aktualizace a ukládání do souboru (na straně jedné) a čtení a zpracování (na straně druhé) bude jistě předmětem dalšího zkoumání. Ale já bych se žádného velkého vlivu na zatížení jak CPU tak přenosu po síti nebál.

Na straně klientů to samozřejmě předpokládá uživatelskou úpravu skinu. Je také možné addon, který bude fungovat jako Kodi service, doplnit o část standardního scriptu, který bude data zobrazovat až po svém explicitním spuštění. Vidím to spíše jako kombinaci obojího. Základní a důležité infromace trvale zobrazované v nějaké stavové řádce, vše (a ze všech monitorovaných systémů) v nějaké přehledné tabulce po spuštění scriptu.

Formát json pro předávání dat by mohl vypadat nějak takto (je to jen příklad):
Kód:
{
    "name": "TVSERVER",
    "prefix": "tvh_",
    "ip": "10.0.0.20",
    "mac": "bc:23:54:a0:98:35",
    "last": "2020-11-17 11:09:50",
    "properties": [
        {
            "name": "temp_cpu",
            "value": "55",
            "unit": "°C"
        },
        {
            "name": "temp_hdd",
            "value": "43",
            "unit": "°C"
        },
        {
            "name": "eth_speed_rx",
            "value": "23",
            "unit": "Mbps"
        },
        {
            "name": "eth_speed_rx",
            "value": "4",
            "unit": "Mbps"
        }
    ]
}
Toto by mohlo být o něco univerzálnější řešení, než které uvádí tento post [WIP] Monitor Kodi. Či spíše by to mohla být další alternativa, která umožní do Kodi dostat tento typ dat i z jiného zdroje. Takovým zdrojem může být nejen server kde běží Tvheadend, ale třeba i NAS nebo další Kodi v domácnosti, případně jakýkoliv jiný počítač. Json soubor, případně jakýkoliv další typ souboru (csv, ...), se dá vytvořit celkem jednoduše a addon, který by takové soubory mohl číst a převádět na Kodi proměnné typu properties, je pak už hračkou. Motivace udělat to pro TV server je samozřejmě asi nejsilnější. Jistě, na jednotlivá zařízení a jejich stav se lze podívat i jinak, ale rychlý přehled z Kodi instalace v obýváku, jen za pomoci DO, určitě někdo ocení.

Zatím je to jen idea, i když s celkem jasným řešením, které není nijak složité. Chce to jen čas, pak už by tomu nic nemělo stát v cestě.

A poznámka na závěr. Tento post tak trochu odbočil z tématu. Ale myslím, že je užitečný. Pokud se k řešení dostanu, budu ho prezentovat v samostatném tématu, případně už ve výše odkazovaném tématu Monitor Kodi jako možnou alternativu.
 
Citovat
#4
Nastal čas na krátké zhodnocení situace.

Od posledního příspěvku nic zásadního nepřibylo, spíše se jen stabilizoval provoz, což mi umožňilo zbavit se LibereELEC konfigurace s běžícícm Tvheadend serverem a wg++. Přesunul jsem tedy zbývající USB DVB-T přijímače na nový server. Zatím stále jedu na 160 GB disk pro nahrávky, což je ukrutně málo, ale vzhledem k tomu, že jsem z původního HTCP HW udělal jednu pracovní stanici pro potřebného studenta, musím si koupit disk nový a k tomu jsem se ještě nedostal.

Tvheadend běží excelentně, sice se trvale vrací chyby USB při probouzení, ale to je známá věc, nijak podstatná, a poradím si s ní. Ale zase, až na to bude čas. Jeden problém jsem ale nezvládl. Nesouvisí ale s novou konfigurací, ale s tím, že jsem mezi USB DVB-T přijímače  zapojil jeden DVB-T/T2/C. Zatímco vztahy mezi DVB-T a OTT přijmem si důsledně řeším pomocí priorit a slučováním kanálů, u původních a nových přijímačů jsme na to jaksi zapomněl. Stalo se to, že přijem z DVB-C (kde je hodně rádií a taky tradičních TV kanálů, které už přijímám i z DVB-T) je vybrán dříve než z DVB-T. To vede k tomu,  že jsou některé kanály, které bych si rád pustil, neodstupné, protože z DVB-C  běží něco, co by klidně mohlo běžet z DVB-T. Tohle mi nedošlo, řadit přijímač a jeho streamy, který je exotický (co se týče obsahu) až za ty tradiční a nechat si tak prostor pro spuštění právě těch exotických. Ale to je zákrok poměrně jednoduchý, znamená ale odpojit přijímače, postupmě je zapojit a znova je naladit.

Jinak jsme se tradičně lapil  do vlastní pasti. Spustil jsme nový Tvserver, čímž jsem mohl odstavit stávající HTPC, z něj udělal obyčejné PC a tak mi nezbylo nic jiného, než do obýváku nasměrovat jeden z android boxů.  Nakonec padla volba na Beelink GT1 mini2 a CoreELEC. Prcek, ale výkonný. Přenesl jsem  na něj z LibreELEC co se  dalo, knihovnu přetáhl  1:1 z HTPC, takže za hodinku to jelo jako by se nechumelilo. Výkonově skvělý, funguje prefektně, včetně  uspávání a probouzení a i když ho ovládám přes tradiční DO IR/RF a HDMI-CEC  použivám  pouze v opačném směru spolupráce s TV a okolím je skvělá. Z toho plyne, že když už jsme byl v tom, začal jsme s dlouho odkládaným tématem, náhrady Harmony One novým ovladačem. V tomto případě nejde ani tak o techniku (s tím porblém nebyl, CoreELEC má tohle  vyřešené na "1"), ale o tom, jak vymyslet ovládání, aby mělo nějakou jasnou a jednoduchou logiku. Uspokojit uživatele, co jsou zvyklí na  komfort One, je zajímavý úkol. Ale nějak si s tím hraji a překvapivě je na to docela kladná odezva. Asi největší ohlas mám malé, dobře do ruky padnoucí ovládání. Ale o tomhle snad napíši jednou v  jiném tématu.

Ještě k systému, na kterém Tvheadend běží. Použil jsme desktop Ubuntu, pokud na serveru dělám něco v systému, tak si po přihlášení explicitně spustím gnome a pracuji v něm (gnome mi blokuje uspávání). Mám dvě malé utilitky nogui/gui, kterými přecházím mezi konzolí a gnome. Tvheadend samozřejmě obsluhuji odkudkoliv pře web gui, pokud potřebuji, tak si ho z telefonu probudím. A když je nejhůře, můžu odkudkoliv do domácí sítě přes VPN server na routeru. Ale tohle skoro nepoužívám a kvůlu Tvheadend už vůbec ne. Není to potřeba, vše běží excelentně.
 
Citovat
#5
Mám dotaz k tomu jak řešíš zmiňované chyby USB při probouzení? Já mám konfiguraci dedikovaného serveru TVheadend v LibreElec 9.2.6 na Intel NUC. TvHeadend mi usne v pořádku (do stavu S3), pokud nenahrávám či k serveru nejsem připojen z některého klienta. Nicméně po probuzení přes Wake-ON-LAN mi nefungují korektně USB DVB tunery 2xDVB-T2 a 1xDVB-S. Musím server restartovat a pak už DVB tunery zase běží korektně.
Díky předem.
 
Citovat
#6
@tdanicek Já jsem to zatím neřešil. Sice to hlásí chyby, ale všechny tunery fungují. 2x2x DVB-T, 1x DVB-T/T2/C.
 
Citovat
#7
Nedávno jsme dostal v SZ dotaz na potřebný výkon HW pro Tvheadend.

Dnes jsem testoval provoz serveru s Tvheadned a několika připojenými klienty Kodi (LAN 1Gbps). Server jede na minipc s dvoujádrovým Celeronem, 1,4 GHz. Současně připojeny celkem 4 klienti Kodi na kterých běží LiveTV a nahrává se dalších 5 programů. Pro příjem DVB-T kanálů je využito 5 USB přijímačů, plus běží ještě příjem z dalších 3 zdrojů IPTV (2x O2TV, 1x Sledovani). Server má v sobě HDD 2,5", 500 GB na který se ukládají nahrávky. Screenshot stavu Tvheadend + Top (zatížení systému) je zde:
   
Teplota CPU se drží kolem 55 °C (pasivní CPU chladič), frekvence procesoru je po většinu času dynamicky snížena 800 MHz, zatížení procesoru se motá od 15 do 20 %.
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)