[OpenTRV-dev] Dongle

christoph at winterstiger.at christoph at winterstiger.at
Mon Jan 11 12:23:13 UTC 2021


Hi Tristan,

 

That’s great – if you can receive secure frames you’ve gone through most of the required pain 😊 

 

In the meanwhile, I cleaned up my code, it’s at wintersteiger/wlmcd: @wintersteiger's library for monitoring and configuring devices (github.com) <https://github.com/wintersteiger/wlmcd> . 

 

The program to monitor a Radbot via CC1101 module is here: wlmcd/cc1101-radbot-monitor.cpp at main · wintersteiger/wlmcd (github.com) <https://github.com/wintersteiger/wlmcd/blob/main/apps/cc1101-radbot-monitor/cc1101-radbot-monitor.cpp>  (It expects the Radbot ID/key in radbot.cfg.)

 

Secure frame decoding and decryption is here: https://github.com/wintersteiger/wlmcd/blob/a90231c2efcb8750ecd2785339d6a12b40979dc1/radbot.cpp#L217

 

(Trivial) JSON value decoding is here: https://github.com/wintersteiger/wlmcd/blob/a90231c2efcb8750ecd2785339d6a12b40979dc1/radbot.cpp#L154

 

I also have code to do the same with a RFM69H module, but I haven’t tried it with Radbots yet, so I don’t have a corresponding config for it. I’m super busy this week, but I may be able to get that figured out next weekend.

 

Cheers,

Christoph

 

From: OpenTRV-dev <opentrv-dev-bounces at lists.opentrv.org.uk> On Behalf Of Tristan Keen
Sent: 10 January 2021 10:38
To: Closed list for developer discussions <opentrv-dev at lists.opentrv.org.uk>
Subject: Re: [OpenTRV-dev] Dongle

 

  Thanks to all your help - though I'd already ordered an Adafruit RFM69HCW 868 MHz "Bonnet" for my Raspberry Pi (from Pimoroni), on the strength of a Hope datasheet suggesting it was an easy replacement part.

 

  Unfortunately while the pinout might be the same, the registers are totally different so it's been slow going; especially when I realised Manchester encoding is implemented completely differently between the two - I was about to give up & buy a new module. Luckily, despite https://github.com/opentrv/OTRadioLink/blob/345b45f9df92eac78caa483d4230a11bde21d7d8/content/OTRadioLink/utility/OTRFM23BLink_OTRFM23BLink.cpp#L787 your (Christoph's) config actually shows Manchester was turned off.  Trying that as a last-gasp effort seems to work - I can now receive valid secure frames with sensible IDs matching some of the hex printed inside the Radbots, and incrementing message_counters from the trailer.

 

  Now to read up on the encryption approach & get that working in Python, then I'll try reprogramming the key on one of the radbots to a known value.  Yes, my current code is similarly littered with odd notes, some copied in material and private IDs, I'll clean it up a bit & clone it publically when I've got my MVP working.

 

Thanks,

Tristan.

 

 

On Thu, 7 Jan 2021 at 19:23, Damon Hart-Davis <dhd at exnet.com <mailto:dhd at exnet.com> > wrote:

Purged of third-party copyright material, would you consider adding that to an appropriate place in our Wiki or one of the GitHub repos?

 

Good to have register settings for another radio widely available (and the Pi stuff)!

 

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...

 

Rgds

 

Damon

 





On 7 Jan 2021, at 19:14, christoph at winterstiger.at <mailto:christoph at winterstiger.at>  wrote:

 

Hi Tristan,

 

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.

 

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.

 

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.

 

I’ll try to find some time over this or the next weekend to clean up my code so I can publish it. 

 

Cheers,

Christoph

 

From: OpenTRV-dev <opentrv-dev-bounces at lists.opentrv.org.uk <mailto:opentrv-dev-bounces at lists.opentrv.org.uk> > On Behalf Of Tristan Keen
Sent: 30 December 2020 10:33
To: opentrv-dev at lists.opentrv.org.uk <mailto:opentrv-dev at lists.opentrv.org.uk> 
Subject: Re: [OpenTRV-dev] Dongle

 

Hi Christoph,

 

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".

 

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.

 

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...

 

Thanks in advance,

Tristan Keen.

 

<cc1101-radbot.cfg>_______________________________________________
OpenTRV-dev mailing list
 <mailto:OpenTRV-dev at lists.opentrv.org.uk> OpenTRV-dev at lists.opentrv.org.uk
 <http://lists.opentrv.org.uk/listinfo/opentrv-dev> http://lists.opentrv.org.uk/listinfo/opentrv-dev

 

_______________________________________________
OpenTRV-dev mailing list
OpenTRV-dev at lists.opentrv.org.uk <mailto:OpenTRV-dev at lists.opentrv.org.uk> 
http://lists.opentrv.org.uk/listinfo/opentrv-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opentrv.org.uk/pipermail/opentrv-dev/attachments/20210111/0ac23be6/attachment.html>


More information about the OpenTRV-dev mailing list