Shelly H&T Connectivity and Sample Rate

Sep 23, 2022

Today, I played around with Shelly H&T. I couldn’t really find information on the interval that data is sent. So I tested it myself.

Setup

Model: Shelly H&T
Firmware: 20210710-130145/v1.11.0-g12a9327-master
Power: Battery (1x CR123A)
WiFi Mode: Client

As it turns out, the Shelly H&T isn’t online continuously but only has short time frames when it’s online, reports the action, and eventually disconnects again from the WiFi.

To get measurement values, you either need to set up the “Report sensor values” action (this is what I did) or set up MQTT. I used the “Report sensor values” action. It just performs an HTTP GET request to a custom URL. I set it up like this:

On the receiving side, I created a very simple HTTP server programmed in Go:

package main

import (
	"fmt"
	"html"
	"net/http"
	"time"
)

func timeAsString() string {
	t := time.Now()
	return t.Format(time.RFC3339)
}

func main() {
	fmt.Println(timeAsString() + " Hello Server!")

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Println(timeAsString() + " " + r.URL.String())
		fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
	})

	http.ListenAndServe(":8081", nil)
}

Results

“Report sensor values” does not report values in a regular interval! I saw the “Send Status Period” setting in the manual, but it’s not present in the Web-Interface. It’s only possible to set up a “Temperature threshold” and “Humidity threshold” where the device wakes up and reports a new measurement when the value changes more than the threshold. I left this value at the default value of 1°C and 1%:

But how high is the sampling rate really? To test this, I started my small HTTP server and put the Shelly H&T into the freezer to trigger the maximum temperature difference. This is the raw result:

2022-09-23T17:35:43+02:00 Hello Server!
2022-09-23T17:36:07+02:00 /ht1?hum=23&temp=-5.38&id=shellyht-00EB85
2022-09-23T17:41:48+02:00 /ht1?hum=24&temp=-10.12&id=shellyht-00EB85
2022-09-23T17:47:32+02:00 /ht1?hum=27&temp=-13.62&id=shellyht-00EB85
2022-09-23T17:53:17+02:00 /ht1?hum=29&temp=-16.00&id=shellyht-00EB85
2022-09-23T17:59:02+02:00 /ht1?hum=30&temp=-17.75&id=shellyht-00EB85
2022-09-23T18:04:48+02:00 /ht1?hum=31&temp=-19.12&id=shellyht-00EB85
2022-09-23T18:10:31+02:00 /ht1?hum=100&temp=6.25&id=shellyht-00EB85
2022-09-23T18:16:11+02:00 /ht1?hum=83&temp=13.00&id=shellyht-00EB85
2022-09-23T18:21:49+02:00 /ht1?hum=83&temp=17.00&id=shellyht-00EB85
2022-09-23T18:27:27+02:00 /ht1?hum=84&temp=19.25&id=shellyht-00EB85
2022-09-23T18:38:42+02:00 /ht1?hum=85&temp=22.00&id=shellyht-00EB85

The timestamps show that the fastest report rate is about every 5-6min. If the values doesn’t change, apparently the interval is once every 12 hours. However, I didn’t test this myself yet.

I also wanted to know how long the device will stay active every time it wakes up. To check this, I did a simple ping:

Request timeout for icmp_seq 62
Request timeout for icmp_seq 63
Request timeout for icmp_seq 64
Request timeout for icmp_seq 65
64 bytes from 192.168.1.71: icmp_seq=66 ttl=128 time=26.889 ms
64 bytes from 192.168.1.71: icmp_seq=67 ttl=128 time=9.136 ms
64 bytes from 192.168.1.71: icmp_seq=68 ttl=128 time=17.895 ms
64 bytes from 192.168.1.71: icmp_seq=69 ttl=128 time=9.903 ms
64 bytes from 192.168.1.71: icmp_seq=70 ttl=128 time=7.675 ms
64 bytes from 192.168.1.71: icmp_seq=100 ttl=128 time=15.449 ms
64 bytes from 192.168.1.71: icmp_seq=101 ttl=128 time=11.111 ms
64 bytes from 192.168.1.71: icmp_seq=102 ttl=128 time=8.060 ms
64 bytes from 192.168.1.71: icmp_seq=103 ttl=128 time=11.549 ms
64 bytes from 192.168.1.71: icmp_seq=104 ttl=128 time=14.203 ms
Request timeout for icmp_seq 115
Request timeout for icmp_seq 116
Request timeout for icmp_seq 117
Request timeout for icmp_seq 118

The Shelly H&T responded to the ping for 39 seconds in my test. I conclude that the device is active between 30-40 seconds when it wakes up,. During that time, the Web-Interface is also reachable.

But it’s good to know: If you need the Web-Interface or a measurement, you can just press the button inside the case to report a measurement and makethe Web-Interface available for a few minutes.

I had quite some fun playing around with the Shelly H&T and I hope you do too.

Enjoy!