Heatmiser Edge Driver

I now have available a beta-level driver supporting the heatmiser neoHub and select devices including neoStat, neoPlug, and neoAir.

Detailed information is available in my readme file here.

The driver is available on my test channel here.

This driver has had limited testing by a few of our community members* during development, but it’s time now to open it up to a wider audience.

Note that this driver requires no other apps running on your LAN besides the heatmiser hub. It will auto-discover your neoHubs and create devices for each configured zone on your system.

You will need a “second generation” neoHub on the same subnet as your SmartThings hub.

Please read through the documentation before posting questions or attempting to install.

Function-wise, I’ve tried to cover the most common use cases, but if I’ve missed something or there are other device-types that need to be supported, that’s what the beta period is intended to identify.

I look forward to your feedback.

* A big THANK-YOU goes out to @fido, @skinnypope, and @Tim99 for their help during development of this driver. Without their patience, testing, and endless driver logs, this would have been impossible (I don’t have these devices myself!)


Thank you for this Tod, Heatmiser users will appreciate the ease of use the Smartthings app and your driver offer

1 Like

Adding my public thanks here too, great job Tod!

1 Like

Hi, first of all thank you for this development/testing and for doing it so quickly.

I got to the step where the token is accepted and it says Connected in the app but nothing shows in the Info and no new devices are created.
NeoHub 2nd gen firmware v2199. 6 neoStats v1 and one neoUltra. Smartthing Hub 2.
Any logs I can look at or send you, any other details? I don’t know where the live logs are gone now samsung got rid of the old ones so some instructions would be greatly appreciated…

1 Like

Hi - Thanks for testing the driver. We’ll have to figure out why it’s getting hung up for you.

You can download the Windows version of the SmartThings CLI in order to get driver logs. The install file is here, and there are other versions if you have a different OS.

Once you’ve installed it, open a command prompt window and navigate to the directory where you installed it. Try this command:

smartthings edge:drivers:installed

Being the first time using it, you may get a browser window opened up where you’ll need to sign in to your SmartThings account and give permission. But once you complete that, you can close that browser window and return to the command prompt window. There, you should see your command complete, showing a list of your installed drivers.

Now you can start logging with this command:

smartthings edge:drivers:logcat

You’ll be prompted for the IP address of your SmartThings hub and then choose the driver you want logs for (heatmiser v0.1Beta).

