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

Very good question. I forget to mention that it does not require battery to use the module. If the main power is down, it should be understood that the module will stop functioning without battery.

1 Like

I would be interested in getting 1 or 2 of the first variant.

@TonyFleisher, you can send me a PM.

I would also be interested in the first variant, and have some batteries I could use for testing too.

Here is the board ready to ship out. Some of them has already spoken for. PM me if you would like to try one.

1 Like

This is an SOS to any developers who can help with this DTH. The modules themselves are a piece of engineering ingenuity, @iharyadi is definitely a trail blazer and has done an amazing job with these modules. But as he says himself he’s not a developer, and the DTH is lacking, he user has no control of the information generated, i have thousands of 0’s and 1’s spamming my network that are of no use, the DTH really needs to work for me, rather than anything else. Simply, this DTH needs some love, it needs a selective Reporting Option and a Threshold Option, like the Aeon Multi and the Fibaro Motion Sensor, then these Environment Sensors would be perfect.
@ogiewon suggested “just add a call to configure() in the updated() method, save and publish. Then on your phone go into the settings (gear icon) for the device and click SAVE. This will call upated() which will then call configure(). Most DTH’s are written this way.”
Which would be fine if you have one module, but if you have 2, then you need to code 2 DTH’s and it gets messy, then what if you want to move a module somewhere to test something, you need to hack code each time?
I want to leave a module in the kitchen, but don’t want the humidity to be as sensitive as the one in laundry room.
i have capacitive soil sensor which works amazingly well, but it goes dry at 2.60volts, and i get an alert, but goes wet again in 5 seconds, because the numbers are so sensitive they bounce around, back and forth, if it had a 2% threshold, problem solved. the Aeon multi has a .2 decimal threshold for temp, as that also bounces around back and forth. But my heating doesn’t get turned on and off every few seconds.
Which reminds me, i’m using Celsius, but I’m not seeing decimals, so i unfortunately can’t use this sensor for my heating like i would like (because it’s much better than the Aeon), but it does show Temp decimals in the Live Logging.

11:51:32: info description is temperature: 22.31

I’ve tried looking at the code Temperature Sensor (Celcius with one decimal)

to change something but it’s beyond me
“input “tempOffset”, “decimal”, title: “Degrees”, "
" > def getTemperature(value) { > log.debug “Temperature raw: $value” > def celsius = Integer.parseInt(value, 16).shortValue() / 100 > > if(getTemperatureScale() == “C”){ > return Math.round(celsius) > } else { > return Math.round(celsiusToFahrenheit(celsius)) > } > }”

But i really can’t get my head around it.
If someone can point me in the direction of someone interested, clearly paid, in having a look at this DTH, and what it would involve to get it easily user configurable for EACH sensor from the DTH itself, not editing code on the fly, i’d be very grateful.

Hi @Alwas

I remember that we have a talk about the frequency of update the sensor is sending. I understand that you are looking to control the sensitivity of the sensor reporting. The sensor reporting is configurable at zigbee level. This is a valuable request and can be done. I just want to make sure that we are doing so correctly.

The sensor sensitivity is why I think a sensor like this would be useful. I have seen and been a user of some sensor on the other spectrum where it report only once a minute, day or even month. I am trying to avoid this. As a user, I prefer my sensor be sensitive and prompt on reporting changes. Battery powered sensor like Aeon Multi and the Fibaro Motion Sensor use battery where they have to restrict the reporting interval. We run on DC power. I suppose that we want to take advantage of it. In addition, We use probably the most sensitive sensor available BME280. It would be waste not to take advantage of it. I have tested multiple sensors (in the tens) with one ST router. The amount of data is reasonable with current reporting configuration. It is not causing any problems with the hub or flooding its zigbee network. Is there any reason to make the sensor less sensitive at DTH level?

