<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:"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;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@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="#0563C1" vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Hi Tristan,<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'>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></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'>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></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'>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></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'>I’ll try to find some time over this or the next weekend to clean up my code so I can publish it. <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'>Cheers,<o:p></o:p></span></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 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>Tristan Keen<br><b>Sent:</b> 30 December 2020 10:33<br><b>To:</b> opentrv-dev@lists.opentrv.org.uk<br><b>Subject:</b> Re: [OpenTRV-dev] Dongle<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Hi <span style='color:black'>Christoph,</span><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='color:black'>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".</span><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='color:black'>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.</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='color:black'>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...</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='color:black'>Thanks in advance,</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='color:black'>Tristan Keen.</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div></body></html>