General purpose low power Zigbee sensor?

Hi All,

I’m looking to put together a little anemometer (wind speed indicator) and I have just received the impeller I ordered and the next stage would be designing and printing a suitable housing to carry the impeller and any electronics.

Ideally I would like it to be battery powered (possibly solar enhanced) and so I wondered if anyone could think of a Zigbee based board, or device I could cannibalise that would be able to use to either transmit (to Home Assistant) the rotation pulses from a reed or opto switch etc?

Should make a nice addition to my other 91 Zigbee devices. :wink:

All ideas welcomed. :wink:

1 Like

There’s some good info in these topics:

https://community.home-assistant.io/search?q=diy+zigbee

I do not think that you can expect to cannibalise and reuse any existing Zigbee devices as the firmware will surely need to be custom built for your specific device. Instead you have to build it from scratch (i.e. using a microcontroller development board for prototyping) and then it depends how good your coding skills are as you would need to code and at least need learn a Zigbee SDK if choose to go build a Zigbee device instead of WiFi + IPv4 device. See these examples:

or just:

https://github.com/espressif/esp-zigbee-sdk

or

or

Alternativly if can add a larger power-source then look as ESPHome on an ESP32 with WiFi instead as that will currently be a lot easier, (though hopefully someone will add Zigbee support to ESPHome within a couple of years now that there as ESP32 chips like ESP32-H2 for Zigbee and Espressif has a Zigbee SDK for ESP32):

I was thinking there may be something that was designed to be powered up all the time (like a Zigbee lamp or smart socket), that might have an input that could be used to send the translated pulses to HA and still draw less power than an ESP8266/32? (I know people have used the boards out of a Zigbee Ikea lamp but I’m not sure it has an TX path like say the ‘override’ button of a WiFi smart socket)?

I’m no coder so that’s out the question (but thanks for the info that might be something my coder friends might take on). :wink:

I do keep looking to see if ESPHome is handling any Zigbee devices.

I may well be able to power this anemometer project on an ESP32 with a reasonably sized 12V LA battery, solar panel and buck converter.

Thanks for all your feedback

Stongly suggest you instead check out ESPHome (or Tasmota) using a ESP32 development board:

Both ESPHome and Tasmota support most common sensors as well as having great support in Home Assistant and their own communities that can help you + loads of online guides on setting started.

Note that many Chinese ESP32 development boards are super cheap, but recommend that you consider maybe checking out either Espressif’s own DevKits (development kits) or “Arduino Nano ESP32” if want something that generally has better support and usually much higher build quality.

Other popular options are Adafruit and Sparkfun

Another good starter option is M5Stack series which comes with Groove connectors for mopdules:

That is not how Zigbee works, read GitHub - zigpy/zha-device-handlers: ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices.

While it is true that people have re-purposed the EFR32MGxx based radio board out of many different IKEA Trådfri series products, but they then flash them with custom application firmware on them. They do not re-used and make use of the original firmware that it shipped with in any way. The only reason for some people doing so is that it can be less expensive than buying EFR32MGxx based development/evualuation boards, so it is only for cost savings, (or at least it used to be as today you can buy similar Zigbee radio boards for not much more).

If you are not a good programmer/coder then the above mentioned “PTVO Zigbee Configurable Firmware” is the currently only real option if you insist on using Zigbee today but it is relatively limiting to non-developers if there is not already support for the specific sensor component that you want to use.

1 Like

By the way, a tip; search for existing “ESPHome weather station” projects and/or kits, see example:

2 Likes

HI again and thanks again, it’s all very much appreciated

I am fairly familiar with the ESP8266/32 as I currently have 32 devices online, either smart sockets that I have re-flashed with ESPHome or straight dev boards, including a couple of the TTGO T-Display ESP32’s with one running as a CO2 sensor and the most recent, a 2 x freezer + 1 x fridge + 3 x Dallas temp sensors. I’ve also modded an Ikea particulate sensor into HA via an ESP8266.

I can often deal with the more straightforward code, dealing with sensors etc (often with a lot of copying and pasting from the net) and I have been helped a lot on the T-Display boards re the use of displays that change colour depending of the situation (freezer too cold = blue, good is green, a bit warm in yellow and panic in red). :wink:

