Sensi ST75 - HomeKit controller unable to discover device

Just got a new Sensi ST75 thermostat and would like to add this to Home Assistant locally using the HomeKit controller, as I’ve seen some posts around saying that is possible.

If it helps, I’m running firmware version 6004971003 (build date 05/18/2022). The thermostat was added using the Sensi app (not HomeKit) to an isolated network with no internet connection, so it says “connected to Wi-Fi, not connected to the cloud”.

From the server (HA core), avahi-browse seems to be able to locate the thermostat, but python3 -m netdisco is returning nothing:

root@hass:~# avahi-browse -a
+ ens224 IPv4 Sensi-YYYYYY                                  _hap._tcp            local

root@hass:~# python3 -m netdisco
Discovered devices:
Discovered 0 devices

root@hass:~# tcpdump -ni ens224 port 5353 -X
23:54:37.345870 IP > 0*- [0q] 6/0/0 (Cache flush) A, (Cache flush) AAAA fe80::366f:XXXX:XXXX:XXXX, PTR YYYYYY.local., (Cache flush) SRV YYYYYY.local.:80 0 0, PTR Sensi-YYYYYY._hap._tcp.local., (Cache flush) TXT "c#=1" "ff=1" "id=D5:CE:4A:XX:XX:XX" "md=ST75" "pv=1.1" "sf=1" "ci=9" "s#=1" "sh=XXXXXX==" (360)

root@hass:~# ping
PING ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=255 time=89.3 ms
64 bytes from icmp_seq=2 ttl=255 time=6.47 ms

root@hass:~# avahi-resolve -a	YYYYYY.local

root@hass:~# avahi-resolve -n YYYYYY.local

The HomeKit controller integration keeps saying “no unpaired devices could be found”.

Any ideas on why the integration isn’t able to find/connect to the device, and tips on how to make this work?

(edit) Maybe this is part of the problem:

root@hass:~# avahi-browse -ar
+ ens224 IPv4 Sensi-YYYYYY                                  _hap._tcp            local
Failed to resolve service 'Sensi-YYYYYY' of type '_hap._tcp' in domain 'local': Timeout reached

(edit #2) Looks like that happens when the thermostat is not in the “Wi-Fi setup” screen. With that, we now have:

root@hass:~# avahi-browse -ar
+ ens224 IPv4 Sensi-YYYYYY      
= ens224 IPv4 Sensi-YYYYYY                                  _hap._tcp            local
   hostname = [YYYYYY.local]
   address = []
   port = [80]
   txt = ["sh=XXXXXX==" "s#=1" "ci=9" "sf=1" "pv=1.1" "md=ST75" "id=D5:CE:4A:XX:XX:XX" "ff=1" "c#=1"]

Still nothing in python3 -m netdisco or the HomeKit controller integration though.

I’m trying to integrate a Sensi ST55C thermostat it’s never discovered by HA, not sure on how to do a factory reset on it, removing the batteries for over 10 mins did not work.

Factory reset is done by pressing and holding arrow up, down and fan button until the screen goes completely blank with one black line at the top

@wolfexia did you ever get HA to auto recognize your internet isolated Sensi thermostat?