<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hummy.tv/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MymsMan</id>
	<title>hummy.tv Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hummy.tv/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MymsMan"/>
	<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/wiki/Special:Contributions/MymsMan"/>
	<updated>2026-05-28T18:02:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5433</id>
		<title>FlexView</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5433"/>
		<updated>2025-03-28T15:42:27Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Acknowledgements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[file:Flexview.png|left||Icon]]&lt;br /&gt;
= FlexView - A flexible way to manage your recordings =&lt;br /&gt;
== Overview ==&lt;br /&gt;
FlexView is intended to offer an alternative to the traditional webif to&lt;br /&gt;
allow you to view an manage your recording inventory in whatever way suits&lt;br /&gt;
you.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
As the name suggests the emphasis is on maximum flexibility, you can:&lt;br /&gt;
* Choose the which pieces of information are displayed.&lt;br /&gt;
* Choose the display order&lt;br /&gt;
* Change the display size.&lt;br /&gt;
* Change the display format (more flexibility to come)&lt;br /&gt;
* Sort and filter on nearly all attributes&lt;br /&gt;
* Allow table to grow to accommodate data or fix table size&lt;br /&gt;
* Hide the directory tree&lt;br /&gt;
* Refresh individual folder&lt;br /&gt;
* Display multiple folders simultaneously&lt;br /&gt;
* Save your preferred display options for re-use&lt;br /&gt;
* Switch between saved formats&lt;br /&gt;
* Use all of the Browse context menu commands (plus a few more)&lt;br /&gt;
&lt;br /&gt;
FlexView does not change the contents of your disk (unlike FlatView) so it&lt;br /&gt;
does not change the on TV, using remote control, view of recordings&lt;br /&gt;
&lt;br /&gt;
== Usage scenarios ==&lt;br /&gt;
[[file:FVex1.jpg|Fixed size table, single directory (Movies) selected]]&lt;br /&gt;
&lt;br /&gt;
Fixed size table, single directory (Movies) selected, showing tooltip&lt;br /&gt;
&lt;br /&gt;
[[file:FVex2.jpg|Default configuration with ABC directory and sub-folders selected]]&lt;br /&gt;
&lt;br /&gt;
Default configuration with ABC directory and sub-folders selected&lt;br /&gt;
&lt;br /&gt;
[[file:FVex3.jpg|Directory tree hidden, using Column Chooser to add thumbnail image column ]]&lt;br /&gt;
&lt;br /&gt;
Directory tree hidden, using Column Chooser to add thumbnail image column&lt;br /&gt;
&lt;br /&gt;
[[file:FVex4.jpg|]File list with thumbnails shown and filtered to show only New (unwatched) files]]&lt;br /&gt;
&lt;br /&gt;
File list with thumbnails shown and filtered to show only New (unwatched) files&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
;Resize columns&lt;br /&gt;
:Hover over line between column headers until resize handle appears, drag handle to resize column&lt;br /&gt;
;Move columns&lt;br /&gt;
:Drag column header to desired position or use column chooser dialog to move columns&lt;br /&gt;
;Sort columns&lt;br /&gt;
:Click on column header, click again to reverse sort directions&lt;br /&gt;
;Filter columns&lt;br /&gt;
:Use the filter toolbar beneath the column header&lt;br /&gt;
:Many columns display a pull down list to select options&lt;br /&gt;
:Other columns allow for text entry, the comparison operator can be changed by clicking on the operator to the left of the entry field.&lt;br /&gt;
:If filtering on file size enter the number in bytes e.g. 1000000 for 1 MB&lt;br /&gt;
:If filtering on directory size enter the number in kilobytes e.g. 1000 for 1 MB&lt;br /&gt;
:If filtering on time fields (duration, scheduled duration or resume point) enter the number in seconds e.g. 600 for 10 Mins, 3600 for 1 Hour&lt;br /&gt;
:If filtering of date-time fields use the Date Picker or enter the date in dd mon yy hh:mm format e.g. 02 Feb 25 22:00&lt;br /&gt;
;Save configuration&lt;br /&gt;
:Adjust visible columns, size &amp;amp; positions as desired, select directories to be displayed, Click Save button and type name for the configuration.&lt;br /&gt;
:Note. You can overwrite the supplied configurations but this is not recommended.&lt;br /&gt;
;Restore supplied configuration&lt;br /&gt;
:If you delete or make unwanted changes to supplied configurations&lt;br /&gt;
:Delete unwanted configurations (Load button) and then force reinstall the flexview package on Diag panel&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
FlexView is in the &amp;quot;development and advanced packages&amp;quot; section of the&lt;br /&gt;
catalogue so to see and install the package select &amp;quot;Show development and&lt;br /&gt;
advanced packages?&amp;quot; in the &amp;quot;Advanced settings&amp;quot; section of the Settings&lt;br /&gt;
page.  &lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
None currently on Settings page.&lt;br /&gt;
&lt;br /&gt;
New configurations are created by selecting directories to be expanded&lt;br /&gt;
and/or displayed in the tree view and by changing column display options&lt;br /&gt;
then using the Save button to save the new configuration.&lt;br /&gt;
&lt;br /&gt;
Saved configurations are saved in /mod/etc/fvConfiq_name.json they can be&lt;br /&gt;
editted, with care, to adjust configuration values &lt;br /&gt;
that can&amp;#039;t currently be changed via the UI.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* TVDB information is not shown.&lt;br /&gt;
* MP3/MP4/JPEG attributes are not shown&lt;br /&gt;
* No interface for changing date formats and some other parameters.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
FlexView writes a few lines to the /mod/tmp/flexview.log  but the vast&lt;br /&gt;
majority of output is written to  the browser console log viewable by&lt;br /&gt;
pressing F12 on a web page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under the covers ==&lt;br /&gt;
FlexView is based on the jqgrid jquery plugin.&lt;br /&gt;
The directory and file information is delivered in JSON format with the&lt;br /&gt;
majority of the formatting taking place in the browser&lt;br /&gt;
&lt;br /&gt;
== Change History ==&lt;br /&gt;
{|border=2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2016-03-21 ||flexview 0.1.1-0 || Initial public version&lt;br /&gt;
|-&lt;br /&gt;
|2025-03-08 ||flexview 0.1.2 || Bug fixes, filtering now dynamic &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Future Enhancements ==&lt;br /&gt;
Possible future enhancements - please suggest more&lt;br /&gt;
* Include TVDB information&lt;br /&gt;
* Drag and drop for moving recordings&lt;br /&gt;
* Multiselect filters&lt;br /&gt;
* Save filters/sort in configuration&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
;af123:For providing the icon and changes to webif needed to enable FlexView to work.&lt;br /&gt;
;prpr:For bug fixes and assisance&lt;br /&gt;
;guriddo:jqgrid plugin http://guriddo.net&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5432</id>
		<title>FlexView</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5432"/>
		<updated>2025-03-28T15:40:09Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* How To */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[file:Flexview.png|left||Icon]]&lt;br /&gt;
= FlexView - A flexible way to manage your recordings =&lt;br /&gt;
== Overview ==&lt;br /&gt;
FlexView is intended to offer an alternative to the traditional webif to&lt;br /&gt;
allow you to view an manage your recording inventory in whatever way suits&lt;br /&gt;
you.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
As the name suggests the emphasis is on maximum flexibility, you can:&lt;br /&gt;
* Choose the which pieces of information are displayed.&lt;br /&gt;
* Choose the display order&lt;br /&gt;
* Change the display size.&lt;br /&gt;
* Change the display format (more flexibility to come)&lt;br /&gt;
* Sort and filter on nearly all attributes&lt;br /&gt;
* Allow table to grow to accommodate data or fix table size&lt;br /&gt;
* Hide the directory tree&lt;br /&gt;
* Refresh individual folder&lt;br /&gt;
* Display multiple folders simultaneously&lt;br /&gt;
* Save your preferred display options for re-use&lt;br /&gt;
* Switch between saved formats&lt;br /&gt;
* Use all of the Browse context menu commands (plus a few more)&lt;br /&gt;
&lt;br /&gt;
FlexView does not change the contents of your disk (unlike FlatView) so it&lt;br /&gt;
does not change the on TV, using remote control, view of recordings&lt;br /&gt;
&lt;br /&gt;
== Usage scenarios ==&lt;br /&gt;
[[file:FVex1.jpg|Fixed size table, single directory (Movies) selected]]&lt;br /&gt;
&lt;br /&gt;
Fixed size table, single directory (Movies) selected, showing tooltip&lt;br /&gt;
&lt;br /&gt;
[[file:FVex2.jpg|Default configuration with ABC directory and sub-folders selected]]&lt;br /&gt;
&lt;br /&gt;
Default configuration with ABC directory and sub-folders selected&lt;br /&gt;
&lt;br /&gt;
[[file:FVex3.jpg|Directory tree hidden, using Column Chooser to add thumbnail image column ]]&lt;br /&gt;
&lt;br /&gt;
Directory tree hidden, using Column Chooser to add thumbnail image column&lt;br /&gt;
&lt;br /&gt;
[[file:FVex4.jpg|]File list with thumbnails shown and filtered to show only New (unwatched) files]]&lt;br /&gt;
&lt;br /&gt;
File list with thumbnails shown and filtered to show only New (unwatched) files&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
;Resize columns&lt;br /&gt;
:Hover over line between column headers until resize handle appears, drag handle to resize column&lt;br /&gt;
;Move columns&lt;br /&gt;
:Drag column header to desired position or use column chooser dialog to move columns&lt;br /&gt;
;Sort columns&lt;br /&gt;
:Click on column header, click again to reverse sort directions&lt;br /&gt;
;Filter columns&lt;br /&gt;
:Use the filter toolbar beneath the column header&lt;br /&gt;
:Many columns display a pull down list to select options&lt;br /&gt;
:Other columns allow for text entry, the comparison operator can be changed by clicking on the operator to the left of the entry field.&lt;br /&gt;
:If filtering on file size enter the number in bytes e.g. 1000000 for 1 MB&lt;br /&gt;
:If filtering on directory size enter the number in kilobytes e.g. 1000 for 1 MB&lt;br /&gt;
:If filtering on time fields (duration, scheduled duration or resume point) enter the number in seconds e.g. 600 for 10 Mins, 3600 for 1 Hour&lt;br /&gt;
:If filtering of date-time fields use the Date Picker or enter the date in dd mon yy hh:mm format e.g. 02 Feb 25 22:00&lt;br /&gt;
;Save configuration&lt;br /&gt;
:Adjust visible columns, size &amp;amp; positions as desired, select directories to be displayed, Click Save button and type name for the configuration.&lt;br /&gt;
:Note. You can overwrite the supplied configurations but this is not recommended.&lt;br /&gt;
;Restore supplied configuration&lt;br /&gt;
:If you delete or make unwanted changes to supplied configurations&lt;br /&gt;
:Delete unwanted configurations (Load button) and then force reinstall the flexview package on Diag panel&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
FlexView is in the &amp;quot;development and advanced packages&amp;quot; section of the&lt;br /&gt;
catalogue so to see and install the package select &amp;quot;Show development and&lt;br /&gt;
advanced packages?&amp;quot; in the &amp;quot;Advanced settings&amp;quot; section of the Settings&lt;br /&gt;
page.  &lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
None currently on Settings page.&lt;br /&gt;
&lt;br /&gt;
New configurations are created by selecting directories to be expanded&lt;br /&gt;
and/or displayed in the tree view and by changing column display options&lt;br /&gt;
then using the Save button to save the new configuration.&lt;br /&gt;
&lt;br /&gt;
Saved configurations are saved in /mod/etc/fvConfiq_name.json they can be&lt;br /&gt;
editted, with care, to adjust configuration values &lt;br /&gt;
that can&amp;#039;t currently be changed via the UI.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* TVDB information is not shown.&lt;br /&gt;
* MP3/MP4/JPEG attributes are not shown&lt;br /&gt;
* No interface for changing date formats and some other parameters.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
FlexView writes a few lines to the /mod/tmp/flexview.log  but the vast&lt;br /&gt;
majority of output is written to  the browser console log viewable by&lt;br /&gt;
pressing F12 on a web page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under the covers ==&lt;br /&gt;
FlexView is based on the jqgrid jquery plugin.&lt;br /&gt;
The directory and file information is delivered in JSON format with the&lt;br /&gt;
majority of the formatting taking place in the browser&lt;br /&gt;
&lt;br /&gt;
== Change History ==&lt;br /&gt;
{|border=2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2016-03-21 ||flexview 0.1.1-0 || Initial public version&lt;br /&gt;
|-&lt;br /&gt;
|2025-03-08 ||flexview 0.1.2 || Bug fixes, filtering now dynamic &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Future Enhancements ==&lt;br /&gt;
Possible future enhancements - please suggest more&lt;br /&gt;
* Include TVDB information&lt;br /&gt;
* Drag and drop for moving recordings&lt;br /&gt;
* Multiselect filters&lt;br /&gt;
* Save filters/sort in configuration&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
;af123:For providing the icon and changes to webif needed to enable FlexView to work.&lt;br /&gt;
;guriddo:jqgrid plugin http://guriddo.net&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5431</id>
		<title>FlexView</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5431"/>
		<updated>2025-03-28T15:27:28Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* How To */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[file:Flexview.png|left||Icon]]&lt;br /&gt;
= FlexView - A flexible way to manage your recordings =&lt;br /&gt;
== Overview ==&lt;br /&gt;
FlexView is intended to offer an alternative to the traditional webif to&lt;br /&gt;
allow you to view an manage your recording inventory in whatever way suits&lt;br /&gt;
you.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
As the name suggests the emphasis is on maximum flexibility, you can:&lt;br /&gt;
* Choose the which pieces of information are displayed.&lt;br /&gt;
* Choose the display order&lt;br /&gt;
* Change the display size.&lt;br /&gt;
* Change the display format (more flexibility to come)&lt;br /&gt;
* Sort and filter on nearly all attributes&lt;br /&gt;
* Allow table to grow to accommodate data or fix table size&lt;br /&gt;
* Hide the directory tree&lt;br /&gt;
* Refresh individual folder&lt;br /&gt;
* Display multiple folders simultaneously&lt;br /&gt;
* Save your preferred display options for re-use&lt;br /&gt;
* Switch between saved formats&lt;br /&gt;
* Use all of the Browse context menu commands (plus a few more)&lt;br /&gt;
&lt;br /&gt;
FlexView does not change the contents of your disk (unlike FlatView) so it&lt;br /&gt;
does not change the on TV, using remote control, view of recordings&lt;br /&gt;
&lt;br /&gt;
== Usage scenarios ==&lt;br /&gt;
[[file:FVex1.jpg|Fixed size table, single directory (Movies) selected]]&lt;br /&gt;
&lt;br /&gt;
Fixed size table, single directory (Movies) selected, showing tooltip&lt;br /&gt;
&lt;br /&gt;
[[file:FVex2.jpg|Default configuration with ABC directory and sub-folders selected]]&lt;br /&gt;
&lt;br /&gt;
Default configuration with ABC directory and sub-folders selected&lt;br /&gt;
&lt;br /&gt;
[[file:FVex3.jpg|Directory tree hidden, using Column Chooser to add thumbnail image column ]]&lt;br /&gt;
&lt;br /&gt;
Directory tree hidden, using Column Chooser to add thumbnail image column&lt;br /&gt;
&lt;br /&gt;
[[file:FVex4.jpg|]File list with thumbnails shown and filtered to show only New (unwatched) files]]&lt;br /&gt;
&lt;br /&gt;
File list with thumbnails shown and filtered to show only New (unwatched) files&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
;Resize columns&lt;br /&gt;
:Hover over line between column headers until resize handle appears, drag handle to resize column&lt;br /&gt;
;Move columns&lt;br /&gt;
:Drag column header to desired position or use column chooser dialog to move columns&lt;br /&gt;
;Sort columns&lt;br /&gt;
:Click on column header, click again to reverse sort directions&lt;br /&gt;
;Filter columns&lt;br /&gt;
:Use the filter toolbar beneath the column header&lt;br /&gt;
:Many columns display a pull down list to select options&lt;br /&gt;
:Other columns allow for text entry, the comparison operator can be changed by clicking on the operator to the left of the entry field.&lt;br /&gt;
:If filtering of file or directory size enter the number in bytes e.g. 1000000 for 1 MiB&lt;br /&gt;
:If filtering on duration, scheduled duration or resume point enter the number in seconds e.g. 600 for 10 Mins&lt;br /&gt;
:If filtering of date fields use the Date Picker or enter the date in dd mon yy hh:mm format &lt;br /&gt;
;Save configuration&lt;br /&gt;
:Adjust visible columns, size &amp;amp; positions as desired, select directories to be displayed, Click Save button and type name for the configuration.&lt;br /&gt;
:Note. You can overwrite the supplied configurations but this is not recommended.&lt;br /&gt;
;Restore supplied configuration&lt;br /&gt;
:If you delete or make unwanted changes to supplied configurations&lt;br /&gt;
:Delete unwanted configurations (Load button) and then force reinstall the flexview package on Diag panel&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
FlexView is in the &amp;quot;development and advanced packages&amp;quot; section of the&lt;br /&gt;
catalogue so to see and install the package select &amp;quot;Show development and&lt;br /&gt;
advanced packages?&amp;quot; in the &amp;quot;Advanced settings&amp;quot; section of the Settings&lt;br /&gt;
page.  &lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
None currently on Settings page.&lt;br /&gt;
&lt;br /&gt;
New configurations are created by selecting directories to be expanded&lt;br /&gt;
and/or displayed in the tree view and by changing column display options&lt;br /&gt;
then using the Save button to save the new configuration.&lt;br /&gt;
&lt;br /&gt;
Saved configurations are saved in /mod/etc/fvConfiq_name.json they can be&lt;br /&gt;
editted, with care, to adjust configuration values &lt;br /&gt;
that can&amp;#039;t currently be changed via the UI.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* TVDB information is not shown.&lt;br /&gt;
* MP3/MP4/JPEG attributes are not shown&lt;br /&gt;
* No interface for changing date formats and some other parameters.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
FlexView writes a few lines to the /mod/tmp/flexview.log  but the vast&lt;br /&gt;
majority of output is written to  the browser console log viewable by&lt;br /&gt;
pressing F12 on a web page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under the covers ==&lt;br /&gt;
FlexView is based on the jqgrid jquery plugin.&lt;br /&gt;
The directory and file information is delivered in JSON format with the&lt;br /&gt;
majority of the formatting taking place in the browser&lt;br /&gt;
&lt;br /&gt;
== Change History ==&lt;br /&gt;
{|border=2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2016-03-21 ||flexview 0.1.1-0 || Initial public version&lt;br /&gt;
|-&lt;br /&gt;
|2025-03-08 ||flexview 0.1.2 || Bug fixes, filtering now dynamic &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Future Enhancements ==&lt;br /&gt;
Possible future enhancements - please suggest more&lt;br /&gt;
* Include TVDB information&lt;br /&gt;
* Drag and drop for moving recordings&lt;br /&gt;
* Multiselect filters&lt;br /&gt;
* Save filters/sort in configuration&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
;af123:For providing the icon and changes to webif needed to enable FlexView to work.&lt;br /&gt;
;guriddo:jqgrid plugin http://guriddo.net&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5430</id>
		<title>FlexView</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5430"/>
		<updated>2025-03-08T15:33:25Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[file:Flexview.png|left||Icon]]&lt;br /&gt;
= FlexView - A flexible way to manage your recordings =&lt;br /&gt;
== Overview ==&lt;br /&gt;
FlexView is intended to offer an alternative to the traditional webif to&lt;br /&gt;
allow you to view an manage your recording inventory in whatever way suits&lt;br /&gt;
you.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
As the name suggests the emphasis is on maximum flexibility, you can:&lt;br /&gt;
* Choose the which pieces of information are displayed.&lt;br /&gt;
* Choose the display order&lt;br /&gt;
* Change the display size.&lt;br /&gt;
* Change the display format (more flexibility to come)&lt;br /&gt;
* Sort and filter on nearly all attributes&lt;br /&gt;
* Allow table to grow to accommodate data or fix table size&lt;br /&gt;
* Hide the directory tree&lt;br /&gt;
* Refresh individual folder&lt;br /&gt;
* Display multiple folders simultaneously&lt;br /&gt;
* Save your preferred display options for re-use&lt;br /&gt;
* Switch between saved formats&lt;br /&gt;
* Use all of the Browse context menu commands (plus a few more)&lt;br /&gt;
&lt;br /&gt;
FlexView does not change the contents of your disk (unlike FlatView) so it&lt;br /&gt;
does not change the on TV, using remote control, view of recordings&lt;br /&gt;
&lt;br /&gt;
== Usage scenarios ==&lt;br /&gt;
[[file:FVex1.jpg|Fixed size table, single directory (Movies) selected]]&lt;br /&gt;
&lt;br /&gt;
Fixed size table, single directory (Movies) selected, showing tooltip&lt;br /&gt;
&lt;br /&gt;
[[file:FVex2.jpg|Default configuration with ABC directory and sub-folders selected]]&lt;br /&gt;
&lt;br /&gt;
Default configuration with ABC directory and sub-folders selected&lt;br /&gt;
&lt;br /&gt;
[[file:FVex3.jpg|Directory tree hidden, using Column Chooser to add thumbnail image column ]]&lt;br /&gt;
&lt;br /&gt;
Directory tree hidden, using Column Chooser to add thumbnail image column&lt;br /&gt;
&lt;br /&gt;
[[file:FVex4.jpg|]File list with thumbnails shown and filtered to show only New (unwatched) files]]&lt;br /&gt;
&lt;br /&gt;
File list with thumbnails shown and filtered to show only New (unwatched) files&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
;Resize columns&lt;br /&gt;
:Hover over line between column headers until resize handle appears, drag handle to resize column&lt;br /&gt;
;Move columns&lt;br /&gt;
:Drag column header to desired position or use column chooser dialog to move columns&lt;br /&gt;
;Sort columns&lt;br /&gt;
:Click on column header, click again to reverse sort directions&lt;br /&gt;
;Filter columns&lt;br /&gt;
:Use the filter toolbar beneath the column header&lt;br /&gt;
:Many columns display a pull down list to select options&lt;br /&gt;
:Other columns allow for text entry, the comparison operator can be changed by clicking on the operator to the left of the entry field.&lt;br /&gt;
:If filtering of file size enter the number in bytes e.g. 1000000 for 1 MiB&lt;br /&gt;
;Save configuration&lt;br /&gt;
:Adjust visible columns, size &amp;amp; positions as desired, select directories to be displayed, Click Save button and type name for the configuration.&lt;br /&gt;
:Note. You can overwrite the supplied configurations but this is not recommended.&lt;br /&gt;
;Restore supplied configuration&lt;br /&gt;
:If you delete or make unwanted changes to supplied configurations&lt;br /&gt;
:Delete unwanted configurations (Load button) and then force reinstall the flexview package on Diag panel&lt;br /&gt;
== Installation ==&lt;br /&gt;
FlexView is in the &amp;quot;development and advanced packages&amp;quot; section of the&lt;br /&gt;
catalogue so to see and install the package select &amp;quot;Show development and&lt;br /&gt;
advanced packages?&amp;quot; in the &amp;quot;Advanced settings&amp;quot; section of the Settings&lt;br /&gt;
page.  &lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
None currently on Settings page.&lt;br /&gt;
&lt;br /&gt;
New configurations are created by selecting directories to be expanded&lt;br /&gt;
and/or displayed in the tree view and by changing column display options&lt;br /&gt;
then using the Save button to save the new configuration.&lt;br /&gt;
&lt;br /&gt;
Saved configurations are saved in /mod/etc/fvConfiq_name.json they can be&lt;br /&gt;
editted, with care, to adjust configuration values &lt;br /&gt;
that can&amp;#039;t currently be changed via the UI.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* TVDB information is not shown.&lt;br /&gt;
* MP3/MP4/JPEG attributes are not shown&lt;br /&gt;
* No interface for changing date formats and some other parameters.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
FlexView writes a few lines to the /mod/tmp/flexview.log  but the vast&lt;br /&gt;
majority of output is written to  the browser console log viewable by&lt;br /&gt;
pressing F12 on a web page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under the covers ==&lt;br /&gt;
FlexView is based on the jqgrid jquery plugin.&lt;br /&gt;
The directory and file information is delivered in JSON format with the&lt;br /&gt;
majority of the formatting taking place in the browser&lt;br /&gt;
&lt;br /&gt;
== Change History ==&lt;br /&gt;
{|border=2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2016-03-21 ||flexview 0.1.1-0 || Initial public version&lt;br /&gt;
|-&lt;br /&gt;
|2025-03-08 ||flexview 0.1.2 || Bug fixes, filtering now dynamic &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Future Enhancements ==&lt;br /&gt;
Possible future enhancements - please suggest more&lt;br /&gt;
* Include TVDB information&lt;br /&gt;
* Drag and drop for moving recordings&lt;br /&gt;
* Multiselect filters&lt;br /&gt;
* Save filters/sort in configuration&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
;af123:For providing the icon and changes to webif needed to enable FlexView to work.&lt;br /&gt;
;guriddo:jqgrid plugin http://guriddo.net&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5429</id>
		<title>FlexView</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=FlexView&amp;diff=5429"/>
		<updated>2025-03-08T15:32:23Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Change History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[file:Flexview.png|left||Icon]]&lt;br /&gt;
= FlexView - A flexible way to manage your recordings =&lt;br /&gt;
== Overview ==&lt;br /&gt;
FlexView is intended to offer an alternative to the traditional webif to&lt;br /&gt;
allow you to view an manage your recording inventory in whatever way suits&lt;br /&gt;
you.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
As the name suggests the emphasis is on maximum flexibility, you can:&lt;br /&gt;
* Choose the which pieces of information are displayed.&lt;br /&gt;
* Choose the display order&lt;br /&gt;
* Change the display size.&lt;br /&gt;
* Change the display format (more flexibility to come)&lt;br /&gt;
* Sort and filter on nearly all attributes&lt;br /&gt;
* Allow table to grow to accommodate data or fix table size&lt;br /&gt;
* Hide the directory tree&lt;br /&gt;
* Refresh individual folder&lt;br /&gt;
* Display multiple folders simultaneously&lt;br /&gt;
* Save your preferred display options for re-use&lt;br /&gt;
* Switch between saved formats&lt;br /&gt;
* Use all of the Browse context menu commands (plus a few more)&lt;br /&gt;
&lt;br /&gt;
FlexView does not change the contents of your disk (unlike FlatView) so it&lt;br /&gt;
does not change the on TV, using remote control, view of recordings&lt;br /&gt;
&lt;br /&gt;
== Usage scenarios ==&lt;br /&gt;
[[file:FVex1.jpg|Fixed size table, single directory (Movies) selected]]&lt;br /&gt;
&lt;br /&gt;
Fixed size table, single directory (Movies) selected, showing tooltip&lt;br /&gt;
&lt;br /&gt;
[[file:FVex2.jpg|Default configuration with ABC directory and sub-folders selected]]&lt;br /&gt;
&lt;br /&gt;
Default configuration with ABC directory and sub-folders selected&lt;br /&gt;
&lt;br /&gt;
[[file:FVex3.jpg|Directory tree hidden, using Column Chooser to add thumbnail image column ]]&lt;br /&gt;
&lt;br /&gt;
Directory tree hidden, using Column Chooser to add thumbnail image column&lt;br /&gt;
&lt;br /&gt;
[[file:FVex4.jpg|]File list with thumbnails shown and filtered to show only New (unwatched) files]]&lt;br /&gt;
&lt;br /&gt;
File list with thumbnails shown and filtered to show only New (unwatched) files&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
;Resize columns&lt;br /&gt;
:Hover over line between column headers until resize handle appears, drag handle to resize column&lt;br /&gt;
;Move columns&lt;br /&gt;
:Drag column header to desired position or use column chooser dialog to move columns&lt;br /&gt;
;Sort columns&lt;br /&gt;
:Click on column header, click again to reverse sort directions&lt;br /&gt;
;Filter columns&lt;br /&gt;
:Use the filter toolbar beneath the column header&lt;br /&gt;
:Many columns display a pull down list to select options&lt;br /&gt;
:Other columns allow for text entry, the comparison operator can be changed by clicking on the operator to the left of the entry field.&lt;br /&gt;
:If filtering of file size enter the number in bytes e.g. 1000000 for 1 MiB&lt;br /&gt;
;Save configuration&lt;br /&gt;
:Adjust visible columns, size &amp;amp; positions as desired, select directories to be displayed, Click Save button and type name for the configuration.&lt;br /&gt;
:Note. You can overwrite the supplied configurations but this is not recommended.&lt;br /&gt;
;Restore supplied configuration&lt;br /&gt;
:If you delete or make unwanted changes to supplied configurations&lt;br /&gt;
:Delete unwanted configurations (Load button) and then force reinstall the flexview package on Diag panel&lt;br /&gt;
== Installation ==&lt;br /&gt;
FlexView is in the &amp;quot;development and advanced packages&amp;quot; section of the&lt;br /&gt;
catalogue so to see and install the package select &amp;quot;Show development and&lt;br /&gt;
advanced packages?&amp;quot; in the &amp;quot;Advanced settings&amp;quot; section of the Settings&lt;br /&gt;
page.  &lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
None currently on Settings page.&lt;br /&gt;
&lt;br /&gt;
New configurations are created by selecting directories to be expanded&lt;br /&gt;
and/or displayed in the tree view and by changing column display options&lt;br /&gt;
then using the Save button to save the new configuration.&lt;br /&gt;
&lt;br /&gt;
Saved configurations are saved in /mod/etc/fvConfiq_name.json they can be&lt;br /&gt;
editted, with care, to adjust configuration values such as date formats&lt;br /&gt;
that can&amp;#039;t currently be changed via the UI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* TVDB information is not shown.&lt;br /&gt;
* MP3/MP4/JPEG attributes are not shown&lt;br /&gt;
* No interface for changing date formats and some other parameters.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
FlexView writes a few lines to the /mod/tmp/flexview.log  but the vast&lt;br /&gt;
majority of output is written to  the browser console log viewable by&lt;br /&gt;
pressing F12 on a web page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under the covers ==&lt;br /&gt;
FlexView is based on the jqgrid jquery plugin.&lt;br /&gt;
The directory and file information is delivered in JSON format with the&lt;br /&gt;
majority of the formatting taking place in the browser&lt;br /&gt;
&lt;br /&gt;
== Change History ==&lt;br /&gt;
{|border=2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2016-03-21 ||flexview 0.1.1-0 || Initial public version&lt;br /&gt;
|-&lt;br /&gt;
|2025-03-08 ||flexview 0.1.2 || Bug fixes, filtering now dynamic &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Future Enhancements ==&lt;br /&gt;
Possible future enhancements - please suggest more&lt;br /&gt;
* Include TVDB information&lt;br /&gt;
* Drag and drop for moving recordings&lt;br /&gt;
* Multiselect filters&lt;br /&gt;
* Save filters/sort in configuration&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
;af123:For providing the icon and changes to webif needed to enable FlexView to work.&lt;br /&gt;
;guriddo:jqgrid plugin http://guriddo.net&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5295</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5295"/>
		<updated>2020-06-16T10:27:49Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Change history */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]Schedchk - Check and fix the Humax recording schedule =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-rts.png|400px|frameless|right]]&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
To allow schedchk to promptly update the recording schedule it is important that Real-time scheduling is enabled via the Advanced Settings section of the Settings page &lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|600px|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1→2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news day&amp;#039;s EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently, Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-episode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in settings, is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with crontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif→Diag→File Editor→Commonly edited files→/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-06-05 ||schedchk 0.1.0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|-&lt;br /&gt;
|2020-06-15 ||schedchk 0.1.1|| mymsman || Minor fixes&lt;br /&gt;
* Fixed problem with scrid change that stopped change to Cardinal series crid being recognized&lt;br /&gt;
* Check for gaps in EPG and don&amp;#039;t reschedule programmes already scheduled in gap.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5289</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5289"/>
		<updated>2020-06-09T11:54:24Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Split Recordings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]Schedchk - Check and fix the Humax recording schedule =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-rts.png|400px|frameless|right]]&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
To allow schedchk to promptly update the recording schedule it is important that Real-time scheduling is enabled via the Advanced Settings section of the Settings page &lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|600px|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1→2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news day&amp;#039;s EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently, Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-episode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in settings, is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with crontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif→Diag→File Editor→Commonly edited files→/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-06-05 ||schedchk 0.1.0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5288</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5288"/>
		<updated>2020-06-09T11:24:45Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Running via crontabs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]Schedchk - Check and fix the Humax recording schedule =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-rts.png|400px|frameless|right]]&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
To allow schedchk to promptly update the recording schedule it is important that Real-time scheduling is enabled via the Advanced Settings section of the Settings page &lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|600px|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1→2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news day&amp;#039;s EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently, Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in settings, is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with crontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif→Diag→File Editor→Commonly edited files→/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-06-05 ||schedchk 0.1.0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5287</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5287"/>
		<updated>2020-06-09T11:22:25Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Missing EPG entry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]Schedchk - Check and fix the Humax recording schedule =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-rts.png|400px|frameless|right]]&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
To allow schedchk to promptly update the recording schedule it is important that Real-time scheduling is enabled via the Advanced Settings section of the Settings page &lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|600px|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1→2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news day&amp;#039;s EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently, Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in settings, is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with crontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-06-05 ||schedchk 0.1.0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5286</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5286"/>
		<updated>2020-06-09T11:19:57Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]Schedchk - Check and fix the Humax recording schedule =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-rts.png|400px|frameless|right]]&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
To allow schedchk to promptly update the recording schedule it is important that Real-time scheduling is enabled via the Advanced Settings section of the Settings page &lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|600px|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news day&amp;#039;s EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently, Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in settings, is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with crontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-06-05 ||schedchk 0.1.0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk-rts.png&amp;diff=5285</id>
		<title>File:Schedchk-rts.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk-rts.png&amp;diff=5285"/>
		<updated>2020-06-09T11:02:12Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Advanced settings option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Advanced settings option&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Custom_Firmware_Package_Notes&amp;diff=5284</id>
		<title>Custom Firmware Package Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Custom_Firmware_Package_Notes&amp;diff=5284"/>
		<updated>2020-06-09T10:53:19Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Schedchk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;BRIEF NOTES FOR CUSTOM FIRMWARE PACKAGES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{{Note|Some Functions of the Web Interface are &amp;#039;Built-In&amp;#039; and do not require any additional packages to be installed. These features are covered in the Web If section of this page.&lt;br /&gt;
&lt;br /&gt;
Some packages require a reboot (Hard disk spin down) before they take effect.}}&lt;br /&gt;
&lt;br /&gt;
Also, see Forum Links [[Forum_Links|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==7Zip==&lt;br /&gt;
&lt;br /&gt;
Command line utility that can pack and unpack zip type files&lt;br /&gt;
&lt;br /&gt;
*Supported Packing / unpacking formats = 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM&lt;br /&gt;
*Supported Unpacking only = ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR and Z.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Arbookmarks==&lt;br /&gt;
&lt;br /&gt;
Adds bookmarks into automatically or manually padded recordings, bookmarks are placed at [[Padding_versus_Accurate_Recording | &amp;#039;&amp;#039;&amp;#039;Accurate Recording&amp;#039;&amp;#039;&amp;#039;]] start and stop points to all files in folders marked as Auto Decrypt, the following conditions must be met before the Bookmarks will be added :-&lt;br /&gt;
* The Arbookmarks package must be installed&lt;br /&gt;
* Files must be in a folder that is marked for auto-decryption ([[Icons#Media_Browser_-_Folders|&amp;#039;&amp;#039;&amp;#039;open lock icon&amp;#039;&amp;#039;&amp;#039;]] present)&lt;br /&gt;
* Files must be DLNA indexed (automatically done by the Humax periodically, [[Icons#Media_Browser_-_Files|&amp;#039;&amp;#039;&amp;#039;lime green circular icon&amp;#039;&amp;#039;&amp;#039;]] present)&lt;br /&gt;
* Files must not be recorded using AR i.e. the AR flags are not at start and end of file &lt;br /&gt;
* AR flags must be present i.e. recordings made in the middle of a programme won&amp;#039;t contain AR flags&lt;br /&gt;
&lt;br /&gt;
==At==&lt;br /&gt;
&lt;br /&gt;
at, batch, atq, atrm - queue, examine or delete jobs for later execution. This is the UNIX at command and atd daemon, which allow for scheduling of one-off commands to be run when specified. &lt;br /&gt;
&lt;br /&gt;
More notes [http://en.wikipedia.org/wiki/At_%28Unix%29 &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Auto Schedule Restore==&lt;br /&gt;
&lt;br /&gt;
This package checks whether the schedule is present on each boot, If a schedule is in place it is backed up to flash, otherwise the schedule and any favourites list are restored from the flash backup. The schedule will be deemed to be present if there is at least one schedule item or one reservation item existing &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES:-&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* After a re-boot the restore process will start and &amp;quot;Schedule Restored . . . Rebooting&amp;quot; will be displayed on the front display&lt;br /&gt;
* A second re-boot will take place automatically after 15 seconds to finalise the restoration process&lt;br /&gt;
* The Web-if will display &amp;quot;The recording schedule has been automatically restored&amp;quot; after the second re-boot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Auto-Unprotect==&lt;br /&gt;
&lt;br /&gt;
The Auto-Unprotect package runs in the background and automatically removes the Encryption Protected flag on High Definition recordings on the HDR-Fox T2. This is the flag which prevents the file from being decrypted in the same way as a Standard Definition file. On first installation, the hard disk will be scanned for any High Definition recordings and they will be unprotected. Thereafter, new recordings will have the flag removed as they are completed. See reset_unprotect [[Diagnostic_Utilities | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]] to fix any &amp;#039;missed files&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Auto, Auto-Unprotect makes a change to the DLNA index so that High Definition files can be streamed without DTCP, Note, Foxy does not remove DTCP which is required for DLNA decryption&lt;br /&gt;
&lt;br /&gt;
NOTES:- &lt;br /&gt;
*The removal of the ENC flag does not decrypt the file, however it does make decryption possible by the same means as for a Standard Definition file - see flow chart [[Encryption |&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
*Auto-Unprotect on the HD-Fox T2 will not allow decryption unless the HD-Fox T2 is running in BootHDR mode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Auto-Update==&lt;br /&gt;
&lt;br /&gt;
This package automatically keeps the installed packages up to date by checking for any new releases daily and automatically downloading and installing them. It will check once per day at the earliest power on - for most people probably the 04:30 boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Badnts==&lt;br /&gt;
&lt;br /&gt;
Utility to fix a recording error where a full size TS file is recorded but the associated NTS file generated by the Humax is of zero length, this results in the the Humax rejecting the file on playback. After the recording is decrypted in a folder that is marked for auto-decyption, the utility will look for a zero length NTS file and if found the NTS, THM and HMT files will all  be deleted (or moved to the [Deleted] folder), this will make the TS file playable on the Humax,however as the &amp;#039;sidecar&amp;#039; files have been removed there will be some play-back &lt;br /&gt;
limitations, e.g. transport controls etc.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*This utility only works on HDR-Fox T2 not HD-Fox T2&lt;br /&gt;
*Only files stored in an auto-decrypt folder will be fixed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bash==&lt;br /&gt;
&lt;br /&gt;
Bourne Again SHell is an enhanced [[Custom_Firmware_Package_Notes#Sh | &amp;#039;&amp;#039;&amp;#039;Sh (Shell)&amp;#039;&amp;#039;&amp;#039;]]  Command line / scripting language.  [http://www.gnu.org/software/bash/manual/bashref.html &amp;#039;&amp;#039;&amp;#039;See Reference Guide&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Betaftpd==&lt;br /&gt;
&lt;br /&gt;
===For HDR-Fox T2===&lt;br /&gt;
&lt;br /&gt;
The HDR-FOX T2 has a built-in FTP server. The default server will still be available after the Custom Firmware is installed, however only files under ‘Media’ are visible. Betaftpd has two possible Logins. If login = humaxftp and password = 0000 is used then only ‘Media’ is visible. If login = root and password = 0000 is used then the entire file system is accessible. If the remote password has been changed from 0000 then the new password must be used.&lt;br /&gt;
&lt;br /&gt;
NOTE:- The Built-in FTP server must be turned off if Betaftpd is used with Menu &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings &amp;gt;&amp;gt; FTP Server = OFF&lt;br /&gt;
&lt;br /&gt;
===For HD-Fox T2===&lt;br /&gt;
&lt;br /&gt;
Betaftpd will add an FTP server to the Humax after installation. Betaftpd has two possible Logins. If login = humaxftp and password = 0000 is used then only ‘Media’ is visible. If login = root and password = 0000 is used then the entire file system is accessible. If the remote password has been changed from 0000 then the new password must be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Blocklist==&lt;br /&gt;
&lt;br /&gt;
See Transmission (torrent) Block List notes [[Custom_Firmware_Package_Notes#Blocklist_2|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bookmark==&lt;br /&gt;
&lt;br /&gt;
The Humax Bookmarks used to place &amp;#039;jump-to&amp;#039; points within a recording are also used by several Custom Firmware packages, as Follows:-&lt;br /&gt;
*[[Edit_On_Box|&amp;#039;&amp;#039;&amp;#039;Edit On Box&amp;#039;&amp;#039;&amp;#039;]] . . . A single or multiple bookmarks are used as cut and join points for editing a recording in the Web-If [[#Crop|&amp;#039;&amp;#039;&amp;#039;Crop&amp;#039;&amp;#039;&amp;#039;]] option&lt;br /&gt;
*[[#Set_Thumbnail|&amp;#039;&amp;#039;&amp;#039; Set Thumbnails&amp;#039;&amp;#039;&amp;#039;]] . . . Uses the the first bookmark in a recording as a central point from which to pick a new thumbnail &lt;br /&gt;
*[[#Arbookmarks|&amp;#039;&amp;#039;&amp;#039;Arbookmarks&amp;#039;&amp;#039;&amp;#039;]] . . . Bookmarks are automatically added to a recording at [[Padding_versus_Accurate_Recording|&amp;#039;&amp;#039;&amp;#039;Accurate Recording&amp;#039;&amp;#039;&amp;#039;]] start and stop points so that a [[#Crop|&amp;#039;&amp;#039;&amp;#039;Crop&amp;#039;&amp;#039;&amp;#039;]] can be performed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==BootHDR==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFAAAA&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;This package is for the HD-FOX T2 only (NOT for HDR-Fox T2&amp;lt;/big&amp;gt;&amp;#039;&amp;#039;&amp;#039;) &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
It allows the HD-FOX T2 to run the software for the HDR-FOX T2, to allow decryption of recordings by copying to a volume. BootHDR can be installed from the Web-If packages screen (of the HD-Fox T2 only). Here is the equivalent command line (Telnet) :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; opkg install wget &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; opkg install boothdr --force-reinstall &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the package is installed you can run in HDR-Fox T2 mode, while in this mode, the front panel display will freeze and the box will be incapable of making new recordings. To initiate HDR-Fox T2 mode copy the *Modsettings/TriggerHDR folder to the root of drive1 and then re-boot the HD-Fox T2&lt;br /&gt;
&lt;br /&gt;
Installing the BootHDR package also adds the command line keyword bootHDRmode, this can be used to invoke HDR mode&lt;br /&gt;
&lt;br /&gt;
There is a Guide to using BootHDR on the Wiki [[Decrypt_recordings_on_the_HD-FOX_T2 | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Boot_Settings==&lt;br /&gt;
&lt;br /&gt;
Set system parameters to specified values on every boot. [Update settings]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bsed==&lt;br /&gt;
&lt;br /&gt;
Binary-safe search/replace utility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==BusyBox==&lt;br /&gt;
				&lt;br /&gt;
Your Humax box has a ‘Unix’ operating system. Busybox is a package that provides 158 common Unix [[Custom_Firmware_Package_Notes#Sh_.28SHell.29 | &amp;#039;&amp;#039;&amp;#039;Sh (Shell)&amp;#039;&amp;#039;&amp;#039;]] commands that can be used in Telnet sessions. The list below shows the available commands. There is no &amp;#039;man&amp;#039; command that would explain what they do, but most commands can have a -? or -h extension to get some help e.g. ls -?&lt;br /&gt;
&lt;br /&gt;
A command look up table can be found [http://busybox.net/downloads/BusyBox.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;].&lt;br /&gt;
&lt;br /&gt;
NOTE:- It is not a good idea to &amp;#039;Play&amp;#039; with these commands if you don&amp;#039;t know what you are doing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:8;-moz-column-count:8;-webkit-column-count:8&amp;quot;&amp;gt;&lt;br /&gt;
*[&lt;br /&gt;
*[[&lt;br /&gt;
*ar &lt;br /&gt;
*arp &lt;br /&gt;
*arping &lt;br /&gt;
*ash &lt;br /&gt;
*awk &lt;br /&gt;
*base64 &lt;br /&gt;
*basename &lt;br /&gt;
*bunzip2 &lt;br /&gt;
*bzcat &lt;br /&gt;
*bzip2 &lt;br /&gt;
*cal &lt;br /&gt;
*cat &lt;br /&gt;
*catv &lt;br /&gt;
*chgrp &lt;br /&gt;
*chmod &lt;br /&gt;
*chown &lt;br /&gt;
*chroot &lt;br /&gt;
*cksum &lt;br /&gt;
*clear &lt;br /&gt;
*cmp &lt;br /&gt;
*comm &lt;br /&gt;
*cp &lt;br /&gt;
*cpio &lt;br /&gt;
*cut &lt;br /&gt;
*date &lt;br /&gt;
*dc &lt;br /&gt;
*dd &lt;br /&gt;
*df &lt;br /&gt;
*diff &lt;br /&gt;
*dirname &lt;br /&gt;
*dos2unix &lt;br /&gt;
*du &lt;br /&gt;
*echo &lt;br /&gt;
*ed &lt;br /&gt;
*egrep &lt;br /&gt;
*env &lt;br /&gt;
*ether-wake &lt;br /&gt;
*expr &lt;br /&gt;
*false &lt;br /&gt;
*fgrep &lt;br /&gt;
*find &lt;br /&gt;
*fold &lt;br /&gt;
*free &lt;br /&gt;
*ftpget &lt;br /&gt;
*ftpput &lt;br /&gt;
*fuser &lt;br /&gt;
*grep &lt;br /&gt;
*gunzip &lt;br /&gt;
*gzip &lt;br /&gt;
*hd &lt;br /&gt;
*head &lt;br /&gt;
*hexdump &lt;br /&gt;
*ifconfig &lt;br /&gt;
*insmod &lt;br /&gt;
*install &lt;br /&gt;
*iostat &lt;br /&gt;
*kill &lt;br /&gt;
*killall &lt;br /&gt;
*killall5 &lt;br /&gt;
*last &lt;br /&gt;
*less &lt;br /&gt;
*ln &lt;br /&gt;
*logname &lt;br /&gt;
*ls &lt;br /&gt;
*lsmod &lt;br /&gt;
*lsusb &lt;br /&gt;
*lzcat &lt;br /&gt;
*lzma &lt;br /&gt;
*md5sum &lt;br /&gt;
*mkdir &lt;br /&gt;
*mkfifo &lt;br /&gt;
*mknod &lt;br /&gt;
*mktemp &lt;br /&gt;
*modinfo &lt;br /&gt;
*modprobe &lt;br /&gt;
*more &lt;br /&gt;
*mpstat &lt;br /&gt;
*mv &lt;br /&gt;
*nc &lt;br /&gt;
*netstat &lt;br /&gt;
*nice &lt;br /&gt;
*nmeter &lt;br /&gt;
*nohup &lt;br /&gt;
*nslookup &lt;br /&gt;
*od &lt;br /&gt;
*patch &lt;br /&gt;
*pgrep &lt;br /&gt;
*ping &lt;br /&gt;
*pkill &lt;br /&gt;
*pmap &lt;br /&gt;
*printenv &lt;br /&gt;
*printf &lt;br /&gt;
*ps &lt;br /&gt;
*pstree &lt;br /&gt;
*pwd &lt;br /&gt;
*pwdx &lt;br /&gt;
*readlink &lt;br /&gt;
*realpath &lt;br /&gt;
*renice &lt;br /&gt;
*rm &lt;br /&gt;
*rmdir &lt;br /&gt;
*rmmod &lt;br /&gt;
*route &lt;br /&gt;
*rpm &lt;br /&gt;
*sed &lt;br /&gt;
*sendmail &lt;br /&gt;
*seq &lt;br /&gt;
*sh &lt;br /&gt;
*sha1sum &lt;br /&gt;
*sha256sum &lt;br /&gt;
*sha512sum &lt;br /&gt;
*sleep &lt;br /&gt;
*sort &lt;br /&gt;
*split &lt;br /&gt;
*stat &lt;br /&gt;
*strings &lt;br /&gt;
*stty &lt;br /&gt;
*sum &lt;br /&gt;
*sync &lt;br /&gt;
*sysctl &lt;br /&gt;
*tail &lt;br /&gt;
*tar &lt;br /&gt;
*tee &lt;br /&gt;
*telnet &lt;br /&gt;
*test &lt;br /&gt;
*tftp &lt;br /&gt;
*time &lt;br /&gt;
*top &lt;br /&gt;
*touch &lt;br /&gt;
*tr &lt;br /&gt;
*traceroute &lt;br /&gt;
*true &lt;br /&gt;
*tty &lt;br /&gt;
*uname &lt;br /&gt;
*uniq &lt;br /&gt;
*unix2dos &lt;br /&gt;
*unlzma &lt;br /&gt;
*unxz &lt;br /&gt;
*unzip &lt;br /&gt;
*uptime &lt;br /&gt;
*usleep &lt;br /&gt;
*uudecode &lt;br /&gt;
*uuencode &lt;br /&gt;
*vi &lt;br /&gt;
*watch &lt;br /&gt;
*wc &lt;br /&gt;
*wget &lt;br /&gt;
*which &lt;br /&gt;
*who &lt;br /&gt;
*whoami &lt;br /&gt;
*xargs &lt;br /&gt;
*xz &lt;br /&gt;
*xzcat &lt;br /&gt;
*yes &lt;br /&gt;
*zcat &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Channeldel==&lt;br /&gt;
&lt;br /&gt;
Note: now superseded by tunefix&lt;br /&gt;
&lt;br /&gt;
Automatic channel deletion. select TV channels to be permanently removed from the group TV list in Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Automatic Channel Deletion, selected channels, plus a set of 9 unavailable channels known to cause problems will be automatically deleted the next time the Humax is booted, and following any retune&lt;br /&gt;
&lt;br /&gt;
Select all but one file and press delete to reduce the current list in /mod/boot/chandel.conf, the remaining file can be deleted later&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ChaseDecrypt==&lt;br /&gt;
&lt;br /&gt;
Retrieve and decrypt recording whilst recording is still in progress, uses Chaseget&lt;br /&gt;
&lt;br /&gt;
See [[ChaseDecrypt]] for further details&lt;br /&gt;
&lt;br /&gt;
==Chaseget==&lt;br /&gt;
&lt;br /&gt;
Retrieve and decrypt recording, can run whilst recording is still in progress&lt;br /&gt;
&lt;br /&gt;
This is intended to be used as part of other packages (such as detectads) rather than installed and used standalone&lt;br /&gt;
&lt;br /&gt;
Runs as first stage of pipeline, output is always to stdout&lt;br /&gt;
&lt;br /&gt;
Usage= /mod/bin/chaseget recording.ts start_offset logfile &amp;gt; output.ts&lt;br /&gt;
&lt;br /&gt;
==CIFS==&lt;br /&gt;
&lt;br /&gt;
The Common Internet File System. The cifs package provides the Humax with the ability to remotely access files shared from PCs using Windows file sharing. This package adds the support to the running system but mounting remote file systems must currently be performed from the command line. Example :- &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mkdir /media/NAS &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mkdir &amp;quot;/media/My Video/NAS&amp;quot; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mount -t cifs //server/share /media/NAS -o user=abc,password=def &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mount -t cifs //server/share &amp;quot;/media/My Video/NAS&amp;quot; -o user=abc,password=def &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CLI==&lt;br /&gt;
&lt;br /&gt;
This is an acronym for Command Line Interface, a CLI can be established by Telnetting into the Humax and being presented with a CLI prompt, If the Tmenu is displayed there will be a &amp;#039;cli&amp;#039; option to gain the CLI prompt e.g. humax#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Content Sharing==&lt;br /&gt;
&lt;br /&gt;
Menu &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings &amp;gt;&amp;gt; Content Sharing = On&lt;br /&gt;
&lt;br /&gt;
Content Sharing is an in-built DLNA / UPnP server that allows the HDR to stream content over it&amp;#039;s LAN connector to a DNLA / UPnP client, this feature is also used by the Custom Firmware to provide decryption of both Standard Definition and High Definition content&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Crashdiag==&lt;br /&gt;
&lt;br /&gt;
Captures a memory dump (core file) when the main Humax process crashes,The dump files will end up in /mod/core/ called humaxtv.&amp;lt;UNIX timestamp&amp;gt; and a reboot is required following package installation in order to activate it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Crash Log==&lt;br /&gt;
&lt;br /&gt;
The Mulitenv 1.4 package contains a procedure that monitors the behaviour of running processes, If the Humax crashes a file will be generated under /mod/tmp/ called crash.log, it can be examined from Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; View Log Files. The Crash log will tell you if Custom Firmware plug-ins are being disabled as a result of the crash, To re-start undelete, redring and ir packages, run Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; fix-flash-packages &amp;gt;&amp;gt; Run Diagnostic. To prevent the crash log auto disabling plug-ins, create a file with the following command :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
touch /var/lib/humaxtv/mod/no_plugin_autodisable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cron==&lt;br /&gt;
&lt;br /&gt;
Cron is a time-based job scheduler that will auto-run tasks for you. It is built into Busybox which is a standard utility on your Humax, so Cron does not need to be installed. The tasks are held in a Cron table or crontab. Here is an example crontab :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cd /mod/var/spool/cron/crontabs/&lt;br /&gt;
humax# cat root&lt;br /&gt;
0 2 * * * /mod/sbin/anacron -s -d&lt;br /&gt;
1,31 * * * * /mod/sbin/unencrypt &amp;quot;/mnt/hd2/My Video/archive&amp;quot; &amp;gt; /mod/tmp/unencrypt.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
*/10 * * * * /mod/sbin/rs_process &amp;gt;&amp;gt; /mod/tmp/rs.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
humax#&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each line of crontab has the following structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Minute&amp;gt; &amp;lt;Hour&amp;gt; &amp;lt;Day&amp;gt; &amp;lt;Month&amp;gt; &amp;lt;Day of Week&amp;gt; &amp;lt;Command line&amp;gt; Note :- * = All or Every&lt;br /&gt;
&lt;br /&gt;
The three examples above will run&lt;br /&gt;
#at 2AM every day&lt;br /&gt;
#at 1 Minute and 31 Minutes of every Hour every day&lt;br /&gt;
#every 10 Minutes continuously&lt;br /&gt;
&lt;br /&gt;
It is possible to display all cron jobs with the following command line:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; crontab -l &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a new cron job edit file /mod/var/spool/cron/crontabs/root and add a new line&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cryptokey==&lt;br /&gt;
&lt;br /&gt;
This is the unique key that is used by the Humax HDR / HD to encrypt and decrypt all recordings on the hard disk, it is made up from the MAC address of the unit (6 pairs of hexadecimal) followed by the first 10 digits of the unit&amp;#039;s serial number (also in hexadecimal) &lt;br /&gt;
&lt;br /&gt;
The cryptokey can be examined, changed and reset (Cleared) to the original by sending the following [[Custom_Firmware_Package_Notes#Nugget | &amp;#039;&amp;#039;&amp;#039;nugget&amp;#039;&amp;#039;&amp;#039;]] command line options :- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# nugget cryptokey&lt;br /&gt;
Native key: dc d3 21 01 02 03 36 33 37 31 30 35 37 36 33 30&lt;br /&gt;
Using key:  &amp;lt;no custom key in use&amp;gt;&lt;br /&gt;
&lt;br /&gt;
humax# nugget cryptokey 01.01.01.01.01.01.01.01.01.01.01.01.01.01.01.01&lt;br /&gt;
Using key:  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01&lt;br /&gt;
&lt;br /&gt;
humax# nugget cryptokey&lt;br /&gt;
Native key: dc d3 21 01 02 03 36 33 37 31 30 35 37 36 33 30&lt;br /&gt;
Using key:  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01&lt;br /&gt;
&lt;br /&gt;
humax# nugget cryptokey -clear&lt;br /&gt;
Cleared custom encryption key.&lt;br /&gt;
&lt;br /&gt;
humax# nugget cryptokey&lt;br /&gt;
Native key: dc d3 21 01 02 03 36 33 37 31 30 35 37 36 33 30&lt;br /&gt;
Using key:  &amp;lt;no custom key in use&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cryptokey is used by the [[Custom_Firmware_Package_Notes#Stripts | &amp;#039;&amp;#039;&amp;#039;Stripts Package&amp;#039;&amp;#039;&amp;#039;]] when decrypting files on the Humax&lt;br /&gt;
&lt;br /&gt;
==Curl Command==&lt;br /&gt;
&lt;br /&gt;
curl command line utility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Custom TV Portal==&lt;br /&gt;
&lt;br /&gt;
An extension to the Humax TV Portal that adds more features.&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Custom_TV_Portal | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]] &lt;br /&gt;
&lt;br /&gt;
==DB Update==&lt;br /&gt;
&lt;br /&gt;
General boot-time database update utility&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dedup (Command Line)==&lt;br /&gt;
[[File:Webif-media-ded.png|right|150px]]&lt;br /&gt;
[[File:Webif-media-ded2.png|right|150px]]&lt;br /&gt;
The dedup package adds a command line utility which can consolidate recordings within a single folder so that duplicates are removed and the remaining episodes are renamed so that the episode name and number (if available) are displayed in the Media Browser.&lt;br /&gt;
&lt;br /&gt;
Note:- There is a &amp;#039;built-in&amp;#039; version of Dedup in the [[Custom_Firmware_Package_Notes#Web_IF | &amp;#039;&amp;#039;&amp;#039;Web-If &amp;#039;&amp;#039;&amp;#039;]] that effectively replaces the command line package. However if the dedup package is installed it is possible to perform the following Telnet commands from the folder you have navigated to:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; dedup &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;lists the recordings there and shows what they would be renamed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; dedup -yes&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt; perform the changes as detailed below :-&lt;br /&gt;
&lt;br /&gt;
*Renames the files on disk to match the episode name&lt;br /&gt;
*Changes the title shown in the media list to match the episode name&lt;br /&gt;
*Identifies duplicate episodes and moves them to a sub-folder called dup/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dedup (Series Helper File)==&lt;br /&gt;
&lt;br /&gt;
It is possible to create a series helper file that Dedup can use to enhance the re-naming of series, the file should be placed in the directory containing the series and named series.info, Dedup will look for this file and automatically use it, an example of a series.info file is shown below :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pilot ==&amp;gt; S1-01&lt;br /&gt;
Pilot The Big Bang Theory ==&amp;gt; S1-01&lt;br /&gt;
The Big Bran Hypothesis ==&amp;gt; S1-02&lt;br /&gt;
The Fuzzy Boots Corollary ==&amp;gt; S1-03&lt;br /&gt;
The Luminous Fish Effect ==&amp;gt; S1-04&lt;br /&gt;
The Hamburger Postulate ==&amp;gt; S1-05&lt;br /&gt;
The Middle Earth Paradigm ==&amp;gt; S1-06&lt;br /&gt;
The Dumpling Paradox ==&amp;gt; S1-07&lt;br /&gt;
The Grasshopper Experiment ==&amp;gt; S1-08&lt;br /&gt;
The Cooper-Hofstadter Polarization ==&amp;gt; S1-09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above &amp;#039;full&amp;#039; file is stored here :- [http://hummypkg.org.uk/series/tbbt.series.info &amp;#039;&amp;#039;&amp;#039;http://hummypkg.org.uk/series/tbbt.series.info&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DeRMA==&lt;br /&gt;
&lt;br /&gt;
After a Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; Set-Return-to-manufacturer (RMA) Mode operation has been carried out, standard Humax software should be re-installed, this should leave the Humax in an &amp;#039;out-of-the-box&amp;#039; state, however if for any reason the &amp;#039;RMA&amp;#039; message is still being displayed, then loading this package onto a USB stick and inserting it into the Humax, while it is running, will remove the RMA message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detectads==&lt;br /&gt;
&lt;br /&gt;
This package will attempt to add bookmarks to a recording to indicate the start and end of advert breaks, so that the adverts can be removed with a crop function, cropping can optionally be performed automatically within the package,&lt;br /&gt;
&lt;br /&gt;
Using the new &amp;#039;Detect while recording&amp;#039; function the detection process runs in parallel with the actual recording so the processing completes within a few seconds of the recording finishing. You can even, with some limitations, start to watch your program adfree whilst it is still recording.&lt;br /&gt;
&lt;br /&gt;
See [[DetectAds]] for more information about this package&lt;br /&gt;
&lt;br /&gt;
==Disable DSO==&lt;br /&gt;
&lt;br /&gt;
Disable automatic retuning in response to Digital-Switch-Over events. When the Humax carries out a retune all recording Schedule events and all Favourites Lists will be erased, however recorded programmes will not be erased. DSO events are sent to the Humax by the TV broadcasters when they need to change some aspect of the Electronic Programme Guide, such as changing a channel number or adding extra channels&lt;br /&gt;
&lt;br /&gt;
==Disable OTA==&lt;br /&gt;
&lt;br /&gt;
Disable OTA inhibits any Over The Air software updates transmitted by Humax by deleting OTA schedules created by the Humax, it also has a &amp;quot;Create Reminder to cover OTA Period = Y / N&amp;quot; option in the Settings page, this will create a reminder on the Red Button (channel 200) to cover the OTA period, if you want it to use a different channel or on / off time, you can edit the reminder using the standard Humax on-TV menus, you can also disable the reminder option completely, however if this is done there is a small possibility that an OTA search may still be actioned on your Humax&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; The OTA service for software updates is no longer in operation&lt;br /&gt;
&lt;br /&gt;
==Display==&lt;br /&gt;
&lt;br /&gt;
A command that can be used to display a message on the HDR-Fox T2 front panel, any alpha-numerics (Max 12 characters) can be displayed, scrolling is not available. The new message will be displayed until the unit is rebooted or changed by the Humax, example :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; /sbin/display &amp;#039;Twelve Chars&amp;#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The display can be blanked with :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; /sbin/display &amp;#039; &amp;#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The display of the HD-Fox T2 (Max 4 characters + colon) can also be used by adding &amp;#039;$&amp;#039; to the string e.g. :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; /sbin/display &amp;#039;$he:lp&amp;#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE&amp;#039;&amp;#039;&amp;#039; If the Humax updates the display e.g. after a channel change or is scrolling the display then your message will be removed&lt;br /&gt;
&lt;br /&gt;
==DLNA-Filter==&lt;br /&gt;
&lt;br /&gt;
Filters out DLNA server network traffic to prevent other DLNA servers from crashing the Humax. File /mod/etc/init.d/S02dlna-filter contains rule=&amp;quot;-p tcp --dport 50001 -j DROP&amp;quot;. From default the package works on all IP addresses, however in Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Settings for DLNA-Filter package, it is possible to restrict operation to one or more specified IP addresses&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*DLNA-Filter  requires Custom Firmware Version 3.00 or later&lt;br /&gt;
*DLNA-Filter will block access to the Humax DLNA server if the Settings for DLNA-Filter package is left blank&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DLNA-Servername==&lt;br /&gt;
&lt;br /&gt;
This package enables Humaxs on the same network to be given a unique Media Server Name. It requires that Custom Version 2.20 or above be installed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dropbear SSH==&lt;br /&gt;
&lt;br /&gt;
A secure shell (ssh) server for the Humax. This package provides remote command line access over an encrypted session and is a secure alternative to using Telnet&lt;br /&gt;
to gain command line access - although it causes the box to do more work.  Also allows the use of &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; (secure copy) as a secure alternative to FTP.&lt;br /&gt;
&lt;br /&gt;
Login with username=root, password=humax&lt;br /&gt;
&lt;br /&gt;
Create file /mod/.ssh/authorized_keys containing a list of public keys&lt;br /&gt;
&lt;br /&gt;
Note :- chmod 700 /mod/.ssh and chmod 600 /mod/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dropbear SFTP==&lt;br /&gt;
&lt;br /&gt;
Greenend-sftp is a plugin for dropbear-ssh which provides SFTP server functionality.SFTP is often used to provide remote virtual filesystem (VFS) access to the Humax&amp;#039;s filesystem, e.g. via FUSE. For further info. click link [http://www.greenend.org.uk/rjk/sftpserver/ &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DUMA==&lt;br /&gt;
&lt;br /&gt;
D.U.M.A. - Detect Unintended Memory Access - A Red-Zone memory allocator. It can detect memory leaks and buffer overruns (or underruns) in a malloc() / new memory buffer. DUMA is a fork of Bruce Perens&amp;#039; Electric Fence library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dvbsnoop==&lt;br /&gt;
&lt;br /&gt;
Utility for inspecting DVB files. Some more info [http://dvbsnoop.sourceforge.net/ &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;].&lt;br /&gt;
&lt;br /&gt;
Note that one cannot inspect live streams off air on the Humax, as the Humax doesn&amp;#039;t provide the required software interface to its DVB hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==E2fs_Progs==&lt;br /&gt;
&lt;br /&gt;
Ext2/3/4 File system Utilities. The Linux File Disk system used on the Humax. Useful for formatting a USB Flash drive in EXT2 to avoid journalling. First allow the Humax to format the drive as EXT3 then follow the procedure [[FAQs#How_do_I_convert_a_drive_to_EXT2.3F|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[Eject]==&lt;br /&gt;
[[File:Eject.png|left|50px]]&lt;br /&gt;
The Eject icon is displayed (If a USB Device is detected), on all Web-if Headers adjacent to the FREEVIEW icon, when the user clicks on this icon, a list of USB devices attached to the Humax will be displayed with the following information (from Left to Right) :-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*USB interface name&lt;br /&gt;
*USB Device name&lt;br /&gt;
*Format type, e.g. FAT32, NTFS, EXT3 etc.&lt;br /&gt;
*Device % used&lt;br /&gt;
*Device capacity &lt;br /&gt;
*Eject Option&lt;br /&gt;
&lt;br /&gt;
To the far right there is an eject icon, when the user clicks on this icon, an option will be displayed, e.g. &amp;quot;Eject USB-1? - OK or Cancel, If OK is selected the USB device will be unmounted, this is similar to the Windows option &amp;quot;Safely Remove Hardware&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If &amp;#039;Device not mounted&amp;#039; is displayed, the user can click on the recycle icon (far right) to display a &amp;#039;Rescan OK/Cancel&amp;#039; option, this will allow a rescan and the USB device will be re-mounted &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*This feature is only present on the HDR-FOX T2, not the HD-FOX T2&lt;br /&gt;
&lt;br /&gt;
==EPG==&lt;br /&gt;
&lt;br /&gt;
The command line utility used by the Electronic Program Guide in the Web-If e.g. :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# epg&lt;br /&gt;
Humax EPG Tool v1.0.8, by af123, 2011.&lt;br /&gt;
&lt;br /&gt;
Syntax: epg [options] [filters] &amp;lt;command&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
  Options:&lt;br /&gt;
    -b                     Brief output.&lt;br /&gt;
    -d[level]              Set debug level.&lt;br /&gt;
    -f&amp;lt;file&amp;gt;               Specify alternate EPG data file.&lt;br /&gt;
    -h                     Show help text.&lt;br /&gt;
    -p                     Parsable output.&lt;br /&gt;
&lt;br /&gt;
  Filters: (can be specified multiple times, all must be true)&lt;br /&gt;
    -C&amp;lt;CRID&amp;gt;               Show only events with this CRID.&lt;br /&gt;
    -D&amp;lt;descriptor type&amp;gt;    Show only selected descriptor type.&lt;br /&gt;
    -E&amp;lt;event id&amp;gt;           Show only selected event.&lt;br /&gt;
    -R&amp;lt;SCRID&amp;gt;              Show only events with this Series ID.&lt;br /&gt;
    -S&amp;lt;service id&amp;gt;         Show only selected service.&lt;br /&gt;
    -T&amp;lt;content type&amp;gt;       Show only selected content types.&lt;br /&gt;
    -@&amp;lt;unix timestamp&amp;gt;     Show only programmes at time.&lt;br /&gt;
    -/&amp;lt;unix timestamp&amp;gt;     Show only programmes on day.&lt;br /&gt;
    -/&amp;lt;days&amp;gt;               Show only programmes on day.&lt;br /&gt;
    -=&amp;lt;start&amp;gt;:&amp;lt;end&amp;gt;        Show only programmes in time period.&lt;br /&gt;
&lt;br /&gt;
  Commands:&lt;br /&gt;
    dump                   Show a parsed summary of the EPG.&lt;br /&gt;
    dumpraw                Show raw data from the EPG.&lt;br /&gt;
    sqldump                Produce SQL statements from EPG data.&lt;br /&gt;
    sqlitedump &amp;lt;file&amp;gt;      Create SQLite database from EPG data.&lt;br /&gt;
    now                    Show what is currently on.&lt;br /&gt;
    first                  Show the time of the earliest record.&lt;br /&gt;
    last                   Show the time of the latest record.&lt;br /&gt;
    parse                  Parse the EPG, no output.&lt;br /&gt;
    search &amp;lt;text&amp;gt;          Search programme names for text.&lt;br /&gt;
    searchall &amp;lt;text&amp;gt;       Search programme names/descriptions for text.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Epgfix==&lt;br /&gt;
&lt;br /&gt;
epgfix causes a channel change once a day (by default at 4am) for 3 minutes before restoring the original channel it was tuned to. This is enough to trigger the Humax software to keep the EPG up to date when the Humax is on 24/7, (it has no advantage when the unit has a daily on/standby cycle).&lt;br /&gt;
&lt;br /&gt;
You need at least a single service on an alternative mux. to the one the box is tuned to for it to work. Changing to a different service on the same mux. was found not to work reliably enough.&lt;br /&gt;
&lt;br /&gt;
There is no user interface, no settings and nothing to configure. The only thing you can change is the time of operation if it is not suitable!&lt;br /&gt;
You have to do this manually by editing the /mod/bin/epgfix entry in the /mod/var/spool/cron/crontabs/root file. This is easily available using the File Editor on the WebIf&amp;#039;s Diagnostics page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Epg Keywords (Web-If)==&lt;br /&gt;
&lt;br /&gt;
This package was a web interface plugin which allowed a list of keywords to be configured and when found an email was sent Weekly to a specified email address detailing any programmes in the EPG which matched the keywords.&lt;br /&gt;
&lt;br /&gt;
NOTE:- The EPG Keywords functionality has now been moved to [[Remote_Scheduling_Auto | &amp;#039;&amp;#039;&amp;#039;Remote Scheduling Auto&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Initial Setup :-&lt;br /&gt;
*Web-If MAIN &amp;gt;&amp;gt; SETTINGS &amp;gt;&amp;gt; Email address &amp;gt;&amp;gt; myname@talktalk.co.uk&lt;br /&gt;
*Web-If MAIN &amp;gt;&amp;gt; SETTINGS &amp;gt;&amp;gt; SMTP &amp;gt;&amp;gt; smtp.talktalk.co.uk&lt;br /&gt;
*Web-If MAIN &amp;gt;&amp;gt; SETTINGS &amp;gt;&amp;gt; SEND TEST EMAIL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Epgpatch==&lt;br /&gt;
&lt;br /&gt;
Utility for patching EPG information in a completed recording, it is used to fix problems in TV areas that use non standard EPG data e.g. Ireland Saorview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enable Telnet==&lt;br /&gt;
&lt;br /&gt;
This USB loaded package will re-enable telnet for the Custom Firmware, it performs the following command lines :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f /var/lib/humaxtv/mod/notelnet&lt;br /&gt;
/etc/init.d/S50telnet start &amp;lt;&amp;lt; /dev/null &amp;gt;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exfat==&lt;br /&gt;
&lt;br /&gt;
This package adds support for reading and writing files in the Exfat format&lt;br /&gt;
&lt;br /&gt;
Please take the time to read the [http://en.wikipedia.org/wiki/ExFAT &amp;#039;&amp;#039;&amp;#039;Wikipedia&amp;#039;&amp;#039;&amp;#039;] article on exFAT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exfat Builder==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;See Exfat above&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:exfat-panel.png|right]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note that this package does not add exFAT support to your system, only provides a simple method for you to do it yourself.&amp;#039;&amp;#039;&amp;#039; This is because there are licence and patent issues around exFAT and if we were to make the compiled exFAT code available in the repository then we would be in violation of at least some of them.&lt;br /&gt;
&lt;br /&gt;
The package provides a web page (accessible from the standard web interface settings screen) from which you can download, build and install the required files in a single step. It will:&lt;br /&gt;
&lt;br /&gt;
*Download an open-source exFAT implementation from Google Code;&lt;br /&gt;
*Unpack and modify the code to support the Humax;&lt;br /&gt;
*Compile the files into binaries which can run on the Humax;&lt;br /&gt;
*Install the compiled binaries on your system;&lt;br /&gt;
*Add hooks to automatically mount exFAT disks when they are detected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EXTRA.css==&lt;br /&gt;
&lt;br /&gt;
See [[Custom_Firmware_Package_Notes#Webif_Style_Sheet|&amp;#039;&amp;#039;&amp;#039;Webif Style Sheet&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Fan==&lt;br /&gt;
&lt;br /&gt;
the default fan speeds set by humax are :-&lt;br /&gt;
*70% - once the HDD temperature reaches 55°C&lt;br /&gt;
*65% - when the temperature drops to 54°C&lt;br /&gt;
*55% - when the temperature drops to 51°C&lt;br /&gt;
*0% - when the temperature drops to 49°C&lt;br /&gt;
&lt;br /&gt;
This utility allows the user to set a minimum continuous fan speed between 0% and 100%, By setting a minimum fan speed higher than zero it is possible to prevent the fan reaching the noisier 70% setting. If the Humax requests a higher speed setting, this higher speed will be used&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*After an initial Humax restart, this package can change the minimum fan speed on-the-fly every two minutes&lt;br /&gt;
*The fanspeed (0 - 255) is stored in the /mod/boot/fanspeed file&lt;br /&gt;
*Changes made by this package will be displayed in the /tmp/humaxtv.log file, if Diagnostics &amp;gt;&amp;gt; debugtv &amp;gt;&amp;gt; Run Diagnostic has been run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Editing /tmp/humaxtv.log&lt;br /&gt;
Sun Sep 15 10:42:36 2013 Applying minimum fan speed = 255 (ff)&lt;br /&gt;
Sun Sep 15 10:44:36 2013 Applying minimum fan speed = 0 (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ffmpeg==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FFmpeg will record, convert, extract and stream audio and video. It includes libavcodec - the leading audio/video codec library. It also displays information about video and audio files. See Link [http://ffmpeg.org/ffmpeg.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
NOTE:- Ffmpeg operations performed on the Humax can be very demanding on CPU time, especially when performing conversions rather than extractions. The following examples were carried out using a version of Ffmpeg running on a P.C.rather than on the Humax.&lt;br /&gt;
&lt;br /&gt;
Convert an extracted MP3 audio file in MP2 format to the more common MP3:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; ffmpeg -i input.ts -vn -ar 44100 -ac 2 -ab 192000 -f mp3 output.mp3&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extract an MPG file from a Hi-Definition TS file from the Humax :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; ffmpeg -i input.ts -target pal-dvd -vcodec copy -acodec copy output.mpeg&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a GUI from end available for the P.C. version of ffmpeg [http://avanti.arrozcru.org/&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fix-disk==&lt;br /&gt;
&lt;br /&gt;
Fix-Disk is a disk partition repair utility (built into Custom Firmware Ver 2.12 and above) for the Humax HDR-Fox T2. It does a full file system check, repairing minor faults automatically as it goes. It will also allow you to fix the delete loop problem. A fix-disk.log file will be generated in /mod/tmp/ and can be viewed using Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; View Log Files&lt;br /&gt;
&lt;br /&gt;
To invoke the Fix-Disk utility follow the Maintenance Mode Guide [[Maintenance_Mode | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fix-disk (USB)==&lt;br /&gt;
&lt;br /&gt;
As fix-disk is now built into Custom Firmware 2.12 and is therefore already resident on your hard drive, the USB version is no longer recommended or supported. However it is still available [[http://www66.zippyshare.com/v/44898524/file.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flatten==&lt;br /&gt;
&lt;br /&gt;
This feature changes how recorded programs are displayed on screen in the &amp;#039;Media - My Video&amp;#039; menu. Series of programs are normally grouped into a sub-folder. Flatten will move the contents of sub-folders to the main &amp;#039;Top&amp;#039; folder and remove empty sub-folders. After installing flatten the Web-If will have an option under OPT+ which lets you toggle directories between flatten and no-flatten.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#All directories will default to have flatten turned on unless they are changed&lt;br /&gt;
#Flatten runs every 15 Minutes when the box is not in standby&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exceptions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Folders marked as no flatten using the OPT+ option will not be flattened&lt;br /&gt;
* Folders whose names are bounded by square brackets e.g. [NOT THIS ONE] will not be flattened&lt;br /&gt;
* Folders containing a file called .noflatten will not be flattened (Note:- Create this file Via Telnet)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flatview==&lt;br /&gt;
&lt;br /&gt;
FlatView is an alternative to flatten, it provides both a flattened view and a hierarchical view at the same time by creating a new top-level directory (called &amp;quot; [FlatView]&amp;quot; by default). Recordings appear in both without using any additional disk space&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Recordings deleted from the flattened view area are automatically removed from the original location in the hierarchy and the original folder will be removed if it is empty;&lt;br /&gt;
*Recordings deleted from the hierarchical view will be automatically removed from the flattened area too;&lt;br /&gt;
*If a recording is renamed in either area, then the change will be reflected in the other (there may be a small delay);&lt;br /&gt;
*Changes in flags such as &amp;#039;Unwatched&amp;#039; and the resume point are synchronised across the two locations;&lt;br /&gt;
*If you move a recording out of the flattened view area, the system will think that it has been deleted and will remove the corresponding recording from the hierarchical view area;&lt;br /&gt;
*If you move a recording into the flattened view area, it will be left untouched&lt;br /&gt;
*Command line option = /mod/webif/plugin/flatview/run&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exceptions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*The contents of folders marked as no flatten using the OPT+ option will not appear in [Flatview]&lt;br /&gt;
*The contents of folders with names in square brackets [Like This] will not appear in [Flatview]&lt;br /&gt;
*The contents of folders containing a file named .noflatten will not appear in [Flatview]&lt;br /&gt;
&lt;br /&gt;
==Flexget==&lt;br /&gt;
&lt;br /&gt;
FlexGet is a multi-purpose automation tool for content like torrents, nzbs, pod-casts, comics, series, movies, etc. It can use different kinds of sources like RSS-feeds, html pages, csv files, search engines and there are even plugins for sites that do not provide any kind of useful feeds.&lt;br /&gt;
&lt;br /&gt;
A Typical Cron entry for Flexget would be :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; */1 * * * * /mod/bin/flexget -c /mod/.flexget/config.yml --cron &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Flexget Documentation [http://flexget.com &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flexview==&lt;br /&gt;
&lt;br /&gt;
FlexView is intended to offer an alternative to the traditional webif to allow you to view an manage your recording inventory in whatever way suits you&lt;br /&gt;
&lt;br /&gt;
[[FlexView | &amp;#039;&amp;#039;&amp;#039;See a Guide to Flexview&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forcedate==&lt;br /&gt;
&lt;br /&gt;
This utility forces the date on your Humax to 16 November 2011 12:34:56. It is required if the Humax can&amp;#039;t get Time / Date info Over The Air. After using Forcedate it is possible to set time / date to internet time automatically on boot-up using [[Custom_Firmware_Package_Notes#Ntp_Client | &amp;#039;&amp;#039;&amp;#039;NTP Client&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Foscam==&lt;br /&gt;
&lt;br /&gt;
See Guide [[Custom_TV_Portal#Portal_Foscam | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==FTP==&lt;br /&gt;
&lt;br /&gt;
File Transfer Protocol is a method of transferring files to and from your Humax. The Humax HDR-Fox T2 has a built-in FTP server for access to the media folders only. See the [[Custom_Firmware_Package_Notes#Betaftpd |&amp;#039;&amp;#039;&amp;#039;Betaftpd package&amp;#039;&amp;#039;&amp;#039; ]] for access to the full Humax file structure or to add an FTP server to the HD-Fox T2. To use FTP on a P.C. a program that handles FTP is required. Internet Explorer and Windows (file) Explorer will allow FTP access by entering ftp://10.0.0.200 into the address bar, although access may be restricted to media folders only, even when using the Betaftpd package. If access to the whole file structure is required, programs like Filezilla or WS_FTP_Pro can be used.&lt;br /&gt;
&lt;br /&gt;
Notes :- &lt;br /&gt;
* To use the Built-In Humax FTP server MENU &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings &amp;gt;&amp;gt; FTP Server = ON&lt;br /&gt;
* When using Betaftpd MENU &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings &amp;gt;&amp;gt; FTP Server = OFF&lt;br /&gt;
* 10.0.0.200 needs to be replaced with your own Humax IP address&lt;br /&gt;
* login = humaxftp&lt;br /&gt;
* password = 0000 (your Remote Pin default). If the remote password has been changed from 0000 then the new password must be used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Foxlink==&lt;br /&gt;
&lt;br /&gt;
Helper package for linking a HD Fox-T2 to a HDR, See [[Foxlink|&amp;#039;&amp;#039;&amp;#039;Guide Here&amp;#039;&amp;#039;&amp;#039;]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fuse==&lt;br /&gt;
&lt;br /&gt;
With FUSE it is possible to implement a fully functional filesystem in a userspace program.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Genre Icons==&lt;br /&gt;
&lt;br /&gt;
It is possible to inhibit the Genre Icons displayed in the Web-If, see [[Custom_Firmware_Package_Notes#Webif_Style_Sheet | &amp;#039;&amp;#039;&amp;#039; Web-If Style Sheet&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
Distributed version control system designed to handle everything from small to very large projects with speed and efficiency. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Grep==&lt;br /&gt;
&lt;br /&gt;
Grep is built into Busybox and is used to search through a file or files looking for specified blocks of text. The output can be displayed on-screen or sent to a new file.  [http://unixhelp.ed.ac.uk/CGI/man-cgi?egrep Syntax Here]&lt;br /&gt;
&lt;br /&gt;
Associated utilities = Egrep, Fgrep&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cat original-file.txt&lt;br /&gt;
&lt;br /&gt;
-H      Add &amp;#039;filename:&amp;#039; prefix&lt;br /&gt;
-h      Do not add &amp;#039;filename:&amp;#039; prefix&lt;br /&gt;
-n      Add &amp;#039;line_no:&amp;#039; prefix&lt;br /&gt;
-l      Show only names of files that match&lt;br /&gt;
-L      Show only names of files that don&amp;#039;t match&lt;br /&gt;
-c      Show only count of matching lines&lt;br /&gt;
-o      Show only the matching part of line&lt;br /&gt;
-q      Quiet. Return 0 if PATTERN is found, 1 otherwise&lt;br /&gt;
-v      Select non-matching lines&lt;br /&gt;
-s      Suppress open and read errors&lt;br /&gt;
-r      Recurse&lt;br /&gt;
-i      Ignore case&lt;br /&gt;
-w      Match whole words only&lt;br /&gt;
-F      PATTERN is a literal (not regexp)&lt;br /&gt;
-E      PATTERN is an extended regexp&lt;br /&gt;
-m N    Match up to N times per file&lt;br /&gt;
-A N    Print N lines of trailing context&lt;br /&gt;
-B N    Print N lines of leading context&lt;br /&gt;
-C N    Same as &amp;#039;-A N -B N&amp;#039;&lt;br /&gt;
-e PTRN Pattern to match&lt;br /&gt;
-f FILE Read pattern from file&lt;br /&gt;
&lt;br /&gt;
humax# grep match original-file.txt&lt;br /&gt;
-l      Show only names of files that match&lt;br /&gt;
-L      Show only names of files that don&amp;#039;t match&lt;br /&gt;
-c      Show only count of matching lines&lt;br /&gt;
-o      Show only the matching part of line&lt;br /&gt;
-v      Select non-matching lines&lt;br /&gt;
-e PTRN Pattern to match&lt;br /&gt;
humax#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnu Fdisk==&lt;br /&gt;
&lt;br /&gt;
GNU fdisk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hdparm==&lt;br /&gt;
&lt;br /&gt;
hdparm is a command line utility for setting and viewing ATA hard disk drive hardware parameters. It can set parameters such as drive caches, sleep mode, power management, acoustic management, and DMA settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==HMT==&lt;br /&gt;
&lt;br /&gt;
This package displays information on, and allows editing of, the Humax *.hmt file, which is a small &amp;#039;side-car&amp;#039; file created alongside the main *.ts video file.&lt;br /&gt;
&lt;br /&gt;
From a Telnet session, navigate to a directory containing an *.hmt file, then enter hmt {filename}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; hmt KAISER_CHIEFS_DD5_1_20110410_0147.hmt &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hmt Options List&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# hmt&lt;br /&gt;
Humax HMT Tool v2.0.6, by af123, 2011-2015.&lt;br /&gt;
&lt;br /&gt;
Syntax: hmt [command] &amp;lt;filename&amp;gt; [filename] ...&lt;br /&gt;
  Commands:&lt;br /&gt;
    +/-new        Mark/unmark recording as new.&lt;br /&gt;
    +/-lock       Mark/unmark recording as locked.&lt;br /&gt;
    +/-guidance   Mark/unmark recording as having guidance.&lt;br /&gt;
    +/-protect    Enable/disable protection (prevents decryption on copy).&lt;br /&gt;
    +/-encrypted  Mark/unmark recording as encrypted.&lt;br /&gt;
    +/-shrunk     Mark/unmark recording as shrunk.&lt;br /&gt;
    +/-dedup      Mark/unmark recording as deduped.&lt;br /&gt;
    +/-detectads  Mark/unmark recording as ad-detection-done.&lt;br /&gt;
    -p            Display parseable file information (see *).&lt;br /&gt;
    -list         Display file information (default).&lt;br /&gt;
    -bookmarks    Display bookmarks.&lt;br /&gt;
    +addbookmark=&amp;lt;seconds&amp;gt;[:&amp;lt;seconds&amp;gt;]...&lt;br /&gt;
    +setbookmarks=&amp;lt;seconds&amp;gt;[:&amp;lt;seconds&amp;gt;]...&lt;br /&gt;
    +clearbookmarks&lt;br /&gt;
    +settitle=&amp;lt;new title&amp;gt;&lt;br /&gt;
    +setsynopsis=&amp;lt;new synopsis&amp;gt;&lt;br /&gt;
    +setguidance=&amp;lt;new guidance&amp;gt;&lt;br /&gt;
    +setfolder=&amp;lt;new folder&amp;gt; (patch hmt only)&lt;br /&gt;
    +setfilename=&amp;lt;new filename&amp;gt; (patch hmt only)&lt;br /&gt;
    +setgenre=&amp;lt;genre&amp;gt; (can just specifiy initial part)&lt;br /&gt;
    +setresume=&amp;lt;resume point (seconds)&amp;gt; (-seconds to set from end)&lt;br /&gt;
&lt;br /&gt;
Generic patch commands:&lt;br /&gt;
    +patch8=offset:value     patch 8-bit value&lt;br /&gt;
    +patch16=offset:value    patch 16-bit value&lt;br /&gt;
    +patch32=offset:value    patch 32-bit value&lt;br /&gt;
  Offset and value can be preceeded with 0x to indicate hex.&lt;br /&gt;
&lt;br /&gt;
Generic read commands:&lt;br /&gt;
    +read8=offset            read 8-bit value&lt;br /&gt;
    +read16=offset           read 16-bit value&lt;br /&gt;
    +read32=offset           read 32-bit value&lt;br /&gt;
  Offset can be preceeded with 0x to indicate hex.&lt;br /&gt;
&lt;br /&gt;
* Parseable output is tab delimited and contains the following fields:&lt;br /&gt;
        Title, Synopsis, HD/SD, LCN, Channel Name,&lt;br /&gt;
        Start time, End time, Flags, Guidance, Bookmark count,&lt;br /&gt;
        Scheduled start, Scheduled duration, Genre code,&lt;br /&gt;
        Resume point, Status/Reason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*+addbookmark=100:200:300 = Add to existing bookmark list&lt;br /&gt;
*+setbookmarks=100:200:300 = replace bookmark list with this new ones&lt;br /&gt;
*+setbookmarks= = same as +clearbookmarks i.e. remove all bookmarks&lt;br /&gt;
&lt;br /&gt;
==hmt-linux==&lt;br /&gt;
&lt;br /&gt;
A version of hmt compiled to run on a Linux platform (not for the Humax)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==hmt-solaris==&lt;br /&gt;
&lt;br /&gt;
A version of hmt compiled to run on a Solaris platform (not for the Humax)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hrwconv==&lt;br /&gt;
&lt;br /&gt;
Wrapper script for ffmpeg and sidecar packages to convert 9200T/9150T/9300T files to HDR format&lt;br /&gt;
&lt;br /&gt;
It is recommended that you create a new directory and move your existing 9200T/9150T/9300T files and their sidecars into it, Hrwconv will not make any changes to the originals but will create new files so you will need to ensure that you have enough free disk space.&lt;br /&gt;
&lt;br /&gt;
After installing the package, connect to the Humax via Telnet, change directory &amp;#039;cd&amp;#039; to the new directory and then run:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hrwconv *.ts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After a few hours the new files will have been created in the subdirectory  &amp;#039;new&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==HTTPS==&lt;br /&gt;
&lt;br /&gt;
HyperText Transfer Protocol Secure is an extra layer built into the normal HTTP protocol used to access the Web-Interface for the Humax, It provides a more secure connection to the Humax. An HTTPS Server can be enabled in Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; General Settings &amp;gt;&amp;gt; HTTPS web server = On&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Humaxrw==&lt;br /&gt;
&lt;br /&gt;
Utility to copy recordings from a Humax 9200T/9150T/9300T hard disk that is connected to the HDR via USB. The files recorded on 9000 series Humaxs are playable on the HDR, however the HDR can&amp;#039;t directly read a hard disk formatted on a 9000 series, Humaxrw will allow the transfer of files between 9000 series and the HDR.&lt;br /&gt;
&lt;br /&gt;
After installing Humaxrw, access to the utility is by [[Custom_Firmware_Package_Notes#Telnet | &amp;#039;&amp;#039;&amp;#039;Telnet&amp;#039;&amp;#039;&amp;#039;]] command line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# humaxrw -h&lt;br /&gt;
Host &amp;lt;-&amp;gt; Humax disk&lt;br /&gt;
===================&lt;br /&gt;
Usage: humaxrw [options] HUMAXDISK&lt;br /&gt;
&lt;br /&gt;
  -b            backup all recordings from Humax disk to current directory&lt;br /&gt;
  -d &amp;lt;list&amp;gt;     delete recordings&lt;br /&gt;
  -g &amp;lt;list&amp;gt;     get recordings to current directory&lt;br /&gt;
  -h            help (this text)&lt;br /&gt;
  -i &amp;lt;list&amp;gt;     get info for recordings&lt;br /&gt;
  -l            list recordings&lt;br /&gt;
  -p &amp;lt;filename&amp;gt; put recording(s) onto Humax disk&lt;br /&gt;
  -u &amp;lt;list&amp;gt;     unprotect recordings&lt;br /&gt;
  -v            version&lt;br /&gt;
  -x            extended listing for humaxdiag&lt;br /&gt;
  -w            pause at the end waiting for a keypress&lt;br /&gt;
  -y            answer yes to all prompts&lt;br /&gt;
&lt;br /&gt;
  Advanced Options&lt;br /&gt;
  -D            Delete time shift recording buffers&lt;br /&gt;
  -E            Update all synopsis/info data for version 1.00.20 or later&lt;br /&gt;
  -H &amp;lt;list&amp;gt;     get hre files for recordings&lt;br /&gt;
  -M &amp;lt;n&amp;gt;        modify recording number n (use with -O &amp;amp; -V options)&lt;br /&gt;
  -O &amp;lt;n&amp;gt;        offset for modify recording (use with -M &amp;amp; -V options)&lt;br /&gt;
  -V &amp;lt;n&amp;gt;        modify recording value (use with -M &amp;amp; -O options)&lt;br /&gt;
  -Z            Delete EPG save data&lt;br /&gt;
&lt;br /&gt;
Humax disk -&amp;gt; Humax disk&lt;br /&gt;
========================&lt;br /&gt;
Usage: humaxrw [options] SRCHUMAXDISK DESTHUMAXDISK&lt;br /&gt;
&lt;br /&gt;
  -b            backup all recordings from source Humax disk&lt;br /&gt;
                and copy to destination Humax disk&lt;br /&gt;
  -g &amp;lt;list&amp;gt;     get recordings from source disk&lt;br /&gt;
                and copy to destination Humax disk&lt;br /&gt;
&lt;br /&gt;
Recovery mode - use if record list is missing/corrupt&lt;br /&gt;
=============&lt;br /&gt;
Usage: humaxrw -r [options] HUMAXDISK&lt;br /&gt;
&lt;br /&gt;
  -i &amp;lt;list&amp;gt;     get info for recordings&lt;br /&gt;
  -l            list recordings&lt;br /&gt;
  -n            no info - use if corruption is really bad&lt;br /&gt;
  -g &amp;lt;list&amp;gt;     get recordings to current directory as recover_nnnn.ts&lt;br /&gt;
&lt;br /&gt;
Example of a list: 10-20,30,41-42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Humidify==&lt;br /&gt;
&lt;br /&gt;
A utility for manipulating Humax Download Format (HDF) files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# humidify&lt;br /&gt;
HDF Tool v1.0.4, by af123, 2011-2015.&lt;br /&gt;
&lt;br /&gt;
Syntax: humidify [options] &amp;lt;filename&amp;gt;&lt;br /&gt;
  -C                   Skip checksum validation.&lt;br /&gt;
  -c &amp;lt;arguments&amp;gt;       Create HDF file (&amp;#039;-c help&amp;#039; for more).&lt;br /&gt;
  -d&amp;lt;level&amp;gt;            Enable debugging at level.&lt;br /&gt;
  -l                   Show contents of HDF file (default).&lt;br /&gt;
  -o                   Use old-style checksum blocks when creating.&lt;br /&gt;
  -r                   Don&amp;#039;t compress blocks when creating.&lt;br /&gt;
  -S&amp;lt;section&amp;gt;          Extract only the numbered section.&lt;br /&gt;
  -t                   Test archive (validate checksums).&lt;br /&gt;
  -x                   Extract files.&lt;br /&gt;
  -s                   Also show/extract member checksums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
  View HDF:    humidify file.hdf&lt;br /&gt;
  Test HDF:    humidify -t file.hdf&lt;br /&gt;
  Extract HDF: humidify -x file.hdf&lt;br /&gt;
  Create HDF:  humidify -c file.hdf (run &amp;#039;humidify -c help&amp;#039; for more)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A cross platform version of Humidify can be downloaded from the packages page, [[Customised_Firmware_-_Features_Available#Miscellaneous_Software_Utilities | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
It contains the following files:-&lt;br /&gt;
&lt;br /&gt;
[[File:Humidify-1.0.2.zip.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hwctl==&lt;br /&gt;
&lt;br /&gt;
Hardware control utility - Use with caution ! ! !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Id3v2==&lt;br /&gt;
&lt;br /&gt;
A command line ID3v1.1 tagger for MP3 files. See also See also [[#Popol |&amp;#039;&amp;#039;&amp;#039;Popol&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
Available commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  -h,  --help               Display this help and exit&lt;br /&gt;
  -f,  --list-frames        Display all possible frames for id3v2&lt;br /&gt;
  -L,  --list-genres        Lists all id3v1 genres&lt;br /&gt;
  -v,  --version            Display version information and exit&lt;br /&gt;
  -l,  --list               Lists the tag(s) on the file(s)&lt;br /&gt;
  -R,  --list-rfc822        Lists using an rfc822-style format for output&lt;br /&gt;
  -d,  --delete-v2          Deletes id3v2 tags&lt;br /&gt;
  -s,  --delete-v1          Deletes id3v1 tags&lt;br /&gt;
  -D,  --delete-all         Deletes both id3v1 and id3v2 tags&lt;br /&gt;
  -C,  --convert            Converts id3v1 tag to id3v2&lt;br /&gt;
  -1,  --id3v1-only         Writes only id3v1 tag&lt;br /&gt;
  -2,  --id3v2-only         Writes only id3v2 tag&lt;br /&gt;
  -a,  --artist  &amp;quot;ARTIST&amp;quot;   Set the artist information&lt;br /&gt;
  -A,  --album   &amp;quot;ALBUM&amp;quot;    Set the album title information&lt;br /&gt;
  -t,  --song    &amp;quot;SONG&amp;quot;     Set the song title information&lt;br /&gt;
  -c,  --comment &amp;quot;DESCRIPTION&amp;quot;:&amp;quot;COMMENT&amp;quot;:&amp;quot;LANGUAGE&amp;quot;&lt;br /&gt;
                            Set the comment information (both&lt;br /&gt;
                             description and language optional)&lt;br /&gt;
  -g,  --genre   num        Set the genre number&lt;br /&gt;
  -y,  --year    num        Set the year&lt;br /&gt;
  -T,  --track   num/num    Set the track number/(optional) total tracks&lt;br /&gt;
&lt;br /&gt;
You can set the value for any id3v2 frame by using &amp;#039;--&amp;#039; and then frame id&lt;br /&gt;
For example:&lt;br /&gt;
        id3v2 --TIT3 &amp;quot;Monkey!&amp;quot; file.mp3&lt;br /&gt;
would set the &amp;quot;Subtitle/Description&amp;quot; frame to &amp;quot;Monkey!&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Inadyn==&lt;br /&gt;
A Dynamic DNS client with web configuration plug-in (see webif settings page). The log file is blanked whenever the box set to standby and a new one created when switched from standby.&lt;br /&gt;
&lt;br /&gt;
For freedns.afraid.org the hostname in settings should be of the form:&lt;br /&gt;
xxxx.xxxxxxxx.xxxxx, &amp;lt;user name hash&amp;gt;&lt;br /&gt;
Where &amp;lt;user name hash&amp;gt; is obtained from the freedns website, when logged on&lt;br /&gt;
&lt;br /&gt;
==In Use==&lt;br /&gt;
&lt;br /&gt;
Utility for checking whether a recording is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==I-Phone Interface==&lt;br /&gt;
&lt;br /&gt;
An iphone optimised web interface for the Humax.&lt;br /&gt;
&lt;br /&gt;
Screen Shots [[Smartphone_Web_Interface_Screenshots | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ir (Web-If Remote Controller)==&lt;br /&gt;
&lt;br /&gt;
This package adds a fully functioning Remote Controller to the Web Interface. Full Details [[WebIf_Remote_Controller|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==lsof==&lt;br /&gt;
&lt;br /&gt;
This unix command stands for LiSt of Open Files. With no extensions it will default to &amp;#039;All&amp;#039; open files, but it is probably more useful when used with a filter as shown in the examples :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; lsof | grep humaxtv &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;All files opened by the main Humax TV process&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; lsof | cut -f 1 -d&amp;#039; &amp;#039; | sort | uniq &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;List all processes that have opened files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; lsof | grep epg &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;All files opened by the EPG process&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;humax# lsof | grep epg&lt;br /&gt;
epg 596 root  cwd  0000  31,0 1307722938  21474853357 /dev&lt;br /&gt;
epg 596 root  rtd  0000  31,0 1321652395  77309428205 /&lt;br /&gt;
epg 596 root  txt  0000  8,18 1322689164   4295000557 /mnt/hd2/mod/bin/epg&lt;br /&gt;
epg 596 root  mem   REG  8,18                 9226050 /mnt/hd2/mod/bin/epg (path inode=4295000557)&lt;br /&gt;
epg 596 root  mem   REG  31,0                     174 /lib/ld-uClibc-0.9.29.so (path inode=4295000557)&lt;br /&gt;
epg 596 root  mem   REG  8,18                 9225846 /mnt/hd2/mod/lib/libsqlite3.so.0.8.6 (path inode=4295000557)&lt;br /&gt;
epg 596 root  mem   REG  31,0                     169 /lib/libuClibc-0.9.29.so (path inode=4295000448)&lt;br /&gt;
epg 596 root  mem   REG  31,0                     216 /lib/libpthread-0.9.29.so (path inode=4295000448)&lt;br /&gt;
epg 596 root  mem   REG  31,0                     186 /lib/libdl-0.9.29.so (path inode=4295000448)&lt;br /&gt;
epg 596 root    0  0000  31,0 1307722935   4294975926 /dev/null&lt;br /&gt;
epg 596 root    1  0000  0,13 1322848876   4295000502 /tmp/epgd.log&lt;br /&gt;
epg 596 root    2  0000  0,13 1322848858   4295000502 /tmp/modinit.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Jim==&lt;br /&gt;
&lt;br /&gt;
Jim is a form of the programming language TCL (Tool Command Language) that runs on the Humax unix platform.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Jpnevulator==&lt;br /&gt;
&lt;br /&gt;
Serial Port Sniffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Joe==&lt;br /&gt;
&lt;br /&gt;
Text Editor. See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
&lt;br /&gt;
An alternative Kernel for the HDR-Fox T2 is loadable via USB upgrade, the zip files contains copies of the standard kernels and a version  with GUID/EFI support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lighttpd==&lt;br /&gt;
&lt;br /&gt;
Lighttpd is a replacement for the mongoose Web server used on the Humax to handle it&amp;#039;s Web-If pages. [[Web_Interface_Screenshots | &amp;#039;&amp;#039;&amp;#039;SEE EXAMPLES&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
For more information on lighttpd click [http://www.lighttpd.net/  &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==LDD==&lt;br /&gt;
&lt;br /&gt;
ldd prints the shared libraries required by each program or shared library specified on the command line&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libpcre==&lt;br /&gt;
&lt;br /&gt;
Perl-compatible Regular Expressions Library&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libunwind==&lt;br /&gt;
&lt;br /&gt;
Utility used with the Crashdiag package&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==LibParted==&lt;br /&gt;
&lt;br /&gt;
Library for the [[#Parted|&amp;#039;&amp;#039;&amp;#039;Parted&amp;#039;&amp;#039;&amp;#039;]] package&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libsndfile==&lt;br /&gt;
&lt;br /&gt;
A C library for reading and writing files containing sampled sound.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Loaders==&lt;br /&gt;
&lt;br /&gt;
 {{Warning|title=WARNING !|Although the installation of a new loader only takes a few seconds (unlike a full firmware change), it is imperative that there is no power interruption during the process as this could cause the Humax to become permanently inoperative (bricked)}} &lt;br /&gt;
&lt;br /&gt;
The Loader - sometimes called the Boot Loader is a small routine that the Humax runs on start-up, the version of your Loader is displayed in the lower left hand corner of the Humax screen immediately after the unit is taken out of standby, there are currently 4 loader versions known to be installed on the HDR-Fox T2, they are :-&lt;br /&gt;
a730, a731, a733 and a734.&lt;br /&gt;
&lt;br /&gt;
Different versions of loader may improve &amp;#039;Green Screen&amp;#039; HDMI handshake problems found on some televisions, a link to the hummy.tv discussion can be found [https://hummy.tv/forum/threads/hdmi-issue-with-bravia.8203/page-2#post-116204 &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==M4==&lt;br /&gt;
&lt;br /&gt;
GNU M4 is an implementation of the traditional Unix macro processor. More notes [http://www.gnu.org/software/m4/ &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maintenance Mode==&lt;br /&gt;
&lt;br /&gt;
This is as special mode that the Humax can be placed in, to carry out checks etc. on the system. See Guide [[Maintenance_Mode|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Mediatomb==&lt;br /&gt;
A UPnP Media Server, This package allows the HD T2 to stream content to other devices on your network, as the HD T2 does not have this facility built-in. There is a user Guide [http://mediatomb.cc/pages/documentation &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
==Mongoose==&lt;br /&gt;
&lt;br /&gt;
Mongoose was the Webserver that the Custom Firmware Package used to present Web pages, it has been replaced by Lighttpd. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Multienv==&lt;br /&gt;
&lt;br /&gt;
Helper utility for modifying the set top environment, Used by other packages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Multi-mode==&lt;br /&gt;
&lt;br /&gt;
[[Multi-mode_Recording | &amp;#039;&amp;#039;&amp;#039;See Guide HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mvdisks==&lt;br /&gt;
&lt;br /&gt;
Mounts external drives (connected via USB) under &amp;quot;My Video&amp;quot; to allow export by the DLNA server (HDR only)&lt;br /&gt;
Note:- It is possible to change the name of the moved USB directory from &amp;#039;usb-disk&amp;#039; to another name by using Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; File Editor and replacing 3 of the 4 &amp;#039;usb-disk&amp;#039;s with a new name in the file /mod/etc/mdev/rmvdisks.The second occurrence of &amp;#039;usb-disk&amp;#039; does not need changing&lt;br /&gt;
&lt;br /&gt;
*Allows recording directly to a USB drive on the HDR&lt;br /&gt;
*Allows files on a USB drive to be served via DLNA (HDR only)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Network Shares Automount==&lt;br /&gt;
&lt;br /&gt;
Automatic mounting of remote nfs or smb directories, with configuration on the box, using special &amp;quot;settings&amp;quot; directories to add and configure shares. Remote host(s) are &amp;quot;pinged&amp;quot; regularly, and shares are mounting / unmounting automatically with host availability&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folders on a computer or NAS box can be shared with other devices on the same network. On the Humax box with custom firmware we can add support for two protocols - smb (used by Windows, pre-Lion OsX, linux running Samba), and nfs (Linux, OsX, common with NAS boxes). smb support is provided by the cifs package. We can &amp;quot;mount&amp;quot; the remote shared folder(s) so they appear as if they were part of the local file system on the Humax&lt;br /&gt;
&lt;br /&gt;
This packages uses directory names in the &amp;quot;*Modsettings/smb&amp;quot; and/or &amp;quot;*Modsettings/nfs&amp;quot; folders to configure as many shares as you like. For example to set up a new smb share, use the opt+ button to create a new directory within the smb folder. Name it what you want the mount to be called (eg &amp;quot;MyPc&amp;quot;) Wait about 10 seconds, and navigate into the new folder. The script should have created a load of template &amp;quot;configuration directories&amp;quot; for you to rename (host IP address, foldername, user, password etc).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
#The &amp;quot;_&amp;quot; symbol is used instead of &amp;quot;.&amp;quot; in IP names and &amp;quot;/&amp;quot; in folder names as these can&amp;#039;t be input (or if they can I think the box changes them to a &amp;quot;_&amp;quot;)&lt;br /&gt;
#Once configured, the script will regularly ping the host computer to see if it is available. If it is then the shared folder will be mounted and should be browsable. If the host goes offline, the folder will be unmounted, preventing the box from locking up.&lt;br /&gt;
#Wake up On LAN (WOL) is available to automatically power up compatible (newer) NAS boxes, The user must supply the MAC address of the NAS box and set wakeNow? to remove the &amp;#039;?&amp;#039; for a single wake or wakeConstantly? to remove the &amp;#039;?&amp;#039; to repeat every few seconds. A script called  wakecmd in mod/sbin is now called up that contains both ether-wake and the WOL script&lt;br /&gt;
#If option ShareFolder = off, the mount will appear in the USB section and either a real USB device or virtual2 must be installed&lt;br /&gt;
#If option ShareFolder = on, the mount will appear under &amp;#039;My Video&amp;#039;&lt;br /&gt;
[[File:warning-anim.gif|100px|left]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; DELETING THE MY VIDEO/[SHARES] FOLDER WILL DELETE FILES ON YOUR REMOTE COMPUTER / LAPTOP/ NAS ETC. &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To safely remove the [Shares] DO NOT DELETE folder :-&lt;br /&gt;
#Delete the configuration file created in [ModSettings]/NFS or [Modsettings]/SMB&lt;br /&gt;
#reboot the Humax&lt;br /&gt;
#Ensure there are no active shares in the [Shares] folder&lt;br /&gt;
#Turn off the remote device holding the shared files&lt;br /&gt;
#Delete the [Shares] DO NOT DELETE folder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nano==&lt;br /&gt;
&lt;br /&gt;
Text Editor, See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Portal==&lt;br /&gt;
&lt;br /&gt;
This package adds a new front-end to the standard Humax TV Portal, See guide [[Custom_TV_Portal | &amp;#039;&amp;#039;&amp;#039; HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Newk==&lt;br /&gt;
&lt;br /&gt;
This utility will create a folder on the hard disk with a chosen prefix removed, in order to tidy-up the folder title, so for example when recording a new series called &amp;quot;New: The Walking Dead&amp;quot; a folder will be created called &amp;quot;The Walking Dead&amp;quot; and all new recordings will be placed into it, if the prefix &amp;quot;New: &amp;quot; is placed in Webif &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Automatic Series Prefix Removal settings. &lt;br /&gt;
&lt;br /&gt;
Note:- Existing series folder will not be renamed by the Newk package&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nicesplice==&lt;br /&gt;
&lt;br /&gt;
A recorded program editing utility, See [[Edit_On_Box | &amp;#039;&amp;#039;&amp;#039;Edit On box Guide&amp;#039;&amp;#039;&amp;#039;]], Nicesplice also &amp;#039;Shrinks&amp;#039; the file using [[Custom_Firmware_Package_Notes#Stripts|&amp;#039;&amp;#039;&amp;#039;Stripts&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nsplice==&lt;br /&gt;
&lt;br /&gt;
Nsplice is supplied with the &amp;#039;&amp;#039;&amp;#039;[[DetectAds]]&amp;#039;&amp;#039;&amp;#039; package, it is a version of the Nicesplice program modified to accept commands from stdin instead of the command line and to make the output recording visible as it is processed to permit chase playing. The .nts for the -dec file input to splice is a hard link to the .nts for the input recording.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NTFS 3g==&lt;br /&gt;
&lt;br /&gt;
Read/write NTFS disk access. Out of the box the Humax can only read NTFS formatted drives but this package upgrades that support to full read/write access &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NTFS Progs==&lt;br /&gt;
&lt;br /&gt;
This utility contains diagnostic tools and a utililty to format a partition as NTFS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ntp Client==&lt;br /&gt;
&lt;br /&gt;
Network Time Protocol sets the Humax clock from an Internet time server on each boot. Useful if you do not have an aerial connection or your Humax doesn&amp;#039;t keep good time. Ntpclient runs with the -l option which also adjusts the time in between system boots.&lt;br /&gt;
&lt;br /&gt;
Note :- This utility may also need [[Custom_Firmware_Package_Notes#Forcedate | &amp;#039;&amp;#039;&amp;#039;Forcedate&amp;#039;&amp;#039;&amp;#039;]] to be loaded, In order to get the date near the current as NTP won&amp;#039;t change a time / Date that is too far out. More notes [http://doolittle.icarus.com/ntpclient/ &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nugget==&lt;br /&gt;
&lt;br /&gt;
Nugget framework, handles a number of utilities sent from the commeand line, current option are :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nugget &amp;lt;command&amp;gt;&lt;br /&gt;
  ping             - Test nugget connectivity.&lt;br /&gt;
  status           - Show nugget status and version.&lt;br /&gt;
  schedule.load    - Load recording schedule from disk.&lt;br /&gt;
  schedule.save    - Save recording schedule to disk.&lt;br /&gt;
  schedule.slot    - Update timers for schedule slot.&lt;br /&gt;
  schedule.db      - sqlite3 database handle info.&lt;br /&gt;
  schedule.epg     - Display EPG information for slot.&lt;br /&gt;
  schedule.timers  - Show internal timers.&lt;br /&gt;
  cryptokey        - Set or display encryption key.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OPKG==&lt;br /&gt;
&lt;br /&gt;
Open PacKaGe Management is the tool used to handle Custom Firmware packages, Here Are some examples :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= list all opkg commands&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg install http://hummypkg.org.uk/hdrfoxt2/base/auto-unprotect_1.0.6_mipsel.opk &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= Install a remote package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg download auto-unprotect &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= download current version of a remote package (Version number not allowed)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg list&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= list of available packages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg list-installed&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= list of installed packages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg remove auto-unprotect&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= uninstall a package Note: No version numbers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; opkg install undelete --force-reinstall &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= Force a package reinstall&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; opkg whatdepends anacron &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= Show dependants&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Opkg-beta==&lt;br /&gt;
&lt;br /&gt;
When this package is installed beta versions of installed packages will be made available in &amp;#039;Package Management &amp;gt;&amp;gt; Upgrades&amp;#039; screen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parted==&lt;br /&gt;
&lt;br /&gt;
GNU Partition Editor. On-line User Manual [http://www.gnu.org/software/parted/manual/parted.html#Introduction &amp;#039;&amp;#039;&amp;#039;HERE]&lt;br /&gt;
&lt;br /&gt;
==Popol==&lt;br /&gt;
&lt;br /&gt;
A command line ID3v1.1 tagger for MP3 files, If is possible to insert the following fields into an MP3 ID3 header. See also See also [[#Id3v2 |&amp;#039;&amp;#039;&amp;#039;Id3v2&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     -s, --songname           set songname&lt;br /&gt;
     -a, --artist             set artist&lt;br /&gt;
     -l, --album              set album&lt;br /&gt;
     -c, --comment            set comment&lt;br /&gt;
     -y, --year               set release year&lt;br /&gt;
     -t, --tracknum           set track number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Portal Foscam==&lt;br /&gt;
&lt;br /&gt;
See [[Custom_TV_Portal#Portal_Foscam | &amp;#039;&amp;#039;&amp;#039;GUIDE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Portal Xtra1==&lt;br /&gt;
&lt;br /&gt;
See Guide [[Custom_TV_Portal#Portal_Xtra1 | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Portal Xtra1 (USB)==&lt;br /&gt;
&lt;br /&gt;
This is a version of the Portal Xtra1 that runs in Flash memory, this package was built to run on the Humax HD-Fox T2 without an External Hard Disk Drive and is installed Via USB only. See Guide [[Custom_TV_Portal#Portal_Xtra1 | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Poweron-Channel==&lt;br /&gt;
&lt;br /&gt;
NOTE:- This package was replaced by the Boot-Settings package with the release of Webif 1.4&lt;br /&gt;
&lt;br /&gt;
This Utility forces the Humax to always power up on a selected TV channel regardless of the last channel viewed, After installing the Poweron-Channel package, select options in Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Settings for poc package &amp;gt;&amp;gt; Click here for settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Power-On Channel = Selected TV Channel for start-up (See note 1)&lt;br /&gt;
*Volume = 0-20 or Last Audio Volume&lt;br /&gt;
*Power-On Channel Group = Select Favourites List or None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Disable Subtitles on every boot (See Note 3)&lt;br /&gt;
*Turn the DLNA server on at every boot (See Note 3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Ensure that the selected Poweron TV channel is included in the selected Favourite group&lt;br /&gt;
#A scheduled wake-up will use the channel set in the on-TV menus at Settings&amp;gt;&amp;gt;Preferences&amp;gt;&amp;gt;Time&amp;gt;&amp;gt;Channel not the Power-On Channel settings&lt;br /&gt;
# Only available by editing /mod/boot/pox using Diagnostics &amp;gt;&amp;gt; File Editor (details below)&lt;br /&gt;
# The parameters set by Poweron-Channel are contained in the /var/lib/humaxtv/setup.db database, other items may be added to the pox file from this database, but please use extreme caution, their functions are not fully understood&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cat /mod/boot/pox&lt;br /&gt;
# Poweron-channel additional options.&lt;br /&gt;
&lt;br /&gt;
# Example: uncomment the following line to disable subtitles on every boot&lt;br /&gt;
#TBL_MENUCONFIG:SUBTITLE_DISPLAY_F:1&lt;br /&gt;
&lt;br /&gt;
# Example: uncomment the following line to turn the DLNA server on at each&lt;br /&gt;
# boot in case it has been turned off.&lt;br /&gt;
#TBL_MENUCONFIG:DMS_START_ON:1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Procps==&lt;br /&gt;
&lt;br /&gt;
procps is the package that has a bunch of small useful utilities that give information about processes using the /proc file system. The package includes the programs ps, top, vmstat, w, kill, free, slabtop, and skill.Version 3 includes NPTL thread support, a rewritten top, many bug fixes, performance improvements, and new features. Link [http://procps.sourceforge.net/  &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Prog Backup==&lt;br /&gt;
&lt;br /&gt;
Utility for backing up recordings and side-car files to locally attached drives, A search of attached drives will be made so that the user can choose. Both Hi-Def and Standard definition recordings will be de-crypted so they can be played on a P.C. or copied back to a different Humax. Command line examples Below :-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; progbackup&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt; Backup everything under My Video&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; progbackup &amp;quot;/mnt/hd2/My Video/BOB&amp;#039;s Films/&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt; Backup files in a specified folder&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE:-&amp;#039;&amp;#039;&amp;#039; Make sure to use the quotation marks around the directory name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Python==&lt;br /&gt;
&lt;br /&gt;
A package that adds the Python programming language&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Python Setuptools==&lt;br /&gt;
&lt;br /&gt;
Setup tools including Easy_Install for the Python programming language, see notes [[http://pypi.python.org/pypi/setuptools#using-setuptools-and-easyinstall|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qtube==&lt;br /&gt;
&lt;br /&gt;
Simple webif to queue youtube downloads to run in the Auto process queue, see [[Custom_Firmware_Package_Notes#Youtube-dl | &amp;#039;&amp;#039;&amp;#039;Youtube-dl&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Recmon==&lt;br /&gt;
&lt;br /&gt;
Utility for executing another process whenever a recording starts or finishes&lt;br /&gt;
&lt;br /&gt;
Recmon runs every script in /mod/etc/recmon.d in response to events. The order that they are run in is not guaranteed (they actually run in parallel).&lt;br /&gt;
The commands are run with two arguments, a switch saying which event triggered this and the base name of the recording file (no extension).&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
/mod/etc/recmon.d/test -start &amp;quot;/media/My Video/path/to/recording&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Flags are -start, -stop, -move and -delete. Usually -move is called twice, once for the source location and once for the destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/mod/etc/recmon.d/auto-unprotect -start &amp;quot;/media/My Video/The Resident_20150520_0007&amp;quot;&lt;br /&gt;
/mod/etc/recmon.d/auto-unprotect -stop &amp;quot;/media/My Video/The Resident_20150520_0007&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rc app bridge==&lt;br /&gt;
&lt;br /&gt;
Utility that enables the Humax HDR-Fox T2 to be controlled by the  TV Remote App. (supplied by Humax) that runs on the I-Phone, the same App. is also available on the Android platform, however version HMARG 1.0.4 does not appear to work with this package&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* This package requires Content Share to be enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Real Time Scheduling (RTS)==&lt;br /&gt;
&lt;br /&gt;
When the Custom Firmware was developed, Scheduled events created in the Web-If or Via Remote Scheduling were placed into a pending queue and only moved into the main schedule on the next boot or reboot, In Web-If version 1.3.2-1 and later, it is possible to automatically progress from the &amp;#039;Pending&amp;#039; stage directly to a fully scheduled stage without the Humax having to perform a boot cycle. This option can be enabled / disabled with the :- Settings &amp;gt;&amp;gt; Advanced Settings &amp;gt;&amp;gt; Real Time Scheduling Yes / No option&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Redring ==&lt;br /&gt;
&lt;br /&gt;
Causes the Humax to display a Red LED ring when recording in standby, plus various other front panel options detailed in the table below. The new settings are configurable using the Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Redring Settings&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;GENERAL SETTINGS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! width=&amp;quot;250&amp;quot;| Humax Status &lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Humax Default&lt;br /&gt;
! width=&amp;quot;150&amp;quot;|With Redring&lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Redring Setting&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Purple When dual Recording&lt;br /&gt;
! 11% Amber&lt;br /&gt;
! bgcolor=#ffbbbb | Purple&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Enable Debugging Log&lt;br /&gt;
! N/A&lt;br /&gt;
! bgcolor=#ffbbbb | Debug&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;WHEN FULLY AWAKE i.e. TV Display = On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Humax Status &lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Humax Default&lt;br /&gt;
! width=&amp;quot;150&amp;quot;|With Redring&lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Redring Setting&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Disable Screen Scrolling&lt;br /&gt;
! Scrolling On&lt;br /&gt;
! bgcolor=#ffbbbb | Scrolling Off&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Enable Clock&lt;br /&gt;
! Clock Off&lt;br /&gt;
! bgcolor=#ffbbbb | Clock On&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Elapsed Time During Playback&lt;br /&gt;
! N/A&lt;br /&gt;
! bgcolor=#ffbbbb | Elapsed Time&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Play HH:MM Instead of Clock&lt;br /&gt;
! N/A&lt;br /&gt;
! bgcolor=#ffbbbb | HH:MM&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override LED Ring Brightness&lt;br /&gt;
Blue Brightness&lt;br /&gt;
&lt;br /&gt;
Red Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
100% &amp;gt; 50%&lt;br /&gt;
&lt;br /&gt;
after 3 Mins.&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Variable&lt;br /&gt;
&lt;br /&gt;
Variable&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
&lt;br /&gt;
0% to 100%&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override Display Brightness&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
Fixed&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Variable&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override Playback Display Brightness&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
Fixed&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Variable&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;WHEN HALF AWAKE i.e. Waiting / Recording from standby or OTA Search&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Humax Status &lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Humax Default&lt;br /&gt;
! width=&amp;quot;150&amp;quot;|With Redring&lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Redring Setting&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Blue LED Ring&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
11% Amber&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Blue&lt;br /&gt;
Variable&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off&lt;br /&gt;
10% to 100% &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Red LED Ring (Recording)&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
11% Amber&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Red&lt;br /&gt;
Variable&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off&lt;br /&gt;
10% to 100%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;WHEN IN STANDBY i.e. Hard Disk Not Spinning&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Humax Status &lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Humax Default&lt;br /&gt;
! width=&amp;quot;150&amp;quot;|With Redring&lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Redring Setting&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override LED Ring Brightness&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
11% Amber&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Amber Brightness&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override Display Brightness&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
11%&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Variable&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ffbbbb; background:#FFbbbb&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#ffffff;&amp;quot;&amp;gt; ** &amp;lt;/span&amp;gt; = Change from Humax default&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Redring can cause slight delay of Remote Control key presses, e.g. Pause etc.&lt;br /&gt;
*Problems writing to the /mod/tmp/redring.log will be listed in the /var/log/humaxtv.log after diagnostics &amp;gt;&amp;gt; debugtv is run&lt;br /&gt;
&lt;br /&gt;
==Renumber==&lt;br /&gt;
[[File:renumber.png|200px|thumb|right]]&lt;br /&gt;
Channel re-numbering support, for each channel that you wish to change, enter a new number into the box and save changes. Next time you reboot your Humax, the channel numbers will change around. If you ever rescan the channels on your box then the next time you reboot they will be automatically changed to match your saved preference. Once installed, a new option will be shown in the Web Interface Settings screen, probably near the bottom.&lt;br /&gt;
&lt;br /&gt;
Renumbering channels is useful for people who want to swap the high-definitions services with their standard-definition counterparts, e.g. swap BBC ONE for BBC ONE HD putting BBC ONE HD on channel 1, and can also be used to re-order channels (e.g. move BBC HD to channel 8) to be closer to the start of the EPG. Of course another way to achieve this is to use the standard favourites feature in the Humax software to define your own list of channels and order them to suit.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*The renumber settings appears under the &amp;quot;reorder&amp;quot; section of the settings page on the Web-If&lt;br /&gt;
*The [[Custom_Firmware_Package_Notes#Tunefix | &amp;#039;&amp;#039;&amp;#039;Tune Fix&amp;#039;&amp;#039;&amp;#039;]] package has replaced the Renumber package&lt;br /&gt;
&lt;br /&gt;
==Reset Webif==&lt;br /&gt;
&lt;br /&gt;
Reset Webif will clear out all of the custom firmware packages and files without affecting your recordings or scheduled recordings. It is designed to be executable by booting from a Flash USB device loaded with the Reset Webif utility and is useful when the &amp;#039;Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; Remove All Custom Firmware packages and settings&amp;#039; is not available, Wait for the light to stop flashing then remove the disk and reboot the Humax (using the remote control). If you point a web browser at the Humax then you&amp;#039;ll be back at the initial installation interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remote Scheduling (RS)==&lt;br /&gt;
&lt;br /&gt;
Remote Scheduling Service. Links your device to the remote scheduling portal so you can manage your scheduled recordings list from anywhere with an Internet connection and web browser&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Remote_Scheduling | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remote Scheduling Auto==&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Remote_Scheduling_Auto | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remote Scheduling Muti-Mode==&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Multi-mode_Recording#Multi-Mode_Recording_Via_RS_Portal | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remote Scheduling Mobile==&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Remote_Scheduling_Mobile_Edition#Multi-Mode_Recording_Via_RS_Portal | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==rs==&lt;br /&gt;
&lt;br /&gt;
Command line tool that carries out a number of functions relating to the Remote Scheduling service, e.g. :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# rs&lt;br /&gt;
Humax Remote Scheduling Tool v1.3.1, by af123, 2011-2015.&lt;br /&gt;
&lt;br /&gt;
Syntax: rs [options] &amp;lt;command&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
  Options:&lt;br /&gt;
    -d[level]              Set debug level.&lt;br /&gt;
    -D&amp;lt;seconds&amp;gt;            Sleep for random(seconds).&lt;br /&gt;
    -h                     Show help text.&lt;br /&gt;
    -i                     Show detected machine info.&lt;br /&gt;
    -q                     Be more quiet.&lt;br /&gt;
&lt;br /&gt;
  Commands:&lt;br /&gt;
    register &amp;lt;email&amp;gt;       Register this device.&lt;br /&gt;
    push                   Push scheduled events.&lt;br /&gt;
    cmd                    Retrieve next queued command.&lt;br /&gt;
    ack &amp;lt;id&amp;gt;               Acknowledge command &amp;lt;id&amp;gt;.&lt;br /&gt;
    status                 Show device registration status.&lt;br /&gt;
    log &amp;lt;msg&amp;gt;              Send log message to server.&lt;br /&gt;
    epg                    Distributed EPG management.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rs time==&lt;br /&gt;
&lt;br /&gt;
Command line utility that returns a number in seconds, that indicates the time offset between your Humax unit and the Remote Servers time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RMA==&lt;br /&gt;
&lt;br /&gt;
The Return to MAnufacturer Web-If option under [[Diagnostic_Utilities  |&amp;#039;&amp;#039;&amp;#039;Diagnostics&amp;#039;&amp;#039;&amp;#039;]] removes Custom Firmware files from the internal hard disk drive of the HDR Fox T2, following an RMA the user should re-install a version of official Humax Software to complete the &amp;#039;Out of the Box&amp;#039; status of the Humax&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* After running the procedure, &amp;#039;RMA&amp;#039; will be displayed in the front panel display, this message should be removed after the official Humax Software is installed, however if the message is still present, it is possible to remove it by running the [[#DeRMA | &amp;#039;&amp;#039;&amp;#039;DeRMA&amp;#039;&amp;#039;&amp;#039;]] USB package&lt;br /&gt;
* More options for removing the Custom Firmware are detailed in the [[Remove_Modified_Firmware | &amp;#039;&amp;#039;&amp;#039;Remove Modified Firmware&amp;#039;&amp;#039;&amp;#039;]] page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rsvsync==&lt;br /&gt;
&lt;br /&gt;
Boot-time reservation sync service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rsync==&lt;br /&gt;
&lt;br /&gt;
A fast, versatile, remote (and local) file-copying tool, example :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; rsync -avr --progress --delete --exclude &amp;#039;Tsr/&amp;#039; mnt/hd2/ root@synology ip::NetBackup &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[Custom_Firmware_Package_Notes#Cron|&amp;#039;&amp;#039;&amp;#039;cronjob&amp;#039;&amp;#039;&amp;#039;]] example would run at 01:05 each day, keeping the internal and external disks in sync - you just need to ensure the box is on at that time via a reminder or other mechanism.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; 5 1 * * * /mod/bin/rsync --archive --delete-after --log-file=/mod/tmp/rsync.log /media/My\ Video/ /media/drive1/Video/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Custom Firmware and Humax setup can be copied from an existing Humax to a new Humax by installing the rsync and dropbear packages on both units and then entering Maintenance Mode on the new Humax and sending the following two command lines :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; rsync -avr &amp;lt;ip address of old humax&amp;gt;:/var/lib/humaxtv/ /var/lib/humaxtv/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; rsync -avr &amp;lt;ip address of old humax&amp;gt;:/mnt/hd2/mod/ /mnt/hd2/mod/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://ss64.com/bash/rsync.html  &amp;#039;&amp;#039;&amp;#039;More Info.&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==rt3070==&lt;br /&gt;
&lt;br /&gt;
This package was a replacement wireless driver which allowed for a wider range of wireless dongle vendor types, it was removed from the packages list because version 1.0 is not compatible with the latest 1.03.XX versions of Custom firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Safe Mode==&lt;br /&gt;
&lt;br /&gt;
Safe Mode is a package loaded onto the Humax via USB in the same way as a software upgrade, it temporarily switches off most Custom Firmware components (apart from a small web server that allows you to get back out of safe more when you want), there is a package called enablesafemode.spk to turn this feature on and another called disablesafemode.spk to turn it back off, they are available frrom the [[Firmware_Downloads | &amp;#039;&amp;#039;&amp;#039;Firmware Download page&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; if you have altered the encryption keys on your humax that any recordings made in safe mode will be made using the standard encryption and won&amp;#039;t be, automatically, viewable when you return to normal mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Samba==&lt;br /&gt;
&lt;br /&gt;
Windows compatible file sharing. Allows access to the Humax file system from a computer on the same network. The file system is shared using Windows compatible sharing so can be access from Windows, MacOSX and most other operating systems. Samba operates using &amp;#039;Server Message Block&amp;#039; (SMB), also known as Common Internet File System (CIFS) protocols&lt;br /&gt;
&lt;br /&gt;
To map a network drive in windows :-&lt;br /&gt;
&lt;br /&gt;
#Click Start, click My Network Places, click Entire Network, and then double-click Microsoft Windows Network.&lt;br /&gt;
#Double-click the domain that you want to open.&lt;br /&gt;
#Double-click the computer that has the shared resource you want to map. All the shared resources for that computer automatically appear in the window.&lt;br /&gt;
#Right-click the shared drive or folder that you want to map, and then click Map Network Drive.&lt;br /&gt;
#Click the drive letter that you want to use, and then specify whether you want to reconnect every time that you log on to your computer.&lt;br /&gt;
#Note Network drives are mapped by using letters starting from the letter Z. This is the default drive letter for the first mapped drive you create. However, you can select another letter if you want to use a letter other than Z.&lt;br /&gt;
&lt;br /&gt;
Drive sizes can be incorrectly reported, to avoid this set path = /media/My Video in the /mod/etc/smb.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tips&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
#Ensure Samba is enabled in Web-If &amp;gt;&amp;gt; Service Management&lt;br /&gt;
#If the Windows &amp;#039;WORKGROUP&amp;#039; has been changed from default, edit file /mod/etc/smb.conf to match the new name&lt;br /&gt;
&lt;br /&gt;
==Schedchk==&lt;br /&gt;
 &lt;br /&gt;
Check scheduled recordings against EPG and reschedule, if possible, entries that don&amp;#039;t match the EPG &lt;br /&gt;
&lt;br /&gt;
See the [[Schedchk|user guide]] for further details&lt;br /&gt;
&lt;br /&gt;
==Scons==&lt;br /&gt;
&lt;br /&gt;
SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Screensaver==&lt;br /&gt;
&lt;br /&gt;
If you pause live TV for more than 3 Mins. you will see the current time displayed on the TV screen, This is a screensaver and is designed to prevent ‘burn-in’ on flat panel TVs. The digits are made up of a series of pictures that are stored on the Humax in this read only area :-  /opt/share/images/blue/821-4, It is possible to change these pictures to remove the screensaver completely (Black) or use a different font. After a new screensaver package is loaded, it will automatically become the new screensaver, you can select from installed screensaver plug-ins using the Web-If &amp;gt;&amp;gt; Settings screen&lt;br /&gt;
&lt;br /&gt;
When screensaver is first installed only ‘Humax default’ is present, this is the &amp;#039;flip Clock&amp;#039; default screensaver, If Black is installed then a completely Blank screen will be displayed. All screensaver plug-ins can be installed separately from the Web-If, e.g. the first screensaver Plug-in shown below is called screensaver-3X5, here is a list of plug-ins available :-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!3X5&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:3X5.png|200px]] &lt;br /&gt;
!Neon&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:neon.png|200px]]&lt;br /&gt;
!Avatar&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:avatar.png|200px]]  &lt;br /&gt;
|-&lt;br /&gt;
! 7Seg&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:7Seg.png|200px]]&lt;br /&gt;
! Neon-Blue&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:neon-blue.png|200px]]&lt;br /&gt;
!Wedge&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:Wedge.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
! Dot&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:Dot.png|200px]]&lt;br /&gt;
! Agen&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:Agen.png|200px]]&lt;br /&gt;
!Cursor&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:Cursor.png|200px]] &lt;br /&gt;
|-&lt;br /&gt;
! VFD&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:VFD.png|200px]]&lt;br /&gt;
! Glass-Blue&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:glass-b.png|200px]]&lt;br /&gt;
!Maze&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:Maze.png|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;screensaver-all&amp;#039;&amp;#039;&amp;#039; = Install all current screensavers from the package server&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; screensaver-random&amp;#039;&amp;#039;&amp;#039; = Randomly select from the list of installed screensavers&lt;br /&gt;
&lt;br /&gt;
Telnet selection of installed screensaver Plug-ins as follows e.g.:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# screensaver&lt;br /&gt;
   1: 3X5&lt;br /&gt;
   2: 7Seg&lt;br /&gt;
   3: Black&lt;br /&gt;
   4: Cursor&lt;br /&gt;
   5: Humax Default &lt;br /&gt;
   6: Neon&lt;br /&gt;
   7: Neon-Blue&lt;br /&gt;
   8: VFD&lt;br /&gt;
Choose option [1-8]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES:-&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
*The Humax will need to be placed into stand-by before the new screensaver will be displayed&lt;br /&gt;
*If screensaver-all is installed, it must be uninstalled before other screensaver plug-ins are uninstalled&lt;br /&gt;
*If any of the screensaver Plug-ins are uninstalled the display will default to Humax Default&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sed==&lt;br /&gt;
&lt;br /&gt;
GNU Stream Editor, A stream editor is used to perform basic text transformations on an input stream, application notes [http://www.gnu.org/software/sed/manual/sed.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;] or  [http://www.grymoire.com/Unix/Sed.html#uh-0 &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Series Filer==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The Series Filer package is no longer supported, the functions it carried out can be replicated by the [[sweeper | &amp;#039;&amp;#039;&amp;#039;Sweeper&amp;#039;&amp;#039;&amp;#039;]] package, the following notes have been retained for reference only.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This utility will re-locate series folders created at the top level of My Video to Selected Sub-Directories so that they can be grouped together. After a New series folder has been created by the Humax at the top level, Simply move this series folder to a Sub-directory that you have created e.g. move the Doctor Who series folder to a sub-folder called ‘His Video’. When the next instalment of Doctor Who is transmitted the Humax will create another Doctor Who folder at the top level again, However, If Series Files is running the new instalment will be moved to the ‘His Video / Doctor Who’ automatically. Program names will also be re-named (if possible) to give more detail of each episode&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE:-&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The early versions of Series Filer were not compatible with the Undelete package because the [deleted] directory was not handled correctly. Please DO-NOT run Series Filer versions before 0.2.2 with any version of the Undelete package, version 0.2.2 and above are safe to use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Service Control==&lt;br /&gt;
&lt;br /&gt;
A command line utility allowing easy control of installed services. Run the &amp;#039;service&amp;#039; command from the command line for help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From a Telnet command line prompt send the following :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; service &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# service&lt;br /&gt;
&lt;br /&gt;
Name                 Installed  Autostart  Running&lt;br /&gt;
----                 ---------  ---------  -------&lt;br /&gt;
mediatomb            No         No         No&lt;br /&gt;
dropbear             No         No         No&lt;br /&gt;
transmission         No         No         No&lt;br /&gt;
samba                No         No         No&lt;br /&gt;
cifs                 No         No         No&lt;br /&gt;
mongoose             Yes        Yes        Yes&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
        service start &amp;lt;service&amp;gt;&lt;br /&gt;
        service stop &amp;lt;service&amp;gt;&lt;br /&gt;
        service auto &amp;lt;service&amp;gt;          (toggles autostart) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sh (SHell)==&lt;br /&gt;
&lt;br /&gt;
Sh or Shell is a command line / scripting language built into Busybox that is roughly equivalent to the Windows DOS (Disk Operating System) utility. It is however a lot more powerful than DOS and is a true language&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sidecar==&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Sidecar Files&lt;br /&gt;
&lt;br /&gt;
Recreates sidecar files .hmt and .nts from a .ts source file.&lt;br /&gt;
&lt;br /&gt;
Command line options :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sidecar v2.5, a utility for the Humax HD/HDR Fox T2, by raydon (c) 2014-2018&lt;br /&gt;
Usage: sidecar [-options] &amp;lt;recording name minus .ts extension&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        -n : Create new .nts file&lt;br /&gt;
        -h : Create new or update existing .hmt file&lt;br /&gt;
        -x : Exclude Prog/PMT ID&amp;#039;s from .hmt file&lt;br /&gt;
        -c : &amp;lt;Channel number for .hmt file&amp;gt;&lt;br /&gt;
        -t : &amp;lt;Channel name for .hmt file&amp;gt;&lt;br /&gt;
        -p : Display progress bar&lt;br /&gt;
        -i : Display infomation&lt;br /&gt;
&lt;br /&gt;
Enclose recording or channel name in quotes if they contain spaces or special characters e.g. &amp;amp;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
humax#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The Sidecar package must be installed using the Web-If &amp;gt;&amp;gt; Main screen &amp;gt;&amp;gt; Package Management &amp;gt;&amp;gt; Available screen&lt;br /&gt;
# TS files must be decrypted before running Sidecar, If the TS is encrypted see note 5 below&lt;br /&gt;
#Source video not native to the HDR/HD Fox T2, or that has been processed using some third party application may not be compatible &lt;br /&gt;
#There are versions of sidecar complied for Linux and Windows platforms [[Customised_Firmware_-_Features_Available#Miscellaneous_Software_Utilities | &amp;#039;&amp;#039;&amp;#039;Here&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
# if the ts file is encrypted, the package will create dummy hmt and nts files to allow the file to be decrypted i.e :-&lt;br /&gt;
*Use Sidecar to create the dummy hmt and nts files&lt;br /&gt;
*Once indexed by the DLNA server, manually decrypt via &amp;#039;Opt+&amp;#039; menu in Web-If&lt;br /&gt;
*When the TS file is decrypted, simply run Sidecar again to create hmt and nts files providing full transport control. &lt;br /&gt;
*There is no need to delete the dummy hmt or nts files since sidecar will detect these, and replace them with valid files &lt;br /&gt;
*Sidecar can recreate valid hmt and nts file for both video and radio recordings&lt;br /&gt;
&lt;br /&gt;
==Smartmontools==&lt;br /&gt;
&lt;br /&gt;
This utility will report on the condition of the S.M.A.R.T.  hard disk drive, After installing the package enter the following command line using Telnet :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mod/bin/smartctl /dev/sdb -A &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mod/bin/smartctl /dev/sdb -a &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;for more details&lt;br /&gt;
&lt;br /&gt;
Documentation [http://sourceforge.net/apps/trac/smartmontools/wiki/TocDoc&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
humax# /mod/bin/smartctl /dev/sdb -A&lt;br /&gt;
smartctl 5.41 2011-06-09 r3365 [7405b0-smp-linux-2.6.18-7.1] (local build)&lt;br /&gt;
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
=== START OF READ SMART DATA SECTION ===&lt;br /&gt;
SMART Attributes Data Structure revision number: 10&lt;br /&gt;
Vendor Specific SMART Attributes with Thresholds:&lt;br /&gt;
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
  1 Raw_Read_Error_Rate     0x000f   114   099   006    Pre-fail  Always       -       66811863&lt;br /&gt;
  3 Spin_Up_Time            0x0003   097   097   000    Pre-fail  Always       -       0&lt;br /&gt;
  4 Start_Stop_Count        0x0032   098   098   020    Old_age   Always       -       2878&lt;br /&gt;
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0&lt;br /&gt;
  7 Seek_Error_Rate         0x000f   078   060   030    Pre-fail  Always       -       70502101&lt;br /&gt;
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       3294&lt;br /&gt;
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0&lt;br /&gt;
 12 Power_Cycle_Count       0x0032   099   099   020    Old_age   Always       -       1439&lt;br /&gt;
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0&lt;br /&gt;
187 Reported_Uncorrect      0x0032   097   097   000    Old_age   Always       -       3&lt;br /&gt;
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0&lt;br /&gt;
189 High_Fly_Writes         0x003a   093   093   000    Old_age   Always       -       7&lt;br /&gt;
190 Airflow_Temperature_Cel 0x0022   055   044   045    Old_age   Always   In_the_past 45 (0 109 45 32)&lt;br /&gt;
194 Temperature_Celsius     0x0022   045   056   000    Old_age   Always       -       45 (0 13 0 0)&lt;br /&gt;
195 Hardware_ECC_Recovered  0x001a   048   039   000    Old_age   Always       -       66811863&lt;br /&gt;
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0&lt;br /&gt;
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0&lt;br /&gt;
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE:- If an external Hard disk Drive is found on boot up the Internal Hard disk will be /dev/sdb, If no External Hard Disk drive is found at boot up the the internal Hard disk will be /dev/sda&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SQLite3==&lt;br /&gt;
&lt;br /&gt;
SQlite is a database file handler, e.g. files that typically end in *.db can be opened, edited etc. With readline support (arrow key editing and history)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRT==&lt;br /&gt;
&lt;br /&gt;
The Humax is able to play subtitles for MP4 and AVI files if the subtitle information is contained in an *.srt file, the following conditions must be met :-&lt;br /&gt;
&lt;br /&gt;
*The srt file must have the same title as the video file e.g. Fawlty-Towers-S1E3.srt for Fawlty-Towers-S1E3.avi&lt;br /&gt;
*The .srt file needs to be saved as a text file specifically with ANSI encoding to avoid using fonts that are licensed&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
1) Windows Notepad will produce a ANSI encoded srt file&lt;br /&gt;
&lt;br /&gt;
2) Saving  the .srt file with UTF-7 encoding is reported to be more compatible with the Humax&lt;br /&gt;
&lt;br /&gt;
3)A method for extracting SRT files from a Humax *.TS file has been documented on the Hummy.tv forum [http://hummy.tv/forum/threads/quick-guide-to-extract-dvb-subtitles-from-ts-hd-file-and-convert-to-srt-in-minutes.6625/  &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
==SSMTP==&lt;br /&gt;
&lt;br /&gt;
SSMTP is a program to deliver an E-mail from your Humax to a  mail host or mail hub, It will not handle incoming E-Mail&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
&lt;br /&gt;
A Command line (Telnet) command that shows what the Humax is (and will be) doing, e.g. :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# status&lt;br /&gt;
Recording Pretty Woman_20121201_2310&lt;br /&gt;
Watching 12: Dave - Would I Lie to You? (23:00 - 23:40) [7%]&lt;br /&gt;
Will record &amp;#039;The Omen&amp;#039; on Film4 at 23:15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note :- The same information is also displayed automatically on several Web-If screens e.g. The Main Screen and the Remote screen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Strace==&lt;br /&gt;
&lt;br /&gt;
Strace (System Trace) is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stripts==&lt;br /&gt;
This utility removes portions of a recording (*.TS File) that aren&amp;#039;t required and can account for up to 20% of its space, this process will remove freeview EIT packets from the recording, it also updates the associated .nts sidecar file on the fly so that the trick play functions still work on the resulting recording&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax TS Stripper Tool v1.4.2, by af123, 2012-18.&lt;br /&gt;
&lt;br /&gt;
Syntax: stripts [options] &amp;lt;input&amp;gt; [output]&lt;br /&gt;
    -a          Analyse an input file.&lt;br /&gt;
    -A          Quickly analyse an input file.&lt;br /&gt;
    -c          Check if there are any EIT packets.&lt;br /&gt;
    -C          Show address of first EIT packet.&lt;br /&gt;
    -D          Dump NTS file.&lt;br /&gt;
    -E          Check if file is encrypted.&lt;br /&gt;
    -f          Also fix PAT packets.&lt;br /&gt;
    -F          Only fix PAT packets.&lt;br /&gt;
    -T          Dump TS file.&lt;br /&gt;
    -v          Verbose.&lt;br /&gt;
    -X          Add bookmarks at programme start/end.&lt;br /&gt;
    -Z          Extract EPG data from recording (incomplete).&lt;br /&gt;
    -z          Analyse entire TS file.&lt;br /&gt;
    -@ &amp;lt;key&amp;gt;    Decrypt recording with &amp;lt;key&amp;gt;.&lt;br /&gt;
    -/ &amp;lt;key&amp;gt;    Check encryption key against recording.&lt;br /&gt;
    -d [level]  Increase debug level or set debug level.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; stripts -F filename&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Fix file &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; stripts -f filename&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= remove redundant EIT packets &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; stripts -v filename&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Verbose &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; stripts -S filename&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= demux the raw audio stream into a file-name.audio file&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Version 1.4.0 and above of strips also has a file decryption facility, this facility works on both Standard Definition and High Definition recordings and does not require Hi-Def recordings to have the &amp;#039;ENC&amp;#039; flag removed with the Auto-Unprotect package, it does not require a DLNA URL to be allocated or the DLNA server to be running on the Humax, here is an example of a command line decryption using  Stripts :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stripts -@@ &amp;lt;input&amp;gt; &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
stripts -@ 000378bd11f336333731303434393630 &amp;quot;input file name&amp;quot; &amp;quot;output file name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
stripts -/ 000378bd11f336333731303434393630 &amp;quot;input file name&amp;quot;&lt;br /&gt;
Encryption key is correct for this recording.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1) In the first example above -@@ automatically inserts the resident Humax encryption key&lt;br /&gt;
&lt;br /&gt;
2) The Second example above is used when the decryption is being carried out on a file recorded on a different Humax unit, this unit&amp;#039;s encryption key must be entered, e.g :- for a MAC address of 00-03-78-bd-11-f3 and a serial number of 6371044960-1234, enter 000378bd11f3 followed by the first 10 digits of the serial number in hexidecimal e.g. 36333731303434393630 &lt;br /&gt;
&lt;br /&gt;
3) The third example above uses -/ to Check the encryption key against a recording&lt;br /&gt;
&lt;br /&gt;
&amp;quot;input file name&amp;quot; and &amp;quot;output file name&amp;quot; are full *.ts file names, up to, but not including the .ts (Quotes are required for name with spaces)&lt;br /&gt;
&lt;br /&gt;
There are versions of stripts that can perform offline decryption on various computer platforms including :- Linux, MacOSX and Windows etc. [https://wiki.hummy.tv/wiki/Customised_Firmware_-_Features_Available#Miscellaneous_Software_Utilities  &amp;#039;&amp;#039;&amp;#039;See Link HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
==Swapper==&lt;br /&gt;
&lt;br /&gt;
Swapper is a utility to change the Humax&amp;#039;s swap file size to 128&lt;br /&gt;
&lt;br /&gt;
==Sweeper==&lt;br /&gt;
&lt;br /&gt;
Sweeper is a package which re-locates recordings under My Video and files them away automatically for you according to specified criteria, Sweeper can also replicate the Series Filer and flatten packages&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide to the Sweeper Graphical User Interface [[sweeper | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Command Line operation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Sweeper rules can also be generated manually by editting the /mod/etc/sweeper.conf file, available from Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; File editor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; action {move &amp;quot;archive/miscellaneous&amp;quot;}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move all single files into a folder called  archive/miscellaneous (which must exist)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; action {movecreate &amp;quot;archive/miscellaneous&amp;quot;}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move all single files into a folder called  archive/miscellaneous (folder will be created)&lt;br /&gt;
&lt;br /&gt;
Example 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} action {move Children/Miscellaneous}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move single files from channels 70 - 79 to Children/Miscellaneous folder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; action {move _misc}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move all remaining single files into a folder called  _misc &lt;br /&gt;
&lt;br /&gt;
Example 3)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; action {movecreate(Test-%genre-%definition-%title-%channel-%lcn-%duration-%timestamp)}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Expanded to Test-Entertainment-SD-Tim Minchin and the Heritage...-Channel 4-4-87-20130824233802]&lt;br /&gt;
&lt;br /&gt;
Example 4)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; folder title {Octonauts} action {move &amp;quot;Children/Octonauts/Series 3&amp;quot;}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move the contents of a series created folder to an existing sub folder e.g. from /Octonauts to /Children/Octonauts/Series 3&lt;br /&gt;
&lt;br /&gt;
Example 5)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; folder action {fileunder &amp;quot;&amp;quot;}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= emulates the old seriesfiler package&lt;br /&gt;
&lt;br /&gt;
Example 6)&lt;br /&gt;
&lt;br /&gt;
Notes :-&lt;br /&gt;
*lines starting with &amp;#039;#&amp;#039; are comments&lt;br /&gt;
*A full list of commands are detailed in the Sweeper Guide [[sweeper | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sweep single Big Bang episodes into the series folder&lt;br /&gt;
lcn 4 title &amp;quot;Big Bang&amp;quot; action {move &amp;quot;The Big Bang Theory&amp;quot;}&lt;br /&gt;
# Move anything recorded from a children&amp;#039;s channel to the Miscellaneous folder&lt;br /&gt;
lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} duration {&amp;gt;= 90} lock 1 action {move Children/Films}&lt;br /&gt;
lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} genre Film lock 1 action {move Children/Films}&lt;br /&gt;
lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} action {move Children/Miscellaneous}&lt;br /&gt;
folder title {Octonauts} action {move &amp;quot;Children/Octonauts/Series 3&amp;quot;}&lt;br /&gt;
folder lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} action {fileundercreate Children}&lt;br /&gt;
title {Formula 1} action {move F1}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Subtitles==&lt;br /&gt;
[[Custom_Firmware_Package_Notes#SRT | &amp;#039;&amp;#039;&amp;#039;See SRT&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Swifi==&lt;br /&gt;
&lt;br /&gt;
A utility that can retrieve and display your current Wi-fi configuration, it&amp;#039;s location is :- /sbin/swifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sysmon==&lt;br /&gt;
[[File:HDD-Temp.png|right|150px]]&lt;br /&gt;
[[File:CPU.png|right|150px]]&lt;br /&gt;
[[File:network.png|right|150px]]&lt;br /&gt;
A System Monitoring Utility, the Web-If main page has a System Monitoring icon, selecting this icon displays the following options :-&lt;br /&gt;
&lt;br /&gt;
*Hard Disk Temperature&lt;br /&gt;
&lt;br /&gt;
Displays a graph showing the hard disk temperature, This feature uses the [[Custom_Firmware_Package_Notes#Smartmontools | &amp;#039;&amp;#039;&amp;#039;Smartmontools&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
package, options are to display last 2 / 5 hours or 1 / 10 / 30 Days. All graphs have a zoom feature which is implemented with a mouse &amp;#039;click / drag&amp;#039; or a touchscreen &amp;#039;pinch / expand&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*CPU Utilisation&lt;br /&gt;
&lt;br /&gt;
Displays a graph showing CPU Utilisation for Idle, Wait, User and System, options are to display last 2 / 5 hours or 1 / 10 / 30 Days&lt;br /&gt;
&lt;br /&gt;
*Network Utilisation&lt;br /&gt;
&lt;br /&gt;
Displays a graph showing Network Utilisation for Inbound, Outbound, In-Errors and Out-Errors, options are to display last 2 / 5 hours or 1 / 10 / 30 Days&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The data used to build the graphs is held in file /mod/monitor/monitor.db, currently the tables include :-&lt;br /&gt;
#SMART = Hard disk sector relocation information (Not currently displayed as a graph)&lt;br /&gt;
#Temp = the Hard Disk Temperature information&lt;br /&gt;
#Vmstat = CPU Utilisation data for Idle, Wait, User, System&lt;br /&gt;
#Net = Network Utilisation for Inbound, Outbound, In-Errors and Out-Errors&lt;br /&gt;
#State = state (Not currently displayed as a graph)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; You can reset the database with Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; sysmon/purge &amp;gt;&amp;gt; Run Diagnostic&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Flush==&lt;br /&gt;
&lt;br /&gt;
The System Flush Update File is a package that is installed in the same way as a firmware update to perform a full system flush and reset, it reformats the areas of flash used for persistent data like the schedule, there are two of these flash areas and they use the JFFS2 filesystem.&lt;br /&gt;
&lt;br /&gt;
The package is designed to assist recovery from crash/reboot loops.Your recordings will not be affected.&amp;#039;NB: This will also clear most CFW package settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TCL Check==&lt;br /&gt;
&lt;br /&gt;
Utilities for syntax checking TCL (or Jim) files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tcpfix==&lt;br /&gt;
&lt;br /&gt;
This package Modifys the TCP stack to fix download problems that appears to be related to RFC1323 TCP window scaling in the Linux 2.6.18 kernel that the Humax uses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TCP Ping==&lt;br /&gt;
&lt;br /&gt;
Simple TCP ping utility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Telnet==&lt;br /&gt;
&lt;br /&gt;
Telnet is built into the default Custom Firmware package, To communicate Via Telnet from a P.C. you will need a program such as [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html &amp;#039;&amp;#039;&amp;#039;PuTTY&amp;#039;&amp;#039;&amp;#039;], Select connection type Telnet and enter the IP address of your Humax into the Host Name box, Then select OPEN, You will be presented with a new Telnet Window and if connection is successful you will  see the humax# prompt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to use Telnet supplied in some versions Microsoft Windows e.g. Start &amp;gt;&amp;gt; Run &amp;gt;&amp;gt; CMD &amp;gt;&amp;gt; Telnet&lt;br /&gt;
&lt;br /&gt;
See &amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; RED &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039; set-up notes below, to prevent errors when entering text&lt;br /&gt;
&lt;br /&gt;
Telnet is available in Windows XP, However Vista and Windows 7 will require Telnet to be enabled with Control Panel &amp;gt;&amp;gt; Programs and Features &amp;gt;&amp;gt; Turn Windows Features On / Off &amp;gt;&amp;gt; &amp;#039;Tick&amp;#039; Telnet&lt;br /&gt;
&lt;br /&gt;
Follow [[Telnet |&amp;#039;&amp;#039;&amp;#039;THIS LINK&amp;#039;&amp;#039;&amp;#039;]] for more details on the various ways of obtaining a Telnet connection&lt;br /&gt;
&lt;br /&gt;
Here is an example of Windows XP Telnet for &amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; ls -al &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; telnet&lt;br /&gt;
&lt;br /&gt;
Welcome to Microsoft Telnet Client  Escape Character is &amp;#039;CTRL + ]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 open 10.0.0.200&lt;br /&gt;
&lt;br /&gt;
humax# ls -al&lt;br /&gt;
total 17&lt;br /&gt;
drwxr-xr-x 18 root root  192 Jan 10 09:10 .&lt;br /&gt;
drwxr-xr-x 18 root root  192 Jan 10 09:10 ..&lt;br /&gt;
drwxr-xr-x  2 root root  474 Jan 10 09:10 bin&lt;br /&gt;
.......&lt;br /&gt;
drwxr-xr-x  4 root root   88 Jan 10 09:10 var&lt;br /&gt;
humax#&lt;br /&gt;
&lt;br /&gt;
to exit from humax# enter Ctrl + d&lt;br /&gt;
&lt;br /&gt;
Microsoft Telnet &amp;gt;&lt;br /&gt;
to exit from Telnet enter q&lt;br /&gt;
C:\&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
*Telnet command lines on this WiKi are identified by a &amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; Yellow Background &amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; [Putty] Telnet &amp;gt;&amp;gt; Connection &amp;gt;&amp;gt; Telnet &amp;gt;&amp;gt; return Key sends Telnet New Line instead of ^M should be &amp;#039;un-Ticked&amp;#039; &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; [Windows] Telnet &amp;gt;&amp;gt; unset crlf &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*The Humax has a Built-In Telnet Welcome Screen, See [[Custom_Firmware_Package_Notes#Tmenu | &amp;#039;&amp;#039;&amp;#039;Tmenu&amp;#039;&amp;#039;&amp;#039;]] for details&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Telnet Commands==&lt;br /&gt;
&lt;br /&gt;
The majority of Unix / Linux command line keywords can be used on the Humax, if you are not familiar with them, there are a few of the more basic commands and their meanings here :-&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; cd &amp;lt;/span&amp;gt; = change directory, used to navigate around the file structure&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; cd &amp;quot;/media/My Video&amp;quot;  &amp;lt;/span&amp;gt; = navigate to the top level of My Video&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; pwd &amp;lt;/span&amp;gt; = print working directory, tells you where you are in the file structure&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; ls -al &amp;lt;/span&amp;gt; = list contents of the current directory&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; touch  &amp;quot;/media/My Video/dummy.ts&amp;quot; &amp;lt;/span&amp;gt; = create an empty file called dummy.ts in the My Video directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tempmon==&lt;br /&gt;
&lt;br /&gt;
This package checks the HDD temperature every three minutes and will raise a warning if a configurable thresholds is exceeded, the warning is displayed on the HDR-Fox T2&amp;#039;s front panel and the centre &amp;#039;button&amp;#039; flashes. The Setting &amp;gt;&amp;gt; Tempmon page shows the current Hard Disk temperature and has defaults as follows :- Alert If = 50, Attempt to go into standby if = 60 and Immediate power off If = 70 Deg C&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; If the Fan package is not installed the normal Humax routine will turn the fan on at 56 Deg C, so it is suggested that &amp;#039;Alert If&amp;#039; should be set to 60 Deg C and the other two parameters are set to 65 and 70 Deg C&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Text Editors==&lt;br /&gt;
&lt;br /&gt;
There is a built-in GUI Text editor in the Web-If (details [[Custom_Firmware_Package_Notes#File Editor |&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]). In addition to this editor, There is a basic version of [[Custom_Firmware_Package_Notes#Vi |&amp;#039;&amp;#039;&amp;#039;Vi&amp;#039;&amp;#039;&amp;#039;]] built into the custom [[Custom_Firmware_Package_Notes#BusyBox |&amp;#039;&amp;#039;&amp;#039;Busybox&amp;#039;&amp;#039;&amp;#039;]] package (not in the Busybox version included in the vendor&amp;#039;s firmware).  There are also several packages that can be installed to suit your editing preferences e.g. [[Custom_Firmware_Package_Notes#Vim_Basic |&amp;#039;&amp;#039;&amp;#039;Vim Basic&amp;#039;&amp;#039;&amp;#039;]], [[Custom_Firmware_Package_Notes#Vim_Standard | &amp;#039;&amp;#039;&amp;#039;Vim Standard&amp;#039;&amp;#039;&amp;#039;]], [[Custom_Firmware_Package_Notes#Joe | &amp;#039;&amp;#039;&amp;#039;Joe&amp;#039;&amp;#039;&amp;#039;]] and [[Custom_Firmware_Package_Notes#Nano | &amp;#039;&amp;#039;&amp;#039;Nano&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
If you&amp;#039;ve only installed the basic custom firmware (using the upgrade path with USB), then there&amp;#039;s &lt;br /&gt;
[[Custom_Firmware_Package_Notes#Sed | &amp;#039;&amp;#039;&amp;#039;sed&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tmenu==&lt;br /&gt;
&lt;br /&gt;
This built-in package adds a menu to the Telnet Login screen Menu&lt;br /&gt;
&lt;br /&gt;
Enter 0000 for system PIN. Note:- this is the default&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Menu Version 1.13&lt;br /&gt;
Enter System PIN :&lt;br /&gt;
&lt;br /&gt;
      /-------------------------\&lt;br /&gt;
      |  T E L N E T   M E N U  |&lt;br /&gt;
      \-------------------------/&lt;br /&gt;
&lt;br /&gt;
  [ Humax HDR-Fox T2 (humax) 1.03.12/3.03 ] or [Humax HD-Fox T2 (humaxhd) 1.02.29/2.15]&lt;br /&gt;
&lt;br /&gt;
    1 - Restart into maintenance mode.&lt;br /&gt;
    2 - Remove web interface password.&lt;br /&gt;
 stat - Show what the box is currently doing.&lt;br /&gt;
    x - Exit and close connection.&lt;br /&gt;
 rset - Reset custom firmware environment.&lt;br /&gt;
 srma - Set return-to-manufacturer (RMA) mode.&lt;br /&gt;
 diag - Run a diagnostic.&lt;br /&gt;
  cli - System command line (advanced users).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please select option:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE :- It is possible to skip the above Menu and go directly to the Command Line Interface by selecting Expert mode telnet server = On in the Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Advanced Settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tnftp==&lt;br /&gt;
&lt;br /&gt;
The Humax HDR has a built-in FTP Server for transfer of files from Humax to a remote client and an improved FTP Server called [[Custom_Firmware_Package_Notes#Betaftpd|&amp;#039;&amp;#039;&amp;#039;Betaftpd&amp;#039;&amp;#039;&amp;#039;]] to replace it in the HDR, and to add it to the HD, the Tnftp package provides an FTP Client for file transfer from a remote FTP server to the Humax&lt;br /&gt;
&lt;br /&gt;
tnftp is a port of the NetBSD FTP client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transmission (Bit Torrent)==&lt;br /&gt;
&lt;br /&gt;
The Transmission program will download files from the internet using the a torrent protocol, Downloads using this system are usually fed from multiple sites at the same time in parallel, Because of this many URL’s may be used in the download process, These URLs are packaged together into a single *.torrent file, Transmission re-constructs fragments of the file/s from these various URLs into their original format.&lt;br /&gt;
&lt;br /&gt;
Transmission needs to be supplied with the *.Torrent file, it does not have a Torrent file search facility, one possible torrent source is torrentz.eu, download your selected *.Torrent file to the P.C. you run the Web-iF from&lt;br /&gt;
&lt;br /&gt;
For command line access enter :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; transmission-remote &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/mod/etc/transmission/settings.json contains settings such as default = speed-limit mode, this can be changed to fast downloading etc. settings info. [https://trac.transmissionbt.com/wiki/EditConfigFiles &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Go into service control and start Transmission&lt;br /&gt;
*Set it to auto start if you want it to come on whenever the box is on&lt;br /&gt;
*Go to the Web-If main menu and click the transmission icon at the bottom left&lt;br /&gt;
*Select &amp;#039;Open&amp;#039; (the folder at the top left)&lt;br /&gt;
*Select browse in the window and highlight the previously downloaded *.torrent file&lt;br /&gt;
*When highlighted select &amp;#039;Open&amp;#039;&lt;br /&gt;
*Select &amp;#039;Upload&amp;#039;&lt;br /&gt;
*If the &amp;#039;Start when added&amp;#039; box is checked the download will start immediately&lt;br /&gt;
* A new directory will be created at /media/ My Video/torrent/ containing successful downloads&lt;br /&gt;
&lt;br /&gt;
===Blocklist===&lt;br /&gt;
&lt;br /&gt;
The torrent system is a &amp;#039;two-way&amp;#039; process which can allow other users to access your downloaded files, this access can cause a security risk and it is suggested that a block list is set up to prevent this, the Block list contains a set of IP address&amp;#039;s not allowed access.&lt;br /&gt;
&lt;br /&gt;
To create or add to a blocklist go to Transmission &amp;gt;&amp;gt; Preferences (Bottom left &amp;#039;Spanner&amp;#039;) &amp;gt;&amp;gt; Peers &amp;gt;&amp;gt; Blocklist and Enable Blocklist, then go to a block list site such as http://www.iblocklist.com/lists.php and copy an Update URL e.g. http://list.iblocklist.com/?list=bt_level1&amp;amp;fileformat=p2p&amp;amp;archiveformat=gz from there to the Block list URL box and click on Update, This process can be repeated to build up bigger lists&lt;br /&gt;
&lt;br /&gt;
It is also possible to place *.txt files containing blocklists into the /mod/etc/transmission/blocklists folder, these files must be smaller than 5Mbs, They will be processed by the Transmission program when first run and *.bin files will be  created in the same folder, if the files are successfully processed an indication of the number of ‘Blocked’ URL will be displayed e.g. Block List Has 598940 Rules&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*When the block lists are initially being converted into *.bin files, transmission uses an excessive amount of CPU time, this could cause errors in recording, so it is suggested that this is done when the Humax is idle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trm==&lt;br /&gt;
&lt;br /&gt;
Trm is a version of the Unix rm command (ReMove), This version removes files in blocks using Truncate (hence Truncate ReMove) rather than all at once, In order to reduce demand on system resources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TSTools==&lt;br /&gt;
&lt;br /&gt;
A set of tools for manipulating TS files, they include :-&lt;br /&gt;
[[File:Tstools.jpg|left|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TTYSnoop==&lt;br /&gt;
&lt;br /&gt;
TTYSnoop allows you to snoop on login tty&amp;#039;s through another tty-device or pseudo-tty. The snoop-tty becomes a &amp;#039;clone&amp;#039; of the original tty, redirecting both input and output from/to it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tunefix==&lt;br /&gt;
[[File:tunefix.png|right]]&lt;br /&gt;
Tunefix restores a user&amp;#039;s settings after a retune has been run, the 5 Keywords are :-&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;REGION&amp;#039;&amp;#039;&amp;#039; to be used (channels from other regions will be removed)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;LCN&amp;#039;&amp;#039;&amp;#039; (s) by number and/or range will be removed&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;NAME&amp;#039;&amp;#039;&amp;#039; services by name will be removed&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MUX&amp;#039;&amp;#039;&amp;#039; (s) (all channels from these MUXs will be removed)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;FORCE&amp;#039;&amp;#039;&amp;#039; named services to the correct LCN&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; Multiple Regions, LCNs, MUXs are separated by commas&lt;br /&gt;
&lt;br /&gt;
==Tunefix Update==&lt;br /&gt;
&lt;br /&gt;
Automatic channel deletion and fixing after a retune.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TV Diary==&lt;br /&gt;
&lt;br /&gt;
tvdiary is an add-on to the web interface. It tracks the TV programs you record and watch, and presents a diary view through the web interface, See Full Guide[[ TV_Diary | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Uinput==&lt;br /&gt;
&lt;br /&gt;
User-space input kernel module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unencrypt==&lt;br /&gt;
&lt;br /&gt;
New Note:- This package is no longer supported, with the addition to the Web-If of [[Custom_Firmware_Package_Notes#Enable_Auto-Dedup|&amp;#039;&amp;#039;&amp;#039;auto-decrypt&amp;#039;&amp;#039;&amp;#039;]] and [[Custom_Firmware_Package_Notes#Enable_Recursive_Auto-Decrypt|&amp;#039;&amp;#039;&amp;#039;recursive auto-decrypt&amp;#039;&amp;#039;&amp;#039;]] these new functions are recommended in place of Unencrypt due to them being more robust and having more sanity checks&lt;br /&gt;
&lt;br /&gt;
The function will unencrypt all files in a designated directory (or all files in My Video) automatically, Files are decrypted at the same location e.g. &amp;#039;decrypt in place&amp;#039; and are processed at the rate of one file every 30 Mins. max. so don&amp;#039;t expect instant results&lt;br /&gt;
&lt;br /&gt;
To setup Unencrypt install the package and then via [[Custom_Firmware_Package_Notes#Telnet|&amp;#039;&amp;#039;&amp;#039;Telnet&amp;#039;&amp;#039;&amp;#039;]] enter one of the lines below :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; unencryptsetup &amp;quot;Bob&amp;#039;s Videos&amp;quot; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;process a single directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; unencryptsetup &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;process all files in &amp;#039;My Video&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; unencryptsetup disable&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;Turn off unencrypt&lt;br /&gt;
&lt;br /&gt;
This will update the cron table and schedule the program to run every 30 minutes (at Mins 01 and 31) indefinitely. Every time it runs, it will check that there isn&amp;#039;t already another job running and then decrypt the first encrypted file that it finds in the directory you specified, therefore gradually working its way through your files, If you don&amp;#039;t specify a directory, it will default to decrypting all of your recordings.&lt;br /&gt;
&lt;br /&gt;
NOTES:-&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;Due to CPU overloading this feature only works between 1AM and 6AM the Humax must be out of standby during this time using an Auto On / Auto off timer&amp;#039;&amp;#039;&amp;#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*It is possible to change when Unencrypt runs by editing the cron job that controls it, Via the Web-If goto Diagnostics &amp;gt;&amp;gt; File Editor &amp;gt;&amp;gt; Open &amp;gt;&amp;gt; /mod/var/spool/cron/crontabs/ and replace 1-6 with a * to force an Unecrypt start every 30 Mins. that the Humax is out of stand-by&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1,31 * * * * /mod/sbin/unencrypt &amp;quot;/mnt/hd2/My Video/archive&amp;quot; &amp;gt; /mod/tmp/unencrypt.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Auto-Unprotect must be running&lt;br /&gt;
*[[Custom_Firmware_Package_Notes#Content_Sharing |&amp;#039;&amp;#039;&amp;#039;Content sharing&amp;#039;&amp;#039;&amp;#039;]] must = on e.g. Menu &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings&lt;br /&gt;
&lt;br /&gt;
See Decryption flow chart [[Encryption | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Undelete==&lt;br /&gt;
&lt;br /&gt;
Redirects deleted recordings to a dustbin folder called [Deleted Items] and then automatically removes them from this new folder 7 days later, The Folder Name and delay before deletion is carried out (1 to 30 days) is configurable in the Web-If Setting area. It&amp;#039;s a batch process which runs once per day. It runs 6 minutes after the first boot of the day or, if you keep your box on all the time, at 2am.&lt;br /&gt;
It scans the bin and removes anything that was put there over x * 24 hours ago, Where x = no. of days (strictly, anything that was last modified over x * 24 hours ago)&lt;br /&gt;
&lt;br /&gt;
Settings can be changed in :- Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Undelete Settings, e.g. :-&lt;br /&gt;
&lt;br /&gt;
*Dustbin Name&lt;br /&gt;
*Remove files from dustbin after 1,2,3,4,5,6,7,10,15,20 days&lt;br /&gt;
*Reduce retention time to 0 days if disk space &amp;lt; 10GiB (configurable)&lt;br /&gt;
&lt;br /&gt;
A Log records delete activity at /mod/tmp/empty_dustbin.log&lt;br /&gt;
&lt;br /&gt;
Setting are contained in /mod/webif/plugin/undelete/user.conf&lt;br /&gt;
&lt;br /&gt;
==Version==&lt;br /&gt;
&lt;br /&gt;
Command line (Via Telnet) utility to display various Web-If version numbers, e.g. :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# version&lt;br /&gt;
&lt;br /&gt;
Humax HDR Fox T2 (humax)&lt;br /&gt;
  Humax Version: 1.03.12 (kernel HDR_CFW_3.00)&lt;br /&gt;
  Custom firmware version: 3.00 (build 2137)&lt;br /&gt;
  Web interface version: 1.2.1&lt;br /&gt;
  Serial Number: 12 3456789 12345&lt;br /&gt;
&lt;br /&gt;
humax#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vfdtest==&lt;br /&gt;
[[File:front-icons2.png|right|200px]]&lt;br /&gt;
&lt;br /&gt;
This utility turns on all segments of the Humax front display (Vacuum Fluorescent Display)&lt;br /&gt;
&lt;br /&gt;
Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; Run Diagnostic &amp;gt;&amp;gt; vfdtest (available in pull down menu). This will force the display to set all segments to &amp;#039;on&amp;#039; for 30 seconds, followed by all segments off&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE:- &amp;#039;&amp;#039;&amp;#039; normal display will return after the Humax is placed in standby&lt;br /&gt;
&lt;br /&gt;
Command Line Version :- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; vfdtest on &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;Set Display to All segments On&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; vfdtest off &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;Set Display to All Segments off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vi==&lt;br /&gt;
&lt;br /&gt;
Text Editor, See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]]. A basic version of Vi is built into the custom [[Custom_Firmware_Package_Notes#BusyBox |&amp;#039;&amp;#039;&amp;#039;Busybox&amp;#039;&amp;#039;&amp;#039;]]  package (it&amp;#039;s not included in the version of Busybox in the vendor&amp;#039;s firmware).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vim Basic==&lt;br /&gt;
&lt;br /&gt;
Text Editor, See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vim Standard==&lt;br /&gt;
&lt;br /&gt;
Text Editor, See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual-Disk==&lt;br /&gt;
&lt;br /&gt;
One way to decrypt content which has been recorded by the Humax is to copy to an external disk, This is usually a slow process as the&lt;br /&gt;
external disk must be connected via one of the USB ports. This package creates a virtual disk on the system to which content can&lt;br /&gt;
be copied. It is much faster since it is based on the internal hard disk. The virtual disk is shared by the MediaTomb package by default, giving a&lt;br /&gt;
fairly straightforward method of sharing recorded content on the network. In conjunction with the &amp;#039;auto-unprotect&amp;#039; package, high definition content can also be shared. Any copy to Virtual Disk MUST be by Remote Control OPT+ copy for decryption to take place&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:- For new installations, Virtual-Disk2 is now recommended in place of this package&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual-Disk2==&lt;br /&gt;
&lt;br /&gt;
The original Virtual-Disk package (See Above) required a physical USB drive to be in place before the virtual drive could be seen, this new version removes this requirement by creating a drive called &amp;#039;Virtual-USB&amp;#039;, as with a &amp;#039;real&amp;#039; USB drive, you will get an on-screen display each time the system is started, giving USB options  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Web IF ==&lt;br /&gt;
&lt;br /&gt;
[[Web_Interface_Screenshots |&amp;#039;&amp;#039;&amp;#039;Screen Shots&amp;#039;&amp;#039;&amp;#039;]]&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;[[Webif_release_notes |&amp;#039;&amp;#039;&amp;#039;Release Notes&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
An evolving web interface for the Humax. This package provides a means of accessing the Humax using a web browser on any device connected to the&lt;br /&gt;
network (including mobile &amp;#039;phones and iPads). The interface allows easy viewing of recorded programme details as well as allowing basic&lt;br /&gt;
manipulation to be performed. Additionally the EPG can be viewed and searched from within the web browser&lt;br /&gt;
&lt;br /&gt;
Within the Web-IF are the following Built-In Functions :-&lt;br /&gt;
&lt;br /&gt;
===Backup/Restore Schedule===&lt;br /&gt;
[[File:Backup.png|70px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; Backup / Restore Scheduled Recordings / Events&lt;br /&gt;
&lt;br /&gt;
This feature provides an automatic daily backup of recording schedule, It is also possible to force an extra manual backup at any time. Any stored backups can then be selected for restoration from the backup folder e.g.  /mod/var/backup/auto-2013-Feb-22-18:06.rbk&lt;br /&gt;
&lt;br /&gt;
===Change Channel===&lt;br /&gt;
&lt;br /&gt;
Web-If &amp;gt;&amp;gt; EPG &amp;gt;&amp;gt; Grid Style or Now and Next &amp;gt;&amp;gt; Click on a Channel Logo icon&lt;br /&gt;
&lt;br /&gt;
A Change Channel? question box will pop-up, if you click on &amp;#039;Yes&amp;#039; the Humax will change the &amp;#039;Live&amp;#039; tuned channel to the selected channel&lt;br /&gt;
&lt;br /&gt;
Note :- This option requires that the ir Custom Firmware package is installed&lt;br /&gt;
&lt;br /&gt;
===Change Folder===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; (Click on &amp;#039;More&amp;#039; for a Series Recording) &amp;gt;&amp;gt; Change Folder&lt;br /&gt;
&lt;br /&gt;
Allows the name of a Series Recording folder to be changed, not valid on a single recording&lt;br /&gt;
&lt;br /&gt;
===Cleanup Old Recording (Schedules)===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; Cleanup Old Recordings (at the bottom of the screen)&lt;br /&gt;
&lt;br /&gt;
Allows all entries in the schedule that have no Start Time to be deleted, Humax normally auto-deletes these entries after 12 Weeks.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:-&amp;#039;&amp;#039;&amp;#039; As the EPG is only 7/8 days long caution should be used when deleting scheduled entries that are transmitted less frequently e.g. fortnightly&lt;br /&gt;
&lt;br /&gt;
===Clipboard===&lt;br /&gt;
&lt;br /&gt;
Used in conjunction with Copy, Cut and Paste, The clipboard is an area that files / Folders can be temporarily held in while a new destination is selected. It emulates a Windows Clipboard&lt;br /&gt;
&lt;br /&gt;
===Create Folder===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; More &amp;gt;&amp;gt; Create Folder&lt;br /&gt;
&lt;br /&gt;
Create a new folder destination for future recordings, See also [[Custom_Firmware_Package_Notes#Change_Folder | &amp;#039;&amp;#039;&amp;#039; Change Folder]] where you can change the default folder name&lt;br /&gt;
&lt;br /&gt;
===Copy===&lt;br /&gt;
&lt;br /&gt;
See [[Custom_Firmware_Package_Notes#Clipboard | &amp;#039;&amp;#039;&amp;#039;Clipboard&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Crop===&lt;br /&gt;
[[File:crop.png|200px|thumb|right]]&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Crop&lt;br /&gt;
&lt;br /&gt;
See Edit on Box link [[Edit_On_Box#Editing_Via_Web-If |&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Cut===&lt;br /&gt;
&lt;br /&gt;
See [[Custom_Firmware_Package_Notes#Clipboard | &amp;#039;&amp;#039;&amp;#039;Clipboard&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Delete===&lt;br /&gt;
&lt;br /&gt;
Remove file, folder, item from a recording schedule etc., depending on where the option is encountered &lt;br /&gt;
&lt;br /&gt;
===Decrypt===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Decrypt&lt;br /&gt;
&lt;br /&gt;
This Function will move the file to an _original folder and then stream a new copy to the present location, The new copy will be Decrypted and can be played on a P.C.. NOTES:-&lt;br /&gt;
* both High Definition AND Standard definition need to be Decrypted&lt;br /&gt;
* Decrypt requires [[Custom_Firmware_Package_Notes#Content_Sharing |&amp;#039;&amp;#039;&amp;#039;Content sharing&amp;#039;&amp;#039;&amp;#039;]] to be turned on&lt;br /&gt;
&lt;br /&gt;
===De-duplicate / Tidy this folder===&lt;br /&gt;
[[File:Webif-media-ded.png|70px|thumb|right]]&lt;br /&gt;
[[File:Webif-media-ded2.png|70px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; De-duplicate / Tidy this folder&lt;br /&gt;
&lt;br /&gt;
This Function will search a folder and re-name files with more meaningful titles, It will also separate duplicates into a new folder&lt;br /&gt;
&lt;br /&gt;
See Tidy (Re-name) Example &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Function will search a folder and re-name files with more meaningful titles&lt;br /&gt;
&lt;br /&gt;
It will Also separate duplicates into a new folder&lt;br /&gt;
&lt;br /&gt;
See De Duplicate (to new folder) Example &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Detect Adverts===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Detect Adverts&lt;br /&gt;
&lt;br /&gt;
Add bookmarks to a recording where adverts are detected, so that they can be cropped&lt;br /&gt;
&lt;br /&gt;
===Disable AR===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; (Click on &amp;#039;More&amp;#039; for a Recording) &amp;gt;&amp;gt; Disable AR&lt;br /&gt;
&lt;br /&gt;
Allows the default [[Padding_versus_Accurate_Recording|&amp;#039;&amp;#039;&amp;#039;Accurate Recording&amp;#039;&amp;#039;&amp;#039;]] feature to be replaced with Padding on a &amp;#039;per-recording&amp;#039; basis, in a further drop down menu start and stop padding times can be entered&lt;br /&gt;
&lt;br /&gt;
===Download===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Download&lt;br /&gt;
&lt;br /&gt;
This function will download with decryption an SD file (or Hi-Def File if the &amp;#039;ENC&amp;#039; flag is removed) and place it into the default download folder on your P.C., The following items may inhibit it functioning correctly :-&lt;br /&gt;
&lt;br /&gt;
# The File type *.TS must not be associated with a program such as a media player on your P.C., If it is, Remove the association&lt;br /&gt;
# Your browser must allow re-direction of addresses&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-Audio===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Audio&lt;br /&gt;
&lt;br /&gt;
Automatically extract an MP3 audio file from all recordings placed in this folder&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-Dedup===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Dedup&lt;br /&gt;
&lt;br /&gt;
Set contents of a folder for Auto-De-Duplication of files every 10 Mins. (See also [[#Dedup_.28Command_Line.29 |&amp;#039;&amp;#039;&amp;#039;Dedup&amp;#039;&amp;#039;&amp;#039;]])&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-Decrypt===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Decrypt&lt;br /&gt;
&lt;br /&gt;
Set contents of a folder for Auto-Decryption of TS files every 10 Mins. (See also [[#Decrypt |&amp;#039;&amp;#039;&amp;#039;Decrypt&amp;#039;&amp;#039;&amp;#039;]])&lt;br /&gt;
&lt;br /&gt;
===Enable Auto Expire===&lt;br /&gt;
[[File:autoexp.png|200px|thumb|right]]&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Expire&lt;br /&gt;
&lt;br /&gt;
Automatically delete files in a selected folder a pre-set number of days after recording e.g.1 to 999 days or when above a total number of recordings, Note :- If the Undelete package is installed, the files will be placed in the [Deleted folder] first&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bookmarks===&lt;br /&gt;
[[File:bookmarks.png|right|150px]]&lt;br /&gt;
Add, remove and edit bookmarks manually&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Bookmarks&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-MPG===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-MPG&lt;br /&gt;
&lt;br /&gt;
Automatically extract MPG copys of the *.TS files in the same folder, the MPG versions strips out control frames relating to things which were on the same Mux as the recorded program, resulting in a smaller file. The following conditions must be met :-&lt;br /&gt;
&lt;br /&gt;
*The file must be decrypted (Displays a DEC against it)&lt;br /&gt;
*ffmpeg package must be installed&lt;br /&gt;
*Extract to MPG is only available from Standard Definition Files&lt;br /&gt;
===Enable Auto-Shrink===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Shrink&lt;br /&gt;
&lt;br /&gt;
Set contents of a folder for Auto-Shrinking of TS files every 10 Mins. (See also [[#Shrink_.28stripts.29 |&amp;#039;&amp;#039;&amp;#039;Shrink&amp;#039;&amp;#039;&amp;#039;]])&lt;br /&gt;
&lt;br /&gt;
===Enable Recursive Auto-Shrink===&lt;br /&gt;
&lt;br /&gt;
As above but it but it also works on all folders below the selected folder&lt;br /&gt;
&lt;br /&gt;
===Enable Recursive Auto-Decrypt===&lt;br /&gt;
&lt;br /&gt;
As above but it but it also works on all folders below the selected folder&lt;br /&gt;
&lt;br /&gt;
===Enable Recursive Auto-Dedup (command line)===&lt;br /&gt;
&lt;br /&gt;
NOTE :- This is not available from the Web-If as it may not be a good idea. Not all series are amenable to auto-dedup and if the broadcaster uses the same programme title for each episode then all but one will be flagged as duplicates.&lt;br /&gt;
&lt;br /&gt;
However, if you wish, you can enable this option from the command line by creating an .autodedupr file, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;touch &amp;quot;/mod/My Video/Kids/.autodedupr&amp;quot; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Extract Audio===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Extract Audio&lt;br /&gt;
&lt;br /&gt;
This function will produce an MP3 file containing the stereo audio track contained in a standard  Def.  Video file (or radio recording), The following conditions must be met :-&lt;br /&gt;
&lt;br /&gt;
*The file must be decrypted (Displays a DEC against it)&lt;br /&gt;
*ffmpeg package must be installed&lt;br /&gt;
*Standard Def. recording only (Hi-Def 2 Ch or 6 Ch sound won&amp;#039;t be decoded)&lt;br /&gt;
*The extracted MP3 file is in a format sometimes called MPEG-2 Audio, not the more common Layer 3 audio, although some MP3 players will accept this format, a greater number of MP3 players require the layer 3 format, transcoding to layer 3 is not carried out on the Humax due to amount of CPU usage required&lt;br /&gt;
&lt;br /&gt;
===Extract To MPG===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Extract To MPG&lt;br /&gt;
&lt;br /&gt;
This function will produce an MPG copy of the *.TS file in the same folder, the MPG version strips out control frames relating to things which were on the same Mux as the recorded program, resulting in a smaller file. The following conditions must be met :-&lt;br /&gt;
&lt;br /&gt;
*The file must be decrypted (Displays a DEC against it)&lt;br /&gt;
*ffmpeg package must be installed&lt;br /&gt;
*Extract to MPG is only available from Standard Definition Files&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-mpg===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Folder) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Enable Auto-mpg&lt;br /&gt;
&lt;br /&gt;
As above but working on every file in a selected folder&lt;br /&gt;
&lt;br /&gt;
===File Editor===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; File Editor &amp;gt;&amp;gt; Open &amp;gt;&amp;gt; [Navigate to desired file]&lt;br /&gt;
&lt;br /&gt;
===Lock===&lt;br /&gt;
&lt;br /&gt;
Mark a file as locked, e.g. protected against deletion&lt;br /&gt;
&lt;br /&gt;
===Mark as Watched===&lt;br /&gt;
&lt;br /&gt;
Tag a file with a &amp;#039;Watched&amp;#039; symbol&lt;br /&gt;
&lt;br /&gt;
===Manual Event===&lt;br /&gt;
[[File:manual-event.png|thumb|right]]&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; Manual Event&lt;br /&gt;
&lt;br /&gt;
Allows the set up of a manual recording or reminder, options include:-&lt;br /&gt;
*Create : One-off, Daily, weekly,Weekday, Weekend&lt;br /&gt;
*Create : Recording or Reminder&lt;br /&gt;
*From : Date/Time to: Date/Time&lt;br /&gt;
*Channel : Number / Name&lt;br /&gt;
*Event Title : Defaults to Channel Name&lt;br /&gt;
&lt;br /&gt;
===Multi Mode Recording===&lt;br /&gt;
&lt;br /&gt;
This option built into the Web-If allows the user to enable a mix of both Accurate Recording and Padding on a per program basis, See [[Multi-mode_Recording|&amp;#039;&amp;#039;&amp;#039;Guide Here&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Network Settings===&lt;br /&gt;
[[File:network-settings.png|thumb]]&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Network Settings&lt;br /&gt;
&lt;br /&gt;
This option provides a Web-If alternative to entering Ethernet Interface and Wireless Interface parameters into the standard Humax Settings screen. The Web-If Wireless Interface screen has several advantages over the standard Humax one e.g :-&lt;br /&gt;
*Allows a wider range of ascii characters e.g. &amp;quot;%#&amp;lt;&amp;gt;&amp;quot; to be entered for passwordphrases&lt;br /&gt;
*Overcomes time restrictions when entering long passphrases / Keys&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Web-If 1.2.0-3 or later must be running&lt;br /&gt;
*To enable a wireless network when an Ethernet cable is connected, run /sbin/wifi-up from [[Custom_Firmware_Package_Notes#CLI |&amp;#039;&amp;#039;&amp;#039;CLI&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
*To enable a wireless network when an Ethernet cable is connected and Wireless Helper is installed run /mod/sbin/wifi-up from [[Custom_Firmware_Package_Notes#CLI |&amp;#039;&amp;#039;&amp;#039;CLI&amp;#039;&amp;#039;&amp;#039;]] to shutdown the Ethernet interface when bringing up the wireless interface&lt;br /&gt;
&lt;br /&gt;
===New Folder===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; New Folder&lt;br /&gt;
&lt;br /&gt;
Creates a new empty folder, into which recorded files can be moved&lt;br /&gt;
&lt;br /&gt;
===Paste===&lt;br /&gt;
&lt;br /&gt;
See [[Custom_Firmware_Package_Notes#Clipboard | &amp;#039;&amp;#039;&amp;#039;Clipboard&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Webif-media-detail.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===Play===&lt;br /&gt;
&lt;br /&gt;
This function provides an in-browser playback function for the Humax, It requires that you have the VLC plug-in installed for your browser&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Click on Single File) &amp;gt;&amp;gt; Play&lt;br /&gt;
&lt;br /&gt;
===Rename (File)===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Click on Single File) &amp;gt;&amp;gt; Rename&lt;br /&gt;
&lt;br /&gt;
Enables the following fields to be changed / added to a single file :-&lt;br /&gt;
&lt;br /&gt;
*New Filename&lt;br /&gt;
*New Medialist Title&lt;br /&gt;
*New Synopsis&lt;br /&gt;
*New Guidance Text&lt;br /&gt;
*New Genre&lt;br /&gt;
&lt;br /&gt;
===Rename (Folder)===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Rename&lt;br /&gt;
&lt;br /&gt;
Enables a folder to be re-named&lt;br /&gt;
&lt;br /&gt;
===Reset New Flag===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Reset New Flag&lt;br /&gt;
&lt;br /&gt;
Mark a Folder as containing new material&lt;br /&gt;
&lt;br /&gt;
===Save Last Streamed Content===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Save Last Streamed Content&lt;br /&gt;
&lt;br /&gt;
This Function will make a permanent MP4 copy of any content that has been viewed using the Humax TV portal e.g. I-Player / You Tube and place it into the &amp;#039;My Video&amp;#039; folder. The Telnet equivalent Syntax is as follows :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;cp /mnt/hd3/Streamer_down_file &amp;quot;/media/My Video/theclip.mp4&amp;quot; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE:- The Portal screen must remain open until the entire file has been downloaded (It is not performed in the background), The amount of time the download takes will vary with broadband speed&lt;br /&gt;
&lt;br /&gt;
===Set Thumbnail===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Set Thumbnail&lt;br /&gt;
&lt;br /&gt;
Change the current on-screen Thumbnail picture for one of 5 pictures covering a 2.5 Second time frame, the centre frame time can be offset from  0 - 99999 seconds, there is also a -30, -5, +5 and +30 second &amp;#039;nudge&amp;#039; that can be added to the offset.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* The Set Thumbnail option will be greyed out if the file is not decrypted first&lt;br /&gt;
* High Definition files have 3 pictures covering a 1.5 Second time frame&lt;br /&gt;
* Thumbnails may take some time to generate on Hi-Def Files&lt;br /&gt;
* If a bookmark is present the thumbnail selections will centre on it&lt;br /&gt;
 &lt;br /&gt;
===Sidecar Files===&lt;br /&gt;
&lt;br /&gt;
see [[Custom_Firmware_Package_Notes#Sidecar | &amp;#039;&amp;#039;&amp;#039;Sidecar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Split===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Split (45m parts)&lt;br /&gt;
&lt;br /&gt;
This Function (only available on files over 4GB) will split the file into 45 Minute parts with a 2 Minute overlap, It can be used to stream large files without hitting the 4GB stream bug present on the Humax.&lt;br /&gt;
&lt;br /&gt;
The New files will have segment numbering e.g. 1/3. E.T. The Extra-Terrestrial&lt;br /&gt;
&lt;br /&gt;
===Shrink (stripts)===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Shrink&lt;br /&gt;
&lt;br /&gt;
Clicking on Shrink in the OPT+ menu lets you remove portions of a recording that aren&amp;#039;t required and can account for up to 20% of its space, this option uses the stripts package to remove freeview EIT packets from the recording, it also updates the associated .nts sidecar file on the fly so that the trick play functions still work on the resulting recording&lt;br /&gt;
&lt;br /&gt;
===Sweeper Rules===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Sweeper Rules&lt;br /&gt;
&lt;br /&gt;
View / Edit the Sweeper Rules for this folder. Note this option will only be displayed if the sweeper package is installer&lt;br /&gt;
&lt;br /&gt;
===Toggle no-sweep flag===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Toggle no-sweep flag&lt;br /&gt;
&lt;br /&gt;
Disable / enable the sweeper rule generated for this folder&lt;br /&gt;
&lt;br /&gt;
===View Thumbnail===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; View Thumbnail&lt;br /&gt;
&lt;br /&gt;
View current on-screen Thumbnail picture &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Web-IF Channel Icons==&lt;br /&gt;
&lt;br /&gt;
A set of PNG picture files used to display the T.V. channel icons in the Web-Interface, they reside in /mod/var/mongoose/html/img/channels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webif-Charts==&lt;br /&gt;
&lt;br /&gt;
Chart modules for the web interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webif-iphone==&lt;br /&gt;
&lt;br /&gt;
A cut-down web interface, optimised for display on the iPhone and other mobile devices&lt;br /&gt;
&lt;br /&gt;
See Screenshots [[Smartphone_Web_Interface_Screenshots | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webif Style Sheet==&lt;br /&gt;
&lt;br /&gt;
The web interface allow you to set your own style overrides in a style sheet file called EXTRA.css, it is located at /mod/webif/html/css/EXTRA.css and is selectable from the Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; File Editor drop down menu. Lines added to this file can change some aspects of how the Web Interface is presented to the user e.g. the following lines will prevent genre, guidance (all occurrences) or channel icons being displayed :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img.genre { display: none; }&lt;br /&gt;
img[src^=&amp;quot;/img/Guidance&amp;quot;] { display: none; }&lt;br /&gt;
img.browsechannel { display: none; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change the size of the pie chart:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#tbdiskpie&lt;br /&gt;
{&lt;br /&gt;
  width: 100px;&lt;br /&gt;
  height: 100px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tbdiskpie&lt;br /&gt;
{&lt;br /&gt;
  top: 7px !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add Borders to Web-If Pages :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
table.schedule { border-spacing: 2px; }&lt;br /&gt;
table.schedule tr &amp;gt; * { border: 1px solid; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change font colour or size :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
table.schedule td * { color: black; }&lt;br /&gt;
table.schedule td { font-size: 1.1em; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change Icon size&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img.button { height: 50px; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove EPG &amp;#039;Go to Top&amp;#039; arrow :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#toTop, #toTopHover&lt;br /&gt;
{&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  display: none !important;&lt;br /&gt;
  opacity: 100 !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove EPG ENC icons&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img.epgenc { display: none; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Webshell==&lt;br /&gt;
&lt;br /&gt;
After installing this package, an extra icon will be added to the Main Menu &amp;gt;&amp;gt; Diagnostics page at the bottom right, after a re-boot, this will allow access to a Humax Command line similar to using Telnet access&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==webm==&lt;br /&gt;
&lt;br /&gt;
This is an audiovisual media file format, if you download files in this format from YouTube (See Youtube-dl), the video and audio may be separated into two files, It is possible to merge these files using  ffmpeg, if you download  the *.webm video only file and rename it in_vid.webm and download the *.m4a file and rename it in_aud.m4a then the following ffmpeg command line will merge them for you :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i in_aud.m4a -i in_vid.webm -acodec copy -vcodec copy output.avi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==wget==&lt;br /&gt;
&lt;br /&gt;
Retrieve files via HTTP or FTP&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:-&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*There is already a version of wget in Busybox which is loaded automatically, However it may be necessary to install the stand alone package as it will be a newer version&lt;br /&gt;
*Both the Busybox and the current stand alone versions of wget (1.12) may fail on websites that demand newer versions of TLS/SSL than the ones supported&lt;br /&gt;
&lt;br /&gt;
When attempting to download a Custom Firmware package specifying a version number, an error will be produced unless the -U option is used, eg :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -U &amp;quot;&amp;quot; http://hummypkg.org.uk/hdrfoxt2/base/at_3.1.18_mipsel.opk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The use of &amp;quot;opkg download&amp;quot; with a specifed version number will also fail&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Wireless Helper==&lt;br /&gt;
&lt;br /&gt;
Wireless network helper - brings wireless up even when just booted to make a recording. Helps with communications to the Remote Scheduling server via USB Wi-Fi dongle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==WOL==&lt;br /&gt;
&lt;br /&gt;
Wakeup On Lan is a feature that can be used to take out of stand-by any item on the LAN that will respond to it. The &amp;#039;Magic Packet&amp;#039; is broadcast over the LAN e.g. it is sent to every IP address and uses the unique MAC address of the unit to identify which unit is to be woken-up. From Telnet send the following command line where 00:01:02:03:04:05 must be replaced by the MAC address of the item to be woken, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ether-wake 00:01:02:03:04:05 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To add this feature to the Humax start-up enter the following from Telnet :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo  /mod/bin/busybox/ether-wake 00:01:02:03:04:05 &amp;gt; /mod/etc/init.d/S30wol&lt;br /&gt;
chmod 755 /mod/etc/init.d/S30wol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTES:-&lt;br /&gt;
*WOL is also built into [[Custom_Firmware_Package_Notes#Network_Shares_Automount|&amp;#039;&amp;#039;&amp;#039;Network_Shares_Automount&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
*The Humax itself cannot be switched out of Standby using Wake-up On Lan, as the LAN connector is not powered during Stand-by&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Xtra1 Portal==&lt;br /&gt;
&lt;br /&gt;
See Guide [[Custom_TV_Portal| &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Youtube-dl==&lt;br /&gt;
&lt;br /&gt;
This pacakage uses a command line to download videos from Youtube, BBC Iplayer, ITV Hub etc., in the following example, a 4K test video is downloaded from YouTube :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax2# youtube https://www.youtube.com/watch?v=SlLFOrWvY_M&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above downloads a 720 line version of the file which is pretty useless when testing 2176 lines, however it is possible to list all available video formats using the -F option :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax2# youtube -F https://www.youtube.com/watch?v=SlLFOrWvY_M&lt;br /&gt;
&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading webpage&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading video info webpage&lt;br /&gt;
[info] Available formats for SlLFOrWvY_M:&lt;br /&gt;
format code  extension  resolution note&lt;br /&gt;
249          webm       audio only DASH audio    3k , opus @ 50k, 26.87KiB&lt;br /&gt;
250          webm       audio only DASH audio    3k , opus @ 70k, 26.87KiB&lt;br /&gt;
251          webm       audio only DASH audio    3k , opus @160k, 26.87KiB&lt;br /&gt;
171          webm       audio only DASH audio    6k , vorbis@128k, 22.21KiB&lt;br /&gt;
140          m4a        audio only DASH audio  145k , m4a_dash container, mp4a.40.2@128k, 932.03KiB&lt;br /&gt;
278          webm       256x144    144p   34k , webm container, vp9, 13fps, video only, 184.31KiB&lt;br /&gt;
242          webm       426x240    240p   44k , vp9, 25fps, video only, 248.03KiB&lt;br /&gt;
160          mp4        256x144    144p   50k , avc1.42c00c, 13fps, video only, 257.52KiB&lt;br /&gt;
134          mp4        640x360    360p   74k , avc1.4d401e, 25fps, video only, 417.64KiB&lt;br /&gt;
243          webm       640x360    360p   78k , vp9, 25fps, video only, 433.50KiB&lt;br /&gt;
133          mp4        426x240    240p   87k , avc1.4d4015, 25fps, video only, 480.96KiB&lt;br /&gt;
244          webm       854x480    480p  116k , vp9, 25fps, video only, 633.67KiB&lt;br /&gt;
135          mp4        854x480    480p  117k , avc1.4d401e, 25fps, video only, 656.08KiB&lt;br /&gt;
136          mp4        1280x720   720p  191k , avc1.4d401f, 25fps, video only, 1.04MiB&lt;br /&gt;
247          webm       1280x720   720p  203k , vp9, 25fps, video only, 1.08MiB&lt;br /&gt;
137          mp4        1920x1080  1080p  312k , avc1.640028, 25fps, video only, 1.71MiB&lt;br /&gt;
248          webm       1920x1080  1080p  357k , vp9, 25fps, video only, 1.89MiB&lt;br /&gt;
271          webm       2560x1440  1440p  609k , vp9, 25fps, video only, 3.20MiB&lt;br /&gt;
313          webm       3840x2160  2160p 1122k , vp9, 25fps, video only, 5.88MiB&lt;br /&gt;
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 272.97KiB&lt;br /&gt;
36           3gp        320x180    small , mp4v.20.3, mp4a.40.2, 1004.79KiB&lt;br /&gt;
43           webm       640x360    medium , vp8.0, vorbis@128k, 589.88KiB&lt;br /&gt;
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k, 1.61MiB&lt;br /&gt;
22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then select the required version of the video with the -f option&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax2# youtube -f &amp;quot;313&amp;quot; https://www.youtube.com/watch?v=SlLFOrWvY_M&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading webpage&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading video info webpage&lt;br /&gt;
[download] Destination: /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.webm&lt;br /&gt;
[download] 100% of 5.88MiB in 00:12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE:-  the required download file is named *.webm  this file won&amp;#039;t be visible from the remote control  OPT+ copy/move lisings, but is visible via Telnet / FTP etc., you can rename the file to something like 4K-test.mp4 before viewing directly on your 4K TV (not via the HD only Humax)&lt;br /&gt;
&lt;br /&gt;
To combine video only and audio only files into a single file use the following option (Video MUST be the first item, e.g. 313)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax2# youtube -f &amp;quot;313+171&amp;quot;  https://www.youtube.com/watch?v=SlLFOrWvY_M&lt;br /&gt;
&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading webpage&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading video info webpage&lt;br /&gt;
[download] Destination: /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.f313.webm&lt;br /&gt;
[download] 100% of 5.88MiB in 00:12&lt;br /&gt;
[download] Destination: /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.f171.webm&lt;br /&gt;
[download] 100% of 22.21KiB in 00:00&lt;br /&gt;
[ffmpeg] Merging formats into &amp;quot;/mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.webm&amp;quot;&lt;br /&gt;
Deleting original file /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.f313.webm (pass -k to keep)&lt;br /&gt;
Deleting original file /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.f171.webm (pass -k to keep)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Youtube-dl has a config file at :- /mod/etc/youtube-dl.conf&lt;br /&gt;
&lt;br /&gt;
Full reference notes are here :-&lt;br /&gt;
&lt;br /&gt;
[https://github.com/rg3/youtube-dl/blob/master/README.md#readme  &amp;#039;&amp;#039;&amp;#039;Github Notes&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
A list of websites claimed to be working for the Windows version of Youtube-DL is here :-&lt;br /&gt;
&lt;br /&gt;
[https://rg3.github.io/youtube-dl/supportedsites.html &amp;#039;&amp;#039;&amp;#039;Available Sites&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mainsteam sites Working on the Humax Version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Youtube, BBC Iplayer, ITV-Hub, dplay&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mainstream sites Not Working on the Humax Version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Channel4, My5, UKTVPlay&lt;br /&gt;
&lt;br /&gt;
==Zeroconf==&lt;br /&gt;
&lt;br /&gt;
mDNS Responder, Will create a humax.local name which can be seen by anything running mDNS&lt;br /&gt;
&lt;br /&gt;
After installation the zeroconf package will participate in mDNS-like traffic so you can access the box by name from most operating systems. On some, like Apple and Linux, you would access it as humax.local (assuming humax is the hostname) and on others, like Windows, you can just use humax. Windows can also pick up the name to IP address mapping if you have Samba installed and running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zip==&lt;br /&gt;
&lt;br /&gt;
zip utilities for compressing files :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax HDR-Fox T2 (humax) 1.03.12/3.03&lt;br /&gt;
&lt;br /&gt;
humax# zip&lt;br /&gt;
Copyright (c) 1990-2008 Info-ZIP - Type &amp;#039;zip &amp;quot;-L&amp;quot;&amp;#039; for software license.&lt;br /&gt;
Zip 3.0 (July 5th 2008). Usage:&lt;br /&gt;
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]&lt;br /&gt;
  The default action is to add or replace zipfile entries from list, which&lt;br /&gt;
  can include the special name - to compress standard input.&lt;br /&gt;
  If zipfile and list are omitted, zip compresses stdin to stdout.&lt;br /&gt;
  -f   freshen: only changed files  -u   update: only changed or new files&lt;br /&gt;
  -d   delete entries in zipfile    -m   move into zipfile (delete OS files)&lt;br /&gt;
  -r   recurse into directories     -j   junk (don&amp;#039;t record) directory names&lt;br /&gt;
  -0   store only                   -l   convert LF to CR LF (-ll CR LF to LF)&lt;br /&gt;
  -1   compress faster              -9   compress better&lt;br /&gt;
  -q   quiet operation              -v   verbose operation/print version info&lt;br /&gt;
  -c   add one-line comments        -z   add zipfile comment&lt;br /&gt;
  -@   read names from stdin        -o   make zipfile as old as latest entry&lt;br /&gt;
  -x   exclude the following names  -i   include only the following names&lt;br /&gt;
  -F   fix zipfile (-FF try harder) -D   do not add directory entries&lt;br /&gt;
  -A   adjust self-extracting exe   -J   junk zipfile prefix (unzipsfx)&lt;br /&gt;
  -T   test zipfile integrity       -X   eXclude eXtra file attributes&lt;br /&gt;
  -y   store symbolic links as the link instead of the referenced file&lt;br /&gt;
  -e   encrypt                      -n   don&amp;#039;t compress these suffixes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Custom_Firmware_Package_Notes&amp;diff=5282</id>
		<title>Custom Firmware Package Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Custom_Firmware_Package_Notes&amp;diff=5282"/>
		<updated>2020-06-07T22:27:56Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Add Schedchk package&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;BRIEF NOTES FOR CUSTOM FIRMWARE PACKAGES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{{Note|Some Functions of the Web Interface are &amp;#039;Built-In&amp;#039; and do not require any additional packages to be installed. These features are covered in the Web If section of this page.&lt;br /&gt;
&lt;br /&gt;
Some packages require a reboot (Hard disk spin down) before they take effect.}}&lt;br /&gt;
&lt;br /&gt;
Also, see Forum Links [[Forum_Links|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==7Zip==&lt;br /&gt;
&lt;br /&gt;
Command line utility that can pack and unpack zip type files&lt;br /&gt;
&lt;br /&gt;
*Supported Packing / unpacking formats = 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM&lt;br /&gt;
*Supported Unpacking only = ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR and Z.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Arbookmarks==&lt;br /&gt;
&lt;br /&gt;
Adds bookmarks into automatically or manually padded recordings, bookmarks are placed at [[Padding_versus_Accurate_Recording | &amp;#039;&amp;#039;&amp;#039;Accurate Recording&amp;#039;&amp;#039;&amp;#039;]] start and stop points to all files in folders marked as Auto Decrypt, the following conditions must be met before the Bookmarks will be added :-&lt;br /&gt;
* The Arbookmarks package must be installed&lt;br /&gt;
* Files must be in a folder that is marked for auto-decryption ([[Icons#Media_Browser_-_Folders|&amp;#039;&amp;#039;&amp;#039;open lock icon&amp;#039;&amp;#039;&amp;#039;]] present)&lt;br /&gt;
* Files must be DLNA indexed (automatically done by the Humax periodically, [[Icons#Media_Browser_-_Files|&amp;#039;&amp;#039;&amp;#039;lime green circular icon&amp;#039;&amp;#039;&amp;#039;]] present)&lt;br /&gt;
* Files must not be recorded using AR i.e. the AR flags are not at start and end of file &lt;br /&gt;
* AR flags must be present i.e. recordings made in the middle of a programme won&amp;#039;t contain AR flags&lt;br /&gt;
&lt;br /&gt;
==At==&lt;br /&gt;
&lt;br /&gt;
at, batch, atq, atrm - queue, examine or delete jobs for later execution. This is the UNIX at command and atd daemon, which allow for scheduling of one-off commands to be run when specified. &lt;br /&gt;
&lt;br /&gt;
More notes [http://en.wikipedia.org/wiki/At_%28Unix%29 &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Auto Schedule Restore==&lt;br /&gt;
&lt;br /&gt;
This package checks whether the schedule is present on each boot, If a schedule is in place it is backed up to flash, otherwise the schedule and any favourites list are restored from the flash backup. The schedule will be deemed to be present if there is at least one schedule item or one reservation item existing &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES:-&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* After a re-boot the restore process will start and &amp;quot;Schedule Restored . . . Rebooting&amp;quot; will be displayed on the front display&lt;br /&gt;
* A second re-boot will take place automatically after 15 seconds to finalise the restoration process&lt;br /&gt;
* The Web-if will display &amp;quot;The recording schedule has been automatically restored&amp;quot; after the second re-boot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Auto-Unprotect==&lt;br /&gt;
&lt;br /&gt;
The Auto-Unprotect package runs in the background and automatically removes the Encryption Protected flag on High Definition recordings on the HDR-Fox T2. This is the flag which prevents the file from being decrypted in the same way as a Standard Definition file. On first installation, the hard disk will be scanned for any High Definition recordings and they will be unprotected. Thereafter, new recordings will have the flag removed as they are completed. See reset_unprotect [[Diagnostic_Utilities | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]] to fix any &amp;#039;missed files&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Auto, Auto-Unprotect makes a change to the DLNA index so that High Definition files can be streamed without DTCP, Note, Foxy does not remove DTCP which is required for DLNA decryption&lt;br /&gt;
&lt;br /&gt;
NOTES:- &lt;br /&gt;
*The removal of the ENC flag does not decrypt the file, however it does make decryption possible by the same means as for a Standard Definition file - see flow chart [[Encryption |&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
*Auto-Unprotect on the HD-Fox T2 will not allow decryption unless the HD-Fox T2 is running in BootHDR mode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Auto-Update==&lt;br /&gt;
&lt;br /&gt;
This package automatically keeps the installed packages up to date by checking for any new releases daily and automatically downloading and installing them. It will check once per day at the earliest power on - for most people probably the 04:30 boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Badnts==&lt;br /&gt;
&lt;br /&gt;
Utility to fix a recording error where a full size TS file is recorded but the associated NTS file generated by the Humax is of zero length, this results in the the Humax rejecting the file on playback. After the recording is decrypted in a folder that is marked for auto-decyption, the utility will look for a zero length NTS file and if found the NTS, THM and HMT files will all  be deleted (or moved to the [Deleted] folder), this will make the TS file playable on the Humax,however as the &amp;#039;sidecar&amp;#039; files have been removed there will be some play-back &lt;br /&gt;
limitations, e.g. transport controls etc.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*This utility only works on HDR-Fox T2 not HD-Fox T2&lt;br /&gt;
*Only files stored in an auto-decrypt folder will be fixed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bash==&lt;br /&gt;
&lt;br /&gt;
Bourne Again SHell is an enhanced [[Custom_Firmware_Package_Notes#Sh | &amp;#039;&amp;#039;&amp;#039;Sh (Shell)&amp;#039;&amp;#039;&amp;#039;]]  Command line / scripting language.  [http://www.gnu.org/software/bash/manual/bashref.html &amp;#039;&amp;#039;&amp;#039;See Reference Guide&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Betaftpd==&lt;br /&gt;
&lt;br /&gt;
===For HDR-Fox T2===&lt;br /&gt;
&lt;br /&gt;
The HDR-FOX T2 has a built-in FTP server. The default server will still be available after the Custom Firmware is installed, however only files under ‘Media’ are visible. Betaftpd has two possible Logins. If login = humaxftp and password = 0000 is used then only ‘Media’ is visible. If login = root and password = 0000 is used then the entire file system is accessible. If the remote password has been changed from 0000 then the new password must be used.&lt;br /&gt;
&lt;br /&gt;
NOTE:- The Built-in FTP server must be turned off if Betaftpd is used with Menu &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings &amp;gt;&amp;gt; FTP Server = OFF&lt;br /&gt;
&lt;br /&gt;
===For HD-Fox T2===&lt;br /&gt;
&lt;br /&gt;
Betaftpd will add an FTP server to the Humax after installation. Betaftpd has two possible Logins. If login = humaxftp and password = 0000 is used then only ‘Media’ is visible. If login = root and password = 0000 is used then the entire file system is accessible. If the remote password has been changed from 0000 then the new password must be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Blocklist==&lt;br /&gt;
&lt;br /&gt;
See Transmission (torrent) Block List notes [[Custom_Firmware_Package_Notes#Blocklist_2|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bookmark==&lt;br /&gt;
&lt;br /&gt;
The Humax Bookmarks used to place &amp;#039;jump-to&amp;#039; points within a recording are also used by several Custom Firmware packages, as Follows:-&lt;br /&gt;
*[[Edit_On_Box|&amp;#039;&amp;#039;&amp;#039;Edit On Box&amp;#039;&amp;#039;&amp;#039;]] . . . A single or multiple bookmarks are used as cut and join points for editing a recording in the Web-If [[#Crop|&amp;#039;&amp;#039;&amp;#039;Crop&amp;#039;&amp;#039;&amp;#039;]] option&lt;br /&gt;
*[[#Set_Thumbnail|&amp;#039;&amp;#039;&amp;#039; Set Thumbnails&amp;#039;&amp;#039;&amp;#039;]] . . . Uses the the first bookmark in a recording as a central point from which to pick a new thumbnail &lt;br /&gt;
*[[#Arbookmarks|&amp;#039;&amp;#039;&amp;#039;Arbookmarks&amp;#039;&amp;#039;&amp;#039;]] . . . Bookmarks are automatically added to a recording at [[Padding_versus_Accurate_Recording|&amp;#039;&amp;#039;&amp;#039;Accurate Recording&amp;#039;&amp;#039;&amp;#039;]] start and stop points so that a [[#Crop|&amp;#039;&amp;#039;&amp;#039;Crop&amp;#039;&amp;#039;&amp;#039;]] can be performed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==BootHDR==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFAAAA&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;This package is for the HD-FOX T2 only (NOT for HDR-Fox T2&amp;lt;/big&amp;gt;&amp;#039;&amp;#039;&amp;#039;) &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
It allows the HD-FOX T2 to run the software for the HDR-FOX T2, to allow decryption of recordings by copying to a volume. BootHDR can be installed from the Web-If packages screen (of the HD-Fox T2 only). Here is the equivalent command line (Telnet) :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; opkg install wget &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; opkg install boothdr --force-reinstall &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the package is installed you can run in HDR-Fox T2 mode, while in this mode, the front panel display will freeze and the box will be incapable of making new recordings. To initiate HDR-Fox T2 mode copy the *Modsettings/TriggerHDR folder to the root of drive1 and then re-boot the HD-Fox T2&lt;br /&gt;
&lt;br /&gt;
Installing the BootHDR package also adds the command line keyword bootHDRmode, this can be used to invoke HDR mode&lt;br /&gt;
&lt;br /&gt;
There is a Guide to using BootHDR on the Wiki [[Decrypt_recordings_on_the_HD-FOX_T2 | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Boot_Settings==&lt;br /&gt;
&lt;br /&gt;
Set system parameters to specified values on every boot. [Update settings]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bsed==&lt;br /&gt;
&lt;br /&gt;
Binary-safe search/replace utility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==BusyBox==&lt;br /&gt;
				&lt;br /&gt;
Your Humax box has a ‘Unix’ operating system. Busybox is a package that provides 158 common Unix [[Custom_Firmware_Package_Notes#Sh_.28SHell.29 | &amp;#039;&amp;#039;&amp;#039;Sh (Shell)&amp;#039;&amp;#039;&amp;#039;]] commands that can be used in Telnet sessions. The list below shows the available commands. There is no &amp;#039;man&amp;#039; command that would explain what they do, but most commands can have a -? or -h extension to get some help e.g. ls -?&lt;br /&gt;
&lt;br /&gt;
A command look up table can be found [http://busybox.net/downloads/BusyBox.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;].&lt;br /&gt;
&lt;br /&gt;
NOTE:- It is not a good idea to &amp;#039;Play&amp;#039; with these commands if you don&amp;#039;t know what you are doing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:8;-moz-column-count:8;-webkit-column-count:8&amp;quot;&amp;gt;&lt;br /&gt;
*[&lt;br /&gt;
*[[&lt;br /&gt;
*ar &lt;br /&gt;
*arp &lt;br /&gt;
*arping &lt;br /&gt;
*ash &lt;br /&gt;
*awk &lt;br /&gt;
*base64 &lt;br /&gt;
*basename &lt;br /&gt;
*bunzip2 &lt;br /&gt;
*bzcat &lt;br /&gt;
*bzip2 &lt;br /&gt;
*cal &lt;br /&gt;
*cat &lt;br /&gt;
*catv &lt;br /&gt;
*chgrp &lt;br /&gt;
*chmod &lt;br /&gt;
*chown &lt;br /&gt;
*chroot &lt;br /&gt;
*cksum &lt;br /&gt;
*clear &lt;br /&gt;
*cmp &lt;br /&gt;
*comm &lt;br /&gt;
*cp &lt;br /&gt;
*cpio &lt;br /&gt;
*cut &lt;br /&gt;
*date &lt;br /&gt;
*dc &lt;br /&gt;
*dd &lt;br /&gt;
*df &lt;br /&gt;
*diff &lt;br /&gt;
*dirname &lt;br /&gt;
*dos2unix &lt;br /&gt;
*du &lt;br /&gt;
*echo &lt;br /&gt;
*ed &lt;br /&gt;
*egrep &lt;br /&gt;
*env &lt;br /&gt;
*ether-wake &lt;br /&gt;
*expr &lt;br /&gt;
*false &lt;br /&gt;
*fgrep &lt;br /&gt;
*find &lt;br /&gt;
*fold &lt;br /&gt;
*free &lt;br /&gt;
*ftpget &lt;br /&gt;
*ftpput &lt;br /&gt;
*fuser &lt;br /&gt;
*grep &lt;br /&gt;
*gunzip &lt;br /&gt;
*gzip &lt;br /&gt;
*hd &lt;br /&gt;
*head &lt;br /&gt;
*hexdump &lt;br /&gt;
*ifconfig &lt;br /&gt;
*insmod &lt;br /&gt;
*install &lt;br /&gt;
*iostat &lt;br /&gt;
*kill &lt;br /&gt;
*killall &lt;br /&gt;
*killall5 &lt;br /&gt;
*last &lt;br /&gt;
*less &lt;br /&gt;
*ln &lt;br /&gt;
*logname &lt;br /&gt;
*ls &lt;br /&gt;
*lsmod &lt;br /&gt;
*lsusb &lt;br /&gt;
*lzcat &lt;br /&gt;
*lzma &lt;br /&gt;
*md5sum &lt;br /&gt;
*mkdir &lt;br /&gt;
*mkfifo &lt;br /&gt;
*mknod &lt;br /&gt;
*mktemp &lt;br /&gt;
*modinfo &lt;br /&gt;
*modprobe &lt;br /&gt;
*more &lt;br /&gt;
*mpstat &lt;br /&gt;
*mv &lt;br /&gt;
*nc &lt;br /&gt;
*netstat &lt;br /&gt;
*nice &lt;br /&gt;
*nmeter &lt;br /&gt;
*nohup &lt;br /&gt;
*nslookup &lt;br /&gt;
*od &lt;br /&gt;
*patch &lt;br /&gt;
*pgrep &lt;br /&gt;
*ping &lt;br /&gt;
*pkill &lt;br /&gt;
*pmap &lt;br /&gt;
*printenv &lt;br /&gt;
*printf &lt;br /&gt;
*ps &lt;br /&gt;
*pstree &lt;br /&gt;
*pwd &lt;br /&gt;
*pwdx &lt;br /&gt;
*readlink &lt;br /&gt;
*realpath &lt;br /&gt;
*renice &lt;br /&gt;
*rm &lt;br /&gt;
*rmdir &lt;br /&gt;
*rmmod &lt;br /&gt;
*route &lt;br /&gt;
*rpm &lt;br /&gt;
*sed &lt;br /&gt;
*sendmail &lt;br /&gt;
*seq &lt;br /&gt;
*sh &lt;br /&gt;
*sha1sum &lt;br /&gt;
*sha256sum &lt;br /&gt;
*sha512sum &lt;br /&gt;
*sleep &lt;br /&gt;
*sort &lt;br /&gt;
*split &lt;br /&gt;
*stat &lt;br /&gt;
*strings &lt;br /&gt;
*stty &lt;br /&gt;
*sum &lt;br /&gt;
*sync &lt;br /&gt;
*sysctl &lt;br /&gt;
*tail &lt;br /&gt;
*tar &lt;br /&gt;
*tee &lt;br /&gt;
*telnet &lt;br /&gt;
*test &lt;br /&gt;
*tftp &lt;br /&gt;
*time &lt;br /&gt;
*top &lt;br /&gt;
*touch &lt;br /&gt;
*tr &lt;br /&gt;
*traceroute &lt;br /&gt;
*true &lt;br /&gt;
*tty &lt;br /&gt;
*uname &lt;br /&gt;
*uniq &lt;br /&gt;
*unix2dos &lt;br /&gt;
*unlzma &lt;br /&gt;
*unxz &lt;br /&gt;
*unzip &lt;br /&gt;
*uptime &lt;br /&gt;
*usleep &lt;br /&gt;
*uudecode &lt;br /&gt;
*uuencode &lt;br /&gt;
*vi &lt;br /&gt;
*watch &lt;br /&gt;
*wc &lt;br /&gt;
*wget &lt;br /&gt;
*which &lt;br /&gt;
*who &lt;br /&gt;
*whoami &lt;br /&gt;
*xargs &lt;br /&gt;
*xz &lt;br /&gt;
*xzcat &lt;br /&gt;
*yes &lt;br /&gt;
*zcat &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Channeldel==&lt;br /&gt;
&lt;br /&gt;
Note: now superseded by tunefix&lt;br /&gt;
&lt;br /&gt;
Automatic channel deletion. select TV channels to be permanently removed from the group TV list in Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Automatic Channel Deletion, selected channels, plus a set of 9 unavailable channels known to cause problems will be automatically deleted the next time the Humax is booted, and following any retune&lt;br /&gt;
&lt;br /&gt;
Select all but one file and press delete to reduce the current list in /mod/boot/chandel.conf, the remaining file can be deleted later&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ChaseDecrypt==&lt;br /&gt;
&lt;br /&gt;
Retrieve and decrypt recording whilst recording is still in progress, uses Chaseget&lt;br /&gt;
&lt;br /&gt;
See [[ChaseDecrypt]] for further details&lt;br /&gt;
&lt;br /&gt;
==Chaseget==&lt;br /&gt;
&lt;br /&gt;
Retrieve and decrypt recording, can run whilst recording is still in progress&lt;br /&gt;
&lt;br /&gt;
This is intended to be used as part of other packages (such as detectads) rather than installed and used standalone&lt;br /&gt;
&lt;br /&gt;
Runs as first stage of pipeline, output is always to stdout&lt;br /&gt;
&lt;br /&gt;
Usage= /mod/bin/chaseget recording.ts start_offset logfile &amp;gt; output.ts&lt;br /&gt;
&lt;br /&gt;
==CIFS==&lt;br /&gt;
&lt;br /&gt;
The Common Internet File System. The cifs package provides the Humax with the ability to remotely access files shared from PCs using Windows file sharing. This package adds the support to the running system but mounting remote file systems must currently be performed from the command line. Example :- &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mkdir /media/NAS &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mkdir &amp;quot;/media/My Video/NAS&amp;quot; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mount -t cifs //server/share /media/NAS -o user=abc,password=def &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mount -t cifs //server/share &amp;quot;/media/My Video/NAS&amp;quot; -o user=abc,password=def &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CLI==&lt;br /&gt;
&lt;br /&gt;
This is an acronym for Command Line Interface, a CLI can be established by Telnetting into the Humax and being presented with a CLI prompt, If the Tmenu is displayed there will be a &amp;#039;cli&amp;#039; option to gain the CLI prompt e.g. humax#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Content Sharing==&lt;br /&gt;
&lt;br /&gt;
Menu &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings &amp;gt;&amp;gt; Content Sharing = On&lt;br /&gt;
&lt;br /&gt;
Content Sharing is an in-built DLNA / UPnP server that allows the HDR to stream content over it&amp;#039;s LAN connector to a DNLA / UPnP client, this feature is also used by the Custom Firmware to provide decryption of both Standard Definition and High Definition content&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Crashdiag==&lt;br /&gt;
&lt;br /&gt;
Captures a memory dump (core file) when the main Humax process crashes,The dump files will end up in /mod/core/ called humaxtv.&amp;lt;UNIX timestamp&amp;gt; and a reboot is required following package installation in order to activate it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Crash Log==&lt;br /&gt;
&lt;br /&gt;
The Mulitenv 1.4 package contains a procedure that monitors the behaviour of running processes, If the Humax crashes a file will be generated under /mod/tmp/ called crash.log, it can be examined from Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; View Log Files. The Crash log will tell you if Custom Firmware plug-ins are being disabled as a result of the crash, To re-start undelete, redring and ir packages, run Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; fix-flash-packages &amp;gt;&amp;gt; Run Diagnostic. To prevent the crash log auto disabling plug-ins, create a file with the following command :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
touch /var/lib/humaxtv/mod/no_plugin_autodisable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cron==&lt;br /&gt;
&lt;br /&gt;
Cron is a time-based job scheduler that will auto-run tasks for you. It is built into Busybox which is a standard utility on your Humax, so Cron does not need to be installed. The tasks are held in a Cron table or crontab. Here is an example crontab :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cd /mod/var/spool/cron/crontabs/&lt;br /&gt;
humax# cat root&lt;br /&gt;
0 2 * * * /mod/sbin/anacron -s -d&lt;br /&gt;
1,31 * * * * /mod/sbin/unencrypt &amp;quot;/mnt/hd2/My Video/archive&amp;quot; &amp;gt; /mod/tmp/unencrypt.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
*/10 * * * * /mod/sbin/rs_process &amp;gt;&amp;gt; /mod/tmp/rs.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
humax#&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each line of crontab has the following structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Minute&amp;gt; &amp;lt;Hour&amp;gt; &amp;lt;Day&amp;gt; &amp;lt;Month&amp;gt; &amp;lt;Day of Week&amp;gt; &amp;lt;Command line&amp;gt; Note :- * = All or Every&lt;br /&gt;
&lt;br /&gt;
The three examples above will run&lt;br /&gt;
#at 2AM every day&lt;br /&gt;
#at 1 Minute and 31 Minutes of every Hour every day&lt;br /&gt;
#every 10 Minutes continuously&lt;br /&gt;
&lt;br /&gt;
It is possible to display all cron jobs with the following command line:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; crontab -l &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a new cron job edit file /mod/var/spool/cron/crontabs/root and add a new line&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cryptokey==&lt;br /&gt;
&lt;br /&gt;
This is the unique key that is used by the Humax HDR / HD to encrypt and decrypt all recordings on the hard disk, it is made up from the MAC address of the unit (6 pairs of hexadecimal) followed by the first 10 digits of the unit&amp;#039;s serial number (also in hexadecimal) &lt;br /&gt;
&lt;br /&gt;
The cryptokey can be examined, changed and reset (Cleared) to the original by sending the following [[Custom_Firmware_Package_Notes#Nugget | &amp;#039;&amp;#039;&amp;#039;nugget&amp;#039;&amp;#039;&amp;#039;]] command line options :- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# nugget cryptokey&lt;br /&gt;
Native key: dc d3 21 01 02 03 36 33 37 31 30 35 37 36 33 30&lt;br /&gt;
Using key:  &amp;lt;no custom key in use&amp;gt;&lt;br /&gt;
&lt;br /&gt;
humax# nugget cryptokey 01.01.01.01.01.01.01.01.01.01.01.01.01.01.01.01&lt;br /&gt;
Using key:  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01&lt;br /&gt;
&lt;br /&gt;
humax# nugget cryptokey&lt;br /&gt;
Native key: dc d3 21 01 02 03 36 33 37 31 30 35 37 36 33 30&lt;br /&gt;
Using key:  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01&lt;br /&gt;
&lt;br /&gt;
humax# nugget cryptokey -clear&lt;br /&gt;
Cleared custom encryption key.&lt;br /&gt;
&lt;br /&gt;
humax# nugget cryptokey&lt;br /&gt;
Native key: dc d3 21 01 02 03 36 33 37 31 30 35 37 36 33 30&lt;br /&gt;
Using key:  &amp;lt;no custom key in use&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cryptokey is used by the [[Custom_Firmware_Package_Notes#Stripts | &amp;#039;&amp;#039;&amp;#039;Stripts Package&amp;#039;&amp;#039;&amp;#039;]] when decrypting files on the Humax&lt;br /&gt;
&lt;br /&gt;
==Curl Command==&lt;br /&gt;
&lt;br /&gt;
curl command line utility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Custom TV Portal==&lt;br /&gt;
&lt;br /&gt;
An extension to the Humax TV Portal that adds more features.&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Custom_TV_Portal | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]] &lt;br /&gt;
&lt;br /&gt;
==DB Update==&lt;br /&gt;
&lt;br /&gt;
General boot-time database update utility&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dedup (Command Line)==&lt;br /&gt;
[[File:Webif-media-ded.png|right|150px]]&lt;br /&gt;
[[File:Webif-media-ded2.png|right|150px]]&lt;br /&gt;
The dedup package adds a command line utility which can consolidate recordings within a single folder so that duplicates are removed and the remaining episodes are renamed so that the episode name and number (if available) are displayed in the Media Browser.&lt;br /&gt;
&lt;br /&gt;
Note:- There is a &amp;#039;built-in&amp;#039; version of Dedup in the [[Custom_Firmware_Package_Notes#Web_IF | &amp;#039;&amp;#039;&amp;#039;Web-If &amp;#039;&amp;#039;&amp;#039;]] that effectively replaces the command line package. However if the dedup package is installed it is possible to perform the following Telnet commands from the folder you have navigated to:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; dedup &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;lists the recordings there and shows what they would be renamed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; dedup -yes&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt; perform the changes as detailed below :-&lt;br /&gt;
&lt;br /&gt;
*Renames the files on disk to match the episode name&lt;br /&gt;
*Changes the title shown in the media list to match the episode name&lt;br /&gt;
*Identifies duplicate episodes and moves them to a sub-folder called dup/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dedup (Series Helper File)==&lt;br /&gt;
&lt;br /&gt;
It is possible to create a series helper file that Dedup can use to enhance the re-naming of series, the file should be placed in the directory containing the series and named series.info, Dedup will look for this file and automatically use it, an example of a series.info file is shown below :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pilot ==&amp;gt; S1-01&lt;br /&gt;
Pilot The Big Bang Theory ==&amp;gt; S1-01&lt;br /&gt;
The Big Bran Hypothesis ==&amp;gt; S1-02&lt;br /&gt;
The Fuzzy Boots Corollary ==&amp;gt; S1-03&lt;br /&gt;
The Luminous Fish Effect ==&amp;gt; S1-04&lt;br /&gt;
The Hamburger Postulate ==&amp;gt; S1-05&lt;br /&gt;
The Middle Earth Paradigm ==&amp;gt; S1-06&lt;br /&gt;
The Dumpling Paradox ==&amp;gt; S1-07&lt;br /&gt;
The Grasshopper Experiment ==&amp;gt; S1-08&lt;br /&gt;
The Cooper-Hofstadter Polarization ==&amp;gt; S1-09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above &amp;#039;full&amp;#039; file is stored here :- [http://hummypkg.org.uk/series/tbbt.series.info &amp;#039;&amp;#039;&amp;#039;http://hummypkg.org.uk/series/tbbt.series.info&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DeRMA==&lt;br /&gt;
&lt;br /&gt;
After a Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; Set-Return-to-manufacturer (RMA) Mode operation has been carried out, standard Humax software should be re-installed, this should leave the Humax in an &amp;#039;out-of-the-box&amp;#039; state, however if for any reason the &amp;#039;RMA&amp;#039; message is still being displayed, then loading this package onto a USB stick and inserting it into the Humax, while it is running, will remove the RMA message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detectads==&lt;br /&gt;
&lt;br /&gt;
This package will attempt to add bookmarks to a recording to indicate the start and end of advert breaks, so that the adverts can be removed with a crop function, cropping can optionally be performed automatically within the package,&lt;br /&gt;
&lt;br /&gt;
Using the new &amp;#039;Detect while recording&amp;#039; function the detection process runs in parallel with the actual recording so the processing completes within a few seconds of the recording finishing. You can even, with some limitations, start to watch your program adfree whilst it is still recording.&lt;br /&gt;
&lt;br /&gt;
See [[DetectAds]] for more information about this package&lt;br /&gt;
&lt;br /&gt;
==Disable DSO==&lt;br /&gt;
&lt;br /&gt;
Disable automatic retuning in response to Digital-Switch-Over events. When the Humax carries out a retune all recording Schedule events and all Favourites Lists will be erased, however recorded programmes will not be erased. DSO events are sent to the Humax by the TV broadcasters when they need to change some aspect of the Electronic Programme Guide, such as changing a channel number or adding extra channels&lt;br /&gt;
&lt;br /&gt;
==Disable OTA==&lt;br /&gt;
&lt;br /&gt;
Disable OTA inhibits any Over The Air software updates transmitted by Humax by deleting OTA schedules created by the Humax, it also has a &amp;quot;Create Reminder to cover OTA Period = Y / N&amp;quot; option in the Settings page, this will create a reminder on the Red Button (channel 200) to cover the OTA period, if you want it to use a different channel or on / off time, you can edit the reminder using the standard Humax on-TV menus, you can also disable the reminder option completely, however if this is done there is a small possibility that an OTA search may still be actioned on your Humax&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; The OTA service for software updates is no longer in operation&lt;br /&gt;
&lt;br /&gt;
==Display==&lt;br /&gt;
&lt;br /&gt;
A command that can be used to display a message on the HDR-Fox T2 front panel, any alpha-numerics (Max 12 characters) can be displayed, scrolling is not available. The new message will be displayed until the unit is rebooted or changed by the Humax, example :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; /sbin/display &amp;#039;Twelve Chars&amp;#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The display can be blanked with :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; /sbin/display &amp;#039; &amp;#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The display of the HD-Fox T2 (Max 4 characters + colon) can also be used by adding &amp;#039;$&amp;#039; to the string e.g. :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; /sbin/display &amp;#039;$he:lp&amp;#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE&amp;#039;&amp;#039;&amp;#039; If the Humax updates the display e.g. after a channel change or is scrolling the display then your message will be removed&lt;br /&gt;
&lt;br /&gt;
==DLNA-Filter==&lt;br /&gt;
&lt;br /&gt;
Filters out DLNA server network traffic to prevent other DLNA servers from crashing the Humax. File /mod/etc/init.d/S02dlna-filter contains rule=&amp;quot;-p tcp --dport 50001 -j DROP&amp;quot;. From default the package works on all IP addresses, however in Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Settings for DLNA-Filter package, it is possible to restrict operation to one or more specified IP addresses&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*DLNA-Filter  requires Custom Firmware Version 3.00 or later&lt;br /&gt;
*DLNA-Filter will block access to the Humax DLNA server if the Settings for DLNA-Filter package is left blank&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DLNA-Servername==&lt;br /&gt;
&lt;br /&gt;
This package enables Humaxs on the same network to be given a unique Media Server Name. It requires that Custom Version 2.20 or above be installed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dropbear SSH==&lt;br /&gt;
&lt;br /&gt;
A secure shell (ssh) server for the Humax. This package provides remote command line access over an encrypted session and is a secure alternative to using Telnet&lt;br /&gt;
to gain command line access - although it causes the box to do more work.  Also allows the use of &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; (secure copy) as a secure alternative to FTP.&lt;br /&gt;
&lt;br /&gt;
Login with username=root, password=humax&lt;br /&gt;
&lt;br /&gt;
Create file /mod/.ssh/authorized_keys containing a list of public keys&lt;br /&gt;
&lt;br /&gt;
Note :- chmod 700 /mod/.ssh and chmod 600 /mod/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dropbear SFTP==&lt;br /&gt;
&lt;br /&gt;
Greenend-sftp is a plugin for dropbear-ssh which provides SFTP server functionality.SFTP is often used to provide remote virtual filesystem (VFS) access to the Humax&amp;#039;s filesystem, e.g. via FUSE. For further info. click link [http://www.greenend.org.uk/rjk/sftpserver/ &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DUMA==&lt;br /&gt;
&lt;br /&gt;
D.U.M.A. - Detect Unintended Memory Access - A Red-Zone memory allocator. It can detect memory leaks and buffer overruns (or underruns) in a malloc() / new memory buffer. DUMA is a fork of Bruce Perens&amp;#039; Electric Fence library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dvbsnoop==&lt;br /&gt;
&lt;br /&gt;
Utility for inspecting DVB files. Some more info [http://dvbsnoop.sourceforge.net/ &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;].&lt;br /&gt;
&lt;br /&gt;
Note that one cannot inspect live streams off air on the Humax, as the Humax doesn&amp;#039;t provide the required software interface to its DVB hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==E2fs_Progs==&lt;br /&gt;
&lt;br /&gt;
Ext2/3/4 File system Utilities. The Linux File Disk system used on the Humax. Useful for formatting a USB Flash drive in EXT2 to avoid journalling. First allow the Humax to format the drive as EXT3 then follow the procedure [[FAQs#How_do_I_convert_a_drive_to_EXT2.3F|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[Eject]==&lt;br /&gt;
[[File:Eject.png|left|50px]]&lt;br /&gt;
The Eject icon is displayed (If a USB Device is detected), on all Web-if Headers adjacent to the FREEVIEW icon, when the user clicks on this icon, a list of USB devices attached to the Humax will be displayed with the following information (from Left to Right) :-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*USB interface name&lt;br /&gt;
*USB Device name&lt;br /&gt;
*Format type, e.g. FAT32, NTFS, EXT3 etc.&lt;br /&gt;
*Device % used&lt;br /&gt;
*Device capacity &lt;br /&gt;
*Eject Option&lt;br /&gt;
&lt;br /&gt;
To the far right there is an eject icon, when the user clicks on this icon, an option will be displayed, e.g. &amp;quot;Eject USB-1? - OK or Cancel, If OK is selected the USB device will be unmounted, this is similar to the Windows option &amp;quot;Safely Remove Hardware&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If &amp;#039;Device not mounted&amp;#039; is displayed, the user can click on the recycle icon (far right) to display a &amp;#039;Rescan OK/Cancel&amp;#039; option, this will allow a rescan and the USB device will be re-mounted &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*This feature is only present on the HDR-FOX T2, not the HD-FOX T2&lt;br /&gt;
&lt;br /&gt;
==EPG==&lt;br /&gt;
&lt;br /&gt;
The command line utility used by the Electronic Program Guide in the Web-If e.g. :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# epg&lt;br /&gt;
Humax EPG Tool v1.0.8, by af123, 2011.&lt;br /&gt;
&lt;br /&gt;
Syntax: epg [options] [filters] &amp;lt;command&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
  Options:&lt;br /&gt;
    -b                     Brief output.&lt;br /&gt;
    -d[level]              Set debug level.&lt;br /&gt;
    -f&amp;lt;file&amp;gt;               Specify alternate EPG data file.&lt;br /&gt;
    -h                     Show help text.&lt;br /&gt;
    -p                     Parsable output.&lt;br /&gt;
&lt;br /&gt;
  Filters: (can be specified multiple times, all must be true)&lt;br /&gt;
    -C&amp;lt;CRID&amp;gt;               Show only events with this CRID.&lt;br /&gt;
    -D&amp;lt;descriptor type&amp;gt;    Show only selected descriptor type.&lt;br /&gt;
    -E&amp;lt;event id&amp;gt;           Show only selected event.&lt;br /&gt;
    -R&amp;lt;SCRID&amp;gt;              Show only events with this Series ID.&lt;br /&gt;
    -S&amp;lt;service id&amp;gt;         Show only selected service.&lt;br /&gt;
    -T&amp;lt;content type&amp;gt;       Show only selected content types.&lt;br /&gt;
    -@&amp;lt;unix timestamp&amp;gt;     Show only programmes at time.&lt;br /&gt;
    -/&amp;lt;unix timestamp&amp;gt;     Show only programmes on day.&lt;br /&gt;
    -/&amp;lt;days&amp;gt;               Show only programmes on day.&lt;br /&gt;
    -=&amp;lt;start&amp;gt;:&amp;lt;end&amp;gt;        Show only programmes in time period.&lt;br /&gt;
&lt;br /&gt;
  Commands:&lt;br /&gt;
    dump                   Show a parsed summary of the EPG.&lt;br /&gt;
    dumpraw                Show raw data from the EPG.&lt;br /&gt;
    sqldump                Produce SQL statements from EPG data.&lt;br /&gt;
    sqlitedump &amp;lt;file&amp;gt;      Create SQLite database from EPG data.&lt;br /&gt;
    now                    Show what is currently on.&lt;br /&gt;
    first                  Show the time of the earliest record.&lt;br /&gt;
    last                   Show the time of the latest record.&lt;br /&gt;
    parse                  Parse the EPG, no output.&lt;br /&gt;
    search &amp;lt;text&amp;gt;          Search programme names for text.&lt;br /&gt;
    searchall &amp;lt;text&amp;gt;       Search programme names/descriptions for text.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Epgfix==&lt;br /&gt;
&lt;br /&gt;
epgfix causes a channel change once a day (by default at 4am) for 3 minutes before restoring the original channel it was tuned to. This is enough to trigger the Humax software to keep the EPG up to date when the Humax is on 24/7, (it has no advantage when the unit has a daily on/standby cycle).&lt;br /&gt;
&lt;br /&gt;
You need at least a single service on an alternative mux. to the one the box is tuned to for it to work. Changing to a different service on the same mux. was found not to work reliably enough.&lt;br /&gt;
&lt;br /&gt;
There is no user interface, no settings and nothing to configure. The only thing you can change is the time of operation if it is not suitable!&lt;br /&gt;
You have to do this manually by editing the /mod/bin/epgfix entry in the /mod/var/spool/cron/crontabs/root file. This is easily available using the File Editor on the WebIf&amp;#039;s Diagnostics page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Epg Keywords (Web-If)==&lt;br /&gt;
&lt;br /&gt;
This package was a web interface plugin which allowed a list of keywords to be configured and when found an email was sent Weekly to a specified email address detailing any programmes in the EPG which matched the keywords.&lt;br /&gt;
&lt;br /&gt;
NOTE:- The EPG Keywords functionality has now been moved to [[Remote_Scheduling_Auto | &amp;#039;&amp;#039;&amp;#039;Remote Scheduling Auto&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Initial Setup :-&lt;br /&gt;
*Web-If MAIN &amp;gt;&amp;gt; SETTINGS &amp;gt;&amp;gt; Email address &amp;gt;&amp;gt; myname@talktalk.co.uk&lt;br /&gt;
*Web-If MAIN &amp;gt;&amp;gt; SETTINGS &amp;gt;&amp;gt; SMTP &amp;gt;&amp;gt; smtp.talktalk.co.uk&lt;br /&gt;
*Web-If MAIN &amp;gt;&amp;gt; SETTINGS &amp;gt;&amp;gt; SEND TEST EMAIL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Epgpatch==&lt;br /&gt;
&lt;br /&gt;
Utility for patching EPG information in a completed recording, it is used to fix problems in TV areas that use non standard EPG data e.g. Ireland Saorview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enable Telnet==&lt;br /&gt;
&lt;br /&gt;
This USB loaded package will re-enable telnet for the Custom Firmware, it performs the following command lines :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f /var/lib/humaxtv/mod/notelnet&lt;br /&gt;
/etc/init.d/S50telnet start &amp;lt;&amp;lt; /dev/null &amp;gt;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exfat==&lt;br /&gt;
&lt;br /&gt;
This package adds support for reading and writing files in the Exfat format&lt;br /&gt;
&lt;br /&gt;
Please take the time to read the [http://en.wikipedia.org/wiki/ExFAT &amp;#039;&amp;#039;&amp;#039;Wikipedia&amp;#039;&amp;#039;&amp;#039;] article on exFAT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exfat Builder==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;See Exfat above&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:exfat-panel.png|right]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note that this package does not add exFAT support to your system, only provides a simple method for you to do it yourself.&amp;#039;&amp;#039;&amp;#039; This is because there are licence and patent issues around exFAT and if we were to make the compiled exFAT code available in the repository then we would be in violation of at least some of them.&lt;br /&gt;
&lt;br /&gt;
The package provides a web page (accessible from the standard web interface settings screen) from which you can download, build and install the required files in a single step. It will:&lt;br /&gt;
&lt;br /&gt;
*Download an open-source exFAT implementation from Google Code;&lt;br /&gt;
*Unpack and modify the code to support the Humax;&lt;br /&gt;
*Compile the files into binaries which can run on the Humax;&lt;br /&gt;
*Install the compiled binaries on your system;&lt;br /&gt;
*Add hooks to automatically mount exFAT disks when they are detected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EXTRA.css==&lt;br /&gt;
&lt;br /&gt;
See [[Custom_Firmware_Package_Notes#Webif_Style_Sheet|&amp;#039;&amp;#039;&amp;#039;Webif Style Sheet&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Fan==&lt;br /&gt;
&lt;br /&gt;
the default fan speeds set by humax are :-&lt;br /&gt;
*70% - once the HDD temperature reaches 55°C&lt;br /&gt;
*65% - when the temperature drops to 54°C&lt;br /&gt;
*55% - when the temperature drops to 51°C&lt;br /&gt;
*0% - when the temperature drops to 49°C&lt;br /&gt;
&lt;br /&gt;
This utility allows the user to set a minimum continuous fan speed between 0% and 100%, By setting a minimum fan speed higher than zero it is possible to prevent the fan reaching the noisier 70% setting. If the Humax requests a higher speed setting, this higher speed will be used&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*After an initial Humax restart, this package can change the minimum fan speed on-the-fly every two minutes&lt;br /&gt;
*The fanspeed (0 - 255) is stored in the /mod/boot/fanspeed file&lt;br /&gt;
*Changes made by this package will be displayed in the /tmp/humaxtv.log file, if Diagnostics &amp;gt;&amp;gt; debugtv &amp;gt;&amp;gt; Run Diagnostic has been run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Editing /tmp/humaxtv.log&lt;br /&gt;
Sun Sep 15 10:42:36 2013 Applying minimum fan speed = 255 (ff)&lt;br /&gt;
Sun Sep 15 10:44:36 2013 Applying minimum fan speed = 0 (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ffmpeg==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FFmpeg will record, convert, extract and stream audio and video. It includes libavcodec - the leading audio/video codec library. It also displays information about video and audio files. See Link [http://ffmpeg.org/ffmpeg.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
NOTE:- Ffmpeg operations performed on the Humax can be very demanding on CPU time, especially when performing conversions rather than extractions. The following examples were carried out using a version of Ffmpeg running on a P.C.rather than on the Humax.&lt;br /&gt;
&lt;br /&gt;
Convert an extracted MP3 audio file in MP2 format to the more common MP3:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; ffmpeg -i input.ts -vn -ar 44100 -ac 2 -ab 192000 -f mp3 output.mp3&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extract an MPG file from a Hi-Definition TS file from the Humax :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; ffmpeg -i input.ts -target pal-dvd -vcodec copy -acodec copy output.mpeg&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a GUI from end available for the P.C. version of ffmpeg [http://avanti.arrozcru.org/&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fix-disk==&lt;br /&gt;
&lt;br /&gt;
Fix-Disk is a disk partition repair utility (built into Custom Firmware Ver 2.12 and above) for the Humax HDR-Fox T2. It does a full file system check, repairing minor faults automatically as it goes. It will also allow you to fix the delete loop problem. A fix-disk.log file will be generated in /mod/tmp/ and can be viewed using Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; View Log Files&lt;br /&gt;
&lt;br /&gt;
To invoke the Fix-Disk utility follow the Maintenance Mode Guide [[Maintenance_Mode | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fix-disk (USB)==&lt;br /&gt;
&lt;br /&gt;
As fix-disk is now built into Custom Firmware 2.12 and is therefore already resident on your hard drive, the USB version is no longer recommended or supported. However it is still available [[http://www66.zippyshare.com/v/44898524/file.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flatten==&lt;br /&gt;
&lt;br /&gt;
This feature changes how recorded programs are displayed on screen in the &amp;#039;Media - My Video&amp;#039; menu. Series of programs are normally grouped into a sub-folder. Flatten will move the contents of sub-folders to the main &amp;#039;Top&amp;#039; folder and remove empty sub-folders. After installing flatten the Web-If will have an option under OPT+ which lets you toggle directories between flatten and no-flatten.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#All directories will default to have flatten turned on unless they are changed&lt;br /&gt;
#Flatten runs every 15 Minutes when the box is not in standby&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exceptions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Folders marked as no flatten using the OPT+ option will not be flattened&lt;br /&gt;
* Folders whose names are bounded by square brackets e.g. [NOT THIS ONE] will not be flattened&lt;br /&gt;
* Folders containing a file called .noflatten will not be flattened (Note:- Create this file Via Telnet)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flatview==&lt;br /&gt;
&lt;br /&gt;
FlatView is an alternative to flatten, it provides both a flattened view and a hierarchical view at the same time by creating a new top-level directory (called &amp;quot; [FlatView]&amp;quot; by default). Recordings appear in both without using any additional disk space&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Recordings deleted from the flattened view area are automatically removed from the original location in the hierarchy and the original folder will be removed if it is empty;&lt;br /&gt;
*Recordings deleted from the hierarchical view will be automatically removed from the flattened area too;&lt;br /&gt;
*If a recording is renamed in either area, then the change will be reflected in the other (there may be a small delay);&lt;br /&gt;
*Changes in flags such as &amp;#039;Unwatched&amp;#039; and the resume point are synchronised across the two locations;&lt;br /&gt;
*If you move a recording out of the flattened view area, the system will think that it has been deleted and will remove the corresponding recording from the hierarchical view area;&lt;br /&gt;
*If you move a recording into the flattened view area, it will be left untouched&lt;br /&gt;
*Command line option = /mod/webif/plugin/flatview/run&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exceptions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*The contents of folders marked as no flatten using the OPT+ option will not appear in [Flatview]&lt;br /&gt;
*The contents of folders with names in square brackets [Like This] will not appear in [Flatview]&lt;br /&gt;
*The contents of folders containing a file named .noflatten will not appear in [Flatview]&lt;br /&gt;
&lt;br /&gt;
==Flexget==&lt;br /&gt;
&lt;br /&gt;
FlexGet is a multi-purpose automation tool for content like torrents, nzbs, pod-casts, comics, series, movies, etc. It can use different kinds of sources like RSS-feeds, html pages, csv files, search engines and there are even plugins for sites that do not provide any kind of useful feeds.&lt;br /&gt;
&lt;br /&gt;
A Typical Cron entry for Flexget would be :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; */1 * * * * /mod/bin/flexget -c /mod/.flexget/config.yml --cron &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Flexget Documentation [http://flexget.com &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flexview==&lt;br /&gt;
&lt;br /&gt;
FlexView is intended to offer an alternative to the traditional webif to allow you to view an manage your recording inventory in whatever way suits you&lt;br /&gt;
&lt;br /&gt;
[[FlexView | &amp;#039;&amp;#039;&amp;#039;See a Guide to Flexview&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forcedate==&lt;br /&gt;
&lt;br /&gt;
This utility forces the date on your Humax to 16 November 2011 12:34:56. It is required if the Humax can&amp;#039;t get Time / Date info Over The Air. After using Forcedate it is possible to set time / date to internet time automatically on boot-up using [[Custom_Firmware_Package_Notes#Ntp_Client | &amp;#039;&amp;#039;&amp;#039;NTP Client&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Foscam==&lt;br /&gt;
&lt;br /&gt;
See Guide [[Custom_TV_Portal#Portal_Foscam | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==FTP==&lt;br /&gt;
&lt;br /&gt;
File Transfer Protocol is a method of transferring files to and from your Humax. The Humax HDR-Fox T2 has a built-in FTP server for access to the media folders only. See the [[Custom_Firmware_Package_Notes#Betaftpd |&amp;#039;&amp;#039;&amp;#039;Betaftpd package&amp;#039;&amp;#039;&amp;#039; ]] for access to the full Humax file structure or to add an FTP server to the HD-Fox T2. To use FTP on a P.C. a program that handles FTP is required. Internet Explorer and Windows (file) Explorer will allow FTP access by entering ftp://10.0.0.200 into the address bar, although access may be restricted to media folders only, even when using the Betaftpd package. If access to the whole file structure is required, programs like Filezilla or WS_FTP_Pro can be used.&lt;br /&gt;
&lt;br /&gt;
Notes :- &lt;br /&gt;
* To use the Built-In Humax FTP server MENU &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings &amp;gt;&amp;gt; FTP Server = ON&lt;br /&gt;
* When using Betaftpd MENU &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings &amp;gt;&amp;gt; FTP Server = OFF&lt;br /&gt;
* 10.0.0.200 needs to be replaced with your own Humax IP address&lt;br /&gt;
* login = humaxftp&lt;br /&gt;
* password = 0000 (your Remote Pin default). If the remote password has been changed from 0000 then the new password must be used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Foxlink==&lt;br /&gt;
&lt;br /&gt;
Helper package for linking a HD Fox-T2 to a HDR, See [[Foxlink|&amp;#039;&amp;#039;&amp;#039;Guide Here&amp;#039;&amp;#039;&amp;#039;]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fuse==&lt;br /&gt;
&lt;br /&gt;
With FUSE it is possible to implement a fully functional filesystem in a userspace program.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Genre Icons==&lt;br /&gt;
&lt;br /&gt;
It is possible to inhibit the Genre Icons displayed in the Web-If, see [[Custom_Firmware_Package_Notes#Webif_Style_Sheet | &amp;#039;&amp;#039;&amp;#039; Web-If Style Sheet&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
Distributed version control system designed to handle everything from small to very large projects with speed and efficiency. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Grep==&lt;br /&gt;
&lt;br /&gt;
Grep is built into Busybox and is used to search through a file or files looking for specified blocks of text. The output can be displayed on-screen or sent to a new file.  [http://unixhelp.ed.ac.uk/CGI/man-cgi?egrep Syntax Here]&lt;br /&gt;
&lt;br /&gt;
Associated utilities = Egrep, Fgrep&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cat original-file.txt&lt;br /&gt;
&lt;br /&gt;
-H      Add &amp;#039;filename:&amp;#039; prefix&lt;br /&gt;
-h      Do not add &amp;#039;filename:&amp;#039; prefix&lt;br /&gt;
-n      Add &amp;#039;line_no:&amp;#039; prefix&lt;br /&gt;
-l      Show only names of files that match&lt;br /&gt;
-L      Show only names of files that don&amp;#039;t match&lt;br /&gt;
-c      Show only count of matching lines&lt;br /&gt;
-o      Show only the matching part of line&lt;br /&gt;
-q      Quiet. Return 0 if PATTERN is found, 1 otherwise&lt;br /&gt;
-v      Select non-matching lines&lt;br /&gt;
-s      Suppress open and read errors&lt;br /&gt;
-r      Recurse&lt;br /&gt;
-i      Ignore case&lt;br /&gt;
-w      Match whole words only&lt;br /&gt;
-F      PATTERN is a literal (not regexp)&lt;br /&gt;
-E      PATTERN is an extended regexp&lt;br /&gt;
-m N    Match up to N times per file&lt;br /&gt;
-A N    Print N lines of trailing context&lt;br /&gt;
-B N    Print N lines of leading context&lt;br /&gt;
-C N    Same as &amp;#039;-A N -B N&amp;#039;&lt;br /&gt;
-e PTRN Pattern to match&lt;br /&gt;
-f FILE Read pattern from file&lt;br /&gt;
&lt;br /&gt;
humax# grep match original-file.txt&lt;br /&gt;
-l      Show only names of files that match&lt;br /&gt;
-L      Show only names of files that don&amp;#039;t match&lt;br /&gt;
-c      Show only count of matching lines&lt;br /&gt;
-o      Show only the matching part of line&lt;br /&gt;
-v      Select non-matching lines&lt;br /&gt;
-e PTRN Pattern to match&lt;br /&gt;
humax#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnu Fdisk==&lt;br /&gt;
&lt;br /&gt;
GNU fdisk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hdparm==&lt;br /&gt;
&lt;br /&gt;
hdparm is a command line utility for setting and viewing ATA hard disk drive hardware parameters. It can set parameters such as drive caches, sleep mode, power management, acoustic management, and DMA settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==HMT==&lt;br /&gt;
&lt;br /&gt;
This package displays information on, and allows editing of, the Humax *.hmt file, which is a small &amp;#039;side-car&amp;#039; file created alongside the main *.ts video file.&lt;br /&gt;
&lt;br /&gt;
From a Telnet session, navigate to a directory containing an *.hmt file, then enter hmt {filename}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; hmt KAISER_CHIEFS_DD5_1_20110410_0147.hmt &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hmt Options List&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# hmt&lt;br /&gt;
Humax HMT Tool v2.0.6, by af123, 2011-2015.&lt;br /&gt;
&lt;br /&gt;
Syntax: hmt [command] &amp;lt;filename&amp;gt; [filename] ...&lt;br /&gt;
  Commands:&lt;br /&gt;
    +/-new        Mark/unmark recording as new.&lt;br /&gt;
    +/-lock       Mark/unmark recording as locked.&lt;br /&gt;
    +/-guidance   Mark/unmark recording as having guidance.&lt;br /&gt;
    +/-protect    Enable/disable protection (prevents decryption on copy).&lt;br /&gt;
    +/-encrypted  Mark/unmark recording as encrypted.&lt;br /&gt;
    +/-shrunk     Mark/unmark recording as shrunk.&lt;br /&gt;
    +/-dedup      Mark/unmark recording as deduped.&lt;br /&gt;
    +/-detectads  Mark/unmark recording as ad-detection-done.&lt;br /&gt;
    -p            Display parseable file information (see *).&lt;br /&gt;
    -list         Display file information (default).&lt;br /&gt;
    -bookmarks    Display bookmarks.&lt;br /&gt;
    +addbookmark=&amp;lt;seconds&amp;gt;[:&amp;lt;seconds&amp;gt;]...&lt;br /&gt;
    +setbookmarks=&amp;lt;seconds&amp;gt;[:&amp;lt;seconds&amp;gt;]...&lt;br /&gt;
    +clearbookmarks&lt;br /&gt;
    +settitle=&amp;lt;new title&amp;gt;&lt;br /&gt;
    +setsynopsis=&amp;lt;new synopsis&amp;gt;&lt;br /&gt;
    +setguidance=&amp;lt;new guidance&amp;gt;&lt;br /&gt;
    +setfolder=&amp;lt;new folder&amp;gt; (patch hmt only)&lt;br /&gt;
    +setfilename=&amp;lt;new filename&amp;gt; (patch hmt only)&lt;br /&gt;
    +setgenre=&amp;lt;genre&amp;gt; (can just specifiy initial part)&lt;br /&gt;
    +setresume=&amp;lt;resume point (seconds)&amp;gt; (-seconds to set from end)&lt;br /&gt;
&lt;br /&gt;
Generic patch commands:&lt;br /&gt;
    +patch8=offset:value     patch 8-bit value&lt;br /&gt;
    +patch16=offset:value    patch 16-bit value&lt;br /&gt;
    +patch32=offset:value    patch 32-bit value&lt;br /&gt;
  Offset and value can be preceeded with 0x to indicate hex.&lt;br /&gt;
&lt;br /&gt;
Generic read commands:&lt;br /&gt;
    +read8=offset            read 8-bit value&lt;br /&gt;
    +read16=offset           read 16-bit value&lt;br /&gt;
    +read32=offset           read 32-bit value&lt;br /&gt;
  Offset can be preceeded with 0x to indicate hex.&lt;br /&gt;
&lt;br /&gt;
* Parseable output is tab delimited and contains the following fields:&lt;br /&gt;
        Title, Synopsis, HD/SD, LCN, Channel Name,&lt;br /&gt;
        Start time, End time, Flags, Guidance, Bookmark count,&lt;br /&gt;
        Scheduled start, Scheduled duration, Genre code,&lt;br /&gt;
        Resume point, Status/Reason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*+addbookmark=100:200:300 = Add to existing bookmark list&lt;br /&gt;
*+setbookmarks=100:200:300 = replace bookmark list with this new ones&lt;br /&gt;
*+setbookmarks= = same as +clearbookmarks i.e. remove all bookmarks&lt;br /&gt;
&lt;br /&gt;
==hmt-linux==&lt;br /&gt;
&lt;br /&gt;
A version of hmt compiled to run on a Linux platform (not for the Humax)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==hmt-solaris==&lt;br /&gt;
&lt;br /&gt;
A version of hmt compiled to run on a Solaris platform (not for the Humax)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hrwconv==&lt;br /&gt;
&lt;br /&gt;
Wrapper script for ffmpeg and sidecar packages to convert 9200T/9150T/9300T files to HDR format&lt;br /&gt;
&lt;br /&gt;
It is recommended that you create a new directory and move your existing 9200T/9150T/9300T files and their sidecars into it, Hrwconv will not make any changes to the originals but will create new files so you will need to ensure that you have enough free disk space.&lt;br /&gt;
&lt;br /&gt;
After installing the package, connect to the Humax via Telnet, change directory &amp;#039;cd&amp;#039; to the new directory and then run:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hrwconv *.ts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After a few hours the new files will have been created in the subdirectory  &amp;#039;new&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==HTTPS==&lt;br /&gt;
&lt;br /&gt;
HyperText Transfer Protocol Secure is an extra layer built into the normal HTTP protocol used to access the Web-Interface for the Humax, It provides a more secure connection to the Humax. An HTTPS Server can be enabled in Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; General Settings &amp;gt;&amp;gt; HTTPS web server = On&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Humaxrw==&lt;br /&gt;
&lt;br /&gt;
Utility to copy recordings from a Humax 9200T/9150T/9300T hard disk that is connected to the HDR via USB. The files recorded on 9000 series Humaxs are playable on the HDR, however the HDR can&amp;#039;t directly read a hard disk formatted on a 9000 series, Humaxrw will allow the transfer of files between 9000 series and the HDR.&lt;br /&gt;
&lt;br /&gt;
After installing Humaxrw, access to the utility is by [[Custom_Firmware_Package_Notes#Telnet | &amp;#039;&amp;#039;&amp;#039;Telnet&amp;#039;&amp;#039;&amp;#039;]] command line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# humaxrw -h&lt;br /&gt;
Host &amp;lt;-&amp;gt; Humax disk&lt;br /&gt;
===================&lt;br /&gt;
Usage: humaxrw [options] HUMAXDISK&lt;br /&gt;
&lt;br /&gt;
  -b            backup all recordings from Humax disk to current directory&lt;br /&gt;
  -d &amp;lt;list&amp;gt;     delete recordings&lt;br /&gt;
  -g &amp;lt;list&amp;gt;     get recordings to current directory&lt;br /&gt;
  -h            help (this text)&lt;br /&gt;
  -i &amp;lt;list&amp;gt;     get info for recordings&lt;br /&gt;
  -l            list recordings&lt;br /&gt;
  -p &amp;lt;filename&amp;gt; put recording(s) onto Humax disk&lt;br /&gt;
  -u &amp;lt;list&amp;gt;     unprotect recordings&lt;br /&gt;
  -v            version&lt;br /&gt;
  -x            extended listing for humaxdiag&lt;br /&gt;
  -w            pause at the end waiting for a keypress&lt;br /&gt;
  -y            answer yes to all prompts&lt;br /&gt;
&lt;br /&gt;
  Advanced Options&lt;br /&gt;
  -D            Delete time shift recording buffers&lt;br /&gt;
  -E            Update all synopsis/info data for version 1.00.20 or later&lt;br /&gt;
  -H &amp;lt;list&amp;gt;     get hre files for recordings&lt;br /&gt;
  -M &amp;lt;n&amp;gt;        modify recording number n (use with -O &amp;amp; -V options)&lt;br /&gt;
  -O &amp;lt;n&amp;gt;        offset for modify recording (use with -M &amp;amp; -V options)&lt;br /&gt;
  -V &amp;lt;n&amp;gt;        modify recording value (use with -M &amp;amp; -O options)&lt;br /&gt;
  -Z            Delete EPG save data&lt;br /&gt;
&lt;br /&gt;
Humax disk -&amp;gt; Humax disk&lt;br /&gt;
========================&lt;br /&gt;
Usage: humaxrw [options] SRCHUMAXDISK DESTHUMAXDISK&lt;br /&gt;
&lt;br /&gt;
  -b            backup all recordings from source Humax disk&lt;br /&gt;
                and copy to destination Humax disk&lt;br /&gt;
  -g &amp;lt;list&amp;gt;     get recordings from source disk&lt;br /&gt;
                and copy to destination Humax disk&lt;br /&gt;
&lt;br /&gt;
Recovery mode - use if record list is missing/corrupt&lt;br /&gt;
=============&lt;br /&gt;
Usage: humaxrw -r [options] HUMAXDISK&lt;br /&gt;
&lt;br /&gt;
  -i &amp;lt;list&amp;gt;     get info for recordings&lt;br /&gt;
  -l            list recordings&lt;br /&gt;
  -n            no info - use if corruption is really bad&lt;br /&gt;
  -g &amp;lt;list&amp;gt;     get recordings to current directory as recover_nnnn.ts&lt;br /&gt;
&lt;br /&gt;
Example of a list: 10-20,30,41-42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Humidify==&lt;br /&gt;
&lt;br /&gt;
A utility for manipulating Humax Download Format (HDF) files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# humidify&lt;br /&gt;
HDF Tool v1.0.4, by af123, 2011-2015.&lt;br /&gt;
&lt;br /&gt;
Syntax: humidify [options] &amp;lt;filename&amp;gt;&lt;br /&gt;
  -C                   Skip checksum validation.&lt;br /&gt;
  -c &amp;lt;arguments&amp;gt;       Create HDF file (&amp;#039;-c help&amp;#039; for more).&lt;br /&gt;
  -d&amp;lt;level&amp;gt;            Enable debugging at level.&lt;br /&gt;
  -l                   Show contents of HDF file (default).&lt;br /&gt;
  -o                   Use old-style checksum blocks when creating.&lt;br /&gt;
  -r                   Don&amp;#039;t compress blocks when creating.&lt;br /&gt;
  -S&amp;lt;section&amp;gt;          Extract only the numbered section.&lt;br /&gt;
  -t                   Test archive (validate checksums).&lt;br /&gt;
  -x                   Extract files.&lt;br /&gt;
  -s                   Also show/extract member checksums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
  View HDF:    humidify file.hdf&lt;br /&gt;
  Test HDF:    humidify -t file.hdf&lt;br /&gt;
  Extract HDF: humidify -x file.hdf&lt;br /&gt;
  Create HDF:  humidify -c file.hdf (run &amp;#039;humidify -c help&amp;#039; for more)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A cross platform version of Humidify can be downloaded from the packages page, [[Customised_Firmware_-_Features_Available#Miscellaneous_Software_Utilities | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
It contains the following files:-&lt;br /&gt;
&lt;br /&gt;
[[File:Humidify-1.0.2.zip.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hwctl==&lt;br /&gt;
&lt;br /&gt;
Hardware control utility - Use with caution ! ! !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Id3v2==&lt;br /&gt;
&lt;br /&gt;
A command line ID3v1.1 tagger for MP3 files. See also See also [[#Popol |&amp;#039;&amp;#039;&amp;#039;Popol&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
Available commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  -h,  --help               Display this help and exit&lt;br /&gt;
  -f,  --list-frames        Display all possible frames for id3v2&lt;br /&gt;
  -L,  --list-genres        Lists all id3v1 genres&lt;br /&gt;
  -v,  --version            Display version information and exit&lt;br /&gt;
  -l,  --list               Lists the tag(s) on the file(s)&lt;br /&gt;
  -R,  --list-rfc822        Lists using an rfc822-style format for output&lt;br /&gt;
  -d,  --delete-v2          Deletes id3v2 tags&lt;br /&gt;
  -s,  --delete-v1          Deletes id3v1 tags&lt;br /&gt;
  -D,  --delete-all         Deletes both id3v1 and id3v2 tags&lt;br /&gt;
  -C,  --convert            Converts id3v1 tag to id3v2&lt;br /&gt;
  -1,  --id3v1-only         Writes only id3v1 tag&lt;br /&gt;
  -2,  --id3v2-only         Writes only id3v2 tag&lt;br /&gt;
  -a,  --artist  &amp;quot;ARTIST&amp;quot;   Set the artist information&lt;br /&gt;
  -A,  --album   &amp;quot;ALBUM&amp;quot;    Set the album title information&lt;br /&gt;
  -t,  --song    &amp;quot;SONG&amp;quot;     Set the song title information&lt;br /&gt;
  -c,  --comment &amp;quot;DESCRIPTION&amp;quot;:&amp;quot;COMMENT&amp;quot;:&amp;quot;LANGUAGE&amp;quot;&lt;br /&gt;
                            Set the comment information (both&lt;br /&gt;
                             description and language optional)&lt;br /&gt;
  -g,  --genre   num        Set the genre number&lt;br /&gt;
  -y,  --year    num        Set the year&lt;br /&gt;
  -T,  --track   num/num    Set the track number/(optional) total tracks&lt;br /&gt;
&lt;br /&gt;
You can set the value for any id3v2 frame by using &amp;#039;--&amp;#039; and then frame id&lt;br /&gt;
For example:&lt;br /&gt;
        id3v2 --TIT3 &amp;quot;Monkey!&amp;quot; file.mp3&lt;br /&gt;
would set the &amp;quot;Subtitle/Description&amp;quot; frame to &amp;quot;Monkey!&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Inadyn==&lt;br /&gt;
A Dynamic DNS client with web configuration plug-in (see webif settings page). The log file is blanked whenever the box set to standby and a new one created when switched from standby.&lt;br /&gt;
&lt;br /&gt;
For freedns.afraid.org the hostname in settings should be of the form:&lt;br /&gt;
xxxx.xxxxxxxx.xxxxx, &amp;lt;user name hash&amp;gt;&lt;br /&gt;
Where &amp;lt;user name hash&amp;gt; is obtained from the freedns website, when logged on&lt;br /&gt;
&lt;br /&gt;
==In Use==&lt;br /&gt;
&lt;br /&gt;
Utility for checking whether a recording is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==I-Phone Interface==&lt;br /&gt;
&lt;br /&gt;
An iphone optimised web interface for the Humax.&lt;br /&gt;
&lt;br /&gt;
Screen Shots [[Smartphone_Web_Interface_Screenshots | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ir (Web-If Remote Controller)==&lt;br /&gt;
&lt;br /&gt;
This package adds a fully functioning Remote Controller to the Web Interface. Full Details [[WebIf_Remote_Controller|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==lsof==&lt;br /&gt;
&lt;br /&gt;
This unix command stands for LiSt of Open Files. With no extensions it will default to &amp;#039;All&amp;#039; open files, but it is probably more useful when used with a filter as shown in the examples :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; lsof | grep humaxtv &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;All files opened by the main Humax TV process&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; lsof | cut -f 1 -d&amp;#039; &amp;#039; | sort | uniq &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;List all processes that have opened files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; lsof | grep epg &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;All files opened by the EPG process&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;humax# lsof | grep epg&lt;br /&gt;
epg 596 root  cwd  0000  31,0 1307722938  21474853357 /dev&lt;br /&gt;
epg 596 root  rtd  0000  31,0 1321652395  77309428205 /&lt;br /&gt;
epg 596 root  txt  0000  8,18 1322689164   4295000557 /mnt/hd2/mod/bin/epg&lt;br /&gt;
epg 596 root  mem   REG  8,18                 9226050 /mnt/hd2/mod/bin/epg (path inode=4295000557)&lt;br /&gt;
epg 596 root  mem   REG  31,0                     174 /lib/ld-uClibc-0.9.29.so (path inode=4295000557)&lt;br /&gt;
epg 596 root  mem   REG  8,18                 9225846 /mnt/hd2/mod/lib/libsqlite3.so.0.8.6 (path inode=4295000557)&lt;br /&gt;
epg 596 root  mem   REG  31,0                     169 /lib/libuClibc-0.9.29.so (path inode=4295000448)&lt;br /&gt;
epg 596 root  mem   REG  31,0                     216 /lib/libpthread-0.9.29.so (path inode=4295000448)&lt;br /&gt;
epg 596 root  mem   REG  31,0                     186 /lib/libdl-0.9.29.so (path inode=4295000448)&lt;br /&gt;
epg 596 root    0  0000  31,0 1307722935   4294975926 /dev/null&lt;br /&gt;
epg 596 root    1  0000  0,13 1322848876   4295000502 /tmp/epgd.log&lt;br /&gt;
epg 596 root    2  0000  0,13 1322848858   4295000502 /tmp/modinit.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Jim==&lt;br /&gt;
&lt;br /&gt;
Jim is a form of the programming language TCL (Tool Command Language) that runs on the Humax unix platform.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Jpnevulator==&lt;br /&gt;
&lt;br /&gt;
Serial Port Sniffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Joe==&lt;br /&gt;
&lt;br /&gt;
Text Editor. See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
&lt;br /&gt;
An alternative Kernel for the HDR-Fox T2 is loadable via USB upgrade, the zip files contains copies of the standard kernels and a version  with GUID/EFI support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lighttpd==&lt;br /&gt;
&lt;br /&gt;
Lighttpd is a replacement for the mongoose Web server used on the Humax to handle it&amp;#039;s Web-If pages. [[Web_Interface_Screenshots | &amp;#039;&amp;#039;&amp;#039;SEE EXAMPLES&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
For more information on lighttpd click [http://www.lighttpd.net/  &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==LDD==&lt;br /&gt;
&lt;br /&gt;
ldd prints the shared libraries required by each program or shared library specified on the command line&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libpcre==&lt;br /&gt;
&lt;br /&gt;
Perl-compatible Regular Expressions Library&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libunwind==&lt;br /&gt;
&lt;br /&gt;
Utility used with the Crashdiag package&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==LibParted==&lt;br /&gt;
&lt;br /&gt;
Library for the [[#Parted|&amp;#039;&amp;#039;&amp;#039;Parted&amp;#039;&amp;#039;&amp;#039;]] package&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libsndfile==&lt;br /&gt;
&lt;br /&gt;
A C library for reading and writing files containing sampled sound.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Loaders==&lt;br /&gt;
&lt;br /&gt;
 {{Warning|title=WARNING !|Although the installation of a new loader only takes a few seconds (unlike a full firmware change), it is imperative that there is no power interruption during the process as this could cause the Humax to become permanently inoperative (bricked)}} &lt;br /&gt;
&lt;br /&gt;
The Loader - sometimes called the Boot Loader is a small routine that the Humax runs on start-up, the version of your Loader is displayed in the lower left hand corner of the Humax screen immediately after the unit is taken out of standby, there are currently 4 loader versions known to be installed on the HDR-Fox T2, they are :-&lt;br /&gt;
a730, a731, a733 and a734.&lt;br /&gt;
&lt;br /&gt;
Different versions of loader may improve &amp;#039;Green Screen&amp;#039; HDMI handshake problems found on some televisions, a link to the hummy.tv discussion can be found [https://hummy.tv/forum/threads/hdmi-issue-with-bravia.8203/page-2#post-116204 &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==M4==&lt;br /&gt;
&lt;br /&gt;
GNU M4 is an implementation of the traditional Unix macro processor. More notes [http://www.gnu.org/software/m4/ &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maintenance Mode==&lt;br /&gt;
&lt;br /&gt;
This is as special mode that the Humax can be placed in, to carry out checks etc. on the system. See Guide [[Maintenance_Mode|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Mediatomb==&lt;br /&gt;
A UPnP Media Server, This package allows the HD T2 to stream content to other devices on your network, as the HD T2 does not have this facility built-in. There is a user Guide [http://mediatomb.cc/pages/documentation &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
==Mongoose==&lt;br /&gt;
&lt;br /&gt;
Mongoose was the Webserver that the Custom Firmware Package used to present Web pages, it has been replaced by Lighttpd. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Multienv==&lt;br /&gt;
&lt;br /&gt;
Helper utility for modifying the set top environment, Used by other packages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Multi-mode==&lt;br /&gt;
&lt;br /&gt;
[[Multi-mode_Recording | &amp;#039;&amp;#039;&amp;#039;See Guide HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mvdisks==&lt;br /&gt;
&lt;br /&gt;
Mounts external drives (connected via USB) under &amp;quot;My Video&amp;quot; to allow export by the DLNA server (HDR only)&lt;br /&gt;
Note:- It is possible to change the name of the moved USB directory from &amp;#039;usb-disk&amp;#039; to another name by using Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; File Editor and replacing 3 of the 4 &amp;#039;usb-disk&amp;#039;s with a new name in the file /mod/etc/mdev/rmvdisks.The second occurrence of &amp;#039;usb-disk&amp;#039; does not need changing&lt;br /&gt;
&lt;br /&gt;
*Allows recording directly to a USB drive on the HDR&lt;br /&gt;
*Allows files on a USB drive to be served via DLNA (HDR only)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Network Shares Automount==&lt;br /&gt;
&lt;br /&gt;
Automatic mounting of remote nfs or smb directories, with configuration on the box, using special &amp;quot;settings&amp;quot; directories to add and configure shares. Remote host(s) are &amp;quot;pinged&amp;quot; regularly, and shares are mounting / unmounting automatically with host availability&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folders on a computer or NAS box can be shared with other devices on the same network. On the Humax box with custom firmware we can add support for two protocols - smb (used by Windows, pre-Lion OsX, linux running Samba), and nfs (Linux, OsX, common with NAS boxes). smb support is provided by the cifs package. We can &amp;quot;mount&amp;quot; the remote shared folder(s) so they appear as if they were part of the local file system on the Humax&lt;br /&gt;
&lt;br /&gt;
This packages uses directory names in the &amp;quot;*Modsettings/smb&amp;quot; and/or &amp;quot;*Modsettings/nfs&amp;quot; folders to configure as many shares as you like. For example to set up a new smb share, use the opt+ button to create a new directory within the smb folder. Name it what you want the mount to be called (eg &amp;quot;MyPc&amp;quot;) Wait about 10 seconds, and navigate into the new folder. The script should have created a load of template &amp;quot;configuration directories&amp;quot; for you to rename (host IP address, foldername, user, password etc).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
#The &amp;quot;_&amp;quot; symbol is used instead of &amp;quot;.&amp;quot; in IP names and &amp;quot;/&amp;quot; in folder names as these can&amp;#039;t be input (or if they can I think the box changes them to a &amp;quot;_&amp;quot;)&lt;br /&gt;
#Once configured, the script will regularly ping the host computer to see if it is available. If it is then the shared folder will be mounted and should be browsable. If the host goes offline, the folder will be unmounted, preventing the box from locking up.&lt;br /&gt;
#Wake up On LAN (WOL) is available to automatically power up compatible (newer) NAS boxes, The user must supply the MAC address of the NAS box and set wakeNow? to remove the &amp;#039;?&amp;#039; for a single wake or wakeConstantly? to remove the &amp;#039;?&amp;#039; to repeat every few seconds. A script called  wakecmd in mod/sbin is now called up that contains both ether-wake and the WOL script&lt;br /&gt;
#If option ShareFolder = off, the mount will appear in the USB section and either a real USB device or virtual2 must be installed&lt;br /&gt;
#If option ShareFolder = on, the mount will appear under &amp;#039;My Video&amp;#039;&lt;br /&gt;
[[File:warning-anim.gif|100px|left]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; DELETING THE MY VIDEO/[SHARES] FOLDER WILL DELETE FILES ON YOUR REMOTE COMPUTER / LAPTOP/ NAS ETC. &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To safely remove the [Shares] DO NOT DELETE folder :-&lt;br /&gt;
#Delete the configuration file created in [ModSettings]/NFS or [Modsettings]/SMB&lt;br /&gt;
#reboot the Humax&lt;br /&gt;
#Ensure there are no active shares in the [Shares] folder&lt;br /&gt;
#Turn off the remote device holding the shared files&lt;br /&gt;
#Delete the [Shares] DO NOT DELETE folder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nano==&lt;br /&gt;
&lt;br /&gt;
Text Editor, See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Portal==&lt;br /&gt;
&lt;br /&gt;
This package adds a new front-end to the standard Humax TV Portal, See guide [[Custom_TV_Portal | &amp;#039;&amp;#039;&amp;#039; HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Newk==&lt;br /&gt;
&lt;br /&gt;
This utility will create a folder on the hard disk with a chosen prefix removed, in order to tidy-up the folder title, so for example when recording a new series called &amp;quot;New: The Walking Dead&amp;quot; a folder will be created called &amp;quot;The Walking Dead&amp;quot; and all new recordings will be placed into it, if the prefix &amp;quot;New: &amp;quot; is placed in Webif &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Automatic Series Prefix Removal settings. &lt;br /&gt;
&lt;br /&gt;
Note:- Existing series folder will not be renamed by the Newk package&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nicesplice==&lt;br /&gt;
&lt;br /&gt;
A recorded program editing utility, See [[Edit_On_Box | &amp;#039;&amp;#039;&amp;#039;Edit On box Guide&amp;#039;&amp;#039;&amp;#039;]], Nicesplice also &amp;#039;Shrinks&amp;#039; the file using [[Custom_Firmware_Package_Notes#Stripts|&amp;#039;&amp;#039;&amp;#039;Stripts&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nsplice==&lt;br /&gt;
&lt;br /&gt;
Nsplice is supplied with the &amp;#039;&amp;#039;&amp;#039;[[DetectAds]]&amp;#039;&amp;#039;&amp;#039; package, it is a version of the Nicesplice program modified to accept commands from stdin instead of the command line and to make the output recording visible as it is processed to permit chase playing. The .nts for the -dec file input to splice is a hard link to the .nts for the input recording.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NTFS 3g==&lt;br /&gt;
&lt;br /&gt;
Read/write NTFS disk access. Out of the box the Humax can only read NTFS formatted drives but this package upgrades that support to full read/write access &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NTFS Progs==&lt;br /&gt;
&lt;br /&gt;
This utility contains diagnostic tools and a utililty to format a partition as NTFS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ntp Client==&lt;br /&gt;
&lt;br /&gt;
Network Time Protocol sets the Humax clock from an Internet time server on each boot. Useful if you do not have an aerial connection or your Humax doesn&amp;#039;t keep good time. Ntpclient runs with the -l option which also adjusts the time in between system boots.&lt;br /&gt;
&lt;br /&gt;
Note :- This utility may also need [[Custom_Firmware_Package_Notes#Forcedate | &amp;#039;&amp;#039;&amp;#039;Forcedate&amp;#039;&amp;#039;&amp;#039;]] to be loaded, In order to get the date near the current as NTP won&amp;#039;t change a time / Date that is too far out. More notes [http://doolittle.icarus.com/ntpclient/ &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nugget==&lt;br /&gt;
&lt;br /&gt;
Nugget framework, handles a number of utilities sent from the commeand line, current option are :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nugget &amp;lt;command&amp;gt;&lt;br /&gt;
  ping             - Test nugget connectivity.&lt;br /&gt;
  status           - Show nugget status and version.&lt;br /&gt;
  schedule.load    - Load recording schedule from disk.&lt;br /&gt;
  schedule.save    - Save recording schedule to disk.&lt;br /&gt;
  schedule.slot    - Update timers for schedule slot.&lt;br /&gt;
  schedule.db      - sqlite3 database handle info.&lt;br /&gt;
  schedule.epg     - Display EPG information for slot.&lt;br /&gt;
  schedule.timers  - Show internal timers.&lt;br /&gt;
  cryptokey        - Set or display encryption key.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OPKG==&lt;br /&gt;
&lt;br /&gt;
Open PacKaGe Management is the tool used to handle Custom Firmware packages, Here Are some examples :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= list all opkg commands&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg install http://hummypkg.org.uk/hdrfoxt2/base/auto-unprotect_1.0.6_mipsel.opk &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= Install a remote package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg download auto-unprotect &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= download current version of a remote package (Version number not allowed)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg list&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= list of available packages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg list-installed&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= list of installed packages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;opkg remove auto-unprotect&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= uninstall a package Note: No version numbers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; opkg install undelete --force-reinstall &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= Force a package reinstall&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; opkg whatdepends anacron &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;HID&amp;lt;/span&amp;gt;= Show dependants&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Opkg-beta==&lt;br /&gt;
&lt;br /&gt;
When this package is installed beta versions of installed packages will be made available in &amp;#039;Package Management &amp;gt;&amp;gt; Upgrades&amp;#039; screen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parted==&lt;br /&gt;
&lt;br /&gt;
GNU Partition Editor. On-line User Manual [http://www.gnu.org/software/parted/manual/parted.html#Introduction &amp;#039;&amp;#039;&amp;#039;HERE]&lt;br /&gt;
&lt;br /&gt;
==Popol==&lt;br /&gt;
&lt;br /&gt;
A command line ID3v1.1 tagger for MP3 files, If is possible to insert the following fields into an MP3 ID3 header. See also See also [[#Id3v2 |&amp;#039;&amp;#039;&amp;#039;Id3v2&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     -s, --songname           set songname&lt;br /&gt;
     -a, --artist             set artist&lt;br /&gt;
     -l, --album              set album&lt;br /&gt;
     -c, --comment            set comment&lt;br /&gt;
     -y, --year               set release year&lt;br /&gt;
     -t, --tracknum           set track number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Portal Foscam==&lt;br /&gt;
&lt;br /&gt;
See [[Custom_TV_Portal#Portal_Foscam | &amp;#039;&amp;#039;&amp;#039;GUIDE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Portal Xtra1==&lt;br /&gt;
&lt;br /&gt;
See Guide [[Custom_TV_Portal#Portal_Xtra1 | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Portal Xtra1 (USB)==&lt;br /&gt;
&lt;br /&gt;
This is a version of the Portal Xtra1 that runs in Flash memory, this package was built to run on the Humax HD-Fox T2 without an External Hard Disk Drive and is installed Via USB only. See Guide [[Custom_TV_Portal#Portal_Xtra1 | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Poweron-Channel==&lt;br /&gt;
&lt;br /&gt;
NOTE:- This package was replaced by the Boot-Settings package with the release of Webif 1.4&lt;br /&gt;
&lt;br /&gt;
This Utility forces the Humax to always power up on a selected TV channel regardless of the last channel viewed, After installing the Poweron-Channel package, select options in Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Settings for poc package &amp;gt;&amp;gt; Click here for settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Power-On Channel = Selected TV Channel for start-up (See note 1)&lt;br /&gt;
*Volume = 0-20 or Last Audio Volume&lt;br /&gt;
*Power-On Channel Group = Select Favourites List or None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Disable Subtitles on every boot (See Note 3)&lt;br /&gt;
*Turn the DLNA server on at every boot (See Note 3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Ensure that the selected Poweron TV channel is included in the selected Favourite group&lt;br /&gt;
#A scheduled wake-up will use the channel set in the on-TV menus at Settings&amp;gt;&amp;gt;Preferences&amp;gt;&amp;gt;Time&amp;gt;&amp;gt;Channel not the Power-On Channel settings&lt;br /&gt;
# Only available by editing /mod/boot/pox using Diagnostics &amp;gt;&amp;gt; File Editor (details below)&lt;br /&gt;
# The parameters set by Poweron-Channel are contained in the /var/lib/humaxtv/setup.db database, other items may be added to the pox file from this database, but please use extreme caution, their functions are not fully understood&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cat /mod/boot/pox&lt;br /&gt;
# Poweron-channel additional options.&lt;br /&gt;
&lt;br /&gt;
# Example: uncomment the following line to disable subtitles on every boot&lt;br /&gt;
#TBL_MENUCONFIG:SUBTITLE_DISPLAY_F:1&lt;br /&gt;
&lt;br /&gt;
# Example: uncomment the following line to turn the DLNA server on at each&lt;br /&gt;
# boot in case it has been turned off.&lt;br /&gt;
#TBL_MENUCONFIG:DMS_START_ON:1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Procps==&lt;br /&gt;
&lt;br /&gt;
procps is the package that has a bunch of small useful utilities that give information about processes using the /proc file system. The package includes the programs ps, top, vmstat, w, kill, free, slabtop, and skill.Version 3 includes NPTL thread support, a rewritten top, many bug fixes, performance improvements, and new features. Link [http://procps.sourceforge.net/  &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Prog Backup==&lt;br /&gt;
&lt;br /&gt;
Utility for backing up recordings and side-car files to locally attached drives, A search of attached drives will be made so that the user can choose. Both Hi-Def and Standard definition recordings will be de-crypted so they can be played on a P.C. or copied back to a different Humax. Command line examples Below :-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; progbackup&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt; Backup everything under My Video&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; progbackup &amp;quot;/mnt/hd2/My Video/BOB&amp;#039;s Films/&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt; Backup files in a specified folder&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE:-&amp;#039;&amp;#039;&amp;#039; Make sure to use the quotation marks around the directory name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Python==&lt;br /&gt;
&lt;br /&gt;
A package that adds the Python programming language&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Python Setuptools==&lt;br /&gt;
&lt;br /&gt;
Setup tools including Easy_Install for the Python programming language, see notes [[http://pypi.python.org/pypi/setuptools#using-setuptools-and-easyinstall|&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qtube==&lt;br /&gt;
&lt;br /&gt;
Simple webif to queue youtube downloads to run in the Auto process queue, see [[Custom_Firmware_Package_Notes#Youtube-dl | &amp;#039;&amp;#039;&amp;#039;Youtube-dl&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Recmon==&lt;br /&gt;
&lt;br /&gt;
Utility for executing another process whenever a recording starts or finishes&lt;br /&gt;
&lt;br /&gt;
Recmon runs every script in /mod/etc/recmon.d in response to events. The order that they are run in is not guaranteed (they actually run in parallel).&lt;br /&gt;
The commands are run with two arguments, a switch saying which event triggered this and the base name of the recording file (no extension).&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
/mod/etc/recmon.d/test -start &amp;quot;/media/My Video/path/to/recording&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Flags are -start, -stop, -move and -delete. Usually -move is called twice, once for the source location and once for the destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/mod/etc/recmon.d/auto-unprotect -start &amp;quot;/media/My Video/The Resident_20150520_0007&amp;quot;&lt;br /&gt;
/mod/etc/recmon.d/auto-unprotect -stop &amp;quot;/media/My Video/The Resident_20150520_0007&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rc app bridge==&lt;br /&gt;
&lt;br /&gt;
Utility that enables the Humax HDR-Fox T2 to be controlled by the  TV Remote App. (supplied by Humax) that runs on the I-Phone, the same App. is also available on the Android platform, however version HMARG 1.0.4 does not appear to work with this package&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* This package requires Content Share to be enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Real Time Scheduling (RTS)==&lt;br /&gt;
&lt;br /&gt;
When the Custom Firmware was developed, Scheduled events created in the Web-If or Via Remote Scheduling were placed into a pending queue and only moved into the main schedule on the next boot or reboot, In Web-If version 1.3.2-1 and later, it is possible to automatically progress from the &amp;#039;Pending&amp;#039; stage directly to a fully scheduled stage without the Humax having to perform a boot cycle. This option can be enabled / disabled with the :- Settings &amp;gt;&amp;gt; Advanced Settings &amp;gt;&amp;gt; Real Time Scheduling Yes / No option&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Redring ==&lt;br /&gt;
&lt;br /&gt;
Causes the Humax to display a Red LED ring when recording in standby, plus various other front panel options detailed in the table below. The new settings are configurable using the Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Redring Settings&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;GENERAL SETTINGS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! width=&amp;quot;250&amp;quot;| Humax Status &lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Humax Default&lt;br /&gt;
! width=&amp;quot;150&amp;quot;|With Redring&lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Redring Setting&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Purple When dual Recording&lt;br /&gt;
! 11% Amber&lt;br /&gt;
! bgcolor=#ffbbbb | Purple&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Enable Debugging Log&lt;br /&gt;
! N/A&lt;br /&gt;
! bgcolor=#ffbbbb | Debug&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;WHEN FULLY AWAKE i.e. TV Display = On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Humax Status &lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Humax Default&lt;br /&gt;
! width=&amp;quot;150&amp;quot;|With Redring&lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Redring Setting&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Disable Screen Scrolling&lt;br /&gt;
! Scrolling On&lt;br /&gt;
! bgcolor=#ffbbbb | Scrolling Off&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Enable Clock&lt;br /&gt;
! Clock Off&lt;br /&gt;
! bgcolor=#ffbbbb | Clock On&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Elapsed Time During Playback&lt;br /&gt;
! N/A&lt;br /&gt;
! bgcolor=#ffbbbb | Elapsed Time&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Play HH:MM Instead of Clock&lt;br /&gt;
! N/A&lt;br /&gt;
! bgcolor=#ffbbbb | HH:MM&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override LED Ring Brightness&lt;br /&gt;
Blue Brightness&lt;br /&gt;
&lt;br /&gt;
Red Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
100% &amp;gt; 50%&lt;br /&gt;
&lt;br /&gt;
after 3 Mins.&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Variable&lt;br /&gt;
&lt;br /&gt;
Variable&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
&lt;br /&gt;
0% to 100%&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override Display Brightness&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
Fixed&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Variable&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override Playback Display Brightness&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
Fixed&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Variable&lt;br /&gt;
! bgcolor=#ffbbbb | On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;WHEN HALF AWAKE i.e. Waiting / Recording from standby or OTA Search&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Humax Status &lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Humax Default&lt;br /&gt;
! width=&amp;quot;150&amp;quot;|With Redring&lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Redring Setting&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Blue LED Ring&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
11% Amber&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Blue&lt;br /&gt;
Variable&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off&lt;br /&gt;
10% to 100% &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Show Red LED Ring (Recording)&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
11% Amber&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Red&lt;br /&gt;
Variable&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off&lt;br /&gt;
10% to 100%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;WHEN IN STANDBY i.e. Hard Disk Not Spinning&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Humax Status &lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Humax Default&lt;br /&gt;
! width=&amp;quot;150&amp;quot;|With Redring&lt;br /&gt;
! width=&amp;quot;100&amp;quot;|Redring Setting&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override LED Ring Brightness&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
11% Amber&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Amber Brightness&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Override Display Brightness&lt;br /&gt;
Brightness&lt;br /&gt;
! Fixed&lt;br /&gt;
11%&lt;br /&gt;
! bgcolor=#ffbbbb | Switchable Override&lt;br /&gt;
Variable&lt;br /&gt;
!  bgcolor=#ffbbbb |  On / Off&lt;br /&gt;
0% to 100%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ffbbbb; background:#FFbbbb&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#ffffff;&amp;quot;&amp;gt; ** &amp;lt;/span&amp;gt; = Change from Humax default&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Redring can cause slight delay of Remote Control key presses, e.g. Pause etc.&lt;br /&gt;
*Problems writing to the /mod/tmp/redring.log will be listed in the /var/log/humaxtv.log after diagnostics &amp;gt;&amp;gt; debugtv is run&lt;br /&gt;
&lt;br /&gt;
==Renumber==&lt;br /&gt;
[[File:renumber.png|200px|thumb|right]]&lt;br /&gt;
Channel re-numbering support, for each channel that you wish to change, enter a new number into the box and save changes. Next time you reboot your Humax, the channel numbers will change around. If you ever rescan the channels on your box then the next time you reboot they will be automatically changed to match your saved preference. Once installed, a new option will be shown in the Web Interface Settings screen, probably near the bottom.&lt;br /&gt;
&lt;br /&gt;
Renumbering channels is useful for people who want to swap the high-definitions services with their standard-definition counterparts, e.g. swap BBC ONE for BBC ONE HD putting BBC ONE HD on channel 1, and can also be used to re-order channels (e.g. move BBC HD to channel 8) to be closer to the start of the EPG. Of course another way to achieve this is to use the standard favourites feature in the Humax software to define your own list of channels and order them to suit.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*The renumber settings appears under the &amp;quot;reorder&amp;quot; section of the settings page on the Web-If&lt;br /&gt;
*The [[Custom_Firmware_Package_Notes#Tunefix | &amp;#039;&amp;#039;&amp;#039;Tune Fix&amp;#039;&amp;#039;&amp;#039;]] package has replaced the Renumber package&lt;br /&gt;
&lt;br /&gt;
==Reset Webif==&lt;br /&gt;
&lt;br /&gt;
Reset Webif will clear out all of the custom firmware packages and files without affecting your recordings or scheduled recordings. It is designed to be executable by booting from a Flash USB device loaded with the Reset Webif utility and is useful when the &amp;#039;Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; Remove All Custom Firmware packages and settings&amp;#039; is not available, Wait for the light to stop flashing then remove the disk and reboot the Humax (using the remote control). If you point a web browser at the Humax then you&amp;#039;ll be back at the initial installation interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remote Scheduling (RS)==&lt;br /&gt;
&lt;br /&gt;
Remote Scheduling Service. Links your device to the remote scheduling portal so you can manage your scheduled recordings list from anywhere with an Internet connection and web browser&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Remote_Scheduling | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remote Scheduling Auto==&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Remote_Scheduling_Auto | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remote Scheduling Muti-Mode==&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Multi-mode_Recording#Multi-Mode_Recording_Via_RS_Portal | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remote Scheduling Mobile==&lt;br /&gt;
&lt;br /&gt;
Full Guide[[Remote_Scheduling_Mobile_Edition#Multi-Mode_Recording_Via_RS_Portal | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==rs==&lt;br /&gt;
&lt;br /&gt;
Command line tool that carries out a number of functions relating to the Remote Scheduling service, e.g. :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# rs&lt;br /&gt;
Humax Remote Scheduling Tool v1.3.1, by af123, 2011-2015.&lt;br /&gt;
&lt;br /&gt;
Syntax: rs [options] &amp;lt;command&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
  Options:&lt;br /&gt;
    -d[level]              Set debug level.&lt;br /&gt;
    -D&amp;lt;seconds&amp;gt;            Sleep for random(seconds).&lt;br /&gt;
    -h                     Show help text.&lt;br /&gt;
    -i                     Show detected machine info.&lt;br /&gt;
    -q                     Be more quiet.&lt;br /&gt;
&lt;br /&gt;
  Commands:&lt;br /&gt;
    register &amp;lt;email&amp;gt;       Register this device.&lt;br /&gt;
    push                   Push scheduled events.&lt;br /&gt;
    cmd                    Retrieve next queued command.&lt;br /&gt;
    ack &amp;lt;id&amp;gt;               Acknowledge command &amp;lt;id&amp;gt;.&lt;br /&gt;
    status                 Show device registration status.&lt;br /&gt;
    log &amp;lt;msg&amp;gt;              Send log message to server.&lt;br /&gt;
    epg                    Distributed EPG management.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rs time==&lt;br /&gt;
&lt;br /&gt;
Command line utility that returns a number in seconds, that indicates the time offset between your Humax unit and the Remote Servers time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RMA==&lt;br /&gt;
&lt;br /&gt;
The Return to MAnufacturer Web-If option under [[Diagnostic_Utilities  |&amp;#039;&amp;#039;&amp;#039;Diagnostics&amp;#039;&amp;#039;&amp;#039;]] removes Custom Firmware files from the internal hard disk drive of the HDR Fox T2, following an RMA the user should re-install a version of official Humax Software to complete the &amp;#039;Out of the Box&amp;#039; status of the Humax&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* After running the procedure, &amp;#039;RMA&amp;#039; will be displayed in the front panel display, this message should be removed after the official Humax Software is installed, however if the message is still present, it is possible to remove it by running the [[#DeRMA | &amp;#039;&amp;#039;&amp;#039;DeRMA&amp;#039;&amp;#039;&amp;#039;]] USB package&lt;br /&gt;
* More options for removing the Custom Firmware are detailed in the [[Remove_Modified_Firmware | &amp;#039;&amp;#039;&amp;#039;Remove Modified Firmware&amp;#039;&amp;#039;&amp;#039;]] page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rsvsync==&lt;br /&gt;
&lt;br /&gt;
Boot-time reservation sync service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rsync==&lt;br /&gt;
&lt;br /&gt;
A fast, versatile, remote (and local) file-copying tool, example :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; rsync -avr --progress --delete --exclude &amp;#039;Tsr/&amp;#039; mnt/hd2/ root@synology ip::NetBackup &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[Custom_Firmware_Package_Notes#Cron|&amp;#039;&amp;#039;&amp;#039;cronjob&amp;#039;&amp;#039;&amp;#039;]] example would run at 01:05 each day, keeping the internal and external disks in sync - you just need to ensure the box is on at that time via a reminder or other mechanism.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; 5 1 * * * /mod/bin/rsync --archive --delete-after --log-file=/mod/tmp/rsync.log /media/My\ Video/ /media/drive1/Video/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Custom Firmware and Humax setup can be copied from an existing Humax to a new Humax by installing the rsync and dropbear packages on both units and then entering Maintenance Mode on the new Humax and sending the following two command lines :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; rsync -avr &amp;lt;ip address of old humax&amp;gt;:/var/lib/humaxtv/ /var/lib/humaxtv/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; rsync -avr &amp;lt;ip address of old humax&amp;gt;:/mnt/hd2/mod/ /mnt/hd2/mod/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://ss64.com/bash/rsync.html  &amp;#039;&amp;#039;&amp;#039;More Info.&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==rt3070==&lt;br /&gt;
&lt;br /&gt;
This package was a replacement wireless driver which allowed for a wider range of wireless dongle vendor types, it was removed from the packages list because version 1.0 is not compatible with the latest 1.03.XX versions of Custom firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Safe Mode==&lt;br /&gt;
&lt;br /&gt;
Safe Mode is a package loaded onto the Humax via USB in the same way as a software upgrade, it temporarily switches off most Custom Firmware components (apart from a small web server that allows you to get back out of safe more when you want), there is a package called enablesafemode.spk to turn this feature on and another called disablesafemode.spk to turn it back off, they are available frrom the [[Firmware_Downloads | &amp;#039;&amp;#039;&amp;#039;Firmware Download page&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; if you have altered the encryption keys on your humax that any recordings made in safe mode will be made using the standard encryption and won&amp;#039;t be, automatically, viewable when you return to normal mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Samba==&lt;br /&gt;
&lt;br /&gt;
Windows compatible file sharing. Allows access to the Humax file system from a computer on the same network. The file system is shared using Windows compatible sharing so can be access from Windows, MacOSX and most other operating systems. Samba operates using &amp;#039;Server Message Block&amp;#039; (SMB), also known as Common Internet File System (CIFS) protocols&lt;br /&gt;
&lt;br /&gt;
To map a network drive in windows :-&lt;br /&gt;
&lt;br /&gt;
#Click Start, click My Network Places, click Entire Network, and then double-click Microsoft Windows Network.&lt;br /&gt;
#Double-click the domain that you want to open.&lt;br /&gt;
#Double-click the computer that has the shared resource you want to map. All the shared resources for that computer automatically appear in the window.&lt;br /&gt;
#Right-click the shared drive or folder that you want to map, and then click Map Network Drive.&lt;br /&gt;
#Click the drive letter that you want to use, and then specify whether you want to reconnect every time that you log on to your computer.&lt;br /&gt;
#Note Network drives are mapped by using letters starting from the letter Z. This is the default drive letter for the first mapped drive you create. However, you can select another letter if you want to use a letter other than Z.&lt;br /&gt;
&lt;br /&gt;
Drive sizes can be incorrectly reported, to avoid this set path = /media/My Video in the /mod/etc/smb.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tips&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
#Ensure Samba is enabled in Web-If &amp;gt;&amp;gt; Service Management&lt;br /&gt;
#If the Windows &amp;#039;WORKGROUP&amp;#039; has been changed from default, edit file /mod/etc/smb.conf to match the new name&lt;br /&gt;
&lt;br /&gt;
==Schedchk==&lt;br /&gt;
 &lt;br /&gt;
Check scheduled recordings against EPG and reschedule, if possible, entries that don&amp;#039;t match the EPG &lt;br /&gt;
See the [[Schedchk|user guide]] for further details&lt;br /&gt;
&lt;br /&gt;
==Scons==&lt;br /&gt;
&lt;br /&gt;
SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Screensaver==&lt;br /&gt;
&lt;br /&gt;
If you pause live TV for more than 3 Mins. you will see the current time displayed on the TV screen, This is a screensaver and is designed to prevent ‘burn-in’ on flat panel TVs. The digits are made up of a series of pictures that are stored on the Humax in this read only area :-  /opt/share/images/blue/821-4, It is possible to change these pictures to remove the screensaver completely (Black) or use a different font. After a new screensaver package is loaded, it will automatically become the new screensaver, you can select from installed screensaver plug-ins using the Web-If &amp;gt;&amp;gt; Settings screen&lt;br /&gt;
&lt;br /&gt;
When screensaver is first installed only ‘Humax default’ is present, this is the &amp;#039;flip Clock&amp;#039; default screensaver, If Black is installed then a completely Blank screen will be displayed. All screensaver plug-ins can be installed separately from the Web-If, e.g. the first screensaver Plug-in shown below is called screensaver-3X5, here is a list of plug-ins available :-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!3X5&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:3X5.png|200px]] &lt;br /&gt;
!Neon&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:neon.png|200px]]&lt;br /&gt;
!Avatar&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:avatar.png|200px]]  &lt;br /&gt;
|-&lt;br /&gt;
! 7Seg&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:7Seg.png|200px]]&lt;br /&gt;
! Neon-Blue&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:neon-blue.png|200px]]&lt;br /&gt;
!Wedge&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:Wedge.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
! Dot&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:Dot.png|200px]]&lt;br /&gt;
! Agen&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:Agen.png|200px]]&lt;br /&gt;
!Cursor&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:Cursor.png|200px]] &lt;br /&gt;
|-&lt;br /&gt;
! VFD&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:VFD.png|200px]]&lt;br /&gt;
! Glass-Blue&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
| [[File:glass-b.png|200px]]&lt;br /&gt;
!Maze&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
|[[File:Maze.png|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;screensaver-all&amp;#039;&amp;#039;&amp;#039; = Install all current screensavers from the package server&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; screensaver-random&amp;#039;&amp;#039;&amp;#039; = Randomly select from the list of installed screensavers&lt;br /&gt;
&lt;br /&gt;
Telnet selection of installed screensaver Plug-ins as follows e.g.:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# screensaver&lt;br /&gt;
   1: 3X5&lt;br /&gt;
   2: 7Seg&lt;br /&gt;
   3: Black&lt;br /&gt;
   4: Cursor&lt;br /&gt;
   5: Humax Default &lt;br /&gt;
   6: Neon&lt;br /&gt;
   7: Neon-Blue&lt;br /&gt;
   8: VFD&lt;br /&gt;
Choose option [1-8]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES:-&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
*The Humax will need to be placed into stand-by before the new screensaver will be displayed&lt;br /&gt;
*If screensaver-all is installed, it must be uninstalled before other screensaver plug-ins are uninstalled&lt;br /&gt;
*If any of the screensaver Plug-ins are uninstalled the display will default to Humax Default&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sed==&lt;br /&gt;
&lt;br /&gt;
GNU Stream Editor, A stream editor is used to perform basic text transformations on an input stream, application notes [http://www.gnu.org/software/sed/manual/sed.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;] or  [http://www.grymoire.com/Unix/Sed.html#uh-0 &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Series Filer==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The Series Filer package is no longer supported, the functions it carried out can be replicated by the [[sweeper | &amp;#039;&amp;#039;&amp;#039;Sweeper&amp;#039;&amp;#039;&amp;#039;]] package, the following notes have been retained for reference only.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This utility will re-locate series folders created at the top level of My Video to Selected Sub-Directories so that they can be grouped together. After a New series folder has been created by the Humax at the top level, Simply move this series folder to a Sub-directory that you have created e.g. move the Doctor Who series folder to a sub-folder called ‘His Video’. When the next instalment of Doctor Who is transmitted the Humax will create another Doctor Who folder at the top level again, However, If Series Files is running the new instalment will be moved to the ‘His Video / Doctor Who’ automatically. Program names will also be re-named (if possible) to give more detail of each episode&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE:-&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The early versions of Series Filer were not compatible with the Undelete package because the [deleted] directory was not handled correctly. Please DO-NOT run Series Filer versions before 0.2.2 with any version of the Undelete package, version 0.2.2 and above are safe to use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Service Control==&lt;br /&gt;
&lt;br /&gt;
A command line utility allowing easy control of installed services. Run the &amp;#039;service&amp;#039; command from the command line for help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From a Telnet command line prompt send the following :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; service &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# service&lt;br /&gt;
&lt;br /&gt;
Name                 Installed  Autostart  Running&lt;br /&gt;
----                 ---------  ---------  -------&lt;br /&gt;
mediatomb            No         No         No&lt;br /&gt;
dropbear             No         No         No&lt;br /&gt;
transmission         No         No         No&lt;br /&gt;
samba                No         No         No&lt;br /&gt;
cifs                 No         No         No&lt;br /&gt;
mongoose             Yes        Yes        Yes&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
        service start &amp;lt;service&amp;gt;&lt;br /&gt;
        service stop &amp;lt;service&amp;gt;&lt;br /&gt;
        service auto &amp;lt;service&amp;gt;          (toggles autostart) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sh (SHell)==&lt;br /&gt;
&lt;br /&gt;
Sh or Shell is a command line / scripting language built into Busybox that is roughly equivalent to the Windows DOS (Disk Operating System) utility. It is however a lot more powerful than DOS and is a true language&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sidecar==&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Sidecar Files&lt;br /&gt;
&lt;br /&gt;
Recreates sidecar files .hmt and .nts from a .ts source file.&lt;br /&gt;
&lt;br /&gt;
Command line options :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sidecar v2.5, a utility for the Humax HD/HDR Fox T2, by raydon (c) 2014-2018&lt;br /&gt;
Usage: sidecar [-options] &amp;lt;recording name minus .ts extension&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        -n : Create new .nts file&lt;br /&gt;
        -h : Create new or update existing .hmt file&lt;br /&gt;
        -x : Exclude Prog/PMT ID&amp;#039;s from .hmt file&lt;br /&gt;
        -c : &amp;lt;Channel number for .hmt file&amp;gt;&lt;br /&gt;
        -t : &amp;lt;Channel name for .hmt file&amp;gt;&lt;br /&gt;
        -p : Display progress bar&lt;br /&gt;
        -i : Display infomation&lt;br /&gt;
&lt;br /&gt;
Enclose recording or channel name in quotes if they contain spaces or special characters e.g. &amp;amp;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
humax#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The Sidecar package must be installed using the Web-If &amp;gt;&amp;gt; Main screen &amp;gt;&amp;gt; Package Management &amp;gt;&amp;gt; Available screen&lt;br /&gt;
# TS files must be decrypted before running Sidecar, If the TS is encrypted see note 5 below&lt;br /&gt;
#Source video not native to the HDR/HD Fox T2, or that has been processed using some third party application may not be compatible &lt;br /&gt;
#There are versions of sidecar complied for Linux and Windows platforms [[Customised_Firmware_-_Features_Available#Miscellaneous_Software_Utilities | &amp;#039;&amp;#039;&amp;#039;Here&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
# if the ts file is encrypted, the package will create dummy hmt and nts files to allow the file to be decrypted i.e :-&lt;br /&gt;
*Use Sidecar to create the dummy hmt and nts files&lt;br /&gt;
*Once indexed by the DLNA server, manually decrypt via &amp;#039;Opt+&amp;#039; menu in Web-If&lt;br /&gt;
*When the TS file is decrypted, simply run Sidecar again to create hmt and nts files providing full transport control. &lt;br /&gt;
*There is no need to delete the dummy hmt or nts files since sidecar will detect these, and replace them with valid files &lt;br /&gt;
*Sidecar can recreate valid hmt and nts file for both video and radio recordings&lt;br /&gt;
&lt;br /&gt;
==Smartmontools==&lt;br /&gt;
&lt;br /&gt;
This utility will report on the condition of the S.M.A.R.T.  hard disk drive, After installing the package enter the following command line using Telnet :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mod/bin/smartctl /dev/sdb -A &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; mod/bin/smartctl /dev/sdb -a &amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;for more details&lt;br /&gt;
&lt;br /&gt;
Documentation [http://sourceforge.net/apps/trac/smartmontools/wiki/TocDoc&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
humax# /mod/bin/smartctl /dev/sdb -A&lt;br /&gt;
smartctl 5.41 2011-06-09 r3365 [7405b0-smp-linux-2.6.18-7.1] (local build)&lt;br /&gt;
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
=== START OF READ SMART DATA SECTION ===&lt;br /&gt;
SMART Attributes Data Structure revision number: 10&lt;br /&gt;
Vendor Specific SMART Attributes with Thresholds:&lt;br /&gt;
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
  1 Raw_Read_Error_Rate     0x000f   114   099   006    Pre-fail  Always       -       66811863&lt;br /&gt;
  3 Spin_Up_Time            0x0003   097   097   000    Pre-fail  Always       -       0&lt;br /&gt;
  4 Start_Stop_Count        0x0032   098   098   020    Old_age   Always       -       2878&lt;br /&gt;
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0&lt;br /&gt;
  7 Seek_Error_Rate         0x000f   078   060   030    Pre-fail  Always       -       70502101&lt;br /&gt;
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       3294&lt;br /&gt;
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0&lt;br /&gt;
 12 Power_Cycle_Count       0x0032   099   099   020    Old_age   Always       -       1439&lt;br /&gt;
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0&lt;br /&gt;
187 Reported_Uncorrect      0x0032   097   097   000    Old_age   Always       -       3&lt;br /&gt;
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0&lt;br /&gt;
189 High_Fly_Writes         0x003a   093   093   000    Old_age   Always       -       7&lt;br /&gt;
190 Airflow_Temperature_Cel 0x0022   055   044   045    Old_age   Always   In_the_past 45 (0 109 45 32)&lt;br /&gt;
194 Temperature_Celsius     0x0022   045   056   000    Old_age   Always       -       45 (0 13 0 0)&lt;br /&gt;
195 Hardware_ECC_Recovered  0x001a   048   039   000    Old_age   Always       -       66811863&lt;br /&gt;
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0&lt;br /&gt;
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0&lt;br /&gt;
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE:- If an external Hard disk Drive is found on boot up the Internal Hard disk will be /dev/sdb, If no External Hard Disk drive is found at boot up the the internal Hard disk will be /dev/sda&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SQLite3==&lt;br /&gt;
&lt;br /&gt;
SQlite is a database file handler, e.g. files that typically end in *.db can be opened, edited etc. With readline support (arrow key editing and history)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRT==&lt;br /&gt;
&lt;br /&gt;
The Humax is able to play subtitles for MP4 and AVI files if the subtitle information is contained in an *.srt file, the following conditions must be met :-&lt;br /&gt;
&lt;br /&gt;
*The srt file must have the same title as the video file e.g. Fawlty-Towers-S1E3.srt for Fawlty-Towers-S1E3.avi&lt;br /&gt;
*The .srt file needs to be saved as a text file specifically with ANSI encoding to avoid using fonts that are licensed&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
1) Windows Notepad will produce a ANSI encoded srt file&lt;br /&gt;
&lt;br /&gt;
2) Saving  the .srt file with UTF-7 encoding is reported to be more compatible with the Humax&lt;br /&gt;
&lt;br /&gt;
3)A method for extracting SRT files from a Humax *.TS file has been documented on the Hummy.tv forum [http://hummy.tv/forum/threads/quick-guide-to-extract-dvb-subtitles-from-ts-hd-file-and-convert-to-srt-in-minutes.6625/  &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
==SSMTP==&lt;br /&gt;
&lt;br /&gt;
SSMTP is a program to deliver an E-mail from your Humax to a  mail host or mail hub, It will not handle incoming E-Mail&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
&lt;br /&gt;
A Command line (Telnet) command that shows what the Humax is (and will be) doing, e.g. :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# status&lt;br /&gt;
Recording Pretty Woman_20121201_2310&lt;br /&gt;
Watching 12: Dave - Would I Lie to You? (23:00 - 23:40) [7%]&lt;br /&gt;
Will record &amp;#039;The Omen&amp;#039; on Film4 at 23:15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note :- The same information is also displayed automatically on several Web-If screens e.g. The Main Screen and the Remote screen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Strace==&lt;br /&gt;
&lt;br /&gt;
Strace (System Trace) is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stripts==&lt;br /&gt;
This utility removes portions of a recording (*.TS File) that aren&amp;#039;t required and can account for up to 20% of its space, this process will remove freeview EIT packets from the recording, it also updates the associated .nts sidecar file on the fly so that the trick play functions still work on the resulting recording&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax TS Stripper Tool v1.4.2, by af123, 2012-18.&lt;br /&gt;
&lt;br /&gt;
Syntax: stripts [options] &amp;lt;input&amp;gt; [output]&lt;br /&gt;
    -a          Analyse an input file.&lt;br /&gt;
    -A          Quickly analyse an input file.&lt;br /&gt;
    -c          Check if there are any EIT packets.&lt;br /&gt;
    -C          Show address of first EIT packet.&lt;br /&gt;
    -D          Dump NTS file.&lt;br /&gt;
    -E          Check if file is encrypted.&lt;br /&gt;
    -f          Also fix PAT packets.&lt;br /&gt;
    -F          Only fix PAT packets.&lt;br /&gt;
    -T          Dump TS file.&lt;br /&gt;
    -v          Verbose.&lt;br /&gt;
    -X          Add bookmarks at programme start/end.&lt;br /&gt;
    -Z          Extract EPG data from recording (incomplete).&lt;br /&gt;
    -z          Analyse entire TS file.&lt;br /&gt;
    -@ &amp;lt;key&amp;gt;    Decrypt recording with &amp;lt;key&amp;gt;.&lt;br /&gt;
    -/ &amp;lt;key&amp;gt;    Check encryption key against recording.&lt;br /&gt;
    -d [level]  Increase debug level or set debug level.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; stripts -F filename&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Fix file &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; stripts -f filename&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= remove redundant EIT packets &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; stripts -v filename&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Verbose &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; stripts -S filename&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= demux the raw audio stream into a file-name.audio file&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Version 1.4.0 and above of strips also has a file decryption facility, this facility works on both Standard Definition and High Definition recordings and does not require Hi-Def recordings to have the &amp;#039;ENC&amp;#039; flag removed with the Auto-Unprotect package, it does not require a DLNA URL to be allocated or the DLNA server to be running on the Humax, here is an example of a command line decryption using  Stripts :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stripts -@@ &amp;lt;input&amp;gt; &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
stripts -@ 000378bd11f336333731303434393630 &amp;quot;input file name&amp;quot; &amp;quot;output file name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
stripts -/ 000378bd11f336333731303434393630 &amp;quot;input file name&amp;quot;&lt;br /&gt;
Encryption key is correct for this recording.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1) In the first example above -@@ automatically inserts the resident Humax encryption key&lt;br /&gt;
&lt;br /&gt;
2) The Second example above is used when the decryption is being carried out on a file recorded on a different Humax unit, this unit&amp;#039;s encryption key must be entered, e.g :- for a MAC address of 00-03-78-bd-11-f3 and a serial number of 6371044960-1234, enter 000378bd11f3 followed by the first 10 digits of the serial number in hexidecimal e.g. 36333731303434393630 &lt;br /&gt;
&lt;br /&gt;
3) The third example above uses -/ to Check the encryption key against a recording&lt;br /&gt;
&lt;br /&gt;
&amp;quot;input file name&amp;quot; and &amp;quot;output file name&amp;quot; are full *.ts file names, up to, but not including the .ts (Quotes are required for name with spaces)&lt;br /&gt;
&lt;br /&gt;
There are versions of stripts that can perform offline decryption on various computer platforms including :- Linux, MacOSX and Windows etc. [https://wiki.hummy.tv/wiki/Customised_Firmware_-_Features_Available#Miscellaneous_Software_Utilities  &amp;#039;&amp;#039;&amp;#039;See Link HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
==Swapper==&lt;br /&gt;
&lt;br /&gt;
Swapper is a utility to change the Humax&amp;#039;s swap file size to 128&lt;br /&gt;
&lt;br /&gt;
==Sweeper==&lt;br /&gt;
&lt;br /&gt;
Sweeper is a package which re-locates recordings under My Video and files them away automatically for you according to specified criteria, Sweeper can also replicate the Series Filer and flatten packages&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide to the Sweeper Graphical User Interface [[sweeper | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Command Line operation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Sweeper rules can also be generated manually by editting the /mod/etc/sweeper.conf file, available from Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; File editor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; action {move &amp;quot;archive/miscellaneous&amp;quot;}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move all single files into a folder called  archive/miscellaneous (which must exist)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; action {movecreate &amp;quot;archive/miscellaneous&amp;quot;}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move all single files into a folder called  archive/miscellaneous (folder will be created)&lt;br /&gt;
&lt;br /&gt;
Example 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} action {move Children/Miscellaneous}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move single files from channels 70 - 79 to Children/Miscellaneous folder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; action {move _misc}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move all remaining single files into a folder called  _misc &lt;br /&gt;
&lt;br /&gt;
Example 3)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; action {movecreate(Test-%genre-%definition-%title-%channel-%lcn-%duration-%timestamp)}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Expanded to Test-Entertainment-SD-Tim Minchin and the Heritage...-Channel 4-4-87-20130824233802]&lt;br /&gt;
&lt;br /&gt;
Example 4)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; folder title {Octonauts} action {move &amp;quot;Children/Octonauts/Series 3&amp;quot;}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= Move the contents of a series created folder to an existing sub folder e.g. from /Octonauts to /Children/Octonauts/Series 3&lt;br /&gt;
&lt;br /&gt;
Example 5)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; folder action {fileunder &amp;quot;&amp;quot;}&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HI &amp;lt;/span&amp;gt;= emulates the old seriesfiler package&lt;br /&gt;
&lt;br /&gt;
Example 6)&lt;br /&gt;
&lt;br /&gt;
Notes :-&lt;br /&gt;
*lines starting with &amp;#039;#&amp;#039; are comments&lt;br /&gt;
*A full list of commands are detailed in the Sweeper Guide [[sweeper | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sweep single Big Bang episodes into the series folder&lt;br /&gt;
lcn 4 title &amp;quot;Big Bang&amp;quot; action {move &amp;quot;The Big Bang Theory&amp;quot;}&lt;br /&gt;
# Move anything recorded from a children&amp;#039;s channel to the Miscellaneous folder&lt;br /&gt;
lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} duration {&amp;gt;= 90} lock 1 action {move Children/Films}&lt;br /&gt;
lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} genre Film lock 1 action {move Children/Films}&lt;br /&gt;
lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} action {move Children/Miscellaneous}&lt;br /&gt;
folder title {Octonauts} action {move &amp;quot;Children/Octonauts/Series 3&amp;quot;}&lt;br /&gt;
folder lcn {&amp;gt;= 70} lcn {&amp;lt;= 79} action {fileundercreate Children}&lt;br /&gt;
title {Formula 1} action {move F1}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Subtitles==&lt;br /&gt;
[[Custom_Firmware_Package_Notes#SRT | &amp;#039;&amp;#039;&amp;#039;See SRT&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Swifi==&lt;br /&gt;
&lt;br /&gt;
A utility that can retrieve and display your current Wi-fi configuration, it&amp;#039;s location is :- /sbin/swifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sysmon==&lt;br /&gt;
[[File:HDD-Temp.png|right|150px]]&lt;br /&gt;
[[File:CPU.png|right|150px]]&lt;br /&gt;
[[File:network.png|right|150px]]&lt;br /&gt;
A System Monitoring Utility, the Web-If main page has a System Monitoring icon, selecting this icon displays the following options :-&lt;br /&gt;
&lt;br /&gt;
*Hard Disk Temperature&lt;br /&gt;
&lt;br /&gt;
Displays a graph showing the hard disk temperature, This feature uses the [[Custom_Firmware_Package_Notes#Smartmontools | &amp;#039;&amp;#039;&amp;#039;Smartmontools&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
package, options are to display last 2 / 5 hours or 1 / 10 / 30 Days. All graphs have a zoom feature which is implemented with a mouse &amp;#039;click / drag&amp;#039; or a touchscreen &amp;#039;pinch / expand&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*CPU Utilisation&lt;br /&gt;
&lt;br /&gt;
Displays a graph showing CPU Utilisation for Idle, Wait, User and System, options are to display last 2 / 5 hours or 1 / 10 / 30 Days&lt;br /&gt;
&lt;br /&gt;
*Network Utilisation&lt;br /&gt;
&lt;br /&gt;
Displays a graph showing Network Utilisation for Inbound, Outbound, In-Errors and Out-Errors, options are to display last 2 / 5 hours or 1 / 10 / 30 Days&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The data used to build the graphs is held in file /mod/monitor/monitor.db, currently the tables include :-&lt;br /&gt;
#SMART = Hard disk sector relocation information (Not currently displayed as a graph)&lt;br /&gt;
#Temp = the Hard Disk Temperature information&lt;br /&gt;
#Vmstat = CPU Utilisation data for Idle, Wait, User, System&lt;br /&gt;
#Net = Network Utilisation for Inbound, Outbound, In-Errors and Out-Errors&lt;br /&gt;
#State = state (Not currently displayed as a graph)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; You can reset the database with Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; sysmon/purge &amp;gt;&amp;gt; Run Diagnostic&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Flush==&lt;br /&gt;
&lt;br /&gt;
The System Flush Update File is a package that is installed in the same way as a firmware update to perform a full system flush and reset, it reformats the areas of flash used for persistent data like the schedule, there are two of these flash areas and they use the JFFS2 filesystem.&lt;br /&gt;
&lt;br /&gt;
The package is designed to assist recovery from crash/reboot loops.Your recordings will not be affected.&amp;#039;NB: This will also clear most CFW package settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TCL Check==&lt;br /&gt;
&lt;br /&gt;
Utilities for syntax checking TCL (or Jim) files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tcpfix==&lt;br /&gt;
&lt;br /&gt;
This package Modifys the TCP stack to fix download problems that appears to be related to RFC1323 TCP window scaling in the Linux 2.6.18 kernel that the Humax uses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TCP Ping==&lt;br /&gt;
&lt;br /&gt;
Simple TCP ping utility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Telnet==&lt;br /&gt;
&lt;br /&gt;
Telnet is built into the default Custom Firmware package, To communicate Via Telnet from a P.C. you will need a program such as [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html &amp;#039;&amp;#039;&amp;#039;PuTTY&amp;#039;&amp;#039;&amp;#039;], Select connection type Telnet and enter the IP address of your Humax into the Host Name box, Then select OPEN, You will be presented with a new Telnet Window and if connection is successful you will  see the humax# prompt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to use Telnet supplied in some versions Microsoft Windows e.g. Start &amp;gt;&amp;gt; Run &amp;gt;&amp;gt; CMD &amp;gt;&amp;gt; Telnet&lt;br /&gt;
&lt;br /&gt;
See &amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; RED &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039; set-up notes below, to prevent errors when entering text&lt;br /&gt;
&lt;br /&gt;
Telnet is available in Windows XP, However Vista and Windows 7 will require Telnet to be enabled with Control Panel &amp;gt;&amp;gt; Programs and Features &amp;gt;&amp;gt; Turn Windows Features On / Off &amp;gt;&amp;gt; &amp;#039;Tick&amp;#039; Telnet&lt;br /&gt;
&lt;br /&gt;
Follow [[Telnet |&amp;#039;&amp;#039;&amp;#039;THIS LINK&amp;#039;&amp;#039;&amp;#039;]] for more details on the various ways of obtaining a Telnet connection&lt;br /&gt;
&lt;br /&gt;
Here is an example of Windows XP Telnet for &amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; ls -al &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; telnet&lt;br /&gt;
&lt;br /&gt;
Welcome to Microsoft Telnet Client  Escape Character is &amp;#039;CTRL + ]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 open 10.0.0.200&lt;br /&gt;
&lt;br /&gt;
humax# ls -al&lt;br /&gt;
total 17&lt;br /&gt;
drwxr-xr-x 18 root root  192 Jan 10 09:10 .&lt;br /&gt;
drwxr-xr-x 18 root root  192 Jan 10 09:10 ..&lt;br /&gt;
drwxr-xr-x  2 root root  474 Jan 10 09:10 bin&lt;br /&gt;
.......&lt;br /&gt;
drwxr-xr-x  4 root root   88 Jan 10 09:10 var&lt;br /&gt;
humax#&lt;br /&gt;
&lt;br /&gt;
to exit from humax# enter Ctrl + d&lt;br /&gt;
&lt;br /&gt;
Microsoft Telnet &amp;gt;&lt;br /&gt;
to exit from Telnet enter q&lt;br /&gt;
C:\&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
*Telnet command lines on this WiKi are identified by a &amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; Yellow Background &amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; [Putty] Telnet &amp;gt;&amp;gt; Connection &amp;gt;&amp;gt; Telnet &amp;gt;&amp;gt; return Key sends Telnet New Line instead of ^M should be &amp;#039;un-Ticked&amp;#039; &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; [Windows] Telnet &amp;gt;&amp;gt; unset crlf &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*The Humax has a Built-In Telnet Welcome Screen, See [[Custom_Firmware_Package_Notes#Tmenu | &amp;#039;&amp;#039;&amp;#039;Tmenu&amp;#039;&amp;#039;&amp;#039;]] for details&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Telnet Commands==&lt;br /&gt;
&lt;br /&gt;
The majority of Unix / Linux command line keywords can be used on the Humax, if you are not familiar with them, there are a few of the more basic commands and their meanings here :-&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; cd &amp;lt;/span&amp;gt; = change directory, used to navigate around the file structure&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; cd &amp;quot;/media/My Video&amp;quot;  &amp;lt;/span&amp;gt; = navigate to the top level of My Video&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; pwd &amp;lt;/span&amp;gt; = print working directory, tells you where you are in the file structure&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; ls -al &amp;lt;/span&amp;gt; = list contents of the current directory&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; touch  &amp;quot;/media/My Video/dummy.ts&amp;quot; &amp;lt;/span&amp;gt; = create an empty file called dummy.ts in the My Video directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tempmon==&lt;br /&gt;
&lt;br /&gt;
This package checks the HDD temperature every three minutes and will raise a warning if a configurable thresholds is exceeded, the warning is displayed on the HDR-Fox T2&amp;#039;s front panel and the centre &amp;#039;button&amp;#039; flashes. The Setting &amp;gt;&amp;gt; Tempmon page shows the current Hard Disk temperature and has defaults as follows :- Alert If = 50, Attempt to go into standby if = 60 and Immediate power off If = 70 Deg C&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; If the Fan package is not installed the normal Humax routine will turn the fan on at 56 Deg C, so it is suggested that &amp;#039;Alert If&amp;#039; should be set to 60 Deg C and the other two parameters are set to 65 and 70 Deg C&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Text Editors==&lt;br /&gt;
&lt;br /&gt;
There is a built-in GUI Text editor in the Web-If (details [[Custom_Firmware_Package_Notes#File Editor |&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]). In addition to this editor, There is a basic version of [[Custom_Firmware_Package_Notes#Vi |&amp;#039;&amp;#039;&amp;#039;Vi&amp;#039;&amp;#039;&amp;#039;]] built into the custom [[Custom_Firmware_Package_Notes#BusyBox |&amp;#039;&amp;#039;&amp;#039;Busybox&amp;#039;&amp;#039;&amp;#039;]] package (not in the Busybox version included in the vendor&amp;#039;s firmware).  There are also several packages that can be installed to suit your editing preferences e.g. [[Custom_Firmware_Package_Notes#Vim_Basic |&amp;#039;&amp;#039;&amp;#039;Vim Basic&amp;#039;&amp;#039;&amp;#039;]], [[Custom_Firmware_Package_Notes#Vim_Standard | &amp;#039;&amp;#039;&amp;#039;Vim Standard&amp;#039;&amp;#039;&amp;#039;]], [[Custom_Firmware_Package_Notes#Joe | &amp;#039;&amp;#039;&amp;#039;Joe&amp;#039;&amp;#039;&amp;#039;]] and [[Custom_Firmware_Package_Notes#Nano | &amp;#039;&amp;#039;&amp;#039;Nano&amp;#039;&amp;#039;&amp;#039;]].&lt;br /&gt;
&lt;br /&gt;
If you&amp;#039;ve only installed the basic custom firmware (using the upgrade path with USB), then there&amp;#039;s &lt;br /&gt;
[[Custom_Firmware_Package_Notes#Sed | &amp;#039;&amp;#039;&amp;#039;sed&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tmenu==&lt;br /&gt;
&lt;br /&gt;
This built-in package adds a menu to the Telnet Login screen Menu&lt;br /&gt;
&lt;br /&gt;
Enter 0000 for system PIN. Note:- this is the default&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Menu Version 1.13&lt;br /&gt;
Enter System PIN :&lt;br /&gt;
&lt;br /&gt;
      /-------------------------\&lt;br /&gt;
      |  T E L N E T   M E N U  |&lt;br /&gt;
      \-------------------------/&lt;br /&gt;
&lt;br /&gt;
  [ Humax HDR-Fox T2 (humax) 1.03.12/3.03 ] or [Humax HD-Fox T2 (humaxhd) 1.02.29/2.15]&lt;br /&gt;
&lt;br /&gt;
    1 - Restart into maintenance mode.&lt;br /&gt;
    2 - Remove web interface password.&lt;br /&gt;
 stat - Show what the box is currently doing.&lt;br /&gt;
    x - Exit and close connection.&lt;br /&gt;
 rset - Reset custom firmware environment.&lt;br /&gt;
 srma - Set return-to-manufacturer (RMA) mode.&lt;br /&gt;
 diag - Run a diagnostic.&lt;br /&gt;
  cli - System command line (advanced users).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please select option:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE :- It is possible to skip the above Menu and go directly to the Command Line Interface by selecting Expert mode telnet server = On in the Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Advanced Settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tnftp==&lt;br /&gt;
&lt;br /&gt;
The Humax HDR has a built-in FTP Server for transfer of files from Humax to a remote client and an improved FTP Server called [[Custom_Firmware_Package_Notes#Betaftpd|&amp;#039;&amp;#039;&amp;#039;Betaftpd&amp;#039;&amp;#039;&amp;#039;]] to replace it in the HDR, and to add it to the HD, the Tnftp package provides an FTP Client for file transfer from a remote FTP server to the Humax&lt;br /&gt;
&lt;br /&gt;
tnftp is a port of the NetBSD FTP client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transmission (Bit Torrent)==&lt;br /&gt;
&lt;br /&gt;
The Transmission program will download files from the internet using the a torrent protocol, Downloads using this system are usually fed from multiple sites at the same time in parallel, Because of this many URL’s may be used in the download process, These URLs are packaged together into a single *.torrent file, Transmission re-constructs fragments of the file/s from these various URLs into their original format.&lt;br /&gt;
&lt;br /&gt;
Transmission needs to be supplied with the *.Torrent file, it does not have a Torrent file search facility, one possible torrent source is torrentz.eu, download your selected *.Torrent file to the P.C. you run the Web-iF from&lt;br /&gt;
&lt;br /&gt;
For command line access enter :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; transmission-remote &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/mod/etc/transmission/settings.json contains settings such as default = speed-limit mode, this can be changed to fast downloading etc. settings info. [https://trac.transmissionbt.com/wiki/EditConfigFiles &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Go into service control and start Transmission&lt;br /&gt;
*Set it to auto start if you want it to come on whenever the box is on&lt;br /&gt;
*Go to the Web-If main menu and click the transmission icon at the bottom left&lt;br /&gt;
*Select &amp;#039;Open&amp;#039; (the folder at the top left)&lt;br /&gt;
*Select browse in the window and highlight the previously downloaded *.torrent file&lt;br /&gt;
*When highlighted select &amp;#039;Open&amp;#039;&lt;br /&gt;
*Select &amp;#039;Upload&amp;#039;&lt;br /&gt;
*If the &amp;#039;Start when added&amp;#039; box is checked the download will start immediately&lt;br /&gt;
* A new directory will be created at /media/ My Video/torrent/ containing successful downloads&lt;br /&gt;
&lt;br /&gt;
===Blocklist===&lt;br /&gt;
&lt;br /&gt;
The torrent system is a &amp;#039;two-way&amp;#039; process which can allow other users to access your downloaded files, this access can cause a security risk and it is suggested that a block list is set up to prevent this, the Block list contains a set of IP address&amp;#039;s not allowed access.&lt;br /&gt;
&lt;br /&gt;
To create or add to a blocklist go to Transmission &amp;gt;&amp;gt; Preferences (Bottom left &amp;#039;Spanner&amp;#039;) &amp;gt;&amp;gt; Peers &amp;gt;&amp;gt; Blocklist and Enable Blocklist, then go to a block list site such as http://www.iblocklist.com/lists.php and copy an Update URL e.g. http://list.iblocklist.com/?list=bt_level1&amp;amp;fileformat=p2p&amp;amp;archiveformat=gz from there to the Block list URL box and click on Update, This process can be repeated to build up bigger lists&lt;br /&gt;
&lt;br /&gt;
It is also possible to place *.txt files containing blocklists into the /mod/etc/transmission/blocklists folder, these files must be smaller than 5Mbs, They will be processed by the Transmission program when first run and *.bin files will be  created in the same folder, if the files are successfully processed an indication of the number of ‘Blocked’ URL will be displayed e.g. Block List Has 598940 Rules&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*When the block lists are initially being converted into *.bin files, transmission uses an excessive amount of CPU time, this could cause errors in recording, so it is suggested that this is done when the Humax is idle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trm==&lt;br /&gt;
&lt;br /&gt;
Trm is a version of the Unix rm command (ReMove), This version removes files in blocks using Truncate (hence Truncate ReMove) rather than all at once, In order to reduce demand on system resources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TSTools==&lt;br /&gt;
&lt;br /&gt;
A set of tools for manipulating TS files, they include :-&lt;br /&gt;
[[File:Tstools.jpg|left|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TTYSnoop==&lt;br /&gt;
&lt;br /&gt;
TTYSnoop allows you to snoop on login tty&amp;#039;s through another tty-device or pseudo-tty. The snoop-tty becomes a &amp;#039;clone&amp;#039; of the original tty, redirecting both input and output from/to it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tunefix==&lt;br /&gt;
[[File:tunefix.png|right]]&lt;br /&gt;
Tunefix restores a user&amp;#039;s settings after a retune has been run, the 5 Keywords are :-&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;REGION&amp;#039;&amp;#039;&amp;#039; to be used (channels from other regions will be removed)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;LCN&amp;#039;&amp;#039;&amp;#039; (s) by number and/or range will be removed&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;NAME&amp;#039;&amp;#039;&amp;#039; services by name will be removed&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MUX&amp;#039;&amp;#039;&amp;#039; (s) (all channels from these MUXs will be removed)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;FORCE&amp;#039;&amp;#039;&amp;#039; named services to the correct LCN&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; Multiple Regions, LCNs, MUXs are separated by commas&lt;br /&gt;
&lt;br /&gt;
==Tunefix Update==&lt;br /&gt;
&lt;br /&gt;
Automatic channel deletion and fixing after a retune.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TV Diary==&lt;br /&gt;
&lt;br /&gt;
tvdiary is an add-on to the web interface. It tracks the TV programs you record and watch, and presents a diary view through the web interface, See Full Guide[[ TV_Diary | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Uinput==&lt;br /&gt;
&lt;br /&gt;
User-space input kernel module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unencrypt==&lt;br /&gt;
&lt;br /&gt;
New Note:- This package is no longer supported, with the addition to the Web-If of [[Custom_Firmware_Package_Notes#Enable_Auto-Dedup|&amp;#039;&amp;#039;&amp;#039;auto-decrypt&amp;#039;&amp;#039;&amp;#039;]] and [[Custom_Firmware_Package_Notes#Enable_Recursive_Auto-Decrypt|&amp;#039;&amp;#039;&amp;#039;recursive auto-decrypt&amp;#039;&amp;#039;&amp;#039;]] these new functions are recommended in place of Unencrypt due to them being more robust and having more sanity checks&lt;br /&gt;
&lt;br /&gt;
The function will unencrypt all files in a designated directory (or all files in My Video) automatically, Files are decrypted at the same location e.g. &amp;#039;decrypt in place&amp;#039; and are processed at the rate of one file every 30 Mins. max. so don&amp;#039;t expect instant results&lt;br /&gt;
&lt;br /&gt;
To setup Unencrypt install the package and then via [[Custom_Firmware_Package_Notes#Telnet|&amp;#039;&amp;#039;&amp;#039;Telnet&amp;#039;&amp;#039;&amp;#039;]] enter one of the lines below :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; unencryptsetup &amp;quot;Bob&amp;#039;s Videos&amp;quot; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;process a single directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; unencryptsetup &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;process all files in &amp;#039;My Video&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; unencryptsetup disable&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;Turn off unencrypt&lt;br /&gt;
&lt;br /&gt;
This will update the cron table and schedule the program to run every 30 minutes (at Mins 01 and 31) indefinitely. Every time it runs, it will check that there isn&amp;#039;t already another job running and then decrypt the first encrypted file that it finds in the directory you specified, therefore gradually working its way through your files, If you don&amp;#039;t specify a directory, it will default to decrypting all of your recordings.&lt;br /&gt;
&lt;br /&gt;
NOTES:-&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;Due to CPU overloading this feature only works between 1AM and 6AM the Humax must be out of standby during this time using an Auto On / Auto off timer&amp;#039;&amp;#039;&amp;#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*It is possible to change when Unencrypt runs by editing the cron job that controls it, Via the Web-If goto Diagnostics &amp;gt;&amp;gt; File Editor &amp;gt;&amp;gt; Open &amp;gt;&amp;gt; /mod/var/spool/cron/crontabs/ and replace 1-6 with a * to force an Unecrypt start every 30 Mins. that the Humax is out of stand-by&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1,31 * * * * /mod/sbin/unencrypt &amp;quot;/mnt/hd2/My Video/archive&amp;quot; &amp;gt; /mod/tmp/unencrypt.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Auto-Unprotect must be running&lt;br /&gt;
*[[Custom_Firmware_Package_Notes#Content_Sharing |&amp;#039;&amp;#039;&amp;#039;Content sharing&amp;#039;&amp;#039;&amp;#039;]] must = on e.g. Menu &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; System &amp;gt;&amp;gt; Internet Settings&lt;br /&gt;
&lt;br /&gt;
See Decryption flow chart [[Encryption | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Undelete==&lt;br /&gt;
&lt;br /&gt;
Redirects deleted recordings to a dustbin folder called [Deleted Items] and then automatically removes them from this new folder 7 days later, The Folder Name and delay before deletion is carried out (1 to 30 days) is configurable in the Web-If Setting area. It&amp;#039;s a batch process which runs once per day. It runs 6 minutes after the first boot of the day or, if you keep your box on all the time, at 2am.&lt;br /&gt;
It scans the bin and removes anything that was put there over x * 24 hours ago, Where x = no. of days (strictly, anything that was last modified over x * 24 hours ago)&lt;br /&gt;
&lt;br /&gt;
Settings can be changed in :- Web-If &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Undelete Settings, e.g. :-&lt;br /&gt;
&lt;br /&gt;
*Dustbin Name&lt;br /&gt;
*Remove files from dustbin after 1,2,3,4,5,6,7,10,15,20 days&lt;br /&gt;
*Reduce retention time to 0 days if disk space &amp;lt; 10GiB (configurable)&lt;br /&gt;
&lt;br /&gt;
A Log records delete activity at /mod/tmp/empty_dustbin.log&lt;br /&gt;
&lt;br /&gt;
Setting are contained in /mod/webif/plugin/undelete/user.conf&lt;br /&gt;
&lt;br /&gt;
==Version==&lt;br /&gt;
&lt;br /&gt;
Command line (Via Telnet) utility to display various Web-If version numbers, e.g. :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# version&lt;br /&gt;
&lt;br /&gt;
Humax HDR Fox T2 (humax)&lt;br /&gt;
  Humax Version: 1.03.12 (kernel HDR_CFW_3.00)&lt;br /&gt;
  Custom firmware version: 3.00 (build 2137)&lt;br /&gt;
  Web interface version: 1.2.1&lt;br /&gt;
  Serial Number: 12 3456789 12345&lt;br /&gt;
&lt;br /&gt;
humax#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vfdtest==&lt;br /&gt;
[[File:front-icons2.png|right|200px]]&lt;br /&gt;
&lt;br /&gt;
This utility turns on all segments of the Humax front display (Vacuum Fluorescent Display)&lt;br /&gt;
&lt;br /&gt;
Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; Run Diagnostic &amp;gt;&amp;gt; vfdtest (available in pull down menu). This will force the display to set all segments to &amp;#039;on&amp;#039; for 30 seconds, followed by all segments off&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE:- &amp;#039;&amp;#039;&amp;#039; normal display will return after the Humax is placed in standby&lt;br /&gt;
&lt;br /&gt;
Command Line Version :- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; vfdtest on &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;Set Display to All segments On&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt; vfdtest off &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;Set Display to All Segments off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vi==&lt;br /&gt;
&lt;br /&gt;
Text Editor, See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]]. A basic version of Vi is built into the custom [[Custom_Firmware_Package_Notes#BusyBox |&amp;#039;&amp;#039;&amp;#039;Busybox&amp;#039;&amp;#039;&amp;#039;]]  package (it&amp;#039;s not included in the version of Busybox in the vendor&amp;#039;s firmware).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vim Basic==&lt;br /&gt;
&lt;br /&gt;
Text Editor, See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vim Standard==&lt;br /&gt;
&lt;br /&gt;
Text Editor, See [[Custom_Firmware_Package_Notes#Text_Editors | &amp;#039;&amp;#039;&amp;#039;Text Editors&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual-Disk==&lt;br /&gt;
&lt;br /&gt;
One way to decrypt content which has been recorded by the Humax is to copy to an external disk, This is usually a slow process as the&lt;br /&gt;
external disk must be connected via one of the USB ports. This package creates a virtual disk on the system to which content can&lt;br /&gt;
be copied. It is much faster since it is based on the internal hard disk. The virtual disk is shared by the MediaTomb package by default, giving a&lt;br /&gt;
fairly straightforward method of sharing recorded content on the network. In conjunction with the &amp;#039;auto-unprotect&amp;#039; package, high definition content can also be shared. Any copy to Virtual Disk MUST be by Remote Control OPT+ copy for decryption to take place&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:- For new installations, Virtual-Disk2 is now recommended in place of this package&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual-Disk2==&lt;br /&gt;
&lt;br /&gt;
The original Virtual-Disk package (See Above) required a physical USB drive to be in place before the virtual drive could be seen, this new version removes this requirement by creating a drive called &amp;#039;Virtual-USB&amp;#039;, as with a &amp;#039;real&amp;#039; USB drive, you will get an on-screen display each time the system is started, giving USB options  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Web IF ==&lt;br /&gt;
&lt;br /&gt;
[[Web_Interface_Screenshots |&amp;#039;&amp;#039;&amp;#039;Screen Shots&amp;#039;&amp;#039;&amp;#039;]]&amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt; HIDE &amp;lt;/span&amp;gt;[[Webif_release_notes |&amp;#039;&amp;#039;&amp;#039;Release Notes&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
An evolving web interface for the Humax. This package provides a means of accessing the Humax using a web browser on any device connected to the&lt;br /&gt;
network (including mobile &amp;#039;phones and iPads). The interface allows easy viewing of recorded programme details as well as allowing basic&lt;br /&gt;
manipulation to be performed. Additionally the EPG can be viewed and searched from within the web browser&lt;br /&gt;
&lt;br /&gt;
Within the Web-IF are the following Built-In Functions :-&lt;br /&gt;
&lt;br /&gt;
===Backup/Restore Schedule===&lt;br /&gt;
[[File:Backup.png|70px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; Backup / Restore Scheduled Recordings / Events&lt;br /&gt;
&lt;br /&gt;
This feature provides an automatic daily backup of recording schedule, It is also possible to force an extra manual backup at any time. Any stored backups can then be selected for restoration from the backup folder e.g.  /mod/var/backup/auto-2013-Feb-22-18:06.rbk&lt;br /&gt;
&lt;br /&gt;
===Change Channel===&lt;br /&gt;
&lt;br /&gt;
Web-If &amp;gt;&amp;gt; EPG &amp;gt;&amp;gt; Grid Style or Now and Next &amp;gt;&amp;gt; Click on a Channel Logo icon&lt;br /&gt;
&lt;br /&gt;
A Change Channel? question box will pop-up, if you click on &amp;#039;Yes&amp;#039; the Humax will change the &amp;#039;Live&amp;#039; tuned channel to the selected channel&lt;br /&gt;
&lt;br /&gt;
Note :- This option requires that the ir Custom Firmware package is installed&lt;br /&gt;
&lt;br /&gt;
===Change Folder===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; (Click on &amp;#039;More&amp;#039; for a Series Recording) &amp;gt;&amp;gt; Change Folder&lt;br /&gt;
&lt;br /&gt;
Allows the name of a Series Recording folder to be changed, not valid on a single recording&lt;br /&gt;
&lt;br /&gt;
===Cleanup Old Recording (Schedules)===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; Cleanup Old Recordings (at the bottom of the screen)&lt;br /&gt;
&lt;br /&gt;
Allows all entries in the schedule that have no Start Time to be deleted, Humax normally auto-deletes these entries after 12 Weeks.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:-&amp;#039;&amp;#039;&amp;#039; As the EPG is only 7/8 days long caution should be used when deleting scheduled entries that are transmitted less frequently e.g. fortnightly&lt;br /&gt;
&lt;br /&gt;
===Clipboard===&lt;br /&gt;
&lt;br /&gt;
Used in conjunction with Copy, Cut and Paste, The clipboard is an area that files / Folders can be temporarily held in while a new destination is selected. It emulates a Windows Clipboard&lt;br /&gt;
&lt;br /&gt;
===Create Folder===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; More &amp;gt;&amp;gt; Create Folder&lt;br /&gt;
&lt;br /&gt;
Create a new folder destination for future recordings, See also [[Custom_Firmware_Package_Notes#Change_Folder | &amp;#039;&amp;#039;&amp;#039; Change Folder]] where you can change the default folder name&lt;br /&gt;
&lt;br /&gt;
===Copy===&lt;br /&gt;
&lt;br /&gt;
See [[Custom_Firmware_Package_Notes#Clipboard | &amp;#039;&amp;#039;&amp;#039;Clipboard&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Crop===&lt;br /&gt;
[[File:crop.png|200px|thumb|right]]&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Crop&lt;br /&gt;
&lt;br /&gt;
See Edit on Box link [[Edit_On_Box#Editing_Via_Web-If |&amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Cut===&lt;br /&gt;
&lt;br /&gt;
See [[Custom_Firmware_Package_Notes#Clipboard | &amp;#039;&amp;#039;&amp;#039;Clipboard&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Delete===&lt;br /&gt;
&lt;br /&gt;
Remove file, folder, item from a recording schedule etc., depending on where the option is encountered &lt;br /&gt;
&lt;br /&gt;
===Decrypt===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Decrypt&lt;br /&gt;
&lt;br /&gt;
This Function will move the file to an _original folder and then stream a new copy to the present location, The new copy will be Decrypted and can be played on a P.C.. NOTES:-&lt;br /&gt;
* both High Definition AND Standard definition need to be Decrypted&lt;br /&gt;
* Decrypt requires [[Custom_Firmware_Package_Notes#Content_Sharing |&amp;#039;&amp;#039;&amp;#039;Content sharing&amp;#039;&amp;#039;&amp;#039;]] to be turned on&lt;br /&gt;
&lt;br /&gt;
===De-duplicate / Tidy this folder===&lt;br /&gt;
[[File:Webif-media-ded.png|70px|thumb|right]]&lt;br /&gt;
[[File:Webif-media-ded2.png|70px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; De-duplicate / Tidy this folder&lt;br /&gt;
&lt;br /&gt;
This Function will search a folder and re-name files with more meaningful titles, It will also separate duplicates into a new folder&lt;br /&gt;
&lt;br /&gt;
See Tidy (Re-name) Example &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Function will search a folder and re-name files with more meaningful titles&lt;br /&gt;
&lt;br /&gt;
It will Also separate duplicates into a new folder&lt;br /&gt;
&lt;br /&gt;
See De Duplicate (to new folder) Example &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Detect Adverts===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Detect Adverts&lt;br /&gt;
&lt;br /&gt;
Add bookmarks to a recording where adverts are detected, so that they can be cropped&lt;br /&gt;
&lt;br /&gt;
===Disable AR===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; (Click on &amp;#039;More&amp;#039; for a Recording) &amp;gt;&amp;gt; Disable AR&lt;br /&gt;
&lt;br /&gt;
Allows the default [[Padding_versus_Accurate_Recording|&amp;#039;&amp;#039;&amp;#039;Accurate Recording&amp;#039;&amp;#039;&amp;#039;]] feature to be replaced with Padding on a &amp;#039;per-recording&amp;#039; basis, in a further drop down menu start and stop padding times can be entered&lt;br /&gt;
&lt;br /&gt;
===Download===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Download&lt;br /&gt;
&lt;br /&gt;
This function will download with decryption an SD file (or Hi-Def File if the &amp;#039;ENC&amp;#039; flag is removed) and place it into the default download folder on your P.C., The following items may inhibit it functioning correctly :-&lt;br /&gt;
&lt;br /&gt;
# The File type *.TS must not be associated with a program such as a media player on your P.C., If it is, Remove the association&lt;br /&gt;
# Your browser must allow re-direction of addresses&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-Audio===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Audio&lt;br /&gt;
&lt;br /&gt;
Automatically extract an MP3 audio file from all recordings placed in this folder&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-Dedup===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Dedup&lt;br /&gt;
&lt;br /&gt;
Set contents of a folder for Auto-De-Duplication of files every 10 Mins. (See also [[#Dedup_.28Command_Line.29 |&amp;#039;&amp;#039;&amp;#039;Dedup&amp;#039;&amp;#039;&amp;#039;]])&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-Decrypt===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Decrypt&lt;br /&gt;
&lt;br /&gt;
Set contents of a folder for Auto-Decryption of TS files every 10 Mins. (See also [[#Decrypt |&amp;#039;&amp;#039;&amp;#039;Decrypt&amp;#039;&amp;#039;&amp;#039;]])&lt;br /&gt;
&lt;br /&gt;
===Enable Auto Expire===&lt;br /&gt;
[[File:autoexp.png|200px|thumb|right]]&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Expire&lt;br /&gt;
&lt;br /&gt;
Automatically delete files in a selected folder a pre-set number of days after recording e.g.1 to 999 days or when above a total number of recordings, Note :- If the Undelete package is installed, the files will be placed in the [Deleted folder] first&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bookmarks===&lt;br /&gt;
[[File:bookmarks.png|right|150px]]&lt;br /&gt;
Add, remove and edit bookmarks manually&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Bookmarks&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-MPG===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-MPG&lt;br /&gt;
&lt;br /&gt;
Automatically extract MPG copys of the *.TS files in the same folder, the MPG versions strips out control frames relating to things which were on the same Mux as the recorded program, resulting in a smaller file. The following conditions must be met :-&lt;br /&gt;
&lt;br /&gt;
*The file must be decrypted (Displays a DEC against it)&lt;br /&gt;
*ffmpeg package must be installed&lt;br /&gt;
*Extract to MPG is only available from Standard Definition Files&lt;br /&gt;
===Enable Auto-Shrink===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Enable Auto-Shrink&lt;br /&gt;
&lt;br /&gt;
Set contents of a folder for Auto-Shrinking of TS files every 10 Mins. (See also [[#Shrink_.28stripts.29 |&amp;#039;&amp;#039;&amp;#039;Shrink&amp;#039;&amp;#039;&amp;#039;]])&lt;br /&gt;
&lt;br /&gt;
===Enable Recursive Auto-Shrink===&lt;br /&gt;
&lt;br /&gt;
As above but it but it also works on all folders below the selected folder&lt;br /&gt;
&lt;br /&gt;
===Enable Recursive Auto-Decrypt===&lt;br /&gt;
&lt;br /&gt;
As above but it but it also works on all folders below the selected folder&lt;br /&gt;
&lt;br /&gt;
===Enable Recursive Auto-Dedup (command line)===&lt;br /&gt;
&lt;br /&gt;
NOTE :- This is not available from the Web-If as it may not be a good idea. Not all series are amenable to auto-dedup and if the broadcaster uses the same programme title for each episode then all but one will be flagged as duplicates.&lt;br /&gt;
&lt;br /&gt;
However, if you wish, you can enable this option from the command line by creating an .autodedupr file, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;touch &amp;quot;/mod/My Video/Kids/.autodedupr&amp;quot; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Extract Audio===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Extract Audio&lt;br /&gt;
&lt;br /&gt;
This function will produce an MP3 file containing the stereo audio track contained in a standard  Def.  Video file (or radio recording), The following conditions must be met :-&lt;br /&gt;
&lt;br /&gt;
*The file must be decrypted (Displays a DEC against it)&lt;br /&gt;
*ffmpeg package must be installed&lt;br /&gt;
*Standard Def. recording only (Hi-Def 2 Ch or 6 Ch sound won&amp;#039;t be decoded)&lt;br /&gt;
*The extracted MP3 file is in a format sometimes called MPEG-2 Audio, not the more common Layer 3 audio, although some MP3 players will accept this format, a greater number of MP3 players require the layer 3 format, transcoding to layer 3 is not carried out on the Humax due to amount of CPU usage required&lt;br /&gt;
&lt;br /&gt;
===Extract To MPG===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Extract To MPG&lt;br /&gt;
&lt;br /&gt;
This function will produce an MPG copy of the *.TS file in the same folder, the MPG version strips out control frames relating to things which were on the same Mux as the recorded program, resulting in a smaller file. The following conditions must be met :-&lt;br /&gt;
&lt;br /&gt;
*The file must be decrypted (Displays a DEC against it)&lt;br /&gt;
*ffmpeg package must be installed&lt;br /&gt;
*Extract to MPG is only available from Standard Definition Files&lt;br /&gt;
&lt;br /&gt;
===Enable Auto-mpg===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Folder) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Enable Auto-mpg&lt;br /&gt;
&lt;br /&gt;
As above but working on every file in a selected folder&lt;br /&gt;
&lt;br /&gt;
===File Editor===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; File Editor &amp;gt;&amp;gt; Open &amp;gt;&amp;gt; [Navigate to desired file]&lt;br /&gt;
&lt;br /&gt;
===Lock===&lt;br /&gt;
&lt;br /&gt;
Mark a file as locked, e.g. protected against deletion&lt;br /&gt;
&lt;br /&gt;
===Mark as Watched===&lt;br /&gt;
&lt;br /&gt;
Tag a file with a &amp;#039;Watched&amp;#039; symbol&lt;br /&gt;
&lt;br /&gt;
===Manual Event===&lt;br /&gt;
[[File:manual-event.png|thumb|right]]&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Scheduled Events &amp;gt;&amp;gt; Manual Event&lt;br /&gt;
&lt;br /&gt;
Allows the set up of a manual recording or reminder, options include:-&lt;br /&gt;
*Create : One-off, Daily, weekly,Weekday, Weekend&lt;br /&gt;
*Create : Recording or Reminder&lt;br /&gt;
*From : Date/Time to: Date/Time&lt;br /&gt;
*Channel : Number / Name&lt;br /&gt;
*Event Title : Defaults to Channel Name&lt;br /&gt;
&lt;br /&gt;
===Multi Mode Recording===&lt;br /&gt;
&lt;br /&gt;
This option built into the Web-If allows the user to enable a mix of both Accurate Recording and Padding on a per program basis, See [[Multi-mode_Recording|&amp;#039;&amp;#039;&amp;#039;Guide Here&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Network Settings===&lt;br /&gt;
[[File:network-settings.png|thumb]]&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Network Settings&lt;br /&gt;
&lt;br /&gt;
This option provides a Web-If alternative to entering Ethernet Interface and Wireless Interface parameters into the standard Humax Settings screen. The Web-If Wireless Interface screen has several advantages over the standard Humax one e.g :-&lt;br /&gt;
*Allows a wider range of ascii characters e.g. &amp;quot;%#&amp;lt;&amp;gt;&amp;quot; to be entered for passwordphrases&lt;br /&gt;
*Overcomes time restrictions when entering long passphrases / Keys&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Web-If 1.2.0-3 or later must be running&lt;br /&gt;
*To enable a wireless network when an Ethernet cable is connected, run /sbin/wifi-up from [[Custom_Firmware_Package_Notes#CLI |&amp;#039;&amp;#039;&amp;#039;CLI&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
*To enable a wireless network when an Ethernet cable is connected and Wireless Helper is installed run /mod/sbin/wifi-up from [[Custom_Firmware_Package_Notes#CLI |&amp;#039;&amp;#039;&amp;#039;CLI&amp;#039;&amp;#039;&amp;#039;]] to shutdown the Ethernet interface when bringing up the wireless interface&lt;br /&gt;
&lt;br /&gt;
===New Folder===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; New Folder&lt;br /&gt;
&lt;br /&gt;
Creates a new empty folder, into which recorded files can be moved&lt;br /&gt;
&lt;br /&gt;
===Paste===&lt;br /&gt;
&lt;br /&gt;
See [[Custom_Firmware_Package_Notes#Clipboard | &amp;#039;&amp;#039;&amp;#039;Clipboard&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Webif-media-detail.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===Play===&lt;br /&gt;
&lt;br /&gt;
This function provides an in-browser playback function for the Humax, It requires that you have the VLC plug-in installed for your browser&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Click on Single File) &amp;gt;&amp;gt; Play&lt;br /&gt;
&lt;br /&gt;
===Rename (File)===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Click on Single File) &amp;gt;&amp;gt; Rename&lt;br /&gt;
&lt;br /&gt;
Enables the following fields to be changed / added to a single file :-&lt;br /&gt;
&lt;br /&gt;
*New Filename&lt;br /&gt;
*New Medialist Title&lt;br /&gt;
*New Synopsis&lt;br /&gt;
*New Guidance Text&lt;br /&gt;
*New Genre&lt;br /&gt;
&lt;br /&gt;
===Rename (Folder)===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Rename&lt;br /&gt;
&lt;br /&gt;
Enables a folder to be re-named&lt;br /&gt;
&lt;br /&gt;
===Reset New Flag===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; Reset New Flag&lt;br /&gt;
&lt;br /&gt;
Mark a Folder as containing new material&lt;br /&gt;
&lt;br /&gt;
===Save Last Streamed Content===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Save Last Streamed Content&lt;br /&gt;
&lt;br /&gt;
This Function will make a permanent MP4 copy of any content that has been viewed using the Humax TV portal e.g. I-Player / You Tube and place it into the &amp;#039;My Video&amp;#039; folder. The Telnet equivalent Syntax is as follows :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;cp /mnt/hd3/Streamer_down_file &amp;quot;/media/My Video/theclip.mp4&amp;quot; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE:- The Portal screen must remain open until the entire file has been downloaded (It is not performed in the background), The amount of time the download takes will vary with broadband speed&lt;br /&gt;
&lt;br /&gt;
===Set Thumbnail===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Set Thumbnail&lt;br /&gt;
&lt;br /&gt;
Change the current on-screen Thumbnail picture for one of 5 pictures covering a 2.5 Second time frame, the centre frame time can be offset from  0 - 99999 seconds, there is also a -30, -5, +5 and +30 second &amp;#039;nudge&amp;#039; that can be added to the offset.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* The Set Thumbnail option will be greyed out if the file is not decrypted first&lt;br /&gt;
* High Definition files have 3 pictures covering a 1.5 Second time frame&lt;br /&gt;
* Thumbnails may take some time to generate on Hi-Def Files&lt;br /&gt;
* If a bookmark is present the thumbnail selections will centre on it&lt;br /&gt;
 &lt;br /&gt;
===Sidecar Files===&lt;br /&gt;
&lt;br /&gt;
see [[Custom_Firmware_Package_Notes#Sidecar | &amp;#039;&amp;#039;&amp;#039;Sidecar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
===Split===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Split (45m parts)&lt;br /&gt;
&lt;br /&gt;
This Function (only available on files over 4GB) will split the file into 45 Minute parts with a 2 Minute overlap, It can be used to stream large files without hitting the 4GB stream bug present on the Humax.&lt;br /&gt;
&lt;br /&gt;
The New files will have segment numbering e.g. 1/3. E.T. The Extra-Terrestrial&lt;br /&gt;
&lt;br /&gt;
===Shrink (stripts)===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Shrink&lt;br /&gt;
&lt;br /&gt;
Clicking on Shrink in the OPT+ menu lets you remove portions of a recording that aren&amp;#039;t required and can account for up to 20% of its space, this option uses the stripts package to remove freeview EIT packets from the recording, it also updates the associated .nts sidecar file on the fly so that the trick play functions still work on the resulting recording&lt;br /&gt;
&lt;br /&gt;
===Sweeper Rules===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Sweeper Rules&lt;br /&gt;
&lt;br /&gt;
View / Edit the Sweeper Rules for this folder. Note this option will only be displayed if the sweeper package is installer&lt;br /&gt;
&lt;br /&gt;
===Toggle no-sweep flag===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; Folder &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; Toggle no-sweep flag&lt;br /&gt;
&lt;br /&gt;
Disable / enable the sweeper rule generated for this folder&lt;br /&gt;
&lt;br /&gt;
===View Thumbnail===&lt;br /&gt;
&lt;br /&gt;
Web-If MAIN &amp;gt;&amp;gt; Browse Media Files &amp;gt;&amp;gt; (Select Single File) &amp;gt;&amp;gt; OPT+ &amp;gt;&amp;gt; View Thumbnail&lt;br /&gt;
&lt;br /&gt;
View current on-screen Thumbnail picture &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Web-IF Channel Icons==&lt;br /&gt;
&lt;br /&gt;
A set of PNG picture files used to display the T.V. channel icons in the Web-Interface, they reside in /mod/var/mongoose/html/img/channels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webif-Charts==&lt;br /&gt;
&lt;br /&gt;
Chart modules for the web interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webif-iphone==&lt;br /&gt;
&lt;br /&gt;
A cut-down web interface, optimised for display on the iPhone and other mobile devices&lt;br /&gt;
&lt;br /&gt;
See Screenshots [[Smartphone_Web_Interface_Screenshots | &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webif Style Sheet==&lt;br /&gt;
&lt;br /&gt;
The web interface allow you to set your own style overrides in a style sheet file called EXTRA.css, it is located at /mod/webif/html/css/EXTRA.css and is selectable from the Web-If &amp;gt;&amp;gt; Diagnostics &amp;gt;&amp;gt; File Editor drop down menu. Lines added to this file can change some aspects of how the Web Interface is presented to the user e.g. the following lines will prevent genre, guidance (all occurrences) or channel icons being displayed :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img.genre { display: none; }&lt;br /&gt;
img[src^=&amp;quot;/img/Guidance&amp;quot;] { display: none; }&lt;br /&gt;
img.browsechannel { display: none; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change the size of the pie chart:-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#tbdiskpie&lt;br /&gt;
{&lt;br /&gt;
  width: 100px;&lt;br /&gt;
  height: 100px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tbdiskpie&lt;br /&gt;
{&lt;br /&gt;
  top: 7px !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add Borders to Web-If Pages :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
table.schedule { border-spacing: 2px; }&lt;br /&gt;
table.schedule tr &amp;gt; * { border: 1px solid; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change font colour or size :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
table.schedule td * { color: black; }&lt;br /&gt;
table.schedule td { font-size: 1.1em; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change Icon size&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img.button { height: 50px; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove EPG &amp;#039;Go to Top&amp;#039; arrow :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#toTop, #toTopHover&lt;br /&gt;
{&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  display: none !important;&lt;br /&gt;
  opacity: 100 !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove EPG ENC icons&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img.epgenc { display: none; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Webshell==&lt;br /&gt;
&lt;br /&gt;
After installing this package, an extra icon will be added to the Main Menu &amp;gt;&amp;gt; Diagnostics page at the bottom right, after a re-boot, this will allow access to a Humax Command line similar to using Telnet access&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==webm==&lt;br /&gt;
&lt;br /&gt;
This is an audiovisual media file format, if you download files in this format from YouTube (See Youtube-dl), the video and audio may be separated into two files, It is possible to merge these files using  ffmpeg, if you download  the *.webm video only file and rename it in_vid.webm and download the *.m4a file and rename it in_aud.m4a then the following ffmpeg command line will merge them for you :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i in_aud.m4a -i in_vid.webm -acodec copy -vcodec copy output.avi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==wget==&lt;br /&gt;
&lt;br /&gt;
Retrieve files via HTTP or FTP&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:-&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*There is already a version of wget in Busybox which is loaded automatically, However it may be necessary to install the stand alone package as it will be a newer version&lt;br /&gt;
*Both the Busybox and the current stand alone versions of wget (1.12) may fail on websites that demand newer versions of TLS/SSL than the ones supported&lt;br /&gt;
&lt;br /&gt;
When attempting to download a Custom Firmware package specifying a version number, an error will be produced unless the -U option is used, eg :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -U &amp;quot;&amp;quot; http://hummypkg.org.uk/hdrfoxt2/base/at_3.1.18_mipsel.opk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The use of &amp;quot;opkg download&amp;quot; with a specifed version number will also fail&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Wireless Helper==&lt;br /&gt;
&lt;br /&gt;
Wireless network helper - brings wireless up even when just booted to make a recording. Helps with communications to the Remote Scheduling server via USB Wi-Fi dongle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==WOL==&lt;br /&gt;
&lt;br /&gt;
Wakeup On Lan is a feature that can be used to take out of stand-by any item on the LAN that will respond to it. The &amp;#039;Magic Packet&amp;#039; is broadcast over the LAN e.g. it is sent to every IP address and uses the unique MAC address of the unit to identify which unit is to be woken-up. From Telnet send the following command line where 00:01:02:03:04:05 must be replaced by the MAC address of the item to be woken, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ether-wake 00:01:02:03:04:05 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To add this feature to the Humax start-up enter the following from Telnet :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo  /mod/bin/busybox/ether-wake 00:01:02:03:04:05 &amp;gt; /mod/etc/init.d/S30wol&lt;br /&gt;
chmod 755 /mod/etc/init.d/S30wol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTES:-&lt;br /&gt;
*WOL is also built into [[Custom_Firmware_Package_Notes#Network_Shares_Automount|&amp;#039;&amp;#039;&amp;#039;Network_Shares_Automount&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
*The Humax itself cannot be switched out of Standby using Wake-up On Lan, as the LAN connector is not powered during Stand-by&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Xtra1 Portal==&lt;br /&gt;
&lt;br /&gt;
See Guide [[Custom_TV_Portal| &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Youtube-dl==&lt;br /&gt;
&lt;br /&gt;
This pacakage uses a command line to download videos from Youtube, BBC Iplayer, ITV Hub etc., in the following example, a 4K test video is downloaded from YouTube :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax2# youtube https://www.youtube.com/watch?v=SlLFOrWvY_M&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above downloads a 720 line version of the file which is pretty useless when testing 2176 lines, however it is possible to list all available video formats using the -F option :-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax2# youtube -F https://www.youtube.com/watch?v=SlLFOrWvY_M&lt;br /&gt;
&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading webpage&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading video info webpage&lt;br /&gt;
[info] Available formats for SlLFOrWvY_M:&lt;br /&gt;
format code  extension  resolution note&lt;br /&gt;
249          webm       audio only DASH audio    3k , opus @ 50k, 26.87KiB&lt;br /&gt;
250          webm       audio only DASH audio    3k , opus @ 70k, 26.87KiB&lt;br /&gt;
251          webm       audio only DASH audio    3k , opus @160k, 26.87KiB&lt;br /&gt;
171          webm       audio only DASH audio    6k , vorbis@128k, 22.21KiB&lt;br /&gt;
140          m4a        audio only DASH audio  145k , m4a_dash container, mp4a.40.2@128k, 932.03KiB&lt;br /&gt;
278          webm       256x144    144p   34k , webm container, vp9, 13fps, video only, 184.31KiB&lt;br /&gt;
242          webm       426x240    240p   44k , vp9, 25fps, video only, 248.03KiB&lt;br /&gt;
160          mp4        256x144    144p   50k , avc1.42c00c, 13fps, video only, 257.52KiB&lt;br /&gt;
134          mp4        640x360    360p   74k , avc1.4d401e, 25fps, video only, 417.64KiB&lt;br /&gt;
243          webm       640x360    360p   78k , vp9, 25fps, video only, 433.50KiB&lt;br /&gt;
133          mp4        426x240    240p   87k , avc1.4d4015, 25fps, video only, 480.96KiB&lt;br /&gt;
244          webm       854x480    480p  116k , vp9, 25fps, video only, 633.67KiB&lt;br /&gt;
135          mp4        854x480    480p  117k , avc1.4d401e, 25fps, video only, 656.08KiB&lt;br /&gt;
136          mp4        1280x720   720p  191k , avc1.4d401f, 25fps, video only, 1.04MiB&lt;br /&gt;
247          webm       1280x720   720p  203k , vp9, 25fps, video only, 1.08MiB&lt;br /&gt;
137          mp4        1920x1080  1080p  312k , avc1.640028, 25fps, video only, 1.71MiB&lt;br /&gt;
248          webm       1920x1080  1080p  357k , vp9, 25fps, video only, 1.89MiB&lt;br /&gt;
271          webm       2560x1440  1440p  609k , vp9, 25fps, video only, 3.20MiB&lt;br /&gt;
313          webm       3840x2160  2160p 1122k , vp9, 25fps, video only, 5.88MiB&lt;br /&gt;
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 272.97KiB&lt;br /&gt;
36           3gp        320x180    small , mp4v.20.3, mp4a.40.2, 1004.79KiB&lt;br /&gt;
43           webm       640x360    medium , vp8.0, vorbis@128k, 589.88KiB&lt;br /&gt;
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k, 1.61MiB&lt;br /&gt;
22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then select the required version of the video with the -f option&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax2# youtube -f &amp;quot;313&amp;quot; https://www.youtube.com/watch?v=SlLFOrWvY_M&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading webpage&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading video info webpage&lt;br /&gt;
[download] Destination: /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.webm&lt;br /&gt;
[download] 100% of 5.88MiB in 00:12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE:-  the required download file is named *.webm  this file won&amp;#039;t be visible from the remote control  OPT+ copy/move lisings, but is visible via Telnet / FTP etc., you can rename the file to something like 4K-test.mp4 before viewing directly on your 4K TV (not via the HD only Humax)&lt;br /&gt;
&lt;br /&gt;
To combine video only and audio only files into a single file use the following option (Video MUST be the first item, e.g. 313)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax2# youtube -f &amp;quot;313+171&amp;quot;  https://www.youtube.com/watch?v=SlLFOrWvY_M&lt;br /&gt;
&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading webpage&lt;br /&gt;
[youtube] SlLFOrWvY_M: Downloading video info webpage&lt;br /&gt;
[download] Destination: /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.f313.webm&lt;br /&gt;
[download] 100% of 5.88MiB in 00:12&lt;br /&gt;
[download] Destination: /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.f171.webm&lt;br /&gt;
[download] 100% of 22.21KiB in 00:00&lt;br /&gt;
[ffmpeg] Merging formats into &amp;quot;/mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.webm&amp;quot;&lt;br /&gt;
Deleting original file /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.f313.webm (pass -k to keep)&lt;br /&gt;
Deleting original file /mnt/hd2/My Video/TobyFree.com - 4K UHD Test Pattern H.264 MP4.f171.webm (pass -k to keep)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Youtube-dl has a config file at :- /mod/etc/youtube-dl.conf&lt;br /&gt;
&lt;br /&gt;
Full reference notes are here :-&lt;br /&gt;
&lt;br /&gt;
[https://github.com/rg3/youtube-dl/blob/master/README.md#readme  &amp;#039;&amp;#039;&amp;#039;Github Notes&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
A list of websites claimed to be working for the Windows version of Youtube-DL is here :-&lt;br /&gt;
&lt;br /&gt;
[https://rg3.github.io/youtube-dl/supportedsites.html &amp;#039;&amp;#039;&amp;#039;Available Sites&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mainsteam sites Working on the Humax Version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Youtube, BBC Iplayer, ITV-Hub, dplay&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mainstream sites Not Working on the Humax Version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Channel4, My5, UKTVPlay&lt;br /&gt;
&lt;br /&gt;
==Zeroconf==&lt;br /&gt;
&lt;br /&gt;
mDNS Responder, Will create a humax.local name which can be seen by anything running mDNS&lt;br /&gt;
&lt;br /&gt;
After installation the zeroconf package will participate in mDNS-like traffic so you can access the box by name from most operating systems. On some, like Apple and Linux, you would access it as humax.local (assuming humax is the hostname) and on others, like Windows, you can just use humax. Windows can also pick up the name to IP address mapping if you have Samba installed and running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zip==&lt;br /&gt;
&lt;br /&gt;
zip utilities for compressing files :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Humax HDR-Fox T2 (humax) 1.03.12/3.03&lt;br /&gt;
&lt;br /&gt;
humax# zip&lt;br /&gt;
Copyright (c) 1990-2008 Info-ZIP - Type &amp;#039;zip &amp;quot;-L&amp;quot;&amp;#039; for software license.&lt;br /&gt;
Zip 3.0 (July 5th 2008). Usage:&lt;br /&gt;
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]&lt;br /&gt;
  The default action is to add or replace zipfile entries from list, which&lt;br /&gt;
  can include the special name - to compress standard input.&lt;br /&gt;
  If zipfile and list are omitted, zip compresses stdin to stdout.&lt;br /&gt;
  -f   freshen: only changed files  -u   update: only changed or new files&lt;br /&gt;
  -d   delete entries in zipfile    -m   move into zipfile (delete OS files)&lt;br /&gt;
  -r   recurse into directories     -j   junk (don&amp;#039;t record) directory names&lt;br /&gt;
  -0   store only                   -l   convert LF to CR LF (-ll CR LF to LF)&lt;br /&gt;
  -1   compress faster              -9   compress better&lt;br /&gt;
  -q   quiet operation              -v   verbose operation/print version info&lt;br /&gt;
  -c   add one-line comments        -z   add zipfile comment&lt;br /&gt;
  -@   read names from stdin        -o   make zipfile as old as latest entry&lt;br /&gt;
  -x   exclude the following names  -i   include only the following names&lt;br /&gt;
  -F   fix zipfile (-FF try harder) -D   do not add directory entries&lt;br /&gt;
  -A   adjust self-extracting exe   -J   junk zipfile prefix (unzipsfx)&lt;br /&gt;
  -T   test zipfile integrity       -X   eXclude eXtra file attributes&lt;br /&gt;
  -y   store symbolic links as the link instead of the referenced file&lt;br /&gt;
  -e   encrypt                      -n   don&amp;#039;t compress these suffixes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5281</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5281"/>
		<updated>2020-06-04T15:06:06Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: remove &amp;#039;Draft&amp;#039; designation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]Schedchk - Check and fix the Humax recording schedule =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|600px|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in setting is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with ctontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-06-05 ||schedchk 0.1.0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5280</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5280"/>
		<updated>2020-05-30T18:24:10Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Missing EPG entry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|600px|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in setting is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with ctontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5279</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5279"/>
		<updated>2020-05-30T18:16:51Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Missing EPG entry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|400px|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in setting is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with ctontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5278</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5278"/>
		<updated>2020-05-30T18:14:59Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Failure Categories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Schedule Check Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in setting is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with ctontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5277</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5277"/>
		<updated>2020-05-30T18:09:30Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* In-place updating */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line &lt;br /&gt;
 &lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in setting is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with ctontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Unscheduled episodes&amp;#039; will add them instead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5276</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5276"/>
		<updated>2020-05-30T18:00:29Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Other controls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line &lt;br /&gt;
 &lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
=== Threshold ===&lt;br /&gt;
&lt;br /&gt;
The Threshold setting (-thresh) controls how far into the schedule schedchk should look for problems.  The default, unless changed in setting is 36 hours which seems adequate for resolving potential problems.&lt;br /&gt;
You may wish to increase it on infrequently used machines.&lt;br /&gt;
&lt;br /&gt;
=== No Auto ===&lt;br /&gt;
&lt;br /&gt;
Normally schedchk runs as part of the regular Auto processing.&lt;br /&gt;
If you would prefer to run it on ad-hoc basis from a command line or set up your own [[Schedchk#Running via crontabs|schedule with ctontabs]] you can specify No Auto in the Schedchk section of the settings page.&lt;br /&gt;
&lt;br /&gt;
=== No Alerts ===&lt;br /&gt;
&lt;br /&gt;
Schedchk generates webif warnings when it makes changes to the recording schedule to let you know what has happened.&lt;br /&gt;
[[File:Schedchk-alert.png|frame|center|Alert messages]]&lt;br /&gt;
If you would prefer not to receive these pop-up messages you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
Note: The example shows that sometimes broadcasters makes changes and then reverse them in short order.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===&lt;br /&gt;
&lt;br /&gt;
If you specify the -test option no schedule changes will actually be made&lt;br /&gt;
&lt;br /&gt;
=== In-place updating ===&lt;br /&gt;
&lt;br /&gt;
If you use the visual schedule webif/RS pages to &amp;quot;Record this showing instead&amp;quot; it will generate a skip entry for the current episode and a one-off recording entry for the replacement episode.   Schedchk uses a different approach and where possible updates the existing series entry with the new episode details.  &lt;br /&gt;
&lt;br /&gt;
The main advantages of this approach is that the recording will automatically go into the series folder and any folder related webif settings (auto-decrypt, shrink, detectads etc) will be applied as usual.  You will only have one entry in the recording schedule rather than many and you won&amp;#039;t have to move recordings from the My Videos folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Schedchk-inplace.png|800px||right]]&lt;br /&gt;
[[File:Schedchk-inplace2.png|800px||right]]&lt;br /&gt;
It can look a bit odd to have episodes from different channels in the same series but both webif and RS handle this correctly &lt;br /&gt;
&lt;br /&gt;
Which of the channels will show as the &amp;#039;main&amp;#039; channel for the series depends on the channel of the next scheduled episode&lt;br /&gt;
&lt;br /&gt;
Minor disadvantages are:&lt;br /&gt;
* The Humax won&amp;#039;t add new episodes while the &amp;#039;wrong&amp;#039; channel is main (but Schedchk &amp;#039;Missing episodes&amp;#039; will add them intead)&lt;br /&gt;
* Schedchk &amp;#039;SCRID change&amp;#039; and &amp;#039;1-off episodes&amp;#039; will check the alternate channel when it is main (more work needs to be done in this area)&lt;br /&gt;
&lt;br /&gt;
If you would prefer more traditional skip and 1-off scheduling you can specify the -noAlert  option in settings or on the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Progress Messages ===&lt;br /&gt;
&lt;br /&gt;
The -d  option controls the level of mesages produced:&lt;br /&gt;
* 0 - Schedule changes and errors only (also displayed as webif notifications)&lt;br /&gt;
* 1 - Intermediate level &lt;br /&gt;
* 2 - Detailed progress messages&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk-inplace2.png&amp;diff=5275</id>
		<title>File:Schedchk-inplace2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk-inplace2.png&amp;diff=5275"/>
		<updated>2020-05-30T15:25:37Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Multi channel series&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Multi channel series&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk-inplace.png&amp;diff=5274</id>
		<title>File:Schedchk-inplace.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk-inplace.png&amp;diff=5274"/>
		<updated>2020-05-30T15:23:49Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Multi-channel series&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Multi-channel series&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk-alert.png&amp;diff=5273</id>
		<title>File:Schedchk-alert.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk-alert.png&amp;diff=5273"/>
		<updated>2020-05-29T18:40:30Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Schedchk alert messages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Schedchk alert messages&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5272</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5272"/>
		<updated>2020-05-26T23:05:13Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Undo revision 5271 by MymsMan (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line &lt;br /&gt;
 &lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5271</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5271"/>
		<updated>2020-05-26T23:00:49Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Schedchk settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line &lt;br /&gt;
 &lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5270</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5270"/>
		<updated>2020-05-26T22:59:05Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Schedchk setting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line &lt;br /&gt;
 &lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedchk settings ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5269</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5269"/>
		<updated>2020-05-26T22:41:52Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: fmtrsv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times and the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the EPG being kept up-to-date to allow it to find alternative showings of programmes and, especially with last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (event-CRID change).&lt;br /&gt;
Usually the Humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-CRID it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event-CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Sometimes broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have their own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of the split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSplit option in settings or on the command line &lt;br /&gt;
 &lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular Auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
Fmtrsv is a simple command line utility created to help with displaying the contents of the rsv.db where schedule entries are stored.  It is included with the schedchk package to help in gathering information for debugging purposes.  Entries displayed can be filtered with a number of options&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv  -h&lt;br /&gt;
fmtrsv = Formats schedule entries from the rsv.db&lt;br /&gt;
&lt;br /&gt;
fmtrsv options&lt;br /&gt;
no options will list all reservations&lt;br /&gt;
&lt;br /&gt;
Options&lt;br /&gt;
-h                  produce this help&lt;br /&gt;
-n,-name    xxx   = select recording name contains&lt;br /&gt;
-s,-slot     n    = select slot&lt;br /&gt;
-l,-lcn      n    = select channel number&lt;br /&gt;
-c,-cname   xxx   = select channel name contains&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sample output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fmtrsv -s 16&lt;br /&gt;
ulslot               = 16&lt;br /&gt;
ersvtype             = 3              Recording&lt;br /&gt;
hsvc                 = 131097&lt;br /&gt;
nsttime              = 1590429600     25/05/2020 19:00&lt;br /&gt;
szsttime             = 00000000000000&lt;br /&gt;
nduration            = 3600           01:00&lt;br /&gt;
erepeat              = 0              no repeats&lt;br /&gt;
usevtid              = 12270&lt;br /&gt;
szevtname            = i7Code-Breakers: Bletchley Park&amp;#039;s...   (Code-Breakers: Bletchley Park&amp;#039;s...)&lt;br /&gt;
ulPreOffset          = 0&lt;br /&gt;
ulPostOffset         = 0&lt;br /&gt;
ulProgramId          = 0&lt;br /&gt;
ulSeriesId           = 0&lt;br /&gt;
ucVolume             = 0&lt;br /&gt;
ucInputMode          = 0&lt;br /&gt;
usChNum              = 0&lt;br /&gt;
ucRecKind            = 4              series&lt;br /&gt;
ucCRIDType           = 50             series&lt;br /&gt;
szCRID               = FP.BBC.CO.UK/B-3P5L5&lt;br /&gt;
szFPBRecPath         = Code-Breakers: Bletchley Park&amp;#039;s...&lt;br /&gt;
szRecordedProgCrid   = 1FP.BBC.CO.UK/B/KZSO7|&lt;br /&gt;
szEventToRecord      = 1FP.BBC.CO.UK/B/KOEPL|&lt;br /&gt;
aulEventToRecordInfo = {131097 1590429600 1590433200 12270}&lt;br /&gt;
bRecomRsv            = 0&lt;br /&gt;
usLastRecordedEvtId  = 0&lt;br /&gt;
eReady               = 30&lt;br /&gt;
szSvcName            = BBC TWO&lt;br /&gt;
usLcn                = 2&lt;br /&gt;
  Svcid  Start                         End                             Evtid  CRID&lt;br /&gt;
 131097  1590429600 25/05/2020 19:00   1590433200 25/05/2020 20:00     12270  1FP.BBC.CO.UK/B/KOEPL&lt;br /&gt;
Skiplist Svcid:Evtid&lt;br /&gt;
131097:12390&lt;br /&gt;
========================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everybody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positives&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5268</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5268"/>
		<updated>2020-05-26T15:10:28Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Split recording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Some times broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
=== Split Recordings ===&lt;br /&gt;
&lt;br /&gt;
Split recordings are where a long programme such as a film has a shorter programme, often a news bulletin, in the middle of the longer programme.  While they may appear to be a 2-epsidode series they are not treated as such by the broadcasters or the Humax and have there own (very badly designed) set of rules which the Humax only partially implements. &lt;br /&gt;
Split recordings contain #number at the end of their event-CRID (eg /X4454865#01) and both halves of he split recording are required to have the same number, known as an IMI (Instance Metadata ID).  The problem arises when the same film is repeated later in the week with exactly the same event-CRID and IMI, under the rules if there is more than three hours between them they should be treated as different programmes but the Humax treats them all as additional parts of the same programme.&lt;br /&gt;
&lt;br /&gt;
This is a particular problem on channels such as  Sony Movies which split most films into 2 parts and regularly repeat films up to three times a week.  So you can attempt to schedule just one showing of a film but the Humax will schedule all six parts and some of the unwanted recordings can cause schedule conflicts.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles split recordings by leaving those with one or two parts schedule alone, if there are more than two parts scheduled it checks whether there is more than a 3-hour gap and whether there are any conflicts.  The first, non-conflicting, showing is kept with a dummy IMI to prevent the Humax rescheduling and the other showings are removed from the schedule.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no Split option in settings or on the command line &lt;br /&gt;
 &lt;br /&gt;
== Other controls ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk-crontabs.png&amp;diff=5267</id>
		<title>File:Schedchk-crontabs.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk-crontabs.png&amp;diff=5267"/>
		<updated>2020-05-26T13:44:38Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: MymsMan uploaded a new version of File:Schedchk-crontabs.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Editing crontabs file&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5266</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5266"/>
		<updated>2020-05-26T13:18:40Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: crontabs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Unscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Some times broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax start-up schedchk can&amp;#039;t schedule alternates for recordings truncated by a power failure or Humax crash 😥.&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
Initially all schedchk processing options are enabled but the default settings can be overridden on the webif Settings page, any changes made here become the new defaults for schedchk.&lt;br /&gt;
&lt;br /&gt;
More detail on each of the options is given in the sections above.&lt;br /&gt;
  &lt;br /&gt;
[[File:Schedchk-settingspage.png|frame|center|SchedChk Settings Page ]]&lt;br /&gt;
&lt;br /&gt;
== Schedchk command line ==&lt;br /&gt;
&lt;br /&gt;
As well as running automatically every few minutes as part of the regular auto process you can also run schedchk on demand from a command line. Options specified on the command line override values set on the settings page for this invocation of schedchk only, they don&amp;#039;t change the default values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-noAuto has no effect when specified as a command option, it needs to be set via the settings page.&lt;br /&gt;
&lt;br /&gt;
== Running via crontabs ==&lt;br /&gt;
&lt;br /&gt;
As an alternative to running schedchk as part of the standard customised firmware Auto processing it also possible to schedule schedchk to run at different intervals using the crontabs file.&lt;br /&gt;
&lt;br /&gt;
You might want to do this if:&lt;br /&gt;
* You normally disable Auto processing during recordings but would still like to take advantage of Not Recording checks&lt;br /&gt;
* You want some checks made at a different frequency from others&lt;br /&gt;
* You want process messages written to a dedicated log file&lt;br /&gt;
&lt;br /&gt;
You can edit the crontabs file via webif-&amp;gt;Diag-&amp;gt;File Editor-&amp;gt;Commonly edited files-&amp;gt;/mod/var/spool/cron/crontabs/root &lt;br /&gt;
[[File:Schedchk-crontabs.png|frame|center|Editing crontabs file]]&lt;br /&gt;
In the example above schedchk will run a Not Recording check every 4 minutes and check for SCRID changes and 1-off recordings every 4 hours at 17 minutes past the hour, output will be written to schedchk.log&lt;br /&gt;
&lt;br /&gt;
[https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ Guides to crontabs time formats are available online]&lt;br /&gt;
&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk-crontabs.png&amp;diff=5265</id>
		<title>File:Schedchk-crontabs.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk-crontabs.png&amp;diff=5265"/>
		<updated>2020-05-26T13:00:07Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Editing crontabs file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Editing crontabs file&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk-settingspage.png&amp;diff=5264</id>
		<title>File:Schedchk-settingspage.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk-settingspage.png&amp;diff=5264"/>
		<updated>2020-05-25T23:02:24Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: SchedChk Settings Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
SchedChk Settings Page&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5263</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5263"/>
		<updated>2020-05-25T22:36:35Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Not Recording */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Umscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Some times broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Note: Since active recording schedule entries are deleted on Humax startup schedchk cant schedule alternates for recordings truncated by a power failure or Humax crash.&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5262</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5262"/>
		<updated>2020-05-25T21:45:00Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: not recording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Umscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Some times broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Not Recording ===&lt;br /&gt;
&lt;br /&gt;
Occasionally a programme fails to start recording.  This can be due to an unresolved conflict, overrunning programmes, last minute schedule changes etc. but some failures are unexplained.&lt;br /&gt;
&lt;br /&gt;
When a programme is due to be recording schedchk checks whether there is a file for the recording and whether it is growing in size.  If the programme is not recording it searches by event-CRID for an alternative showing and, if a suitable alternate is found, schedules it as a 1-off recording.&lt;br /&gt;
&lt;br /&gt;
Since some late starting is normal the checking starts a short while after the scheduled start.  By default this is 300 seconds (5 minutes) but this can be modified by specifying the -recWait option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noNotRec option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5261</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5261"/>
		<updated>2020-05-25T20:02:38Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: scrid and 1-off&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution.&lt;br /&gt;
&lt;br /&gt;
At the moment Split recordings are not considered for conflict resolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Umscheduled episodes ===&lt;br /&gt;
&lt;br /&gt;
The Humax normally manges to automatically schedule new episodes of a series but can sometimes miss changes that happen in the middle of the scheduled sequence&lt;br /&gt;
&lt;br /&gt;
Schedchk checks the EPG by series-CRID and adds any missing &lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noUnsched option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== series-CRID changes ===&lt;br /&gt;
&lt;br /&gt;
Often broadcasters change the series-CRID of a long running programme causing the next episodes of the programme to be not recorded.  Sometimes this is because it has switched to another series of the programme (as if we really care whether it is repeats from series 51 or 55) but other times there is no obvious reason for the change.&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a new series with matching name in the same time slot on the same channel and scheduling a new series recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes with variable time slots such as the F1 Grand Prix races&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the series-CRID check is liable to consider the +1 series a new unscheduled series&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noSCRID option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== One-off episodes of a series ===&lt;br /&gt;
&lt;br /&gt;
Some times broadcasters schedule episodes of a series as 1-off programmes without a series-CRID.  Often this is deliberate when filling in a gap in the schedule but other times it is the result of broadcaster incompetence!  Recently Pick broadcast several episodes of the Sherlock series as 1-off programmes 😥&lt;br /&gt;
&lt;br /&gt;
Schedchk handles this by looking by programme name for a 1-off programme with matching name  on the same channel and scheduling a recording for the programme.&lt;br /&gt;
&lt;br /&gt;
Prefixes such as New: are ignored but the checking can miss some programmes and find false matches in other cases:&lt;br /&gt;
* Variations in title,  Pointless would match Pointless Celebrities but not vice versa&lt;br /&gt;
* Programmes moved by conflict resolution, If, for example, an series episode has been moved to a +1 channel the 1-off check is liable to search the +1 channel&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -no1off option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5260</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5260"/>
		<updated>2020-05-24T19:16:05Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Conflict resolution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead. When considering alternatives schedchk will attempt to find a match on a channel with the same definition (HD or SD) as the original but if there is no match it will consider matches on channels with a different definition.&lt;br /&gt;
&lt;br /&gt;
Schedchk is quite simple minded in its approach to conflict resolution and will not always choose the best solution for your viewing needs.  For complex conflicts or where you want to select which programmes you don&amp;#039;t want delayed you should attempt to manually resolve conflicts using the Visual Schedule displays in the webif or RS before schedchk attempts automatic resolution. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noConflict option in settings or on the command line&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5259</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5259"/>
		<updated>2020-05-24T16:06:33Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Conflict resolution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Conflict resolution ===&lt;br /&gt;
&lt;br /&gt;
Conflict arise when three of more programmes are scheduled to be recorded at the same time (Two or more on HD model).&lt;br /&gt;
This can arise if a user ignores conflict warnings when scheduling, when a news days EPG data is loaded, or if the EPG changes.&lt;br /&gt;
&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5258</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5258"/>
		<updated>2020-05-24T15:53:50Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Missing EPG entry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5257</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5257"/>
		<updated>2020-05-24T15:52:27Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: add missEPG description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
The program relies on the epg being kept up-to-date to allow it to find alternative showings of programmes and, especially wih last minute changes, that can&amp;#039;t be relied upon and sometimes there are no alternate showings so it will not be infallible but hopefully it will help you avoid some missed recordings,&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
=== EPG changes ===&lt;br /&gt;
The most basic form of schedule change is when the broadcaster changes the start time, duration or scheduled episode (CRID change).&lt;br /&gt;
Usually the humax is quite good at spotting these changes but sometimes it doesn&amp;#039;t immediately.&lt;br /&gt;
&lt;br /&gt;
Schedchk will resolve this type of error by updating the schedule entry with the new details.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noEPGchg option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
Sometimes the event-id associated with a programme changes and the Humax is not good at resolving these, on occasion it can get very confused resulting in it scheduling two episodes of the same series at the same time! &lt;br /&gt;
[[File:Schedchk-duplicateepisode.png|frameless|right|Duplicate episode]]&lt;br /&gt;
Changes to the event-id can occur when a programme is moved another channel (e.g. Pointless moving from BBC1_&amp;gt;2), when a programme is added to the schedule (ITV assigned new event-ids to all programmes following the Queen&amp;#039;s recent broadcasts), a different episode is scheduled (e.g, the duplicate example above) or if a programme is cancelled and replaced by something else.&lt;br /&gt;
&lt;br /&gt;
Schedchk attempts to resolve this type of error by searching for another showing of the same programme (by event CRID) elsewhere in the EPG and if another showing (that doesn&amp;#039;t cause a conflict) can be found, it will schedule that showing instead.  &lt;br /&gt;
If there are no matches by event-crid it will look for a programme of the same name scheduled for the same time in case the Broadcaster has changed event-id, event-CRID and series-CRID and scheduled an episode from a different series of the programme.&lt;br /&gt;
If duplicate episodes occur it will delete the episode that no longer appears in the EPG.&lt;br /&gt;
&lt;br /&gt;
Checking for this type of problem can be by-passed by specifying the -noMissEPG option in settings or on the command line&lt;br /&gt;
&lt;br /&gt;
=== Missing EPG entry ===&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
schedchk = Check for recording schedule issues and attempt to fix them&lt;br /&gt;
&lt;br /&gt;
schedchk -h            = produce this help&lt;br /&gt;
schedchk -rsv          = scan the recording schedule&lt;br /&gt;
&lt;br /&gt;
Options      Default (unless changed in Settings)&lt;br /&gt;
-thresh      36   = Don&amp;#039;t check for problems more than x hrs away from start&lt;br /&gt;
-d           0    = Produce more detailed output&lt;br /&gt;
-test        n    = Don&amp;#039;t make updates&lt;br /&gt;
-noAuto      n    = Don&amp;#039;t run regularly as part of Auto-Processing&lt;br /&gt;
-noAlert     n    = Don&amp;#039;t generate webif alert messages for changes made&lt;br /&gt;
-noConflict  n    = Don&amp;#039;t check for conflicts&lt;br /&gt;
-noUnsched   n    = Don&amp;#039;t check for episodes missing from schedule&lt;br /&gt;
-noSCRID     n    = Don&amp;#039;t check for series CRID changes&lt;br /&gt;
-no1off      n    = Don&amp;#039;t check for episodes scheduled as one off programmes&lt;br /&gt;
-noNotRec    n    = Don&amp;#039;t check for failures to record&lt;br /&gt;
-recWait     300  = Don&amp;#039;t assume recording failed until x seconds late starting&lt;br /&gt;
-noMissEPG   n    = Don&amp;#039;t resolve missing epg entries&lt;br /&gt;
-noEPGchg    n    = Don&amp;#039;t resolve epg time/ duration/ event crid changes&lt;br /&gt;
-noSplit     n    = Don&amp;#039;t resolve repeated split recordings&lt;br /&gt;
-noInplace   n    = Update reservation by skipping &amp;amp; 1-off rather than inplace&lt;br /&gt;
&lt;br /&gt;
Note: Options are not case sensitive&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history ===  &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|}&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
;af123:For providing the cf framework that underlies everything and who&amp;#039;s code I have copied and hacked.&lt;br /&gt;
;/df:For investigating the problems with Split recordings and writing the rsv set method&lt;br /&gt;
;everbody else:Who has assisted through the forums&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk-duplicateepisode.png&amp;diff=5256</id>
		<title>File:Schedchk-duplicateepisode.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk-duplicateepisode.png&amp;diff=5256"/>
		<updated>2020-05-24T15:09:45Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Showing two episodes of the same programme scheduled at the same time&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Showing two episodes of the same programme scheduled at the same time&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5255</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5255"/>
		<updated>2020-05-20T15:30:28Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: intermediate save&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[File:Schedchk48.png|left]]DRAFT Schedchk - Check and fix the Humax recording schedule DRAFT =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
While it is &amp;quot;only telly&amp;quot; it can be extremely annoying when we find that a programme we had scheduled to record fails to record correctly.&lt;br /&gt;
Some failures can be attributed to user errors but a considerable numbers of problems are attributable to the broadcasters and problems in the Humax software not anticipating the ever more creative ways the broadcasters find to make life complicated!&lt;br /&gt;
&lt;br /&gt;
The origins of schedchk go back several years to a [https://hummy.tv/forum/threads/schedchk-auto-fix-schedule-changes-a-proposal.7988 forum post]where I proposed the idea of automatically detecting when programmes were delayed or moved to another channel (e.g. BBC One -&amp;gt; BBC Two) because of overrunning sporting events or breaking news events.  Nothing much happened at that time since Wimbledon only last two weeks and other last minute programme changes are by their nature unpredictable making testing difficult.&lt;br /&gt;
&lt;br /&gt;
However now we live in Interesting Times the unpredictable has become routine, every day the BBC1 showing of Pointless is moved to BBC2 to make way for the Corona Virus Daily Update.  One might think that after this long the BBC would take the hint and schedule Pointless on BBC2 but no they persist in scheduling it on BBC1 and only update the schedules 3-72 hours in advance!&lt;br /&gt;
Since Pointless is one of our favourite shows I was provoked into resurrecting the Schedchk idea and finally it is now ready for a wider audience though there may still be a few rough edges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have found several different categories of potential errors in the schedule and these are listed below with examples of how they can occur and action schedchk takes when attempting to fix them.&lt;br /&gt;
__TOC__ &lt;br /&gt;
== Failure Categories ==&lt;br /&gt;
== Other controls ==&lt;br /&gt;
== Schedchk setting ==&lt;br /&gt;
== fmtrsv - Format a rsv.db table entry ==&lt;br /&gt;
== Other Stuff ==&lt;br /&gt;
=== Change history === &lt;br /&gt;
=== Acknowledgements === &lt;br /&gt;
{|border=1,&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|2020-05-xx ||schedchk 0.1,0-0|| mymsman || Intial Version&lt;br /&gt;
* All new!&lt;br /&gt;
|)&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
&lt;br /&gt;
=== Future Enhancements === &lt;br /&gt;
* Detect and reschedule recordings active at time of crash&lt;br /&gt;
* Improve Series CRID change detection to reduce false positive&amp;#039;s&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Schedchk48.png&amp;diff=5254</id>
		<title>File:Schedchk48.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Schedchk48.png&amp;diff=5254"/>
		<updated>2020-05-20T13:50:24Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Schedchk icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Schedchk icon&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5253</id>
		<title>Schedchk</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Schedchk&amp;diff=5253"/>
		<updated>2020-04-17T20:06:18Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Created page with &amp;quot;== Introduction == === Schedchk setting ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
=== Schedchk setting ===&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5251</id>
		<title>Maintain packages with Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5251"/>
		<updated>2020-04-02T13:02:25Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Commit your changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://en.wikipedia.org/wiki/Git Git] is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.&lt;br /&gt;
&lt;br /&gt;
Some, but not all, packages developed for the Humax use Git to maintain the associated source code.  This allows for better tracking and control of changes and, potentially, allows for multiple users to collaborate on maintaining the package by making and testing changes on a private copy of the package and then submitting them for review and incorporation into the main package for distribution to the Humax community via the normal package update mechanism. &lt;br /&gt;
&lt;br /&gt;
This wiki page attempts to describe the basics required to submit a change to a package that you don&amp;#039;t own using the &amp;#039;&amp;#039;webif&amp;#039;&amp;#039; package as an example.  It was written by a naive new user of Git and does not attempt to cover all of Git / Github and may contain errors, please correct and update this page where needed!&lt;br /&gt;
&lt;br /&gt;
Git repository = Storage location for a single humax package&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
Install, using the normal Humax package install method, the following (may need to show Advanced packages):&lt;br /&gt;
* git&lt;br /&gt;
* pkgtools&lt;br /&gt;
* gzip&lt;br /&gt;
* A text editor, Joe, Nano, or Vim unless you are happy with the default Vi&lt;br /&gt;
&lt;br /&gt;
Create a user account on the hummy package git repository site https://git.hpkg.tv/ userid should normally be the same as your forum id,&lt;br /&gt;
Optionally also create an id on the the public git repository [https://github.com github]&lt;br /&gt;
&lt;br /&gt;
All commands shown should be issued from a command prompt (telnet, putty, or Command Line on webif Diagnostics page)&lt;br /&gt;
&lt;br /&gt;
Create a directory to hold git repositories (do not use /mod directly to avoid conflicts with installed packages)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
md /mod/git&lt;br /&gt;
cd /mod/git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Set up some defaults for Git based on your details and preferences. The credential.helper timeout will remember your password for 24 hours &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global user.name &amp;quot;USERNAME&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;EMAIL&amp;quot;&lt;br /&gt;
git config --global core.editor &amp;quot;editor&amp;quot;&lt;br /&gt;
git config --global credential.helper &amp;#039;cache --timeout=86400&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Fork and clone reposiory ==&lt;br /&gt;
Sign in and find the package you want to work with on the host repository eg https://git.hpkg.tv/hummypkg/webif &lt;br /&gt;
&lt;br /&gt;
If the package you are interested in is not visible on the website contact the package owner to discuss access.&lt;br /&gt;
&lt;br /&gt;
Click on the Fork button (top right) and create a forked repository&lt;br /&gt;
(using a fork creates a private copy and insulates your changes from those on the master, it is not needed if you are the repository owner)&lt;br /&gt;
Copy the the HHTPS url for the forked repository, ensure you are in your git folder on the humax  and paste it into a &amp;#039;&amp;#039;git clone&amp;#039;&amp;#039; command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
git clone https://git.hpkg.tv/USERNAME/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change to your repository directory and add the master repository as another remote - this enables you to pick up changes made to the master&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git remote add upstream https://git.hpkg.tv/hummypkg/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You now have two remotes for this project on disk:&lt;br /&gt;
# origin which points to your fork of the project. You can read and write to this remote.&lt;br /&gt;
# upstream which points to the main project’s repository. You can only read from this remote.&lt;br /&gt;
&lt;br /&gt;
== Sync with master ==&lt;br /&gt;
You don&amp;#039;t need this step if you have just forked and cloned the master, but if time has elapsed and master may have changed you can pull in the latest changes and push them up to your host repository&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout master&lt;br /&gt;
git pull upstream master &lt;br /&gt;
git push origin master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Branch ==&lt;br /&gt;
Every related set of changes should be in its own branch, don&amp;#039;t try and fix unrelated problems in the same branch.&lt;br /&gt;
Branch names should be meaningful.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout -b FixBrowseTypo&lt;br /&gt;
git push -u origin FixBrowseTypo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The -b flag is only needed for a new branch, not when switching to existing branch&lt;br /&gt;
&lt;br /&gt;
== Make your updates ==&lt;br /&gt;
Using your favourite text editor make the necessary changes to the code. &lt;br /&gt;
== Package, Install and test fixes ==&lt;br /&gt;
For simple changes you may be able to test the changes in isolation without needing to package and install for each update but to fully test using the webif it is best to properly package and install your changes.&lt;br /&gt;
Update CONTROL/control for the package to update the version number,  check the dependencies section if your changes depend on new or updated packages (or remove existing dependencies).  See the &amp;quot;[[Create Packages]]&amp;quot; page for more information on the control file structure.&lt;br /&gt;
Create package .opk file and install it (vers#) is the number from the control file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
opkg-pack webif&lt;br /&gt;
opkg install webif_vers#_mipsel.opk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the opkg-pack fails with &amp;#039;Resource temporarily unavailable&amp;#039; messages try again - it seems to resolve itself after a few goes.&lt;br /&gt;
Test to ensure your changes are working as intended.&lt;br /&gt;
== Commit your changes ==&lt;br /&gt;
Committing saves your updates in the local Git repository and allows you to revert to any previous commit point should you need to back out a change,  for a small change you may only need to commit once but for larger changes you can split your work into logical chunks and commit each piece.  Pushing then syncs your remote repository with the changes from your local repository.&lt;br /&gt;
&lt;br /&gt;
Before committing Git needs to know which of the changes you have made in the repository folder are to be included in the commit, this is known as staging and can be done in several ways.&lt;br /&gt;
&lt;br /&gt;
To add a file to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To add all changed files to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To see the current status, very useful for checking what will / won&amp;#039;t be committed &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To discard changes to a file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To commit all changed files use the -a flag on the commit command (alternative to &amp;#039;&amp;#039;git add .&amp;#039;&amp;#039;), if the -m flag is omitted it will open an editor window for you to type a commit message &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git commit -a -m &amp;quot;Summary of the changes&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Send changes to remote reposiory&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Omit CONTROL/control from commits ===&lt;br /&gt;
When different branches have changes to the same file Git can normally automatically merge the changes provided they don&amp;#039;t affect the same lines of the file when you have to resolve the conflicts and decide which version to keep,  not hard but extra work for the package owner.&lt;br /&gt;
Changes to the package version number obviously all affect the same line of the control file and will cause conflicts if several changes are to be combined into one update of the Humax package.&lt;br /&gt;
So unless you have made other changes (e.g. Dependencies) I suggest that you backout changes to the control file before committing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- CONTROL/control&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create a Pull Request ==&lt;br /&gt;
A &amp;#039;&amp;#039;Pull Request&amp;#039;&amp;#039; is a request to the package owner to merge your changes into the Master repository and update the Humax package.&lt;br /&gt;
The New Pull Request button appears in a number of places on the remote repository pages under the Branches or Pull Requests tabs.&lt;br /&gt;
&lt;br /&gt;
Ensure you specify the master branch of the master repository as the target for merge into and your branch to pull from&lt;br /&gt;
[[File:PullRequest.png|frame|centre|Creating a Pull Request]]&lt;br /&gt;
&lt;br /&gt;
The title and description of the Pull Request should explain to the package owner why your changes should be included in the package.&lt;br /&gt;
Assign the request to the owner in the assignee tab (on the right of the page)&lt;br /&gt;
&lt;br /&gt;
The owner will review your changes and may request changes which should be made and committed on the same branch (a new Pull request is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; needed)&lt;br /&gt;
&lt;br /&gt;
When happy with the changes the owner will merge the branch into master and close the Pull Request, the branch can be deleted and you can start again at the [[Maintain_packages_with_Git|Sync with master]] step&lt;br /&gt;
== Further Information ==&lt;br /&gt;
This page only scratches the surface of Git and there are numerous reference works and tutorials on github and elsewhere on the web.  A few links that have helped me are:&lt;br /&gt;
* [https://akrabat.com/the-beginners-guide-to-contributing-to-a-github-project/ The beginners guide to contributing to a github project]&lt;br /&gt;
* [http://www.bioinf.org.uk/teaching/bbk/biocomp2/git/git.pdf An introduction to Git and GitHub]&lt;br /&gt;
* [https://www.atlassian.com/git/tutorials Git Tutorials]&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Create_Packages&amp;diff=5247</id>
		<title>Create Packages</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Create_Packages&amp;diff=5247"/>
		<updated>2020-03-11T17:19:14Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: Add Git usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
The modified firmware includes a lightweight package management system called opkg ([http://code.google.com/p/opkg/ home page]) which is similar to the Debian package management system (dpkg).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Coding your package==&lt;br /&gt;
&lt;br /&gt;
Most of the customised firmware is written in a language called Jim/TCL, See the Jim Manual [http://jim.tcl.tk/fossil/doc/trunk/Tcl_shipped.html &amp;#039;&amp;#039;&amp;#039;HERE&amp;#039;&amp;#039;&amp;#039;] with other bits in C/C++ and the Humax runs a Linux operating system.&lt;br /&gt;
&lt;br /&gt;
A number of TCL classes have been created to make it easier to work with different parts of the Humax webif environment. For example the &amp;#039;&amp;#039;&amp;#039;ts&amp;#039;&amp;#039;&amp;#039; class provides services for working with recordings and  the &amp;#039;&amp;#039;&amp;#039;epg&amp;#039;&amp;#039;&amp;#039; class provides access to the programme guide.&lt;br /&gt;
&lt;br /&gt;
The webif also provides a large number of &amp;#039;&amp;#039;&amp;#039;.hook&amp;#039;&amp;#039;&amp;#039; points where packages can integrate themselves into the existing webif infrastructure. For example the &amp;#039;&amp;#039;&amp;#039;browse.hook&amp;#039;&amp;#039;&amp;#039; allows new actions to be added to the browse opt+ menus. &lt;br /&gt;
&lt;br /&gt;
Unfortunately documentation is sparse and there is no definitive list of all the classes and their services or of the available hook points.&lt;br /&gt;
It is largely a case of reading existing code to find out what is available and above all asking questions on the forums, Use  existing packages that have similarities as a basis for your code but don&amp;#039;t forget to credit the original authors in your comments and forum/wiki posts.&lt;br /&gt;
&lt;br /&gt;
== Package Repositories ==&lt;br /&gt;
&lt;br /&gt;
The custom firmware is configured to use the package repository at [http://hummypkg.org.uk/packages.html hummypkg.org.uk] by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Package Format ==&lt;br /&gt;
&lt;br /&gt;
A package is a UNIX Archive (&amp;lt;tt&amp;gt;ar&amp;lt;/tt&amp;gt;) file which itself contains three files:&lt;br /&gt;
&lt;br /&gt;
;debian-binary : A file which just contains the string &amp;lt;tt&amp;gt;&amp;quot;2.0&amp;quot;&amp;lt;/tt&amp;gt;, a clue to the packaging system&amp;#039;s roots.&lt;br /&gt;
;data.tar.gz : The files which make up the package.&lt;br /&gt;
;control.tar.gz : Package meta-information.&lt;br /&gt;
&lt;br /&gt;
== Creating a Package ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;pkgtools&amp;lt;/tt&amp;gt; package includes utilities for working with packages and can be used to create packages directly on the Humax itself. Before proceeding, install these utilities:&lt;br /&gt;
&lt;br /&gt;
 humax# opkg update&lt;br /&gt;
 humax# opkg install pkgtools&lt;br /&gt;
 humax# opkg install gzip&lt;br /&gt;
&lt;br /&gt;
Next create a directory to hold your new package and create a directory within it called CONTROL, which will be used for the package meta-information:&lt;br /&gt;
&lt;br /&gt;
 humax# cd /mod/tmp&lt;br /&gt;
 humax# mkdir my-first-package&lt;br /&gt;
 humax# mkdir my-first-package/CONTROL&lt;br /&gt;
&lt;br /&gt;
{{Note|Package names should &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; contain underscore (_) characters as these are used as delimiters in package file names. It is safest to stick to alpha-numeric characters and use - as a delimiter where appropriate, e.g. &amp;lt;tt&amp;gt;webif-iphone&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Place the files which make up your package directly into the new package directory. Note that to save memory when running, compiled binaries should be stripped before packaging. In this example, we&amp;#039;ll create a package which just installs a script called &amp;lt;tt&amp;gt;hello&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 humax# cd /mod/tmp/my-first-package&lt;br /&gt;
 humax# mkdir bin&lt;br /&gt;
 humax# cat &amp;gt; bin/hello&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Hello!&amp;quot;&lt;br /&gt;
 ^D&lt;br /&gt;
 humax# chmod 755 bin/hello&lt;br /&gt;
&lt;br /&gt;
{{Note|Files should be included relative to &amp;lt;tt&amp;gt;/mod&amp;lt;/tt&amp;gt; (or &amp;lt;tt&amp;gt;/opt&amp;lt;/tt&amp;gt; on the FoxSat) so in this example the &amp;lt;tt&amp;gt;bin/hello&amp;lt;/tt&amp;gt; file will be installed as &amp;lt;tt&amp;gt;/mod/bin/hello&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Create file package control file as &amp;lt;tt&amp;gt;CONTROL/control&amp;lt;/tt&amp;gt;. Here&amp;#039;s an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: jim-sqlite3&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: misc&lt;br /&gt;
Version: 0.71&lt;br /&gt;
Architecture: mipsel&lt;br /&gt;
Maintainer: af123@hummypkg.org.uk&lt;br /&gt;
Depends: jim(&amp;gt;=0.71-1),sqlite3&lt;br /&gt;
Description: Jim SQLite3 plugin.&lt;br /&gt;
 A plugin for the jim interpreter (a lightweight TCL interpreter) which&lt;br /&gt;
 provides access to SQLite3 databases (such as those used on the Humax).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Debian project maintains [http://www.debian.org/doc/debian-policy/ch-controlfields.html documentation on the format of the control file] which also applies to opkg packages, although some fields are not required.&lt;br /&gt;
&lt;br /&gt;
; Package : The package name.&lt;br /&gt;
; Priority : Always set to optional for Humax packages.&lt;br /&gt;
; Section : One of &amp;lt;tt&amp;gt;misc&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;net&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;devel&amp;lt;/tt&amp;gt;, etc. [http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections full list]&lt;br /&gt;
; Version : The package version number of the format &amp;#039;&amp;#039;upstream_version[-opkg_version]&amp;#039;&amp;#039; [http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version more information]&lt;br /&gt;
; Architecture : Always &amp;lt;tt&amp;gt;mipsel&amp;lt;/tt&amp;gt; for the HD/HDR Fox T2, and &amp;lt;tt&amp;gt;mips&amp;lt;/tt&amp;gt; for the FoxSat.&lt;br /&gt;
; Maintainer : An email address or hummy.tv/wiki username.&lt;br /&gt;
; Depends : A list of dependencies for this package, optionally with version constraints [http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps see Debian documentation]&lt;br /&gt;
; Description : A description of the package. Continuation lines must be prefixed by white space.&lt;br /&gt;
; Tags : An optional field that contains a URL pointing to a source of further information&lt;br /&gt;
&lt;br /&gt;
The CONTROL directory can also contain other package maintenance scripts such as &amp;lt;tt&amp;gt;preinst&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;postinst&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;prerm&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;postrm&amp;lt;/tt&amp;gt;. See [http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html the Debian documentation for more details and examples]. The scripts are called with various arguments during package maintenance operations. Many simple packages do not require any maintenance scripts.&lt;br /&gt;
&lt;br /&gt;
Continuing with our example package, create the bare minimum control file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cat &amp;gt; CONTROL/control&lt;br /&gt;
Package: hello&lt;br /&gt;
Version: 1.0&lt;br /&gt;
Architecture: mipsel&lt;br /&gt;
Maintainer: af123&lt;br /&gt;
Description: hello&lt;br /&gt;
Tags: http://wiki.hummy.tv/wiki/Custom_Firmware_Overview/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The package can now be built using the opkg-pack command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cd /mod/tmp&lt;br /&gt;
humax# opkg-pack my-first-package&lt;br /&gt;
bin/&lt;br /&gt;
bin/hello&lt;br /&gt;
Packaged contents of /mod/tmp/my-first-package/ into /mod/tmp/my-first-package//../hello_1.0_mipsel.opk 532&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The package can then be installed directly from the resulting file for testing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# opkg install hello_1.0_mipsel.opk&lt;br /&gt;
Installing hello (1.0) to root...&lt;br /&gt;
Configuring hello.&lt;br /&gt;
humax# hello&lt;br /&gt;
Hello!&lt;br /&gt;
humax# opkg remove hello&lt;br /&gt;
Removing package hello from root...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have any packages which you&amp;#039;d like published in the [http://hummypkg.org.uk hummypkg.org.uk] repository, then email them to [mailto:packages@hummypkg.org.uk packages@hummypkg.org.uk].&lt;br /&gt;
&lt;br /&gt;
== Using Git to store and maintain package ==&lt;br /&gt;
&lt;br /&gt;
It is recommended that you use the Git library system to provide version control and to allow for collaborative development with others.&lt;br /&gt;
&lt;br /&gt;
See [[Maintain packages with Git]] for a guide to using Git with Humax packages.&lt;br /&gt;
Most of that page also applies to maintaining your own packages but there are also a few differences which are covered here.&lt;br /&gt;
&lt;br /&gt;
As package owner you will be responsible for establishing the principal repository for the package and will work directly with that repository rather than a forked copy and you will also be responsible for merging the branches created by you or others into the master branch once you are satisfied they are working correctly and then removing empty branches.&lt;br /&gt;
&lt;br /&gt;
=== Create a new repository for your package ===&lt;br /&gt;
&lt;br /&gt;
On the Dashboard of the [https://git.hpkg.tv/ Hummy Git website] click to create a New Repository &lt;br /&gt;
[[File:New Repository.png|frame|centre]]&lt;br /&gt;
Provide the Package name, Visibility (Public is best) and Description but &amp;#039;&amp;#039;do not&amp;#039;&amp;#039; select the &amp;#039;Initialize Repository&amp;#039; option then click on &amp;#039;Create Repository&amp;#039; buttton  &lt;br /&gt;
On your local machine switch to the folder for the package and upload it the repository.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/tmp/my-first-package&lt;br /&gt;
git init&lt;br /&gt;
git add .&lt;br /&gt;
git commit -a -m &amp;quot;first commit&amp;quot;&lt;br /&gt;
git remote add origin https://git.hpkg.tv/USERNAME/my-first-package.git&lt;br /&gt;
git push -u origin master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Merge changes into &amp;#039;&amp;#039;&amp;#039;master&amp;#039;&amp;#039;&amp;#039; branch ===&lt;br /&gt;
This can be done locally on your machine for changes you have made or on the web repository for Pull Requestsgo created by you or others&lt;br /&gt;
==== Local Merge ====&lt;br /&gt;
After completing changes switch to master branch, merge the changes, delete the branch and synchronize with the remote repository&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout master&lt;br /&gt;
git merge branch-name&lt;br /&gt;
git branch -d branch-name&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the branch had bee pushed to the remote it can be deleted&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git push origin --delete  branch-name&lt;br /&gt;
git remote prune origin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Remote Merge ====&lt;br /&gt;
On the Pull Request tab of the [https://git.hpkg.tv/ Hummy Git website] Review the changes are OK and Approve the changes, or Request Changes if required&lt;br /&gt;
[[File:Review Pull request.png|frame|center]]&lt;br /&gt;
Once satisfied click on the &amp;quot;Merge Pull Request&amp;quot; button after which you can click on the &amp;quot;Delete Branch&amp;quot; button&lt;br /&gt;
Synchronize your local repository&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout master&lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unpacking an existing package ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;pkgtools&amp;lt;/tt&amp;gt; package also contains a utility which can be used to unpack an existing package into a directory structure for editing or just for investigation, NOTE :- you need to install the gzip Custom Firmware package in order to use opkg-unpack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# cd /mod/tmp&lt;br /&gt;
humax# opkg download webif&lt;br /&gt;
Downloading http://hummypkg.org.uk/hdrfoxt2/base/webif_0.6.4_mipsel.opk.&lt;br /&gt;
Downloaded webif as ./webif_0.6.4_mipsel.opk.&lt;br /&gt;
humax# opkg-unpack webif_0.6.4_mipsel.opk&lt;br /&gt;
Unpacked to webif_0.6.4_mipsel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have a Debian-based Linux machine, opkg packages can be examined and manipulated using the dkpg-deb command.&lt;br /&gt;
&lt;br /&gt;
 wget http://hummypkg.org.uk/hdrfoxt2/base/busybox_1.19.3-3_mipsel.opk&lt;br /&gt;
 dpkg-deb -x busybox_1.19.3-3_mipsel.opk &amp;lt;tmpdir&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Packing and Unpacking Bundled Packages ==&lt;br /&gt;
&lt;br /&gt;
An OPK file contains the executable program /s and all the set-up scripts required for a single Custom Firmware package, However this single package may require other packages to be present in order to work. An OPB file contains the main package and all the peripheral packages require for it to run in a single file, the OPK’s are tarred together to form this file and can be viewed as follows :-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humax# /bin/untar multimode_0.0.1_mipsel.opb&lt;br /&gt;
Extracting from multimode_0.0.1_mipsel.opb&lt;br /&gt;
 Extracting file multimode_0.0.1_mipsel.opk&lt;br /&gt;
 Extracting file webif_0.8.9_mipsel.opk&lt;br /&gt;
 Extracting file mongoose_3.0-6_mipsel.opk&lt;br /&gt;
 Extracting file jim_0.71-1_mipsel.opk&lt;br /&gt;
 Extracting file jim-sqlite3_0.71-1_mipsel.opk&lt;br /&gt;
 Extracting file sqlite3_3.7.6_mipsel.opk&lt;br /&gt;
 Extracting file jim-cgi_0.4-1_mipsel.opk&lt;br /&gt;
 Extracting file jim-oo_0.71_mipsel.opk&lt;br /&gt;
 Extracting file jim-pack_0.71_mipsel.opk&lt;br /&gt;
 Extracting file service-control_1.0_mipsel.opk&lt;br /&gt;
 Extracting file busybox_1.19.3-2_mipsel.opk&lt;br /&gt;
 Extracting file lsof_4.82_mipsel.opk&lt;br /&gt;
 Extracting file epg_1.0.8_mipsel.opk&lt;br /&gt;
 Extracting file hmt_1.1.3_mipsel.opk&lt;br /&gt;
 Extracting file ssmtp_2.64_mipsel.opk&lt;br /&gt;
 Extracting file anacron_2.3-1_mipsel.opk&lt;br /&gt;
 Extracting file cron-daemon_1.18.3-1_mipsel.opk&lt;br /&gt;
 Extracting file rs_0.4.0_mipsel.opk&lt;br /&gt;
End of multimode_0.0.1_mipsel.opb&lt;br /&gt;
humax#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:Review_Pull_request.png&amp;diff=5246</id>
		<title>File:Review Pull request.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:Review_Pull_request.png&amp;diff=5246"/>
		<updated>2020-03-11T16:12:01Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=File:New_Repository.png&amp;diff=5245</id>
		<title>File:New Repository.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=File:New_Repository.png&amp;diff=5245"/>
		<updated>2020-03-11T14:37:28Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5244</id>
		<title>Maintain packages with Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5244"/>
		<updated>2020-03-11T13:48:05Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: remove &amp;#039;Draft&amp;#039; designation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://en.wikipedia.org/wiki/Git Git] is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.&lt;br /&gt;
&lt;br /&gt;
Some, but not all, packages developed for the Humax use Git to maintain the associated source code.  This allows for better tracking and control of changes and, potentially, allows for multiple users to collaborate on maintaining the package by making and testing changes on a private copy of the package and then submitting them for review and incorporation into the main package for distribution to the Humax community via the normal package update mechanism. &lt;br /&gt;
&lt;br /&gt;
This wiki page attempts to describe the basics required to submit a change to a package that you don&amp;#039;t own using the &amp;#039;&amp;#039;webif&amp;#039;&amp;#039; package as an example.  It was written by a naive new user of Git and does not attempt to cover all of Git / Github and may contain errors, please correct and update this page where needed!&lt;br /&gt;
&lt;br /&gt;
Git repository = Storage location for a single humax package&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
Install, using the normal Humax package install method, the following (may need to show Advanced packages):&lt;br /&gt;
* git&lt;br /&gt;
* pkgtools&lt;br /&gt;
* gzip&lt;br /&gt;
* A text editor, Joe, Nano, or Vim unless you are happy with the default Vi&lt;br /&gt;
&lt;br /&gt;
Create a user account on the hummy package git repository site https://git.hpkg.tv/ userid should normally be the same as your forum id,&lt;br /&gt;
Optionally also create an id on the the public git repository [https://github.com github]&lt;br /&gt;
&lt;br /&gt;
All commands shown should be issued from a command prompt (telnet, putty, or Command Line on webif Diagnostics page)&lt;br /&gt;
&lt;br /&gt;
Create a directory to hold git repositories (do not use /mod directly to avoid conflicts with installed packages)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
md /mod/git&lt;br /&gt;
cd /mod/git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Set up some defaults for Git based on your details and preferences. The credential.helper timeout will remember your password for 24 hours &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global user.name &amp;quot;USERNAME&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;EMAIL&amp;quot;&lt;br /&gt;
git config --global core.editor &amp;quot;editor&amp;quot;&lt;br /&gt;
git config --global credential.helper &amp;#039;cache --timeout=86400&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Fork and clone reposiory ==&lt;br /&gt;
Sign in and find the package you want to work with on the host repository eg https://git.hpkg.tv/hummypkg/webif &lt;br /&gt;
&lt;br /&gt;
If the package you are interested in is not visible on the website contact the package owner to discuss access.&lt;br /&gt;
&lt;br /&gt;
Click on the Fork button (top right) and create a forked repository&lt;br /&gt;
(using a fork creates a private copy and insulates your changes from those on the master, it is not needed if you are the repository owner)&lt;br /&gt;
Copy the the HHTPS url for the forked repository, ensure you are in your git folder on the humax  and paste it into a &amp;#039;&amp;#039;git clone&amp;#039;&amp;#039; command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
git clone https://git.hpkg.tv/USERNAME/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change to your repository directory and add the master repository as another remote - this enables you to pick up changes made to the master&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git remote add upstream https://git.hpkg.tv/hummypkg/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You now have two remotes for this project on disk:&lt;br /&gt;
# origin which points to your fork of the project. You can read and write to this remote.&lt;br /&gt;
# upstream which points to the main project’s repository. You can only read from this remote.&lt;br /&gt;
&lt;br /&gt;
== Sync with master ==&lt;br /&gt;
You don&amp;#039;t need this step if you have just forked and cloned the master, but if time has elapsed and master may have changed you can pull in the latest changes and push them up to your host repository&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout master&lt;br /&gt;
git pull upstream master &lt;br /&gt;
git push origin master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Branch ==&lt;br /&gt;
Every related set of changes should be in its own branch, don&amp;#039;t try and fix unrelated problems in the same branch.&lt;br /&gt;
Branch names should be meaningful.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout -b FixBrowseTypo&lt;br /&gt;
git push -u origin FixBrowseTypo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The -b flag is only needed for a new branch, not when switching to existing branch&lt;br /&gt;
&lt;br /&gt;
== Make your updates ==&lt;br /&gt;
Using your favourite text editor make the necessary changes to the code. &lt;br /&gt;
== Package, Install and test fixes ==&lt;br /&gt;
For simple changes you may be able to test the changes in isolation without needing to package and install for each update but to fully test using the webif it is best to properly package and install your changes.&lt;br /&gt;
Update CONTROL/control for the package to update the version number,  check the dependencies section if your changes depend on new or updated packages (or remove existing dependencies).  See the &amp;quot;[[Create Packages]]&amp;quot; page for more information on the control file structure.&lt;br /&gt;
Create package .opk file and install it (vers#) is the number from the control file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
opkg-pack webif&lt;br /&gt;
opkg install webif_vers#_mipsel.opk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the opkg-pack fails with &amp;#039;Resource temporarily unavailable&amp;#039; messages try again - it seems to resolve itself after a few goes.&lt;br /&gt;
Test to ensure your changes are working as intended.&lt;br /&gt;
== Commit your changes ==&lt;br /&gt;
Committing saves your updates in the local Git repository and allows you to revert to any previous commit point should you need to back out a change,  for a small change you may only need to commit once but for larger changes you can split your work into logical chunks and commit each piece.  Pushing then syncs your remote repository with the changes from your local repository.&lt;br /&gt;
&lt;br /&gt;
Before committing Git needs to know which of the changes you have made in the repository folder are to be included in the commit, this is known as staging and can be done in several ways.&lt;br /&gt;
&lt;br /&gt;
To add a file to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To add all changed files to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To see the current status, very useful for checking what will / won&amp;#039;t be committed &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To discard changes to a file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To commit all changed files use the -a flag on the commit command (alternative to &amp;#039;&amp;#039;git add .&amp;#039;&amp;#039;), if the -m flag is omitted it will open an editor window for you to type a commit message &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git commit -a -m &amp;quot;Summary of the changes&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Omit CONTROL/control from commits ===&lt;br /&gt;
When different branches have changes to the same file Git can normally automatically merge the changes provided they don&amp;#039;t affect the same lines of the file when you have to resolve the conflicts and decide which version to keep,  not hard but extra work for the package owner.&lt;br /&gt;
Changes to the package version number obviously all affect the same line of the control file and will cause conflicts if several changes are to be combined into one update of the Humax package.&lt;br /&gt;
So unless you have made other changes (e.g. Dependencies) I suggest that you backout changes to the control file before committing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- CONTROL/control&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Pull Request ==&lt;br /&gt;
A &amp;#039;&amp;#039;Pull Request&amp;#039;&amp;#039; is a request to the package owner to merge your changes into the Master repository and update the Humax package.&lt;br /&gt;
The New Pull Request button appears in a number of places on the remote repository pages under the Branches or Pull Requests tabs.&lt;br /&gt;
&lt;br /&gt;
Ensure you specify the master branch of the master repository as the target for merge into and your branch to pull from&lt;br /&gt;
[[File:PullRequest.png|frame|centre|Creating a Pull Request]]&lt;br /&gt;
&lt;br /&gt;
The title and description of the Pull Request should explain to the package owner why your changes should be included in the package.&lt;br /&gt;
Assign the request to the owner in the assignee tab (on the right of the page)&lt;br /&gt;
&lt;br /&gt;
The owner will review your changes and may request changes which should be made and committed on the same branch (a new Pull request is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; needed)&lt;br /&gt;
&lt;br /&gt;
When happy with the changes the owner will merge the branch into master and close the Pull Request, the branch can be deleted and you can start again at the [[Maintain_packages_with_Git|Sync with master]] step&lt;br /&gt;
== Further Information ==&lt;br /&gt;
This page only scratches the surface of Git and there are numerous reference works and tutorials on github and elsewhere on the web.  A few links that have helped me are:&lt;br /&gt;
* [https://akrabat.com/the-beginners-guide-to-contributing-to-a-github-project/ The beginners guide to contributing to a github project]&lt;br /&gt;
* [http://www.bioinf.org.uk/teaching/bbk/biocomp2/git/git.pdf An introduction to Git and GitHub]&lt;br /&gt;
* [https://www.atlassian.com/git/tutorials Git Tutorials]&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5243</id>
		<title>Maintain packages with Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5243"/>
		<updated>2020-03-11T13:36:09Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Fork and clone reposiory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Draft&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.&lt;br /&gt;
&lt;br /&gt;
Some, but not all, packages developed for the Humax use Git to maintain the associated source code.  This allows for better tracking and control of changes and, potentially, allows for multiple users to collaborate on maintaining the package by making and testing changes on a private copy of the package and then submitting them for review and incorporation into the main package for distribution to the Humax community via the normal package update mechanism. &lt;br /&gt;
&lt;br /&gt;
This wiki page attempts to describe the basics required to submit a change to a package that you don&amp;#039;t own using the &amp;#039;&amp;#039;webif&amp;#039;&amp;#039; package as an example.  It was written by a naive new user of Git and does not attempt to cover all of Git / Github and may contain errors, please correct and update this page where needed!&lt;br /&gt;
&lt;br /&gt;
Git repository = Storage location for a single humax package&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
Install, using the normal Humax package install method, the following (may need to show Advanced packages):&lt;br /&gt;
* git&lt;br /&gt;
* pkgtools&lt;br /&gt;
* A text editor, Joe, Nano, or Vim unless you are happy with the default Vi&lt;br /&gt;
&lt;br /&gt;
Create a user account on the hummy package git repository site https://git.hpkg.tv/ userid should normally be the same as your forum id,&lt;br /&gt;
Optionally also create an id on the the public git repository [https://github.com github]&lt;br /&gt;
&lt;br /&gt;
All commands shown should be issued from a command prompt (telnet, putty, or Command Line on webif Diagnostics page)&lt;br /&gt;
&lt;br /&gt;
Create a directory to hold git repositories (do not use /mod directly to avoid conflicts with installed packages)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
md /mod/git&lt;br /&gt;
cd /mod/git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Set up some defaults for Git based on your details and preferences. The credential.helper timeout will remember your password for 24 hours &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global user.name &amp;quot;USERNAME&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;EMAIL&amp;quot;&lt;br /&gt;
git config --global core.editor &amp;quot;editor&amp;quot;&lt;br /&gt;
git config --global credential.helper &amp;#039;cache --timeout=86400&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Fork and clone reposiory ==&lt;br /&gt;
Sign in and find the package you want to work with on the host repository eg https://git.hpkg.tv/hummypkg/webif &lt;br /&gt;
&lt;br /&gt;
If the package you are interested in is not visible on the website contact the package owner to discuss access.&lt;br /&gt;
&lt;br /&gt;
Click on the Fork button (top right) and create a forked repository&lt;br /&gt;
(using a fork creates a private copy and insulates your changes from those on the master, it is not needed if you are the repository owner)&lt;br /&gt;
Copy the the HHTPS url for the forked repository, ensure you are in your git folder on the humax  and paste it into a &amp;#039;&amp;#039;git clone&amp;#039;&amp;#039; command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
git clone https://git.hpkg.tv/USERNAME/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change to your repository directory and add the master repository as another remote - this enables you to pick up changes made to the master&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git remote add upstream https://git.hpkg.tv/hummypkg/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You now have two remotes for this project on disk:&lt;br /&gt;
# origin which points to your fork of the project. You can read and write to this remote.&lt;br /&gt;
# upstream which points to the main project’s repository. You can only read from this remote.&lt;br /&gt;
&lt;br /&gt;
== Sync with master ==&lt;br /&gt;
You don&amp;#039;t need this step if you have just forked and cloned the master, but if time has elapsed and master may have changed you can pull in the latest changes and push them up to your host repository&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout master&lt;br /&gt;
git pull upstream master &lt;br /&gt;
git push origin master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Branch ==&lt;br /&gt;
Every related set of changes should be in its own branch, don&amp;#039;t try and fix unrelated problems in the same branch.&lt;br /&gt;
Branch names should be meaningful.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout -b FixBrowseTypo&lt;br /&gt;
git push -u origin FixBrowseTypo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The -b flag is only needed for a new branch, not when switching to existing branch&lt;br /&gt;
&lt;br /&gt;
== Make your updates ==&lt;br /&gt;
Using your favourite text editor make the necessary changes to the code. &lt;br /&gt;
== Package, Install and test fixes ==&lt;br /&gt;
For simple changes you may be able to test the changes in isolation without needing to package and install for each update but to fully test using the webif it is best to properly package and install your changes.&lt;br /&gt;
Update CONTROL/control for the package to update the version number,  check the dependencies section if your changes depend on new or updated packages (or remove existing dependencies).  See the &amp;quot;[[Create Packages]]&amp;quot; page for more information on the control file structure.&lt;br /&gt;
Create package .opk file and install it (vers#) is the number from the control file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
opkg-pack webif&lt;br /&gt;
opkg install webif_vers#_mipsel.opk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the opkg-pack fails with &amp;#039;Resource temporarily unavailable&amp;#039; messages try again - it seems to resolve itself after a few goes.&lt;br /&gt;
Test to ensure your changes are working as intended.&lt;br /&gt;
== Commit your changes ==&lt;br /&gt;
Committing saves your updates in the local Git repository and allows you to revert to any previous commit point should you need to back out a change,  for a small change you may only need to commit once but for larger changes you can split your work into logical chunks and commit each piece.  Pushing then syncs your remote repository with the changes from your local repository.&lt;br /&gt;
&lt;br /&gt;
Before committing Git needs to know which of the changes you have made in the repository folder are to be included in the commit, this is known as staging and can be done in several ways.&lt;br /&gt;
&lt;br /&gt;
To add a file to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To add all changed files to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To see the current status, very useful for checking what will / won&amp;#039;t be committed &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To discard changes to a file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To commit all changed files use the -a flag on the commit command (alternative to &amp;#039;&amp;#039;git add .&amp;#039;&amp;#039;), if the -m flag is omitted it will open an editor window for you to type a commit message &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git commit -a -m &amp;quot;Summary of the changes&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Omit CONTROL/control from commits ===&lt;br /&gt;
When different branches have changes to the same file Git can normally automatically merge the changes provided they don&amp;#039;t affect the same lines of the file when you have to resolve the conflicts and decide which version to keep,  not hard but extra work for the package owner.&lt;br /&gt;
Changes to the package version number obviously all affect the same line of the control file and will cause conflicts if several changes are to be combined into one update of the Humax package.&lt;br /&gt;
So unless you have made other changes (e.g. Dependencies) I suggest that you backout changes to the control file before committing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- CONTROL/control&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Pull Request ==&lt;br /&gt;
A &amp;#039;&amp;#039;Pull Request&amp;#039;&amp;#039; is a request to the package owner to merge your changes into the Master repository and update the Humax package.&lt;br /&gt;
The New Pull Request button appears in a number of places on the remote repository pages under the Branches or Pull Requests tabs.&lt;br /&gt;
&lt;br /&gt;
Ensure you specify the master branch of the master repository as the target for merge into and your branch to pull from&lt;br /&gt;
[[File:PullRequest.png|frame|centre|Creating a Pull Request]]&lt;br /&gt;
&lt;br /&gt;
The title and description of the Pull Request should explain to the package owner why your changes should be included in the package.&lt;br /&gt;
Assign the request to the owner in the assignee tab (on the right of the page)&lt;br /&gt;
&lt;br /&gt;
The owner will review your changes and may request changes which should be made and committed on the same branch (a new Pull request is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; needed)&lt;br /&gt;
&lt;br /&gt;
When happy with the changes the owner will merge the branch into master and close the Pull Request, the branch can be deleted and you can start again at the [[Maintain_packages_with_Git|Sync with master]] step&lt;br /&gt;
== Further Information ==&lt;br /&gt;
This page only scratches the surface of Git and there are numerous reference works and tutorials on github and elsewhere on the web.  A few links that have helped me are:&lt;br /&gt;
* [https://akrabat.com/the-beginners-guide-to-contributing-to-a-github-project/ The beginners guide to contributing to a github project]&lt;br /&gt;
* [http://www.bioinf.org.uk/teaching/bbk/biocomp2/git/git.pdf An introduction to Git and GitHub]&lt;br /&gt;
* [https://www.atlassian.com/git/tutorials Git Tutorials]&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5242</id>
		<title>Maintain packages with Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5242"/>
		<updated>2020-03-11T13:35:11Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: /* Fork and clone reposiory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Draft&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.&lt;br /&gt;
&lt;br /&gt;
Some, but not all, packages developed for the Humax use Git to maintain the associated source code.  This allows for better tracking and control of changes and, potentially, allows for multiple users to collaborate on maintaining the package by making and testing changes on a private copy of the package and then submitting them for review and incorporation into the main package for distribution to the Humax community via the normal package update mechanism. &lt;br /&gt;
&lt;br /&gt;
This wiki page attempts to describe the basics required to submit a change to a package that you don&amp;#039;t own using the &amp;#039;&amp;#039;webif&amp;#039;&amp;#039; package as an example.  It was written by a naive new user of Git and does not attempt to cover all of Git / Github and may contain errors, please correct and update this page where needed!&lt;br /&gt;
&lt;br /&gt;
Git repository = Storage location for a single humax package&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
Install, using the normal Humax package install method, the following (may need to show Advanced packages):&lt;br /&gt;
* git&lt;br /&gt;
* pkgtools&lt;br /&gt;
* A text editor, Joe, Nano, or Vim unless you are happy with the default Vi&lt;br /&gt;
&lt;br /&gt;
Create a user account on the hummy package git repository site https://git.hpkg.tv/ userid should normally be the same as your forum id,&lt;br /&gt;
Optionally also create an id on the the public git repository [https://github.com github]&lt;br /&gt;
&lt;br /&gt;
All commands shown should be issued from a command prompt (telnet, putty, or Command Line on webif Diagnostics page)&lt;br /&gt;
&lt;br /&gt;
Create a directory to hold git repositories (do not use /mod directly to avoid conflicts with installed packages)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
md /mod/git&lt;br /&gt;
cd /mod/git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Set up some defaults for Git based on your details and preferences. The credential.helper timeout will remember your password for 24 hours &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global user.name &amp;quot;USERNAME&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;EMAIL&amp;quot;&lt;br /&gt;
git config --global core.editor &amp;quot;editor&amp;quot;&lt;br /&gt;
git config --global credential.helper &amp;#039;cache --timeout=86400&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Fork and clone reposiory ==&lt;br /&gt;
Sign in and find the package you want to work with on the host repository eg https://git.hpkg.tv/hummypkg/webif &lt;br /&gt;
&lt;br /&gt;
If the package you are interested in is not visible on the website contact the package owner to discuss access.&lt;br /&gt;
&lt;br /&gt;
Click on the Fork button (top right) and create a forked repository&lt;br /&gt;
(using a fork creates a private copy and insulates your changes from those on the master, it is not needed if you are the repository owner)&lt;br /&gt;
Copy the the HHTPS url for the forked repository, ensure you are in your git folder on the humax  and paste it into a &amp;#039;&amp;#039;git clone&amp;#039;&amp;#039; command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
git clone https://git.hpkg.tv/USERNAME/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change to our repository directory and add the master repository as another remote - this enables you to pick up changes made to the master&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git remote add upstream https://git.hpkg.tv/hummypkg/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You now have two remotes for this project on disk:&lt;br /&gt;
# origin which points to your fork of the project. You can read and write to this remote.&lt;br /&gt;
# upstream which points to the main project’s repository. You can only read from this remote.&lt;br /&gt;
&lt;br /&gt;
== Sync with master ==&lt;br /&gt;
You don&amp;#039;t need this step if you have just forked and cloned the master, but if time has elapsed and master may have changed you can pull in the latest changes and push them up to your host repository&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout master&lt;br /&gt;
git pull upstream master &lt;br /&gt;
git push origin master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Branch ==&lt;br /&gt;
Every related set of changes should be in its own branch, don&amp;#039;t try and fix unrelated problems in the same branch.&lt;br /&gt;
Branch names should be meaningful.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout -b FixBrowseTypo&lt;br /&gt;
git push -u origin FixBrowseTypo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The -b flag is only needed for a new branch, not when switching to existing branch&lt;br /&gt;
&lt;br /&gt;
== Make your updates ==&lt;br /&gt;
Using your favourite text editor make the necessary changes to the code. &lt;br /&gt;
== Package, Install and test fixes ==&lt;br /&gt;
For simple changes you may be able to test the changes in isolation without needing to package and install for each update but to fully test using the webif it is best to properly package and install your changes.&lt;br /&gt;
Update CONTROL/control for the package to update the version number,  check the dependencies section if your changes depend on new or updated packages (or remove existing dependencies).  See the &amp;quot;[[Create Packages]]&amp;quot; page for more information on the control file structure.&lt;br /&gt;
Create package .opk file and install it (vers#) is the number from the control file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
opkg-pack webif&lt;br /&gt;
opkg install webif_vers#_mipsel.opk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the opkg-pack fails with &amp;#039;Resource temporarily unavailable&amp;#039; messages try again - it seems to resolve itself after a few goes.&lt;br /&gt;
Test to ensure your changes are working as intended.&lt;br /&gt;
== Commit your changes ==&lt;br /&gt;
Committing saves your updates in the local Git repository and allows you to revert to any previous commit point should you need to back out a change,  for a small change you may only need to commit once but for larger changes you can split your work into logical chunks and commit each piece.  Pushing then syncs your remote repository with the changes from your local repository.&lt;br /&gt;
&lt;br /&gt;
Before committing Git needs to know which of the changes you have made in the repository folder are to be included in the commit, this is known as staging and can be done in several ways.&lt;br /&gt;
&lt;br /&gt;
To add a file to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To add all changed files to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To see the current status, very useful for checking what will / won&amp;#039;t be committed &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To discard changes to a file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To commit all changed files use the -a flag on the commit command (alternative to &amp;#039;&amp;#039;git add .&amp;#039;&amp;#039;), if the -m flag is omitted it will open an editor window for you to type a commit message &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git commit -a -m &amp;quot;Summary of the changes&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Omit CONTROL/control from commits ===&lt;br /&gt;
When different branches have changes to the same file Git can normally automatically merge the changes provided they don&amp;#039;t affect the same lines of the file when you have to resolve the conflicts and decide which version to keep,  not hard but extra work for the package owner.&lt;br /&gt;
Changes to the package version number obviously all affect the same line of the control file and will cause conflicts if several changes are to be combined into one update of the Humax package.&lt;br /&gt;
So unless you have made other changes (e.g. Dependencies) I suggest that you backout changes to the control file before committing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- CONTROL/control&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Pull Request ==&lt;br /&gt;
A &amp;#039;&amp;#039;Pull Request&amp;#039;&amp;#039; is a request to the package owner to merge your changes into the Master repository and update the Humax package.&lt;br /&gt;
The New Pull Request button appears in a number of places on the remote repository pages under the Branches or Pull Requests tabs.&lt;br /&gt;
&lt;br /&gt;
Ensure you specify the master branch of the master repository as the target for merge into and your branch to pull from&lt;br /&gt;
[[File:PullRequest.png|frame|centre|Creating a Pull Request]]&lt;br /&gt;
&lt;br /&gt;
The title and description of the Pull Request should explain to the package owner why your changes should be included in the package.&lt;br /&gt;
Assign the request to the owner in the assignee tab (on the right of the page)&lt;br /&gt;
&lt;br /&gt;
The owner will review your changes and may request changes which should be made and committed on the same branch (a new Pull request is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; needed)&lt;br /&gt;
&lt;br /&gt;
When happy with the changes the owner will merge the branch into master and close the Pull Request, the branch can be deleted and you can start again at the [[Maintain_packages_with_Git|Sync with master]] step&lt;br /&gt;
== Further Information ==&lt;br /&gt;
This page only scratches the surface of Git and there are numerous reference works and tutorials on github and elsewhere on the web.  A few links that have helped me are:&lt;br /&gt;
* [https://akrabat.com/the-beginners-guide-to-contributing-to-a-github-project/ The beginners guide to contributing to a github project]&lt;br /&gt;
* [http://www.bioinf.org.uk/teaching/bbk/biocomp2/git/git.pdf An introduction to Git and GitHub]&lt;br /&gt;
* [https://www.atlassian.com/git/tutorials Git Tutorials]&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5241</id>
		<title>Maintain packages with Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.hummy.tv/w/index.php?title=Maintain_packages_with_Git&amp;diff=5241"/>
		<updated>2020-03-11T13:33:58Z</updated>

		<summary type="html">&lt;p&gt;MymsMan: add not visible comment&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Draft&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.&lt;br /&gt;
&lt;br /&gt;
Some, but not all, packages developed for the Humax use Git to maintain the associated source code.  This allows for better tracking and control of changes and, potentially, allows for multiple users to collaborate on maintaining the package by making and testing changes on a private copy of the package and then submitting them for review and incorporation into the main package for distribution to the Humax community via the normal package update mechanism. &lt;br /&gt;
&lt;br /&gt;
This wiki page attempts to describe the basics required to submit a change to a package that you don&amp;#039;t own using the &amp;#039;&amp;#039;webif&amp;#039;&amp;#039; package as an example.  It was written by a naive new user of Git and does not attempt to cover all of Git / Github and may contain errors, please correct and update this page where needed!&lt;br /&gt;
&lt;br /&gt;
Git repository = Storage location for a single humax package&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
Install, using the normal Humax package install method, the following (may need to show Advanced packages):&lt;br /&gt;
* git&lt;br /&gt;
* pkgtools&lt;br /&gt;
* A text editor, Joe, Nano, or Vim unless you are happy with the default Vi&lt;br /&gt;
&lt;br /&gt;
Create a user account on the hummy package git repository site https://git.hpkg.tv/ userid should normally be the same as your forum id,&lt;br /&gt;
Optionally also create an id on the the public git repository [https://github.com github]&lt;br /&gt;
&lt;br /&gt;
All commands shown should be issued from a command prompt (telnet, putty, or Command Line on webif Diagnostics page)&lt;br /&gt;
&lt;br /&gt;
Create a directory to hold git repositories (do not use /mod directly to avoid conflicts with installed packages)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
md /mod/git&lt;br /&gt;
cd /mod/git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Set up some defaults for Git based on your details and preferences. The credential.helper timeout will remember your password for 24 hours &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global user.name &amp;quot;USERNAME&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;EMAIL&amp;quot;&lt;br /&gt;
git config --global core.editor &amp;quot;editor&amp;quot;&lt;br /&gt;
git config --global credential.helper &amp;#039;cache --timeout=86400&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Fork and clone reposiory ==&lt;br /&gt;
Sign in and find the package you want to work with on the host repository eg https://git.hpkg.tv/hummypkg/webif &lt;br /&gt;
If the package you are interested in is not visible in the repository contact the package owner to discuss access.&lt;br /&gt;
&lt;br /&gt;
Click on the Fork button (top right) and create a forked repository&lt;br /&gt;
(using a fork creates a private copy and insulates your changes from those on the master, it is not needed if you are the repository owner)&lt;br /&gt;
Copy the the HHTPS url for the forked repository, ensure you are in your git folder on the humax  and paste it into a &amp;#039;&amp;#039;git clone&amp;#039;&amp;#039; command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
git clone https://git.hpkg.tv/USERNAME/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change to our repository directory and add the master repository as another remote - this enables you to pick up changes made to the master&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git remote add upstream https://git.hpkg.tv/hummypkg/webif.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You now have two remotes for this project on disk:&lt;br /&gt;
# origin which points to your fork of the project. You can read and write to this remote.&lt;br /&gt;
# upstream which points to the main project’s repository. You can only read from this remote.&lt;br /&gt;
== Sync with master ==&lt;br /&gt;
You don&amp;#039;t need this step if you have just forked and cloned the master, but if time has elapsed and master may have changed you can pull in the latest changes and push them up to your host repository&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout master&lt;br /&gt;
git pull upstream master &lt;br /&gt;
git push origin master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Branch ==&lt;br /&gt;
Every related set of changes should be in its own branch, don&amp;#039;t try and fix unrelated problems in the same branch.&lt;br /&gt;
Branch names should be meaningful.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git/webif&lt;br /&gt;
git checkout -b FixBrowseTypo&lt;br /&gt;
git push -u origin FixBrowseTypo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The -b flag is only needed for a new branch, not when switching to existing branch&lt;br /&gt;
&lt;br /&gt;
== Make your updates ==&lt;br /&gt;
Using your favourite text editor make the necessary changes to the code. &lt;br /&gt;
== Package, Install and test fixes ==&lt;br /&gt;
For simple changes you may be able to test the changes in isolation without needing to package and install for each update but to fully test using the webif it is best to properly package and install your changes.&lt;br /&gt;
Update CONTROL/control for the package to update the version number,  check the dependencies section if your changes depend on new or updated packages (or remove existing dependencies).  See the &amp;quot;[[Create Packages]]&amp;quot; page for more information on the control file structure.&lt;br /&gt;
Create package .opk file and install it (vers#) is the number from the control file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /mod/git&lt;br /&gt;
opkg-pack webif&lt;br /&gt;
opkg install webif_vers#_mipsel.opk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the opkg-pack fails with &amp;#039;Resource temporarily unavailable&amp;#039; messages try again - it seems to resolve itself after a few goes.&lt;br /&gt;
Test to ensure your changes are working as intended.&lt;br /&gt;
== Commit your changes ==&lt;br /&gt;
Committing saves your updates in the local Git repository and allows you to revert to any previous commit point should you need to back out a change,  for a small change you may only need to commit once but for larger changes you can split your work into logical chunks and commit each piece.  Pushing then syncs your remote repository with the changes from your local repository.&lt;br /&gt;
&lt;br /&gt;
Before committing Git needs to know which of the changes you have made in the repository folder are to be included in the commit, this is known as staging and can be done in several ways.&lt;br /&gt;
&lt;br /&gt;
To add a file to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To add all changed files to the next commit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To see the current status, very useful for checking what will / won&amp;#039;t be committed &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To discard changes to a file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- file.name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To commit all changed files use the -a flag on the commit command (alternative to &amp;#039;&amp;#039;git add .&amp;#039;&amp;#039;), if the -m flag is omitted it will open an editor window for you to type a commit message &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git commit -a -m &amp;quot;Summary of the changes&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Omit CONTROL/control from commits ===&lt;br /&gt;
When different branches have changes to the same file Git can normally automatically merge the changes provided they don&amp;#039;t affect the same lines of the file when you have to resolve the conflicts and decide which version to keep,  not hard but extra work for the package owner.&lt;br /&gt;
Changes to the package version number obviously all affect the same line of the control file and will cause conflicts if several changes are to be combined into one update of the Humax package.&lt;br /&gt;
So unless you have made other changes (e.g. Dependencies) I suggest that you backout changes to the control file before committing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -- CONTROL/control&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Create a Pull Request ==&lt;br /&gt;
A &amp;#039;&amp;#039;Pull Request&amp;#039;&amp;#039; is a request to the package owner to merge your changes into the Master repository and update the Humax package.&lt;br /&gt;
The New Pull Request button appears in a number of places on the remote repository pages under the Branches or Pull Requests tabs.&lt;br /&gt;
&lt;br /&gt;
Ensure you specify the master branch of the master repository as the target for merge into and your branch to pull from&lt;br /&gt;
[[File:PullRequest.png|frame|centre|Creating a Pull Request]]&lt;br /&gt;
&lt;br /&gt;
The title and description of the Pull Request should explain to the package owner why your changes should be included in the package.&lt;br /&gt;
Assign the request to the owner in the assignee tab (on the right of the page)&lt;br /&gt;
&lt;br /&gt;
The owner will review your changes and may request changes which should be made and committed on the same branch (a new Pull request is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; needed)&lt;br /&gt;
&lt;br /&gt;
When happy with the changes the owner will merge the branch into master and close the Pull Request, the branch can be deleted and you can start again at the [[Maintain_packages_with_Git|Sync with master]] step&lt;br /&gt;
== Further Information ==&lt;br /&gt;
This page only scratches the surface of Git and there are numerous reference works and tutorials on github and elsewhere on the web.  A few links that have helped me are:&lt;br /&gt;
* [https://akrabat.com/the-beginners-guide-to-contributing-to-a-github-project/ The beginners guide to contributing to a github project]&lt;br /&gt;
* [http://www.bioinf.org.uk/teaching/bbk/biocomp2/git/git.pdf An introduction to Git and GitHub]&lt;br /&gt;
* [https://www.atlassian.com/git/tutorials Git Tutorials]&lt;/div&gt;</summary>
		<author><name>MymsMan</name></author>
		
	</entry>
</feed>