I can see the sensitivity can be an issue for some scenario. Lets look at them and see what is the proper solution without dumb down the sensor. The scenario with with your capacitive soil sensor is a good one to look at. Working with analog sensors and translating them to do one or the other (Boolean action) will have the issue that you see. This is a well understood problem. We may want to add hysteresis in the logic for Water sensor. At simplest form, the hysteresis use two threshold values. A higher threshold value to set the sensor to wet. It is common to do this with analog sensor. Do you need help to modify the DTH for water sensor for this? I think if you make the sensor report less or less sensitive, you may still see the issue. It will be just rarer to see the flip between wet and dry.



When do you want to get the alert? I don’t think Changing sensitivity (how much change is required for a report) would have any impact on alerts based on absolute value thresholds.

Hi @iharyadi and @TonyFleisher, I don’t think I explained myself clearly. I don’t want to “dumb down” the sensor or make it less sensitive, i would like the user to have full control of the reporting thresholds, thereby in some cases making the module even more sensitive as the case may be.
You’ve set the reporting values as a happy medium, which is perfectly reasonable, but a user may want to expose more sensitivity from a particular sensor as they see fit, have a play, like using illuminance as a motion detector. As you mention below. At the moment it’s very hard (impossible unless you’re a coder) to change the reporting values, and it’s a shame the user can’t harness each sensors values to their own needs.

I have one of your superb modules in the garden, using illuminance to control lighting, which i’m very happy i got (considering $weather Underground will stop in a few weeks). But i have another sensor inside that i don’t want spamming my network unnecessarily. Same with the Pressure, 2 modules sitting next to each other spamming the same info. With regards the capacitive soil sensor, i get an alert at 2.6 volts, the problem is the sensor is SO sensitive, it jumps back to 2.59 becomes wet, the back to 2.6 dry, this can go on for an hour or more. How did Aeon solve this? i have a Aeon Multi plugged in to usb, using as thermostat, initially, it would reach 22.1 degrees, my heating would go off, it would jump back to 22, heating would come on, so i put a reporting threshold of .2 degrees, problem solved.
I have a sensor in the laundry room, and I would prefer to use your DTH but i took advice from another user further up this thread to use the SmartSense humidity temp sensor, just because of the noise/spamming. humidity jumping back and forth forth 44%43%44%43%44% why not have Humidity threshold “Threshold change in humidity to induce an automatic report”? And have a threshold report for each sensor, Illuminance,Pressure,Temperature,Humidity etc etc ,I think the user should be in control, and have the ability to play as they see fit. I’d love a big commercial company to take on and mass produce your modules, and the first thing they would do is make the DTH more user tunable/friendly. I’m not sure you’re able to do the changes, because I think you would of done this before, I’ll ask someone like ercom to have a look at it, and see if they can do a pull request.

P.S. Can you please at least update the code so I can see Degrees Celsius in decimals please like I can see in the Live Logging, e.g. 22.24 Degrees. at the moment all I see are decimals of 10, i.e. 22 Degrees, 23 Degrees. Thanks very much.

1 Like

I agreed with this issue is a concern. It is a concern when using analog value to decide between on/off or wet/dry regardless the sensor you use. Digital IO has this issue as well. An input voltage will fluctuate. It could go up and down a hundred mili volt easily. If you have only one threshold, the gpio may fluctuate to high and low. This is commonly solve by using hysteresis. In your example with temperature, temperature carry high momentum (in addition, a room retains heat). This masked the issue where the temperature cross the threshold rapidly. For temperature, the more common solution is to smooth the reading using filter. We already have that preference that you can set if you use temperature reading.

The moisture sensor, that you bought, is fluctuating. This is normal in electronic circuit as I mention above with gpio. Making the sensor less may help but may come with other side effect. Implementing hysteresis is probably better solution.

I did look at my logs for humidity. I do not have any issue for end user to be able to adjust the reporting configuration of their Zigbee Device. My sensor is DC powered. It should have no issue with different reading setup especially when you slow it down. I am concern whether I am spamming our user hub with my default configuration. I am happy you are bringing up the concern. Lets take a look at a real data of my humidity with existing configuration report.

