My furnace will be replaced and they will install a new ECOBEE Enhanced thermostat as part of the package deal. Researching a bit, there is a cloud-based API to help with custom automations. Home Assistant has an integration that requires the cloud-based API, and also a HomeKit integration that purports to support LOCAL LAN access.
WebThings Gateway does not have an ECOBEE addon
Q: Has anybody built any scripts (or an addon) to integrate ECOBEE thermostat into WebThings?
I theorize, with the use of a Virtual Thing, and some scripting, that one could relatively easily obtain temperature and humidity status, and then set temperature with some more code.
I don’t really want to write another custom addon if someone has attempted this already. Might just use HA for this device since an integration already exists…
Thanks for the hint. Installed the HomeKit addon and got the error: EAFNOSUPPORT. After searching google, it probably means that Bluetooth is not enabled.
I’m executing WT 1.1.0 on a RPI5 in a Docker container in HOST mode. Currently, both BT and WIFI are disabled.
So, I guess I’ll log into the RPI5 console and enable BT… I’ve got a Roku that supports HomeKit and was discovered by my Home Assistant test system so it will be a good test to verify before the ecobee is installed.
Wonder if there is a BT /dev/xxx device that will need to be exported into the container? More research to do…
Well, I got the HomeKit addon to load in a Docker container. It requires “host” networking. I normally map WT ports so I can start multiple instances of WT simultaneously during testing.
It immediately discovered the Roku so went into the Roku’s setup → HomeKit → and clicked it’s “setup” option which displayed an 8-digit pairing code.
I did a things + (add) and the Roku was shown waiting for a pin code. I input the code from my Roku and it “failed”. Looking at the documentation, if you have problems pairing, you may need to first input the code: 000-00-00, which is hard coded in the addon as a dummy, and then try to enter the code again. I tried this and it still failed to pair. Tried several times without success.
During the first attempt in a cycle, the Roku would immediately display a new pin code when I enter the original pin code in WebThings, so I know network communication between the addon and roku are working.
Guess I’ll have to debug some more and wish IOT was not so difficult…
Looking around, here is the addon code that executes when a PIN is displayed on the screen by the device (roku). It seems to execute startPairing() again, which contradicts with the error message that it’s not in pairing mode.
// special case where the PIN will be displayed to the user on-screen
if (pin === '000-00-000') {
return client.startPairing().then((data) => {
this.pendingPairingData = data;
this.pendingPairingClient = client;
throw new Error('Enter new PIN from device\'s display');
});
}
After you mentioned that WT supports the HomeKit addon, I installed it and it discovered my Roku device, which also acts as a HomeKit client. This was before my furnace was installed with the ecobee (it’s being installed this morning btw).
Since the WT HK addon discovered the Roku, I then tried to pair it to the WT HomeKit addon. This is where I discovered it’s network host requirement and had subsequent problems pairing.
I’ll attempt to add the ecobee to the WT HK addon this afternoon… I did read the HomeKit addon code and it has a couple methods coded for ecobee related to toggling vacation/home modes. Hopefully temperature and humidity are natively supported.
If all else fails I’ll cobble support using virtual things and the ecobee cloud-based api and cURL to set WT parameters when I’m bored some day.
Successfully paired the ECOBEE Advanced thermostat device to the WT gateway homekit addon. The HK addon then inventoried it’s parameters and added a new device. I tried to manually set the temperature and was able to change the “target temp” value, but there was no button to save the new value (on page refresh it reverted to it’s original value). Will need to play with it some more.
The HK addon also discovered the roku too, but I was not able to pair it. The log shows an “undefined” message during this process and assume at this point the device type is not supported by the addon… HomeAssistant homekit addon was able to pair to to the roku, but only displayed n and mute options.