Expandable Zigbee Repeater Solution (With Temperature, Humidity, Pressure and Light sensors)

Yea… that was completely a typo. To many things happening today.

Hi guys, I am a bit lost. Do you meant to add

name: “Environment Sensor”, namespace: “iharyadi”, author: “iharyadi”, ocfDeviceType: “oic.r.temperature”, runLocally: false, minHubCoreVersion: ‘000.019.00012’, executeCommandsLocally: true, vid: “generic-motion-6”

I’ll do that on the next update if I understand this correctly.

Yes exactly.

1 Like

Thanks. I am in the process of supporting the “new” expandable pin to add new sensors. I will definitely add the string along with this new code.

This show up in my mailbox. This is the first module that I do not assembled myself. It is one of 10 that a contract manufacture assembled. It is hard to see in the picture. However, side by side, their soldering is much more superior than what I can do.

I am making progress with new DTH to support expandable sensor. I will update my progress later on this topic today.

3 Likes

Here is the new DTH look like in ST.

Screenshot_20180820-185657

Here is a video of the module in action.

2 Likes

Hi Everyone,

The latest batch of Zigbee Radio has arrived.

I have partially assembled them (The top three rows). Some of them are still missing Temp, Humidity, Pressure and Light sensor. They have new board with pad exposed for hobbyist to connect additional sensors. The zigbee radio has 2 flavors (extended and non extended range). There is no external antenna needed. The antenna is on the PCB.

If you are interested on these modules, I would like to get donations to recover the cost of the modules. They are not commercially available. The donation is used to cover the cost of the hardware and other material to develop the sensor modules. In the past few months, we have gone from a simple Zigbee Repeater to Environment Sensor. Today, you can expand the sensor on the modules. There is a change for the donations cost. I would be offering two flavor.

  • With Temp, Humidity, Pressure and Light sensor. Donation $28. You will get the said sensor out of the box. In the future, if you need to add your own sensor, the pads are exposed for connection.
  • Without Temp, Humidity, Pressure and Light sensor. Donation $17.

They are Zigbee Repeater regardless which flavor you choose. Both flavors will come with firmware to support the expandable sensor IO. They are supported through Zigbee Binary Input/Output and Analog Cluster. I will provide example DTH for them. You do not have to deal with the complexity of writing low level firmware.

The ship date ETA for the module with full sensor(aka) is 9/20/2018. I will take your request. I will overnight the sensor from arrow electronic and install them.

The module without sensors will be shipped as soon as I soldered the USB connector and test them.

My recommendation is to get the full sensor version. My intention and How I use them is for room monitoring. For me, those sensors are the minimum information that I must have. On the other hand, I also want to be realistic. The sensors on the board are expensive ($6 to $7 a pop). I also get feedback from member who already had my module that some of the sensors are not important for them. Therefore, I want to try to make it as optional item in the light of it is now possible to connect your own sensors.

The bottom rows are fully made modules with all the sensor with the old board. They are good for someone who do not want to tinker around with sensor expansion. I have 4 of them left from a batch that is made by manufacture. I ran a test manufacturing run of 10 modules.

Let me know if you are interested. Like on the past, I typically make a list of interest. Once I have enough number in the list, I will take care of them in a batch.

4 Likes

I would be interested in a pair of sensors or more. I’d like to add a remote temperature probe so that I can keep track of water temperature. How do you measure pressure? Can I add a pressure transducer or in what way can pressure be measured? I want to ensure that an air compressor I have has at least 50psi of pressure.

There is one analog input. You can get a thermocoupler for water temperature. I think this is the safest way for water temperature measurement. You can get module like

The environment sensor has pad to provide 3.3 and 5 V supply. However, all MCU pads (digital input,output and analog input) are 3.3v only. CC2530 will blew up with 5v input. I will give out the pin description in the short future. This board does not have a clear marking of the pad. In the future, I would make board with pads marked.

The pressure sensor are typically again an analog input. Something like this.

https://www.ebay.com/itm/Pressure-Transducer-Sender-Sensor-0-4-5V-Stainless-Steel-for-Oil-Fuel-Air-Water/223041269537?var=&hash=item33ee4baf21

You supply power 0 to ~5v. They will give you a wire to put into your analog input. Then, you translate the voltage to pressure based on the vendor spec. As an example below.