|2018-12-05 6:27 AM PST - 33 minutes ago|humidity|38 %|%|
|2018-12-05 6:21 AM PST - 39 minutes ago|humidity|39 %|%|
|2018-12-05 6:17 AM PST - 43 minutes ago|humidity|38 %|%|
|2018-12-05 6:12 AM PST - 48 minutes ago|humidity|39 %|%|
|2018-12-05 6:09 AM PST - 51 minutes ago|humidity|38 %|%|
|2018-12-05 6:08 AM PST - 52 minutes ago|humidity|36 %|%|
|2018-12-05 6:08 AM PST - 52 minutes ago|humidity|37 %|%|
|2018-12-05 6:00 AM PST - 1 hour ago|humidity|36 %|%|
|2018-12-05 6:00 AM PST - 1 hour ago|humidity|37 %|%|
|2018-12-05 5:59 AM PST - 1 hour ago|humidity|36 %|%|
|2018-12-05 5:58 AM PST - 1 hour ago|humidity|37 %|%|
|2018-12-05 5:57 AM PST - 1 hour ago|humidity|36 %|%|
|2018-12-05 5:57 AM PST - 1 hour ago|humidity|37 %|%|
|2018-12-05 5:57 AM PST - 1 hour ago|humidity|36 %|%|
|2018-12-05 5:47 AM PST - 1 hour ago|humidity|37 %|%|
|2018-12-05 5:42 AM PST - 1 hour ago|humidity|38 %|%|
|2018-12-05 5:38 AM PST - 1 hour ago|humidity|39 %|%|
|2018-12-05 5:38 AM PST - 1 hour ago|humidity|40 %|%|
|2018-12-05 5:37 AM PST - 1 hour ago|humidity|41 %|%|
|2018-12-05 5:36 AM PST - 1 hour ago|humidity|40 %|%|
|2018-12-05 5:36 AM PST - 1 hour ago|humidity|39 %|%|
|2018-12-05 5:35 AM PST - 1 hour ago|humidity|40 %|%|
|2018-12-05 4:25 AM PST - 3 hours ago|humidity|41 %|%|
|2018-12-05 4:20 AM PST - 3 hours ago|humidity|42 %|%|
|2018-12-05 4:15 AM PST - 3 hours ago|humidity|41 %|%|
|2018-12-05 4:05 AM PST - 3 hours ago|humidity|42 %|%|
|2018-12-05 3:55 AM PST - 3 hours ago|humidity|41 %|%|
|2018-12-05 3:50 AM PST - 3 hours ago|humidity|42 %|%|
|2018-12-05 3:45 AM PST - 3 hours ago|humidity|41 %|%|
|2018-12-05 3:35 AM PST - 3 hours ago|humidity|42 %|%|
|2018-12-05 3:25 AM PST - 4 hours ago|humidity|41 %|%|
|2018-12-05 3:20 AM PST - 4 hours ago|humidity|42 %|%|
|2018-12-05 3:00 AM PST - 4 hours ago|humidity|41 %|%|
|2018-12-05 2:55 AM PST - 4 hours ago|humidity|42 %|%|
|2018-12-05 2:50 AM PST - 4 hours ago|humidity|41 %|%|
|2018-12-05 2:45 AM PST - 4 hours ago|humidity|42 %|%|
|2018-12-05 2:40 AM PST - 4 hours ago|humidity|41 %|%|
|2018-12-05 2:25 AM PST - 5 hours ago|humidity|42 %|%|
|2018-12-05 2:00 AM PST - 5 hours ago|humidity|41 %|%|
|2018-12-05 1:55 AM PST - 5 hours ago|humidity|42 %|%|
|2018-12-05 1:52 AM PST - 5 hours ago|humidity|41 %|%|
|2018-12-05 1:47 AM PST - 5 hours ago|humidity|42 %|%|
|2018-12-05 1:42 AM PST - 5 hours ago|humidity|41 %|%|
|2018-12-05 1:17 AM PST - 6 hours ago|humidity|42 %|%|
|2018-12-05 1:12 AM PST - 6 hours ago|humidity|41 %|%|

