Merge pull request #45 from otherWIP/development

Development
Merge pull request #46 from otherWIP/development

Pause functions
Added serial baud rate setting

defaults set to 9600 can be changed within listener. setting can
therefore be omitted. value checked against a list of common speeds and
if not listed defaults to 9600.
Merge remote-tracking branch 'origin/development' into serial_baud_rate_setting
Merge pull request #49 from otherWIP/development

Correction to listener.set(kwargs)
Merge pull request #50 from otherWIP/serial_baud_rate_setting

Serial baud rate setting
Merge pull request #2 from emonhub/development

updated from upstream
Merge remote-tracking branch 'origin/development' into rfm69_compatibility
Default 'runtime settings' values & routines

A single loop in set() now maintains all runtime default values like
pause defaultdatatype interval maxItemsPerPost. defaultdatacodes now
have a default set in the listener code so for example the Jeelistener
now has a default of 'h' set so any jeelistener will default to ints if
a default not set in conf. maxItemsToPost range of 1-250 enforced, 1 by
default (just add 100 to listener in emonhub.conf to enable bulk upload)
default value could be set in listener init() if essential.  Any runtime
settings changed will trigger a log entry. Interval value available to
all listeners and dispatchers to provide for delayed seending and/or
timed querying etc rfm2pi's 'sendtimeinterval' is therefore just
'interval' now. these values can be overridden just by adding a
runtimesetting in emonhub.conf and any runtime settings deleted will
rever to default value.
Broadcast time now shows leading zero's in log entry (5mins past 2am is
now 02:05 not 2:5)
Revert "Default 'runtime settings' values & routines"

This reverts commit b73e78630160d5572a482642d5917dcdce54861d.
Revert "Revert "Default 'runtime settings' values & routines""

This reverts commit 4bb2cedd1430c390acf4c1d25e3aa218e5d0c058.
Hiding unused default values and features

Default values are loaded in init() prior to the loop in set() so that
they are NOT printed to logfile as changes at creation, this helps to
keep these settings hidden until needed.
Refined rfm settings

rfm settings have boundaries added to prevent wrong values being passed
to rfm. the full 3 digit frequency in MHz is required to be more robust
and intuative. The rfm service codes are included in brackets on the end
of logfile entry.
Minor changes

Changed how dispatchers self.name is set since dispatcherName already
passed for buffer naming.
Added a 'interval' start time to base dispatcher to match listener.
Changed "serial port opened" log message to include 'com_port'
Creation & Deletion of Dispatchers and Listeners

Listeners and Dispatchers are only created if 'type' is in settings,
therefore if listener or dispatcher not to be created, only the 'type'
needs to be commented out to omit rather than every line. this has been
extended to tell emonHub to delete the listener or dispatcher if the
type is missing.
Fixed an issue with delete that would crash emonhub due to the list
changing during iteration by adding .keys
The delete has also been moved ahead of the creation routines to handle
single instance issues eg Pi serial port, if a seriallistener is renamed
it will be gracefully closed before the new one is created using the
same serial port, previously it tried to create a second serial port
conn, failed, aborted and moved on to delete the original listener.
Logging now more informative and the dispatcher creation & deletion
routine changed to match listener with exceptin handling (dispatcher
class)
Moved default buffer size

The default buffer size is now set it the dispatcher rather than the
buffer. this allows different defaults for different types of dispatcher
and makes the value available to report in the log statement during
dispatcher creation.
Updated emonhub.conf

The configuration file has been left behind during developments to
default settings etc. This commit just removes some stuff that is no
longer mandatory, It also shows how minimal it could be.
Merge remote-tracking branch 'origin/development' into rfm69_compatibility