Zigbee CC2530

Hi,
My understanding is there is a difference between a ZigBee radio (really 802.15.4), and what home automation consumer applications call ZigBee.

Bottom-up approach - custom protocol over ZigBee radio

If you just want radio comms, I think you can control some ZigBee radios (Digi has been mentioned on HackADay) via AT commands and write your own custom protocol above the radio transport layer (which could be simple ASCII strings). Read the HackADay project links to see if the example is useful.

This bottom-up approach would start with data sheets for the CC530 module and writing your own code. There may be useful libraries to drive the radios, and perhaps even to handle higher ISO layer functions - you need to look for similar projects, collect Arduino code libraries, and see what works. If you are lucky, you might end up with a small amount of custom code calling a lot of library routines to do the heavy lifting, but the data structures sent and received will be custom - your own protocol.
A good start would be setting up two nodes and using AT-commands to send ASCII between them over ZigBee - just as you would over Ethernet or even RS232.

Top-down approach - create a “standards-compliant” ZigBee ZED

The other option is to think like a consumer ZigBee device manufacturer, and work top-down. A device manufacturer isn’t interested in writing low-level code, only creating a device profile for this specific product (e.g. temp sensor and switch endpoint profiles), minimal driver code to process requests, with everything else compiled in from a reference design written by some one else. The aim is to create sensor node devices which Home Assistant and a ‘standard’ ZigBee binding would recognise.
The PC server radio, driver code, server, and user app would be simply standard Home Assistant - BUT you need to create sensor nodes that are compatible enough with the full ZigBee (radio and comms protocol) to work.
This option needs to rely on Connectivity Standards Alliance documentation, example code, and perhaps a full tool-chain from libraries to template device definition. If you can’t get access to their documentation, or a FOSS project which has reverse-engineered it, you can’t create a sensor mode compliant with their standard.
HASS has clearly implemented ZigBee device drivers and all layers of the protocol to create a FOSS binding (a ZC), but I’ve never tried creating a ZigBee end device (ZED) from open-source libraries as Tasmota / ESPhome make the MQTT equivalent trivial. Consumer ZigBee sensors are also very cheap to buy!

A brief look turned up a few projects so you may be in luck, but some mention specific tools like compilers.

If you can get documentation and libraries, a good start would be to implement the temperature sensor, as this is basically the same as a cheap Sonoff device - perhaps copy the device profile from Home Assistant?

As an aside, your project scope could be met with a Sonoff temp sensor, a Sonoff switch, a ZigBee co-ordinator, Home Assistant on a Raspberry Pi, and the Home Assistant app. The only control code would be a pretty simple automation in YAML, but you’d not learn anything about hardware development by using Common Off The Shelf parts! :slight_smile:
All the best,

James