Between 1 AM to 5 AM, the sensor send changes about 5 minutes. This is when it hit the zigbee reporting max time period and the value change round up to 1 degree. By all mean, this is not spamming.

Then after 5 am. My heater goes on. Things get drier (humidity are changing). You can see the humidity start to go down faster than 5 minute interval. It is still not spamming the hub. I want to make sure that my default configuration in DTW do not cause issues for everyone.

As a bonus with this kind of data, one can probably push them to AI and do a lot of cool stuff. As human, I can interpret these kind data and correlate them to something else happen in my home.

I want to make sure that we are aware of this benefit. The BME280 is $7 a pop here. We want to expose the full advantage of it.

As a user, I fully agree with you that I want to have the freedom how I interpret the data. @Alwas, I can assure you that we can change the DTH to adjust the reporting. If this is something common for everyone, I will be happy to make changes for everyone in my github. If this is only for your consumption, I will be more than happy to help you or anyone helping you to make sure that you have the adjustment that you want in your IDE.

This is easy to do. Again, I can send the code to you for your private code in IDE.

Btw @Alwas, thanks for bringing this up. It is a good discussion. Lets see if the adjustment is more of your specific need or more of a global need. It is my own interest to make things better and a higher priority if this is a common need.


1 Like

@Alwas, I just looked at the code. The temperature display is not controlled by my code. ST parsed the value and round the value before display. I do not want to take over the parsing of the code with my own just because we want to see the 2 decimal value on the temperature. Perhaps, you can enter a suggestion to ST team for your request. Other driver may parse temperature manually where they can control the decimal value. ST has few attributes that it parse and display for us developer. Some other attributes are left to us to parse. For this attributes that we parse, changing the format is very easy.

How can we get these? I’m interested to use it as a repeater for Xiaomi devices and also as Temperature / Humidity sensor.
Please advise, and thank you very much for this great invention!

PM me, I can give you my paypal in PM. Please let me know where you would like to have the module shipped in the PM.

All -

I’ve done a stupid thing and I’m hoping you all can help. I love the my little Zigbee repeater I acquired from @iharyadi. It’s solved all my Xiaomi problems and more. I thought for Christmas I would pick some up for my smart home challenged brother and myself. Rather than keep bothering @iharyadi, I thought I’d recreate his work myself and acquire some modules from Ebay. It was in my search I discovered this module. I was very excited as it already had USB. I assumed (wrongly) that I wouldn’t need anything else except a 5v USB charger.

Unfortunately, I can’t get these devices to pair. I guess I wrongly assumed these devices had their own board to run independently of a computer. Beyond using with a computer, are these devices useless? Anything else I can do to get them to work?

I just got my repeater a few days ago and it was working great, already made a difference with my spotty Xiaomi motion sensors. About an hour ago I noticed that the repeater was no longer updating any of it’s sensors. I reset the repeater using the method I found above (plug in while holding button for 2 seconds, then wait 10 seconds) without any luck so I removed it from my hub hoping to start over. Now I can’t get the hub to see it when I scan. I’ve got a green light just like when it was working,. I’ve tried the reset procedure a few times but nothing seems to be working. Anyone have any idea how I can get the repeater talking to the hub again?

Hi Joe, Have you remove the DTH from your ST app? If you still have them, it will not find it when you try to add a new device.

If you have a battery, you need to remove the battery. The module cannot have any power when they are plugged in to reset it.

Lets give it a bit more time by pressing it for about 4 seconds instead.

I tried removing the DTH and re-adding it, as well as trying without the DTH installed to see if I can pair it as a “thing”. I also just tried holding the button for 4-5 seconds, is there any light indication when it resets? I don’t have a battery in it at the moment, but I did recently add one before I started noticing the problem.

Are you sure your USB power supply is powerful enough? Just an idea of something to consider.

That crossed my mind, but I’ve tried two different 2.1A power supplies that I use all the time. I’ll find a third, it’s worth a shot!