Back in 2013 I hacked a boiler relay to act as an EvoHome sniffer, and reported the details in this thread https://www.domoticaforum.eu/viewtopic.php?f=7&t=5806&p=62892#p62892
However, I wanted to get a system working with a CC110x board, ideally as part of culfw.
After much delay, I have written a culfw module which allows sending and receiving EvoHome messages. The code includes message delimiting on the CUL (so low interrupt rate on the host) and checksum generation/validation (so you only receive valid messages, and when sending the board will automatically add the checksum).
At present I'm just using it as part of my EvoHome protocol sniffer, but wonder if anyone would be interested in:
a) testing on a broader range of hardware (currently I've got it running on a tweaked COC v1, and a stock CUL V3),
b) helping integrate as an access device for fhem (I've looked at the source, but haven't yet had time to get a build/test system setup)?
As of yesterday (and with the kind help of Rudolf) it is merged into a culfw trunk which can be retrieved via svn. Currently (for space reasons, and due to limited hardware for testing) it only builds into the CUL_V3_ZWAVE firmware.
The syntax of the new culfw command for EvoHome is currently as follows:
v[<func>][<hex>] Honeywell EvoHome/EvoTouch mode.
<func> is one of:
Listen for EvoHome messages.
Only EvoHome messages with a valid checksum will be returned in this mode.
Messages are reported on receipt as vr<hex> with the valid checksum byte removed.
Listen for EvoHome messages as above, but also report aborted receives as v!<code>[<hex>].
This extra information can be useful for debug purpose.
◾ F - Framing error, where received data doesn't decode to 1start-8data-1stop at 38,400bps
◾ M - Manchester coding error in received data
◾ C - Checksum error over completed message
◾ L - Message exceed expected maximum length
◾ O - Overrun, where a second data byte arrived before the ISR processing the first was able to complete
Send out an EvoHome message. No checking is performed on sent data, but a valid checksum is automatically added.
◾ If no <func> is specified, EvoHome reception is disabled.
◾va - Successful acknowledgement to request
◾vb - Attempt to send whilst device busy receiving a message (small timing window, just retry)
◾v? - Unknown command
And an example of listening output is: