I have my own heatmiser neohub support, which i’ve just put here: https://github.com/RJ/heatmiser-neohub.py (functional, but work-in-progress)
I query the hub for all data and cache it, neostat device objects have a reference to the hub and read from its cached data. Any update calls are debounced / cached for 15secs, so the hub isn’t queried once for each neostat device.
Sort of supports neoplugs too, but no switch UI for them yet. (works on cli)
Away mode is implemented as “frost” on the neostats.
They correctly report the current operation (idle or heating).
Next step is probably a custom UI card that uses more heatmisery concepts instead of the generic hass thermostat UI.
Every smart thermostat seems to use different terminology for similar things, but perhaps not quite similar enough for a generic UI to be good enough. Would be nice to set the hold/target/frost (not even heatmiser docs name these consistently…) temps independently.
Hope this is useful to someone. Would be nice to get neohub support into hass for real some time. I’m still trying to get my head around how the async updates are supposed to work, and how to schedule them.