{"id":95,"date":"2013-01-31T12:06:34","date_gmt":"2013-01-31T11:06:34","guid":{"rendered":"http:\/\/honza.paws.cz\/?p=95"},"modified":"2013-05-11T12:13:28","modified_gmt":"2013-05-11T11:13:28","slug":"tvheadend-na-starem-pocitaci","status":"publish","type":"post","link":"http:\/\/honza.paws.cz\/?p=95","title":{"rendered":"TVheadend na star\u00e9m po\u010d\u00edta\u010di"},"content":{"rendered":"<p style=\"text-align: justify;\">Na star\u00e9m Pentiu III mi b\u011b\u017e\u00ed skladi\u0161t\u011b fotek, kter\u00e9 se mi ji\u017e nevejdou do notebooku, na diskov\u00e9m poli. Druh\u00e1 hlavn\u00ed slu\u017eba, kterou poskytuje je stream televizn\u00edch kan\u00e1l\u016f do dom\u00e1c\u00ed s\u00edt\u011b. V minulosti jsem pou\u017e\u00edval vlastn\u00ed \u0159e\u0161en\u00ed v podob\u011b getstream, ale obsluha byla zbyte\u010dn\u011b slo\u017eit\u00e1 a nahr\u00e1v\u00e1n\u00ed pomoc\u00ed gnome-dvb-daemon st\u00e1lo za houby. Pak jsem objevil XBMC a TVheadend. V\u0161e funguje, jen bych r\u00e1d, aby se po\u010d\u00edta\u010d s\u00e1m zap\u00ednal p\u0159ed nahr\u00e1v\u00e1n\u00edm no\u010dn\u00edch po\u0159ad\u016f. Bohu\u017eel suspend na n\u011bm nefunguje korektn\u011b, zato m\u00e1 v BIOS Wake on Alarm. S t\u00edm u\u017e jsem jednou koketoval a nefungovalo to, proto\u017ee bylo t\u0159eba za\u0161krtnou i Wake on PME, pak se rozb\u011bhlo i WoL. Te\u010f skriptov\u00e1n\u00ed.<\/p>\n<p style=\"text-align: justify;\">Tady m\u00e1me p\u011bkn\u00fd <a title=\"n\u00e1vod\" href=\"https:\/\/www.lonelycoder.com\/redmine\/projects\/tvheadend\/wiki\/Wakeup\" target=\"_blank\">n\u00e1vod<\/a>, kter\u00fd se ale v\u011bnuje usp\u00e1v\u00e1n\u00ed, to se m\u011b nehod\u00ed, zkou\u0161el jsem r\u016fzn\u00e9 nejapn\u00e9 n\u00e1pady a nakonec se pou\u010dil na odkazu k MythTV z v\u00fd\u0161e zm\u00edn\u011bn\u00e9 str\u00e1nky a utvo\u0159il hybrid mezi ob\u011bma. Nu\u017ee:<\/p>\n<p><code>nano \/etc\/init.d\/wakeup<\/code> pojmenujte libovoln\u011b nekonfliktn\u011b, j\u00e1 jsem to ponechal, abych nemusel m\u011bnit cel\u00fd skript.<\/p>\n<p>Vlo\u017ete \u0159\u00e1dky:<\/p>\n<pre>#!\/bin\/sh\r\n\r\n### BEGIN INIT INFO\r\n# Provides: wakeup\r\n# Required-Start:\r\n# Required-Stop:\r\n# Default-Start:\r\n# Default-Stop: 0 1 6\r\n# Short-Description: Start NTP daemon\r\n### END INIT INFO\r\n\r\nPATH=\/sbin:\/bin:\/usr\/sbin:\/usr\/bin\r\n\r\n. \/lib\/lsb\/init-functions\r\n\r\nNAME=wakeup\r\n\r\ncase $1 in\r\n\tstop)\r\n\t\t# Make it wakeup from ethernet\r\n\t\tethtool -s eth0 wol g\r\n\t\techo PCI0 &gt;\/proc\/acpi\/wakeup\r\n\t\techo 1 &gt; \/timer\r\n\r\n\t\t# bootup system 60 sec. before timer\r\n\t\tsafe_margin=240\r\n\r\n\t\t# modyfy if different location for tvheadend dvr\/log path\r\n\t\tcd ~hts\/.hts\/tvheadend\/dvr\/log\r\n\r\n\t\t######################\r\n\r\n\t\tstart_date=0\r\n\t\tstop_date=0\r\n\r\n\t\tcurrent_date=`date +%s`\r\n\r\n\t\tfor i in $( ls ); do\r\n\t\t\ttmp_start=`cat $i | grep '\"start\":' | cut -f 2 -d \" \" | cut -f 1 -d \",\"`\r\n\t\t\ttmp_stop=`cat $i | grep '\"stop\":' | cut -f 2 -d \" \" | cut -f 1 -d \",\"`\r\n\r\n\t\t\t# check for outdated timer\r\n\t\t\tif [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -gt $((current_date)) ]; then\r\n\r\n\t\t\t\t# take lower value (tmp_start or start_date)\r\n\t\t\t\tif [ $((start_date)) -eq 0 -o $((tmp_start)) -lt $((start_date)) ]; then\r\n\t\t\t\t\tstart_date=$tmp_start\r\n\t\t\t\t\tstop_date=$tmp_stop\r\n\t\t\t\tfi\r\n\t\t\tfi\r\n\t\tdone\r\n\r\n\t\twake_date=$((start_date-safe_margin))\r\n\r\n\t\techo $start_date &gt;&gt; \/timer\r\n\t\techo $wake_date &gt;&gt; \/timer\r\n\r\n\t\t# set up waleup alarm\r\n\t\tif [ $((start_date)) -ne 0 ]; then\r\n\t\t\techo 2 &gt;&gt; \/timer\r\n\t\t\techo 0 &gt; \/sys\/class\/rtc\/rtc0\/wakealarm\r\n\t\t\techo $wake_date &gt; \/sys\/class\/rtc\/rtc0\/wakealarm\r\n\t\tfi\r\n\t\texit 0\r\n\t;;\r\n\t*)\r\n\t\techo \"Usage: $0 {stop}\"\r\n\t\texit 2\r\n\t;;\r\nesac<\/pre>\n<p>Spus\u0165te: <code>chmod 755 \/etc\/init.d\/wakeup<\/code> a <code>update-rc.d wakeup defaults<\/code><br \/>\nNyn\u00ed se p\u0159ed ka\u017ed\u00fdm vypnut\u00edm a restartem (a p\u0159ihl\u00e1\u0161en\u00ed jedin\u00e9ho u\u017eivatele, kdy\u017e jsem tam dal i jedni\u010dku) zap\u00ed\u0161e do nvram \u010das probuzen\u00ed po\u010d\u00edta\u010de.<\/p>\n<p>Po ka\u017ed\u00e9 nahr\u00e1vce m\u00e1 po\u010d\u00edta\u010d na\u0159\u00edzeno vypnout, ale to n\u011bkdy jist\u011b nebude rozumn\u00e9, pojist\u00edme se:<br \/>\n<code>nano ~hts\/shutdown.sh<\/code><br \/>\nObsahuje znovu ten ov\u011b\u0159ovac\u00ed k\u00f3d, lehce pozm\u011bn\u011bn\u00fd konec:<\/p>\n<pre>#!\/bin\/sh\r\n\r\n# Here you can invoke your script for recording's post-processing\r\n#exec &lt;your_script.sh&gt;\r\n\r\nsleep 20\r\nsafe_margin=240\r\ncd ~hts\/.hts\/tvheadend\/dvr\/log\r\n\r\n######################\r\n\r\nstart_date=0\r\nstop_date=0\r\n\r\ncurrent_date=`date +%s`\r\n\r\nfor i in $( ls ); do\r\n\ttmp_start=`cat $i | grep '\"start\":' | cut -f 2 -d \" \" | cut -f 1 -d \",\"`\r\n\ttmp_stop=`cat $i | grep '\"stop\":' | cut -f 2 -d \" \" | cut -f 1 -d \",\"`\r\n\r\n        # check for recording now\r\n        if [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -lt $((current_date)) ]; then\r\n                exit 0\r\n        fi\r\n\r\n\t# check for outdated timer\r\n\tif [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -gt $((current_date)) ]; then\r\n\r\n\t\t# take lower value (tmp_start or start_date)\r\n\t\tif [ $((start_date)) -eq 0 -o $((tmp_start)) -lt $((start_date)) ]; then\r\n\t\t\tstart_date=$tmp_start\r\n\t\t\tstop_date=$tmp_stop\r\n\t\tfi\r\n\tfi\r\ndone\r\n\r\nwake_date=$((start_date-safe_margin))\r\nidle=$((current_date+1200))\r\n\r\n# >0 is when no recording is planned, wake_date is sub zero value\r\nif [ $((wake_date)) -lt $((idle)) - $((wake_date)) -gt 0]; then\r\n        exit 0\r\nfi\r\n\r\n#sudo \/usr\/sbin\/pm-suspend &amp;\r\nsudo \/sbin\/shutdown -h now &amp;\r\n<\/pre>\n<p style=\"text-align: justify;\">Tento soubor mus\u00ed b\u00fdt spustiteln\u00fd u\u017eivatelem hts, resp. t\u00edm, kter\u00fd spou\u0161t\u00ed tvheadend a za\u0159ad\u00edte jej ve webov\u00e9m rozhran\u00ed do postprocessingu. Zajist\u00ed, \u017ee se po\u010d\u00edta\u010d nevypne, pokud se pr\u00e1v\u011b nahr\u00e1v\u00e1, \u010di dal\u0161\u00ed nahr\u00e1vka bude za\u010d\u00ednat do dvaceti minut.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na star\u00e9m Pentiu III mi b\u011b\u017e\u00ed skladi\u0161t\u011b fotek, kter\u00e9 se mi ji\u017e nevejdou do notebooku, na diskov\u00e9m poli. Druh\u00e1 hlavn\u00ed slu\u017eba, kterou poskytuje je stream televizn\u00edch kan\u00e1l\u016f do dom\u00e1c\u00ed s\u00edt\u011b. V minulosti jsem pou\u017e\u00edval vlastn\u00ed \u0159e\u0161en\u00ed v podob\u011b getstream, ale obsluha byla zbyte\u010dn\u011b slo\u017eit\u00e1 a nahr\u00e1v\u00e1n\u00ed pomoc\u00ed gnome-dvb-daemon st\u00e1lo za houby. Pak jsem objevil XBMC [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/honza.paws.cz\/index.php?rest_route=\/wp\/v2\/posts\/95"}],"collection":[{"href":"http:\/\/honza.paws.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/honza.paws.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/honza.paws.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/honza.paws.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=95"}],"version-history":[{"count":16,"href":"http:\/\/honza.paws.cz\/index.php?rest_route=\/wp\/v2\/posts\/95\/revisions"}],"predecessor-version":[{"id":99,"href":"http:\/\/honza.paws.cz\/index.php?rest_route=\/wp\/v2\/posts\/95\/revisions\/99"}],"wp:attachment":[{"href":"http:\/\/honza.paws.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/honza.paws.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/honza.paws.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}