Zigbee Interoperability with Xiaomi Devices

Standards are great. Accept when they're not. The word on the internet is certain Zigbee devices have interoperability issues with other Xiaomi Zigbee devices. I've not come against any issues yet. Maybe it's be user error, bad luck, or butt hurt Z-Wave users justifying why they've spent a small fortune on devices, or maybe it's true.

Either way, Wwalltt posed a compatibility list on Reddit, so I'm going to mirror it here for posterity.


Flashing a CC2530 + CC2591 Zigbee Module with a Raspberry Pi

I've recently been adding various Zigbee based sensors and bulbs to my Smart Home setup. I use a CC2531 with External Antenna and performance has always been adequate but I'd like to extend the range to my letter box so I can receive notifications when I receive post.

After some brief research I came across the CC2530 + CC2591 Module - similar to the CC2531 but with a built in amplifier to improve signal strength / reception.

CC2530 + CC2591 Zigbee Module 
This blog post will just cover the basics of connecting the Zigbee Module to the Raspberry Pi prior to flashing. For more detailed information on the flashing process, please see my previous blog post on Flashing a CC2531 Zigbee Module with a Raspberry Pi (Remember you will to download and flash the correct binary for the CC2530 + CC2591)


Can you use an ESP32-CAM module like a standard ESP32?

I've recently been experimenting with detecting if my flat is occupied using Bluetooth Low Energy (BLE) Trackers attached to my wife and I's keys in order to trigger various smart home "scenes". There's been trials and tribulations, but after trying various methods I've managed to get arrival detection down to pretty much instantaneous, and detecting someone leaving to below than 60 seconds, which I'm pretty happy with. After initially trying to do the detection with a Raspberry Pi, I quickly moved onto to an ESP32 based solution as the software on the Pi would frequently crash.

One thing I discovered fairly early on was now and then a BLE tracker would "disappear" for a brief period, usually a minute or two. I wasn't able to figure out the cause but put it down to interference or a collision, but the work around was to have multiple ESP32s receiving the beacons and aggregate the results. For my modest flat I'm currently using 3, although I could probably get away with 2.

A recent update to the ESPHome BLE Tracker has significantly reduced these disappearances but they still happen now and then. In a bid to eliminate them all together, I started to wonder if an external antenna would improve reliability. After looking around online it became apparent only a small number of ESP32 dev modules had an antenna connector, and they were hard to come by and fairly expensive.

But wait... what are these ESP32-CAM things? They're cheap, readily available and have an antenna connector which can be selected by switching the 0 ohm resistor to the second position. I bought one without doing much research (obviously) and it turned up last week.

ESP32-CAM Module
Anyway, I digress. I should really cover the BLE detection in another blog post so watch this space. If you want to find out if the ESP32-CAM can be used like a standard ESP32, click read more...


Flashing a CC2531 Zigbee Dongle with the zigbee2mqtt firmware using a Raspberry Pi

I've recently started using Ikea Tradfri lights in my flat, and intend to get some Xiaomi sensors in the very near future to continue to improve my Home Automation. Both these platforms use a wireless protocol called Zigbee to communicate.

So far my experience with the Tradfri Hub has been reasonable, but I am cursed with a constant urge to fiddle with things and add more functionality. Enter zigbee2mqtt - "It bridges events and allows you to control your Zigbee devices via MQTT. In this way you can integrate your Zigbee devices with whatever smart home infrastructure you are using."

zigbee2mqtt is compatible with the Tradfri range and the Xiaomi sensors, and a bunch of other zigbee devices. It utilises a USB dongle, the CC2531 to handle the RF side. Clones are cheap and readily available.

zigbee2mqtt requires you to flash the USB dongle with a different firmware. For whatever reason most guides assume you'll be using a CC Debugger to do this, however it's an added expense and isn't necessary - You can also use an Arduino or Raspberry Pi to flash the firmware.

I opted to use a Raspberry Pi as I already had one on the bench. Click read more to learn how to use the Pi to flash the Dongle

CC2531 Dongle


Adding a USB GPS Receiver to Direwolf to create an APRS Tracker

I recently posted a tutorial on Installing Direwolf on a Raspberry Pi to run an APRS node. The included direwolf.conf example assumed the node was operating as a static iGate or Digipeater, so the location (In Longitude and Latitude) was hard coded, however Direwolf also supports connecting to a GPS receiver for real time location tracking.

As I have a handheld radio with inbuilt GPS / APRS support I don't have an immediate need to use Direwolf as an APRS tracker, but curiosity got the better of me and I ordered a Cheap USB GPS receiver from Amazon (Apparently I ordered the last one, but any standard USB GPS receiver outputting NMEA formatted data should work). Its now up and running so I thought I'd document the processes.
USB GPS Receiver
Click read more for the configuration instructions.


APRS - Installing Direwolf 1.5 on a Raspberry Pi running Raspbian Lite

I've previously written a blog post about setting up an APRS Digipeater with a Tait 8105. Almost a year has passed since then and the latest release of Direwolf now natively supports the CM108 Sound Fobs, so we can ditch Hamlib. This makes configuration much simpler.

The following is a quick and dirty guide to getting Direwolf setup as a Digitpeater on Raspbian. For more detailed instructions on getting a Tait radio configured see the previous blog post.

My node shown on

Click read more for the configuration instructions.


Configuring Sendmail to use Amazon's Simple Email Service (SES)

Well it's been around 6 months since I last made a blog post - turns out babies are pretty time consuming.

I hate email server configuration with a passion so I offload what I can to Amazon's Simple Email Service or SES for short. This is a quick post guiding you how to get Sendmail to work with SES.

Disclaimer: I am by no means an email expert. The configuration below is working, but may not be optimal. Use at your own risk. That said, most of the configuration below was lifted straight from the AWS Docs so you'd hope that it would be reasonable.

Image result for amazon ses icon