Output: 0.5V~4.5V linear voltage output. 0 psi outputs 0.5V, 50 psi outputs 2.5V, 100 psi outputs 4.5V.

With this sensor, you may need a voltage divider. That 4.5v will kill the MCU. Voltage divider can be as simple as two resistor. Take a look at

https://learn.sparkfun.com/tutorials/voltage-dividers

They can be a bit more complex if the pressure sensor need to be isolated. Lets not get there if not needed. The solution is not that hard either. You just need a voltage follower.

BTW, I am sorry to miss about a point. There is only 1 analog input per module. You may need a couple of them for the two things that you are looking at. Or, do you actually hope to connect two analog sensors?

There is a Digital Output that I suppose you can use to multiplex the AO to two sensors using relay. It can be done I would not recommend it as the the device handler is bit complex. You just have to switch the relay on or of depending the sensor you want to read.

The other option is to use comparator on the pressure sensor to convert that 50 psi threshold to digital on or off. You can then input that into the digital input which is still free. You can google YL-38. It commonly used as moisture sensor. The schematic look like it is a comparator that you can use with isolation going into comparator chip directly.

The availability for older type board( not expandable) is now 2. (in the pictures, they are the bottom row). Thanks everyone who support this project.

For new style of board, I have still a few available left. The BME280 and Light sensor is on the way. I will try to get them solder out this weekend.

I’d be interested in one of the fully loaded ($28) repeaters if they are still available. I have more than 32 zigbee devices in SmartThings and at least a dozen Xiaomi Aquara sensors that keep disconnecting. None of the repeaters I’ve tried yet have worked reliably and my Xbee stuff hasn’t came in yet to try that. I’d love to give this a try.

Fully assembled board just come out of the oven with all sensors fully installed. I am testing them as we speak. They should be ready to ship in 2 to 3 days. Some of them has been spoken for. If you are interested, PM me, I will let you know what I have left.

I am currently using a couple Samsung Outlets (F-OUT-US-2) as repeaters. Would the rage of your repeaters be better than these outlets?

I am not familiar with Samsung outlet. I can’t make comparison.

The extended range module is basically external booster that enhance range and sensitivity of the module. FYI, The external booster chip is cc2592. If you want to make a comparison, you may want to search up on this chip. The cc2592 can boost the signal up to 19dB.

In general, Zigbee is a mesh technology. One should look to make their network dense rather sparse. There are many low powered devices. These devices may not be able to reach your repeater even if your repeater have high powered radio. The power of your repeater is only half of the equation. The devices signals need to be able to get to the repeater too.

Thanks for everyone help. All request for the module with newer board is on the way as of now. I will be posting additional DH and information in the next few days.

I only have 4 Extended range modules, 3 normal range modules with newer extendable board. I also have 2 more non expandable board left. They are all have been fitted with full sensors.

Hi Iman, I’m looking forward to your DTH’s. I was wondering, as each of your sensors are super sensitive, how difficult it would be to incorporate a threshold for each value, (Temp, Luminance, Pressure Humidity) into a DTH. So as not to flood the hub with too much data, for example only trigger a report if temp changes by 1/0.5 degrees or humidity by 2% say?

By default zigbee has this command. This is not something that you call often. You can call it during the configure method.

zigbee.configureReporting(ILLUMINANCE_CLUSTER_ID(), SENSOR_VALUE_ATTRIBUTE(), DataType.UINT16, 15, 300, 300)

That last “300” is the threshold that you want. This tell the sensor not to send any report if the value change less than 300. You can apply them to others (temp, humidity, pressure). You can experiment with different value there.

Please excuse my ignorance.
I found the line 440 in your code to change, I changed the second 300 value to 1000 for test purposes, saved, and “publish for me”. But I don’t see any change. I pressed the refresh tile, and also power cycled the module, is there something specific I need to do to configure these parameters? Like delete the device from ST and re-add it maybe?

The code is in configure method. This method is only called once during configuration.

If you like to remove and re-add the module, that method will be called again.

You can also move the code to refresh method temporarily like I mentioned before for the illumination. Then, run the refresh method.

FYI, Configure method should not be called very often. The module will write the setting to flash storage. This flash storage will last a life time. However, all bet are off if you calling the configurereporting regularly through refresh method. This is why configure method is the best place to do it. Perhaps, if you like, you can call them in update method. I suppose update will be called less regularly.