But because I was aware of the power consumption of the ESP / WiFi compared with Zigbee and the durability of the MESH network and a fairly busy AP, I thought I’d just check if there was anything.

Seen the M5Stack but not got one as yet.

I already have outdoor temperature and humidity sensing (Sonoff SNZB-02)and home-brew lux and air pressure via an ESP32.

I also have ‘whole home’ power monitoring via Glow and pulse counting of my electric meter, again, using a ESP32 and thought that might make a good template for anemometer pulse counting and integration etc (2s updates).

I now have a couple of anemometer impellers (I tried 3FD printing some but it was cheaper / easier / better to buy) and can print / turn any mechanical parts needed to build the actual speed sensor, it’s just a batter re what to use to feed that into HA. As you say, it looks like an ESP of some sort is the 'easiest way, even if it’s not the best for power consumption,

I think there should be enough ideas from all those links to get me a working solution! :wink:

Cheers.

p.s. Is it just me re or is it really not clear what ptov ‘is’ clear from their home page? I mean, what does it actually do and how?

I think this is the nearest to a functional overview?

PTVO Zigbee Configurable Firmware is a Zigbee firmware builder GUI tool to make your own DIY Zigbee devices based on TI Z-Stack using either the newer CC2652/CC1352 or the older CC2530/CC253 (SoC/MCU series from Texas Instruments).

Its concept is at a high-level kind of similar ESPHome/Tasmota/ESPEasy/ESPurna though instead lets you make custom Zigbee devices based on Texas Instruments Zigbee chips, however you need to understand that with Zigbee devices you need to do most the custom configuration or at least add all available Zigbee clusters (and attributes) you need to command the device before you build and flash the firmware as you can not completly change the configuration after it is flashed like you can do with ESPHome/Tasmota and similar firmware for ESP32/ESP8266.

Also note that it the PTVO Zigbee Configurable Firmware tool itself proprietary and partially closed source so it is much more limited and you have to pay if you want use their premium version which unlocks some additional features/functions (which is needed if you want to create battery-powered DIY devices with effective power management):

You can use it to make your own Zigbee devices from scratch with a devlopment board, example:

or use it to just build/flash improved/enhanced custom firmware to existing devices, see example:

DIYRuZ has a few example DIY devices that uses firmware which been built with PTVO Zigbee firmware:

dzungpv/DNCKAT also have a few examoles:

“MODKAM” (Russian speaking) community also share many more custom Zigbee devices examples:

PTVO himself also provide a few prebuilt improved firmware builds for a few common basic devices:

That includes a popular configurable Zigbee Router firmware for CC2652/CC1352P2 based adapters:

Also check out

and

No, that is only about how-to flash an already compiled firmware binary and not how to acutally build a custom firmware from source + that it is old information that only covers the older CC2530 and CC2531.

When making Zigbee devices then flashing the firmware to chip the last step, as you first actually have to built and compile a firmware image or download a pre-compiled firmware image for a specific device.

To flash newer Texas Instruments based devices like those using CC2652/CC1352 you need to purchase a cJTAG (also known as c-JTAG or c/JTAG) compatible debugging probe (like J-Link V8 , J-Link V9, or XDS110) to flash firmware to most of these boards as TI’s newer generation chips use cJTAG as the default debug interface.

1 Like

Thank you very much for your reply. There is loads to consider there!

I think it’s one of those things where I would actually need to do something before I actually got it.

In the meantime, say I wanted to use a suitable Zigbee Dev board to interface with a hall effect sensor connected to the mechanical output of a wind speed sensor, could I and would HA be able to use it?

I believe the answer is ‘yes’ as I think it could be similar to the implementation you linked here

I assume I would have to do some integration in HA to turn pulses per minute into miles per hour, something I might have onboarded on an ESP32 solution?

Yes you’re right. At least when using PTVO firmware, all math has to be done in the home Assistant sensors you define. This is a great project which has everyrhing you need for it:

PTVO does support a number of I2C sensors, using these is straight forward, the device will report e.g. temperature, humidity…
Most wind meters will use a reed switch. The PTVO firmware can count them and report that count.

