<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Hi Damon,<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Sure, I’m happy for my code to get copied around. Most of it is now here: </span><a href="https://github.com/wintersteiger/wlmcd">wintersteiger/wlmcd: @wintersteiger's library for monitoring and configuring devices (github.com)</a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It contains a bunch of unrelated stuff too, so it may be better to extract only the radbot-specific bits for inclusion in the Wiki. Of course, we can also just add links to the relevant files on GitHub.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Cheers,<o:p></o:p></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Christoph<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US>From:</span></b><span lang=EN-US> OpenTRV-dev <opentrv-dev-bounces@lists.opentrv.org.uk> <b>On Behalf Of </b>Damon Hart-Davis<br><b>Sent:</b> 07 January 2021 19:23<br><b>To:</b> Closed list for developer discussions <opentrv-dev@lists.opentrv.org.uk><br><b>Subject:</b> Re: [OpenTRV-dev] Dongle<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Purged of third-party copyright material, would you consider adding that to an appropriate place in our Wiki or one of the GitHub repos?<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Good to have register settings for another radio widely available (and the Pi stuff)!<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Note that there is one non-JSON data item in there, the valve %, which is a single binary byte easy for a boiler controller with a small MCU to use...<o:p></o:p></p><div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Rgds<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Damon<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>On 7 Jan 2021, at 19:14, <a href="mailto:christoph@winterstiger.at">christoph@winterstiger.at</a> wrote:<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hi Tristan,<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>That’s right, I have this working. I played around with multiple different modules and I think the cheapest option is a TI CC1101-based module (lots of options for under GBP 10 on eBay). Most of them come with antennas that should work fine for development purposes if you’re in the same room as the RadBot.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>That module (and many similar ones) uses the SPI-bus for communication, which is very easy to use on an RPI, and there are also options for other platforms, e.g. CH431A-based modules (but I haven’t tried those yet). This takes voltage + ground + 4 SPI wires + 1 interrupt wire (interrupts when the module received a packet). On the RPI, no other hardware is required and I think a CH431A wouldn’t need any other external components either.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>For my own experiments I wrote a monitoring app that lets me configure the module on the fly so I can play around with all those RF-related options, but I foolishly copied a bunch of copyrighted text from the various datasheets into it, so now I’ll have to remove that before I can publish it. I attached the RadBot config I use, which gives you all the register settings for the CC1101. Once all the registers are set, you just need an event handler for rising edges on the interrupt lines to get the raw packets. Those are encrypted by the RadBot with a pre-set key, so they need to be decrypted. Once that is done, the actual data decoding is trivial as it’s just a simple JSON object.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>I’ll try to find some time over this or the next weekend to clean up my code so I can publish it.<span class=apple-converted-space> </span><o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Cheers,<o:p></o:p></p></div><div><p class=MsoNormal>Christoph<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><div><p class=MsoNormal><b><span lang=EN-US>From:</span></b><span class=apple-converted-space><span lang=EN-US> </span></span><span lang=EN-US>OpenTRV-dev <<a href="mailto:opentrv-dev-bounces@lists.opentrv.org.uk">opentrv-dev-bounces@lists.opentrv.org.uk</a>><span class=apple-converted-space> </span><b>On Behalf Of<span class=apple-converted-space> </span></b>Tristan Keen<br><b>Sent:</b><span class=apple-converted-space> </span>30 December 2020 10:33<br><b>To:</b><span class=apple-converted-space> </span><a href="mailto:opentrv-dev@lists.opentrv.org.uk">opentrv-dev@lists.opentrv.org.uk</a><br><b>Subject:</b><span class=apple-converted-space> </span>Re: [OpenTRV-dev] Dongle</span><o:p></o:p></p></div></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><div><p class=MsoNormal>Hi Christoph,<o:p></o:p></p></div><div><div><p class=MsoNormal> <o:p></o:p></p></div></div><div><div><p class=MsoNormal>I read from the mailing-list archives that you recently managed to "... receive the messages on a raspberry pi with a cheapo 868Mhz transceiver and it works fairly reliably".<o:p></o:p></p></div><div><div><p class=MsoNormal> <o:p></o:p></p></div></div><div><div><p class=MsoNormal>Would it be possible to share a bit more detail on what actual transceiver you used with what Pi, plus any other hardware mods you had to make? Additionally the code you used to decode the messages - even in partial form if you prefer. I'm an experienced developer with some hardware knowledge, so anything rough would still be gratefully received.<o:p></o:p></p></div></div><div><div><p class=MsoNormal> <o:p></o:p></p></div></div><div><div><p class=MsoNormal>I'm trying to make up something similar to the Stats Hub to collect information broadcast by the OpenTRV/Radbots, but without building so much custom hardware if possible...<o:p></o:p></p></div></div><div><div><p class=MsoNormal> <o:p></o:p></p></div></div><div><div><p class=MsoNormal>Thanks in advance,<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Tristan Keen.<o:p></o:p></p></div></div><div><div><p class=MsoNormal> <o:p></o:p></p></div></div></div></div><p class=MsoNormal><cc1101-radbot.cfg><span style='font-size:10.5pt;font-family:"Helvetica",sans-serif'>_______________________________________________<br>OpenTRV-dev mailing list<br></span><a href="mailto:OpenTRV-dev@lists.opentrv.org.uk"><span style='font-size:10.5pt;font-family:"Helvetica",sans-serif'>OpenTRV-dev@lists.opentrv.org.uk</span></a><span style='font-size:10.5pt;font-family:"Helvetica",sans-serif'><br></span><a href="http://lists.opentrv.org.uk/listinfo/opentrv-dev"><span style='font-size:10.5pt;font-family:"Helvetica",sans-serif'>http://lists.opentrv.org.uk/listinfo/opentrv-dev</span></a><o:p></o:p></p></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div></body></html>