Home Automation Series: Temperature Sensors (Part 2)


It took just under a month to get them from Bulgaria (Customs is apparently backed up). But I finally got my first two Shelly H&T sensors!

No photo description available.
May be an image of ball

First off, I was absolutely amazed by how small these things are. All of the images I saw while reading about them didn’t really put the size into perspective. They are about the size of a small mandarin orange.

Setup was a bit weird because they came with firmware from 2018, and the app wouldn’t let me add them to my account until it was updated. But, there weren’t any instructions to do so. They had IP addresses because I could access them, and their app saw them, but they couldn’t do anything. I switched from DHCP to Static IP for them (something that is a *suggestion* in their documentation) and boom, they were able to update. If you buy these: The configure mode only stays online for 3 minutes at a time. Press the button and hurry up and get whatever config changes you need done. Alternatively, you could make the config change in their app and the next time it wakes up, the data is pushed down.

My original idea was that I would reach out from my application to the sensor to see what the temperature was, by using their RestAPI. After getting these and reading up, that’s not needed (or ideal. The wifi chip puts off a lot of heat when on for too long), as the Shelly H&T has two ways to provide data to you.

  1. Report URL
  2. MQTT
  3. Normal Wake-up and report

Let’s break these down.

  1. What is a Report URL? Within the config, you’re given the option to wake-up the device when the temperature changes by some number of degrees and report to a URL, it does a GET request to that URL with three keys: temp, hum, and id. The id is formatted like this: “shellyht-<mac>” It’s not the entire mac address, just the last little bit. With that data though, you can ingest the real-time temperature changes using the report URL.
  2. MQTT stands for Message Queuing Telemetry Transport. It’s very similar to ActiveMQ or RabbitMQ but this is designed specifically for devices that have very small footprints and tight power requirements. I haven’t done too much testing with this. Though the nice thing about using MQTT is, I don’t need to have rest endpoint configured to process the data. MQTT isn’t nearly as straight forward the Report URL though, as it sends data to multiple topics designated for that device, which means you need to subscribe for each device, rather than having a single endpoint where you parse the ID value from the call. I haven’t read anything that says a temperature change forces the MQTT data to send though, so I’d need to test that and see.
  3. Normal Wake-up and report, you can configure how often you want the device to wake-up and report out it’s data. Shelly suggests every 6 hours, though, without me changing it, the default appears to be 3 hours.

After the initial setup and configuration, I placed both in their respective rooms. One goes in my bedroom and the other in my daughters room. My wife and I have always been able to feel temperature differences between rooms, even when the A/C is running, but this actually revealed just how big of a jump it is. The front of our house faces north, so the back of our house is currently getting hit hardest on sunny days, my office and daughters room are on that wall. When the door to my daughters room was closed yesterday (outside high of 77 degrees F), her bedroom jumped from 71 to 75. As soon as I opened the door, the temperature started falling.

When I spotted the temperature going up, I opened her door and set the house fan to “on”. Within a few minutes the main temperature sensor for the HVAC detected enough of a temperature increase to kick on the cool air.

That’s where my system will come in. Let’s say for each room I have a threshold of say, 5%. If the temperature in a room changes by more than 5% of what the house is set to, make an adjustment to the dampers and turn the house fan on. The big plus here is that my HVAC thermostat has no idea what the temperature outside is, so it doesn’t know if it needs to cool or heat the house, it’s just aware of the ambient temperature in the house.

My system takes in weather from outside (right now, by way of DarkSky and OWM, that will change soon to an on-premise source), by having knowledge of what it’s doing outside the temperature inside can be monitored and adjusted in relationship to the outside temperature.

Now, in the past when it’s been a nice comfortable day outside, we open the windows. The problem there is we have to either open the Honeywell App and turn off the system, or run upstairs and turn it off. If I do this right, I can hook into the Alexa ecosystem and just call out, “Alexa, I’m opening the windows” and it’ll call out to my system and it will know to turn the system off, but still be able to manage the fan and damper control.

I’ve for 2 more Shelly H&T on the way and I’ll likely be ordering two more in the very near future.

Thanks for reading!

-Dan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s