I have integrated the Neostat range of devices into SmartThings and I am now pleased that it is working reliably with most needed functions (on the Neo Stat / Air / HW / Plug products). This integration also works with re-branded Heatmiser thermostats, such as the Myson Touch Hub (Touch 2 Hub).
It is based on using a NodeMCU (ESP8266 chip) as a bridge for the NeoHub - hence ST talks to the NodeMCU, and that talks to NeoHub, and that talks to the individual Neostats (long winded I know but nicely the NeoHub can be offline if needed and potentially in the future ST can also be offline since it uses LAN commands).
There are two device handlers:
- For the NodeMCU Bridge (parent) in order to handle communications with the Neohub and Neostats. This device handler can also create children thermostats and send commands to all thermostats as a group.
- For the individual Neostats (children) to act as a ST thermostat for each.
To use the thermostats, you can see status info as you would expect. You can press the +/- buttons to change setpoint, however this is not saved until you press ‘Set Temp’ - if you do this then it will set the temp until the end of the current schedule. Alternatively if you press ‘+30m’ then you can choose to override the schedule for a custom period of time like a boost for a couple of hours. You can cancel this hold by pressing cancel (surprisingly…) - This will appear only after an override has been set. Finally if you press away it will put the thermostat into away mode until changed back (kind of like standby but a bit safer since it prevents frost). The thermostats should automatically detect plugs and timeclocks, and as a result display On/Off rather than temperature +1 / -1 - If this goes wrong please just go into the settings for the device (cog at the top right on the phone) and press Save, this should force it to refresh.
You can see my instructions on the Github page and they are hopefully comprehensive enough, any questions please put them on this thread. The NodeMCU works entirely wirelessly, it just needs access to WiFi and power through a MicroUSB connection
Getting the hardware:
I am happy to sell a pre-programmed NodeMCUs including 1st class postage within the UK and standard international post virtually at cost price. This will be easy to setup by following the instructions in my Github page. All you need is a micro USB cable for power (from a PC port, old phone charger…etc). I have tons of feedback if you are worried but feel free to ask any questions on this thread.
Known actions or bugs:
- When you create the children thermostats it can give errors sometimes due to an ST bug, I have had to add a Test device button to the bridge DH in order to help though by default it is hidden as not effecting many people any more. If you find that creating child devices does not work due to a “Cannot get property ‘dateCreated’” error (you see this in the Web Dashboard Live Logging page), then try pressing this button ONCE, then confirm that you have a test device in your ST device list. Then you can press remove devices and it should disappear from device list. Then you can press create devices and it should work this time.
- The pre-stat and post-stat fields in the configuration settings seem a bit dodgy thanks to SmartThings again, so sometimes it is not possible to update the names, or the updates have no effect (i.e. the device handler still sees cached information). I suggest picking a prestat name of “Thermostat” and no poststat name, then leaving it like this forever… Thermostat is a good word to use as it is an easy word for Echo/Google Home to pick up.
Great work SmartThings Heatmiser integration would be amazing!!! I would like to buy a pre-loaded NodeMCU and support your development!!!
I will PM you!
Question - I have 10 NeoStats… based on the current 8 device limit, can I simply NOT setup 2 stats within SmartThings?!
Sadly because of one single ‘feature’ that Heatmiser have implemented carelessly, the limit is based on the number of thermostats connected to the Hub. This is because the only way to get information from a thermostat about its status (temp/settings/setpoint/…) is by requesting all information for every single thermostat, and this creates a JSON that is too large for ST to handle reliably. I have some plans to break up this JSON so ST complains less, but thought I would do that after a few more people have it. Once it is setup (whether working reliably or not), the upgrade process with any new firmware is a 3 click process.
Realistically speaking it has been tested with 8 stats and it works well, but with 11 stats and it is unreliable - Im not sure where the actual limit is, but was playing it safe… Im far from done on development and will definitely find a way through it, but currently dont know how it will work due to a small testing audience!
Ok I understand.
I’ll temporarily delete some of my NeoStats from the Neo hub/app to reduce to 8 and support your testing and development!
What with the glorious British summer we are going to have I won’t need my underfloor heating again until October!!
Shhh… Dont jinx the summer!
Anyway, drop me a PM and can sort out a NodeMCU for you. (Ive only written this addition as ST refused to let me post with less than 10 characters! )
Chris, great work - looking forward to trying the updated version.
I was wondering is there any compatibility with Amazon Echo / Alexa?
I need to add a few functions to the thermostat and then it should support Echo integration in theory, but I have not tested it yet as it is not well documented anywhere. The actual functionality through Echo will not be 100% since Neostats have a more limited range of features, but I would aim to support boost (until next schedule change) and away functionality at the least (ideally for the individual thermostats and also for all thermostats grouped together).
Ok, so Im nearly there with all the Echo integration, expect an update this week. Ive got it telling me the temperature and can normally set it, but sometimes it gets stuck and stops responding.
Ive also improved the firmware and processing, so it is getting closer to dealing with 9+ thermostats, though still got a few bits to do on this.
I’m also interested in this work. I currently have a large investment in SmartThings with ZWave lights, switches, sensors, and… Alexa. However, I have 13/14 ugly Heatmiser 12v PRT-N thermostats for my underfloor heating that I desperately want off my walls and replaced with something aesthetically pleasing
I looked at the Neoair/hub combination but will only commit if I can get the SmartThings integration. Well done Chris.
Not convinced the Neostat looks a million times better… but it does look better than the PRT-N!
Alexa integration will work regardless, and I hope will be sorted by this weekend.
For dealing with 9+ thermostats there are currently a few options:
- Use one Neohub for each group of 8 neostats, and a node MCU for each - this will work today, but is a bit of a faff and not the smartest of smart home solutions!
- Wait for Heatmiser to change their API - it is literally 30 mins of coding on their end to ensure that their API works as it should do, currently a bug prevents you from getting status from a single neostat and instead have to request all at once (and this is what breaks the current implementation). Despite asking through a few channels Ive not had a response.
- I will find a way (hopefully soon as I think I am getting close) of dealing with the extra data with current solution, and intelligently passing it on to ST. If I can get an apparent bug with an Arduino library sorted then that will solve my problems.
Luckily Ive got the firmware update process smoothed out, so it is easy to upgrade the Node MCU when I get a solution to point 3, it only takes a few clicks and doesnt need a PC connection.
Prior to discovering build this i was considering replacing my heatmeister installation (at a considerable cost) throughout my house. As of today I’ve successfully added this integration and can report its working like a dream
During the implementation I hit an issue and due to the (effectively) zero cost of the pre-loaded nodemcu I purchased from Chris i wasn’t expecting much in the way of an support experience, much to my surprise Chris was on the case immediately, he even went as far as taking the time to jump on a Teamviewer session to trouble shoot, Amazing!
Chris thanks again, what a brilliant experience and full credit to your efforts on this, its contributors such as yourself that make this community and indeed the Smartthings ecosystem what it is.
(note to Heatmiester, hope you recognise the Chris’s contribution to your product!).
For an initial update, I have updated the Thermostat and Bridge DTH’s so they are more reliable and all functions should work properly again with the newest firmware. I have a few bits to finish on Alexa integration as although you can request the temperature, there is one bug I havent fixed, hence this is yet to come.
Some people have found the device is working with extra thermostats now, but its still a bit temperamental, so will keep investigating!
If you use the latest Thermostat Device Type Version (uploaded this morning) it is now fully compatible with Alexa. You can ask Alexa these two main things:
- Alexa, What is the temperature in X
- Alexa, Set X to Y degrees
(Where X = Thermostat name and Y is a number)
I actually expect this integration will be better than the one Heatmiser will shortly release, since with that integration you will need to say “Alexa, ask Heatmiser what is the temperature in X” or “Alexa, ask Heatmiser to set the temperature in X to Y”.
Also, when you do a temperature set, it will set the thermostat to this temperature until the next program change - hence if the next change is in 5 minutes, the temperature will change again 5 minutes later. It would be trivial to add extra intelligence to this operation (e.g. if less than 1 hour till the next change then force it to 1 hour), or to do something like default to 2 hours.
Action tiles integration is also working nicely thanks to the changes for Amazon Echo integration, hence I now have a tablet which has a tile displaying each room temperature and a +/- button next to it.
After some comms between me and Heatmiser they have coded the changes that I need to allow support for up to 32 thermostats on the bridge.
It is currently going through testing on their end and then they said they would get me to test it before release to the public. At the same time I will make a few changes to my code to support it, and hopefully a few nice features added in, to improve Alexa/Google Home integration.
Great work on this integration @cjcharles, just a quick question. After you connect the Node MCU to your wifi, it is no longer acting as a wifi access point?
Does it support WPA2? and will it be possible to update them as soon as the Krack fix is in (https://github.com/nodemcu/nodemcu-firmware/issues/2138) ?
The NodeMCU should stop broadcasting its own AP after you give it your WiFi details, since it does everything through your own WiFi. If you turn it on and wait a few minutes with no WiFi, it will automatically start broadcasting an AP again, in case the WiFi details have changed.
Yes, WPA2 support is good. I have done some testing of the KRACK fix which has been released, but it is currently only in Beta build from the Arduino library, and hence comes with some extra problems. I have spoken to the team about getting a full production build released with KRACK included, meanwhile they can work on finishing their Beta into a subsequent release. I hope to update on this within a week, latest (and I will add the Beta fix if they don’t release a full production build - after some more testing)
I have just tested the firmware changes that Heatmiser are just about to release (as a tester), and thankfully they allow up to 32 Neostats with my integration. Very pleased it is all working well and they have worked with me to improve their API. I will publish my updated code hopefully over the weekend (you just need to upgrade the device handlers not NodeMCU firmware). As I understand it Apple are currently blocking Heatmiser’s release to the public, but I think it will happen fairly soon!
As for the firmware changes to fix KRACK I hope to release these next week as I mentioned above (though still hoping that the Arduino NodeMCU library build gets updated to be official rather than me using a Beta, and it causing other bugs). As soon as it is updated I will release the fix, will take me 10 mins once they have.
I am very interested in getting in touch with you regarding Heatmiser Neo integration with SmartThings. However, I have not bee able to work how how to PM you? How can I send you a private message ?
@David_Fensom I guess there must be a rule on new members sending private messages. I have sent you one, and hopefully you can see that in the top right of the screen.