Example of Maker Integrating with Ecobee?

Are there any examples of how to use Maker with my Ecobee?

Don’t think so, but it looks like there’s a decently documented REST API - system.net.httpClient() would map fairly well.

Disclaimer

I haven’t used either Maker or ecobee. I do use the Ignition (Vision/Perspective) platform daily, though.

Documentation

Here is an article on ecobee’s website regarding their API.

Note that you must use HTTPS to make API requests, HTTP is not supported and your client will be redirected to the HTTPS URL. Most HTTP client implementations do not support redirection by default if at all.

Here is a list of available endpoints (from what I can tell; I don’t have an ecobee device to test this).

I believe this means you must configure an SSL certificate in the Ignition Maker gateway.

system.net.httpClient() example

Here is how you would use system.net.httpClient():

# create an HTTP client (open socket, etc)
client = system.net.httpClient()

# GET, POST, DELETE, PUT, etc are available methods
# request URL from https://www.ecobee.com/home/developer/api/documentation/v1/operations/get-thermostats.shtml
params = {"selection":
			{
				"includeAlerts":"true",
				"selectionType":"registered",
				"selectionMatch":"",
				"includeEvents":"true",
				"includeSettings":"true",
				"includeRuntime":"true"
			}}

# find the exact URL in docs
res = client.get('https://api.ecobee.com/{version}/thermostat', params = {'json': params})

# check response 
if res.good: 
	# do something
	system.perspective.print(str(res))

I would read the documentation carefully before integrating in any serious fashion. Here is a sample message I found in the docs (and there are others like this):

DO NOT have more than 2-3 open HTTP requests with the ecobee API at any given time; wait until the ecobee server has responded before issuing additional API requests.

1 Like

Thanks - some good starting points.

I use OpenHab to connect to my Ecobee. It has a binding that pulls in all the data I need. I then use Node Red to manipulate the data further then push to Ignition tags. I use OpenHab as an “integration layer”/gateway to many home automation technologies, Node Red as my home controller, and Ignition Maker as my HMI. Or HHI (Human House Interface) ?? :slight_smile:

3 Likes

I’ve been looking into OpenHab as well John - thanks for that. I would be interesting to see how you are pushing to Ignition tags. I haven’t had time to really dig in myself, but the possibility is exciting for sure!

The deign of my system is centered on Node Red. Think of it as my controller. There is a thin line between what Node Red can do and what OpenHab can do. I like OpenHab for its many Bindings it offers and its seamless integration into Node Red. OpenHab has a robust Restful API that someone has developed nodes for within Node Red. This makes it easy to quickly setup a few “Things” in OpenHab, create some items, then quickly pull into Node Red. I went this way some time ago because the Logic Engine within OpenHab felt clunky and complex and Node Red is incredibly easy and has a strong community. The two primary drivers (Bindings) for me using OpenHab is my many Zwave devices and my Ecobee. Past that, everything else occurs in Node Red.

For Ignition I use the node-red-contrib-ignition-nodes to Read and Write to the Ignition tag database. I’m just really getting into using Ignition and still trying to overcome the learning curve.

1 Like

Thanks @john.n.tunell I finally got around to setting this up. I’m using Home Assistant with Node Red and node-red-contrib-ignition-nodes
Looking forward to the possibilities!