GeoSuite Cosy Smart Thermostat

I got a ‘free’ Cosy smart thermostat a few years back as part of a deal from my then energy supplier. They don’t appear to offer a public API to control it, so I built a little work around to allow it to be controlled using Home Assistant. It’s a Node app (wrapped up in a Docker image) which uses puppeteer to log onto the Cosy web app, and pull the current status or set the mode. It listens for MQTT messages and acts accordingly.
Doubt there’s many of these thermostats knocking around, so not sure if anyone else will find it useful, but just in case (or if anyone is interested in the code to do something similar with another device), I’ve stuck it on GitHub:
https://github.com/Saggerus/HA-cosy-server

It’s a little bit buggy at the moment (gives thed odd timeout as I haven’t added error handling).

But it does still do what bit’s supposed to.

2 Likes

Hey there @Saggerus .

Your efforts and your GitHub repo inspired me to create something similar. Its a NuGet package for C# .NET that allows Cosy devices to be controlled using their non-public API (its the same API that their Geo Cosy Web App calls) rather than using a headless browser, which was a bit better for my use case.

I just needed it so help me create an IFTTT app so that I can set the heating based on outside triggers like calendar events, emails, etc. I wapped it up in a NuGet package just in case its useful for anyone.

Hi @dan-agilexp , your efforts especially the work around inspecting the API inspired me right back! I’ve done the same and used the calls to create a full custom integration. If anyone is interested you can find it here: https://github.com/Saggerus/geo_cosy.git

1 Like

This works absolutely perfectly!
Five years of trying to get it working with anything resolved in five minutes!
Thank you so much.

@markhealey You’re welcome, glad it worked for you!