If you’re happy with a device that constantly needs power and does basic things, temperature, humidity, pressure, wind Speed, rain and so on you’ll be fine with the free version.
As soon as it’s supposwd to be battery powered, you’ll need the power saving mode which is a premium feature. Also counting analog inputs does not work in power saving mode.
I did a variation of the above weather station using a LiIon cell and a small solar panel (which may be overkill), it does not give you real time information but averages over 1 minute intervals and does involve a bit of soldering, you can find it here:

1 Like

Solar Powered Lithium Ion Capacitor Zigbee Sensor

Something that might give you some ideas.

These two projects are very much WIP and I’ve not mashed them together as yet. My ‘goal’ is a DIY wireless sensor that has very calendar life power source and is recharged via solar cells.

These lithium ion super capacitors fit the bill for the energy storage. They are at best half as power dense as a good quality lithium based cell, however to my ‘set and forget maintenance’ goal their charge cycle life appears to be up 10x that of a lithium cell.

I’m agnostic to wireless connection tech all of:

Zigbee
Bluetooth Low Energy Mesh
WiFi 6
Lora
Zwave LD
433 MHz

are good solutions, if you have the chops in coding low power in your chosen wireless device.

From my reading WiFi 6 is really not there yet, as I understand the based station code is not available in any base station I’ve found so far.

BLE and BLE mesh appear to be perhaps the most robust wireless solution in the 2.4 GHz spectrum for wireless sensors. Clearly, the three sub-gighertz designs have very good ‘conflict spectrum avoidance’ and power arguments. In weighing and ‘playing’ with all, I still prefer a Zigbee solution.

What appeals to me with the ESP32-C and ESP32-H chips is that they seem to be able to support low power operation via any of : WiFi6, Zigbee or BLE . It appears to have the most accessible SDK and IDE for DIYers.

I think the PTVO project is fantastic. I’ve coded up several Zigbee sensors using it. But as I said, the itch of a good accessible SDK and IDE is not ‘scratched’ here.

Good hunting!

1 Like

I have used a modified Zigbee relay to make a button, not battery powered but runs from 12V DC.

https://community.home-assistant.io/t/diy-dc-zigbee-button-and-repeater-sort-of/562038

1 Like

Thanks again for all the advice and info. I think I first need to get myself a CC2530 dev unit and go from there. :wink:

Thanks for all the ideas there, especially that of using a supercap instead of a battery.

Till I get a CC2530 to play with I’m testing stuff out on an ESP32 but I’d like to take this project Zigbee if possible.

That was the sort of thing I was wondering (re-purposing an existing device) and another possible solution, thanks. :wink:

Tip!: Check out this new ESP32-based “NanoCell V2.1” development board, it is available preloaded with ESPHome preconfigured for low-power applications and improved Lithium battery management:

Both software and hard are open-source, with schematics firmware found on the project’s GitHub:

You can make the board yourself or buy assembled NanoCell V2.1 for around $15 via Elecrow or Tindie:

1 Like

Thanks for that, it looks very interesting. I have seen mention of the ESP32-C3 and believe we were waiting for it’s support in ESPHome so is this a way to do that?

Also, is part of the point of this solution that it has the battery management IC onboard, allowing better info about any connected battery?

I keep seeing mention of the 66uA but in addition to what the ESP32 happens to be drawing. So if that’s running WiFi that’s going to be much higher than say a Zigbee device presumably?

ESP32-C3 is WiFi or Ethernet only but is uses relativly low power for WiFi or Ethernet, and is communicate using TCP and/or UDP over IPv4.

ESPHome has had support ESP32-C3 for a long time so that is not new. What is new is that project is improved power management and enhanced power optimization.

No it does not have as low power consumption as as a sleepy Zigbee end device, but the high level concept is similar however project has the foundation to make a sleepy WiFi or Ethernet device that sleeps as much as possible to save power and only wake to send state changes.

My point is that ESPHome is still much easier to make custom DIY devices with if you are not a skilled programmer.

I think that if you do more research then you will find that making custom DIY Zigbee devices that meet your requirements is hard unless you first get much better at coding.

1 Like