ECOBEE Enhanced Thermostat

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 :frowning:

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ā€¦

There is a HomeKit add-on, might it work with that? https://github.com/WebThingsIO/homekit-adapter

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ā€¦

Here is the output from the log:

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');

        });

      }

Iā€™m not sure I follow why you are trying to add your Roku to the gateway rather than adding the ECOBEE thermostat directly using the HomeKit add-on?

I donā€™t know if the HomeKit add-on actually supports thermostats, but that would have been my first choice.

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.