Now go to your SmartThings app and open the Controls screen of the neoHub device and use the ‘pull-down’ gesture to force a refresh. At that point, you should see output in the log output. Capture that all that log output and send to me in a direct message (rather than fill up the topic here). Please be sure to begin and end the log text that you paste in a message with three back-ticks (```). This will ensure readable formatting.

BTW, to learn more about other commands you can use with the CLI, see reference this link for more information.

At some point during testing the API token disappeared in heatmiser app and I can’t seem to generate a new one. Heatmiser’s response was:

“This is going to take some time to resolve.
if you are trying to connect a third party system please enable legacy mode and you wont need a token.
for normal use of the App you dont need generate a token”

Has anyone experienced anything similar?

@TAustin is it possible to connect the driver without the token like they suggest?


You should not need a new API key, in Tods write up it mentions the key can disapear from time to time, at present no one knows why BUT a previously created key in the Heatmiser app will continue to work even if not visible

I had the same issue with the Heatmiser app and a Heatmiser hub reboot ( unplug, plug back in ) sorted the issue out and the API key returned to the Heatmiser app so try that, nothing will get removed from your settings btw

Heatmiser support and understanding of how things work is … limited

The only way to connect to Heatmisers new API is with an API key created in the Heatmiser App

1 Like

@agatam @Tim99

When you are ready, I’ve done some further work on the neoStat-in-timer-mode device based on some guidance I got from heatmiser dev support. What I understand better now are the commands that are supposed to work to override the timer switch and monitor its state. What I confirmed is that you can’t “permanently” override the switch - you can only do it for a given duration. So I’ve reworked the device controls to support this, using a simple switch capability to reflect the timer switch state (not control it), and separate controls to override to on or off and provide a duration.

I’ve also fixed the profile selection so that it displays the configured timer profiles correctly and allows you to select which one to activate.

I haven’t pushed the driver update out yet, as I’ve been letting it run against my simulator, but so far so good. I’ll push it out when you get to a point where you can try it out.

Hi @TAustin, I am keen on getting the Timer part of the Heatmiser Driver working.

I’m a bit maxed this week with work. Can we do some testing next week?

Cheers Tim

Happy to test in the next 3 days, when ready, then I won’t have access to heatmiser for one week, then free to test some more

@agatam @Tim99

Sounds good. I’ll push it out now so you can try it whenever you can.


Version: 2023-10-09T22:26:53.085382172


  • Revised neoStat timer mode device per this post

Please report any issues here, but send any logs in a direct message or email to me at rpi.smartthings@gmail.com

@fido thanks, I confirm the old token works even if I can’t get it to reappear in the Heatmiser app

1 Like

Hi @TAustin, I have found time to do some testing on the Heatmiser beta driver.
Unfortinately it did not create any Neostats when i entered my token.


2023-10-24T18:19:22.473468524+00:00 INFO heatmiser v0.2Beta Token changed to: xxxxxxxxxxxxxxxxxxxxxxxxxx
2023-10-24T18:19:22.474121899+00:00 DEBUG heatmiser v0.2Beta Heatmiser neoHub device thread event handled
2023-10-24T18:19:22.536617691+00:00 DEBUG heatmiser v0.2Beta Retrieved hub IP:
2023-10-24T18:19:22.538465191+00:00 INFO heatmiser v0.2Beta Initializing Heatmiser neoHub at wss://
2023-10-24T18:19:23.225585441+00:00 INFO heatmiser v0.2Beta Heatmiser neoHub: WS Connect returned: ok=true, code=nil, headers=table: 0x19e5d58
2023-10-24T18:19:23.231934024+00:00 INFO heatmiser v0.2Beta <Device: dd5e3253-5f83-41f0-be1d-bcd7ed9d6121 (Heatmiser neoHub)> emitting event: {“component_id”:“main”,“state”:{“value”:“Connected”},“attribute_id”:“status”,“capability_id”:“partyvoice23922.status”}
2023-10-24T18:19:23.240201233+00:00 DEBUG heatmiser v0.2Beta Sending websocket message: {“message_type”:“hm_get_command_queue”,“message”:“{"token":"71a1d205-b064-46d5-a8d0-2c8ce76f7588","COMMANDS":[{"COMMAND":"{‘GET_SYSTEM’:0}","COMMANDID":1}]}”}
2023-10-24T18:19:23.245376399+00:00 INFO heatmiser v0.2Beta Message sent
2023-10-24T18:19:23.249630483+00:00 DEBUG heatmiser v0.2Beta driver device thread event handled
2023-10-24T18:19:23.506303649+00:00 DEBUG heatmiser v0.2Beta Sending websocket message: {“message_type”:“hm_get_command_queue”,“message”:“{"token":"71a1d205-b064-46d5-a8d0-2c8ce76f7588","COMMANDS":[{"COMMAND":"{‘GET_ENGINEERS’:0}","COMMANDID":2}]}”}
2023-10-24T18:19:23.511333983+00:00 INFO heatmiser v0.2Beta Message sent
2023-10-24T18:19:23.774259358+00:00 DEBUG heatmiser v0.2Beta Sending websocket message: {“message_type”:“hm_get_command_queue”,“message”:“{"token":"71a1d205-b064-46d5-a8d0-2c8ce76f7588","COMMANDS":[{"COMMAND":"{‘GET_PROFILES’:0}","COMMANDID":3}]}”}
2023-10-24T18:19:23.778747150+00:00 INFO heatmiser v0.2Beta Message sent
2023-10-24T18:19:24.042064483+00:00 DEBUG heatmiser v0.2Beta Sending websocket message: {“message_type”:“hm_get_command_queue”,“message”:“{"token":"71a1d205-b064-46d5-a8d0-2c8ce76f7588","COMMANDS":[{"COMMAND":"{‘GET_PROFILE_TIMERS’:0}","COMMANDID":4}]}”}
2023-10-24T18:19:24.047258275+00:00 INFO heatmiser v0.2Beta Message sent
2023-10-24T18:19:24.402525108+00:00 DEBUG heatmiser v0.2Beta Sending websocket message: {“message_type”:“hm_get_command_queue”,“message”:“{"token":"71a1d205-b064-46d5-a8d0-2c8ce76f7588","COMMANDS":[{"COMMAND":"{‘GET_ZONES’:0}","COMMANDID":5}]}”}
2023-10-24T18:19:24.408307608+00:00 DEBUG heatmiser v0.2Beta Heatmiser neoHub device thread event handled
2023-10-24T18:19:24.408858983+00:00 INFO heatmiser v0.2Beta Message sent

May be a token problem, since none of the commands sent were responded-to. Maybe another heatmiser hub reboot needed?

** Driver Update Notice **

Version: 2023-11-02T20:53:44.579792074

Change Summary:

  • New Settings option in neoStat devices to show combination of temperature and operating state (heating, idle) on the dashboard. Not that this will create a tile that is 4x normal size, and there are bugs in the iOS app that may make this option objectionable for iphone users (the temperature has the word “Connected” appended to it, and the icon for the operating state field is a permanent spinner; note that these issues are cosmetic, and don’t affect the functionality)
  • Added code to monitor the websocket pings coming from the heatmiser hub and if it has been over a minute without a ping received, then a re-connection retry will be started and run every 15 seconds. This is to try and address reported situations where the heatmiser hub is periodically dropping the connection.

Be aware, there appears to be some anomalies on the SmartThings platform right now when devices are supposed to be showing offline (they don’t). I’ve already inquired about this with the SmartThings team, so will update here as needed.

1 Like

Thanks Todd, I’ll give it a whirl.

Ps. Did you get my message?

Thank you @TAustin , generally working based on initial setup. Keep up the great work!

Question, I want create a routine to set a profile on my neoAir : Radiator stat based on outdoor temperature. I can’t do this on the THEN condition as no neoAir are visible (only my neoStats) . Is this expected?


You have to select profiles via the hub device. My understanding of the system is that it will determine what devices the profile is valid for, and update only those. But please let me know if that is not the case and we may have to make a change.

Hi @TAustin ,

So in my case I have 2 types of stats. A hardwired version (neoStat-e) and wireless battery powered (neoAir).

For reference this is the neoAir stat on Heatmiser website:

When I open neoStat tile on Smartthings I see profiles available to be set. But for neoAir its relatively empty (apart from temp and sync status).

On neoHub I can set profiles on my neoAir but cannot do the same via Smartthings integration. See neoAir: Kitchen display via Heatmiser app below:

What I was hoping to do is to setup profiles or recipe for various temperature conditions and use Smartthings to switch them around via routines.

Currently I manually update neoAir profiles in order to keep energy costs down and was hoping to automate this so I’m not reviewing outdoor temperature daily and assigning profiles.

I appreciate this may not be what was originally designed but was hoping I could tinker with settings based on conditions for my neoAir stats.