Merge pull request #2 from emonhub/testing

Testing
Update emonhub.py
RFM2Pi serial baud auto selection

Jeeinterfacer now tries to establish communication at 57600 then 9800 if
unsuccessful. Totally over ridden if com_baud is specified in settings,
only the value specified is used. Disabled the "list" of baud speeds.
Display firmware revision and settings

Uses the "v" command to get firmware version and current settings.
Serves to test the serial port communications and logs the version for
debugging
Amended rfm2pi firmware and settings log

Changed the log message and corrected the logic for displaying pre
RFM12demo.11 version log.
Retained the update advice for the moment may remove or reintroduce
Altered how interfacer name is passed

Interfacer name now passed to class the same way the reporter name is
passed. allows interfacer name to be used sooner, ie in logs during
creation eg serial port opening.
rc1.1?
Merge pull request #113 from otherWIP/testing

Testing
Amendment to serial response test

Changed response test to check for "\x00" in addition to "\r\n" as it
seems the first response from an rfm2pi from a cold start fails the
original "contains \r\n" test due to a stray "\x00", this results in the
serial port not being opened. As this is only apparent in 1st response
the original test is retained for subsequent restarts and checks.
Conf file errors and timeout

Reduced the retry timeout for conf file errors and added a log message
Jee device firmware & settings

Split the string returned by command v into "firmware revision" and
"current settings"
Casting of datacode = 0

Added a check to ensure only an int 0 can be passed into the decoder,
string "0" are changed to int 0.
Jee device message handling

Moved "Jee" specific acknowledgements etc to JeeInterfacer.read(). Added
line to recognise and  update device settings string "self.info"
Updated log messages
Reporter log message identification

Added reporter name to "failed to send" and progress log messages
Logging wrong send ack

Added single quotes as a place marker for incorrect rely so that no
reply doesn't just look like an un finished sentence
Added interfacer setting qualification

pause, interval and datacode are all strictly checked and invalid
settings (keys and values) are discarded with a warning to prompt user
to change conf
Jee device default settings

OEM project defaults of baseid = 15, group = 210 and frequency = 433 are
set by default. quiet is also set to True by default. If a settings
string is returned from Jee device at set up it updates "info" and this
string is used to check if sending a command setting is actually
required, each time a command is send the settings status "info" is
updated. Settings are sent to device if status is unconfirmed so that
devices with earlier firmwares get set regardless at start up, as was
previously done with all devices. All default settings are now strings
to resolve variable type issues where a native type gets cast to a
string when a value is passed from settings file.
Reporter settings and log massages

Added log messages for establishing api key set or not. changed default
value to strings as per interfacer.
Zero datacode handling

Moved datacode zero check to catch all sources to include when a single
node is set to 0 in [nodes]
Merge pull request #118 from otherWIP/testing

Testing