Actron Neo and Home Assistant

“I know why you’re here, Neo” – Trinity.

It looks like Actron have brought out another air conditioner control system – the Neo. It seems to be similar to the Que, although owning neither – I’m not entirely sure. The API definition certainly looks similar between them – similar, not identical.

I’ve started adapting the Actron Que add-on that I wrote for Home Assistant, to support both the Que and Neo API. I should have a version ready for testing in the next few days. Like the development of the Que add-on, someone has kindly reached out and offered to do some testing for me.

Update (12/02): The Que add-on can now discover Neo devices. Given the API endpoint though is different between the Que and the Neo, I’ve needed to add another configuration option so that you can specify if your system is a Que or a Neo (it defaults to Que for backward compatibility). I’ve just uploaded the 0.21 version of the add-on which should be stable (and relatively unchanged) for Que, and in beta for Neo. The change for the Que (and Neo) is actually a faster update when you make a change. So now if you change a zone switch, or temperature etc, you should see that reflected in HA much faster.

The installation instructions are listed on the Actron Que page.

Let me know how you go!

~ Mike

50 thoughts on “Actron Neo and Home Assistant

  1. Hi, very helpful info. Thank you.

    I’m
    Thinking about installing the NEO. Do you think it can work on HomeKit?

  2. Hello Mike

    Thanks a lot for you great work but I am having issues getting it running with neo system, followed your instructions and chose system type to be neo but I get error in the log, Error: Unable to process API response

    Any hints please? and what should I use for queruser and password, I just left them as is

    Cheers

    1. Hi Ahmed – you need to put your username and password for the Actron app into the addon, otherwise it’s unable to login as you and access your air conditioner. Let me know how you go.

      1. Mate, you are a legend, thanks a lot for your quick reply, I did and it seems no error in the add-on log, all good but yet I don’t have a climate entity under home assistant, I have my mqtt discovery on and have the prefix right, I am guessing that my issue is related to the dns host records as I did not do any of these host records at the dns server, I run my own windows 2003 dns server and tried to add the A records for the hosts you mentioned but the dns server always add my local lan windows domain as a prefix to it, so the neo system cannot reach my home assistant to create the entities despite there is no error in the add-on log, what do you suggest please regarding the DNS issue? Cheers matey

      2. Howdy – the Que/Neo add-on doesn’t require any DNS entries – in fact custom DNS entries would impact its ability to operate. The add-on is relatively foolproof, so as long as you have HA/MQTT discovery on with the default prefix (i.e. you shouldn’t need to configure a prefix), it will work. Have you checked the MQTT logs to see that the MQTT server is hearing from the add-on?

      3. Further to my previous reply mate, I would like to show the add-on log maybe it gives you a hint as I could not see any error

        18-06-2021 21:48:01.56 Service.Start() Build Date: Tue 15/12/2020
        18-06-2021 21:48:01.79 Configuration.GetConfiguration() Read MQTTUser
        18-06-2021 21:48:01.79 MQTTUser: mqttu
        18-06-2021 21:48:01.79 Configuration.GetConfiguration() Read MQTTPassword
        18-06-2021 21:48:01.79 MQTTPassword: *******
        18-06-2021 21:48:01.79 Configuration.GetConfiguration() Read MQTTBroker
        18-06-2021 21:48:01.79 MQTTBroker: core-mosquitto
        18-06-2021 21:48:01.79 Configuration.GetConfiguration() Read MQTTTLS
        18-06-2021 21:48:01.79 MQTTTLS: True
        18-06-2021 21:48:01.79 Configuration.GetConfiguration() Read PerZoneControls
        18-06-2021 21:48:01.79 PerZoneControls: True
        18-06-2021 21:48:01.80 Configuration.GetConfiguration() Read PollInterval
        18-06-2021 21:48:01.80 PollInterval: 30
        18-06-2021 21:48:01.80 Configuration.GetConfiguration() Read QueUser
        18-06-2021 21:48:01.80 QueUser: ahmed@free-islam.com
        18-06-2021 21:48:01.80 Configuration.GetConfiguration() Read QuePassword
        18-06-2021 21:48:01.80 QuePassword: *******
        18-06-2021 21:48:01.80 Configuration.GetConfiguration() Read QueSerial
        18-06-2021 21:48:01.80 Configuration.GetConfiguration() Read SystemType
        18-06-2021 21:48:01.80 SystemType: neo
        18-06-2021 21:48:01.82 MQTT.StartMQTT()
        18-06-2021 21:48:01.82 MQTT.StartMQTT() Host: core-mosquitto
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ApDisconnectCount
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.SocketErrorCount
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ModuleHardwareErrorCount
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.CloudLoopbackTimeoutCount
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.TouchButton.I2CErrorCount
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.TouchScreen.I2CErrorCount
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.Uptime_s
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentCount
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.OffendingTask
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentActive
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentDuration_ms
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Event Type: loopback-received
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Event Type: loopback-received
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Event Type: status-change-broadcast
        18-06-2021 21:48:08.43 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: MasterInfo.LiveTemp_oC
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: MasterInfo.LiveHumidity_pc
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WifiStrength_of3
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ModuleDeinitCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ApConnectionCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ApDisconnectCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.SocketErrorCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ModuleHardwareErrorCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.CloudLoopbackTimeoutCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.TouchButton.I2CErrorCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.TouchScreen.I2CErrorCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.Uptime_s
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.OffendingTask
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentActive
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentDuration_ms
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Event Type: loopback-received
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Event Type: loopback-received
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Event Type: status-change-broadcast
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: MasterInfo.LiveTemp_oC
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: MasterInfo.LiveHumidity_pc
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WifiStrength_of3
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ModuleDeinitCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ApConnectionCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ApDisconnectCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.SocketErrorCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.ModuleHardwareErrorCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.WiFi.CloudLoopbackTimeoutCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.TouchButton.I2CErrorCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.TouchScreen.I2CErrorCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.Uptime_s
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentCount
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.OffendingTask
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentActive
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Incremental Update: .SystemStatus_Local.LTDC.FiFoUnderRunError.IncidentDuration_ms
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Event Type: loopback-received
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Event Type: full-status-broadcast
        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Event Type: loopback-received
        18-06-2021 21:48:08.46 Que.MQTTUpdateData()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/fanmode
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone1
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone1/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone1/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone1/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone2
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone2/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone2/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone2/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone3
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone3/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone3/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone3/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone4
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone4/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone4/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone4/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone5
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone5/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone5/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone5/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone6
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone6/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone6/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone6/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone7
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone7/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone7/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone7/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone8
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone8/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone8/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone8/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/compressor
        18-06-2021 21:48:08.47 MQTT.SendMessage() hass-actronque/status
        18-06-2021 21:48:12.51 Que.ProcessQueue()
        18-06-2021 21:48:12.51 Que.ProcessQueue() Complete
        18-06-2021 21:48:22.52 Que.ProcessQueue()
        18-06-2021 21:48:22.52 Que.ProcessQueue() Complete
        18-06-2021 21:48:32.52 Que.ProcessQueue()
        18-06-2021 21:48:32.52 Que.ProcessQueue() Complete

      4. See mate last bit of the addon log

        18-06-2021 21:48:08.44 Que.GetAirConditionerEvents() [0x00000003] Event Type: loopback-received
        18-06-2021 21:48:08.46 Que.MQTTUpdateData()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/fanmode
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone1
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone1/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone1/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone1/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone2
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone2/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone2/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone2/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone3
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone3/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone3/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone3/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone4
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone4/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone4/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone4/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone5
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone5/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone5/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone5/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone6
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone6/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone6/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone6/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone7
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone7/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone7/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone7/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone8
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone8/temperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone8/mode
        18-06-2021 21:48:08.46 Que.GetSetTemperature()
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/zone8/settemperature
        18-06-2021 21:48:08.46 MQTT.SendMessage() actronque/compressor
        18-06-2021 21:48:08.47 MQTT.SendMessage() hass-actronque/status
        18-06-2021 21:48:12.51 Que.ProcessQueue()
        18-06-2021 21:48:12.51 Que.ProcessQueue() Complete
        18-06-2021 21:48:22.52 Que.ProcessQueue()
        18-06-2021 21:48:22.52 Que.ProcessQueue() Complete
        18-06-2021 21:48:32.52 Que.ProcessQueue()
        18-06-2021 21:48:32.52 Que.ProcessQueue() Complete

  3. So I got it all set up in a standalone container, I can see in MQTT Explorer that its connected and I can see my 4 zones and temperatures etc. HA has auto discovered the entities but that all say ‘unavailable’. In mqtt I can see all the actual data matches the iOS app data for my Neo Control.

    In teh homeassisant topic under ‘switch’ I can see ‘actonque’ with all the zone data. There are two other mqtt topics ‘actronque’ and ‘hass-actronque’ that sit up at the same level as ‘homeassistant’

    No idea why its showing as unavailable in HA / Lovelace. Would be so much easier if I could post a screenshot in here :D.

  4. Hey Mike, recently set this up with my new Que system and I absolutely love it. Thanks so much for an amazing addon.
    I have a zone that has two temperature sensors… do you know if it might be at all possible to optionally pull the temp/humidity data from these sensors individually, rather than the average for the two?
    I am assuming likely not, but figured it doesn’t hurt to ask.
    Thanks a bunch.

    1. Hi Jase – thanks for the feedback! A zone with two temperature sensors – that’s interesting, I’ll need to get you to explain that one for me. I’ll contact you separately and try get some of the data for your AC so I can see what it looks like with multiple sensors.

  5. I created my HA instance just so i can use this Add on. Thank you Mike!!
    I’m only couple of days in, trying to automate the Zones on/off when they hit temp. is this possible?

    1. Hi Adam – great to hear. Yep absolutely you can. If you have a look at HA Automations, you can set triggers – i.e. temperature reached, and then call actions like changing a zone switch.

  6. Thanks for all the info here Mike, I notice Actron also offer a BMS modbus card for some of their systems and I see HA also has a modbus integration. I was thinking of forgoing the Neo (cloud based) control and going this route for local HA control of an Actron Advance system, just wondering you had any experience with such a setup ?

      1. In case anyone finds this useful, I recently had an Actron Advance system installed with the modbus card option (part number ICUNO-MOD) rather than opting for a Neo controller option. This works great with with home assistant using the modbus climates, sensors and switches integration. I used a cheap modbus RTU TCP converter (a NB114 serial server) but I’m sure you could do the same ESP8266 or ESP32. There is a PDF that describes the modbus registers on the Actron documentation website. For reference I’ve posted my yaml config on the HA Actron Air Conditioner add-on thread.

  7. Hey Mike; great work.
    I’m doing a similar piece of work but for HomeKit; very much inspired by your addon.

    I’m curious on why you went the route of implementing the addon as a Neo/Que client to the cloud services vs your previous addon that intercepted the cloud services, mocking (in a way) the server requests/response and ran locally?

    I can see pros/cons to both methods, but I like the idea that you can control the thermostat without going out of your local network: more secure and works if external internet is down.

    1. Howdy – thanks. I created the add-on originally as I first installed HA to integrate with HomeKit.

      The Connect and the Que/Neo are substantially different. The cloud service is extremely simple to impersonate with the Connect, as there’s 3 or 4 variables to be sent back and forth, and the Connect uses HTTP instead of HTTPS.

      The Que – I’m assuming – would be HTTPS based and validating the certificate of the cloud service. That alone would prevent any attempt to impersonate it locally – and I’d certainly not be advising people to tamper with their Que system to get around that. There’s also 100s of pieces of data sent back and forth, and its simply not worth the effort to reproduce when the API can be called relatively easily.

      It’s not more secure to do it locally and avoid the cloud service, but I agree it would be more reliable.

  8. Hi Mike

    I’ve just installed this. Everything is running, and I can see the data in MQTT Explorer, but HA is not showing any climate-related entities. What do you need to debug? Happy to do this via email.

    1. Follow up on this. I didn’t realise that I also had to install the MQTT integration for the devices to be discovered. That is done, but all the actron entities are “unavailable”

      1. Hi Mike. Turns out that I had turned on TLS on the MQTT server. Nothing in the Neo add-on logs indicated this was a problem; I only managed to fix it by trial and error.

        Everything is now working fine. Thanks for this great add-on!

  9. Hi Mike, spoke with you on Github with the issue of HA add-on not loading past getting configuration.

    I have attached the logs for reference:
    07-01-2023 15:30:12.91 Service.Start() Build Date: Thu 05/01/2023
    07-01-2023 15:30:13.60 Configuration.GetConfiguration() Read MQTTUser
    07-01-2023 15:30:13.60 MQTTUser: *******
    07-01-2023 15:30:13.60 Configuration.GetConfiguration() Read MQTTPassword
    07-01-2023 15:30:13.60 MQTTPassword: *******
    07-01-2023 15:30:13.60 Configuration.GetConfiguration() Read MQTTBroker
    07-01-2023 15:30:13.60 MQTTBroker: core-mosquitto
    07-01-2023 15:30:13.61 Configuration.GetConfiguration() Read MQTTTLS
    07-01-2023 15:30:13.61 MQTTTLS: True
    07-01-2023 15:30:13.61 Configuration.GetConfiguration() Read PerZoneControls
    07-01-2023 15:30:13.61 PerZoneControls: True
    07-01-2023 15:30:13.61 Configuration.GetConfiguration() Read PerZoneSensors
    07-01-2023 15:30:13.61 PerZoneSensors: False
    07-01-2023 15:30:13.61 Configuration.GetConfiguration() Read PollInterval
    07-01-2023 15:30:13.61 PollInterval: 30
    07-01-2023 15:30:13.61 Configuration.GetConfiguration() Read QueUser
    07-01-2023 15:30:13.61 QueUser: *********@gmail.com
    07-01-2023 15:30:13.61 Configuration.GetConfiguration() Read QuePassword
    07-01-2023 15:30:13.61 QuePassword: *******
    07-01-2023 15:30:13.61 Configuration.GetConfiguration() Read QueSerial
    07-01-2023 15:30:13.61 Configuration.GetConfiguration() Read SystemType
    07-01-2023 15:30:13.61 SystemType: que

    Thanks for creating this add on and helping out!

  10. Hi Mike,

    I am having a bit of trouble connecting my Actron AirCon with Home Assistant. I get the following in the logs:

    Que.GeneratePairingToken() [0x0000004E] Error (System.IO.IOException): Unable to process API HTTP response. Unable to read data from the transport connection: Connection reset by peer.

    I am not really sure what else I can provide.
    The NEO Connect app works fine, the wall panel connects fine to the Android app.
    I did get it connected to HA for a very short time, but it was read-only and I couldn’t turn the aircon unit on / off or open/close any zones.
    I have tried a combo of settings but nothing seems to come up in MQTT anymore.
    I did have the DNS redirects in place as per the instructions for the “Actron Connect” models. and with these DNS redirects in place this is when HA picked up the aircon unit.
    Do the DNS redirects need to be in place for the NEO/Que units?
    Is there anything else you need from me to hopefully get this working.
    Cheers
    Laurie

    1. I had no way to edit, but wanted to say I have it working. I was inadvertently blocking traffic to the *.actronair.com.au domain.
      I was using the instructions for the ActronAir Connect systems and re-routing traffic, instead of the API. I realised my mistake and removed the DNS records, but then didnt remove the blocks to the actron domain.
      Seems to be all working now!
      Thanks for your efforts on this one Mike.
      Cheers,
      Laurie

  11. Hi Mike,
    Had our Actron Neo ducted AC system installed today and it worked with your add-on straight away after setup. Picked up all the zones and sensors with full control but sensor battery levels are unavailable and not sure what the position sensor is representing, is it the zone motor damper? It works great though.
    Thank you so much for developing this and making it available.
    Luc

  12. I was wondering if you had ever looked into pulling the power consumption data from the controller? This would be incredibly useful .

  13. Hi, just getting into this great integration. I notice when I set zones on (or off) they turn back off multiple times before finally staying set. The Actron app and remote wall units do something similar so it is not a HA issue. Anyone got a work around?

      1. I only get the issue in Home Assistant. On the wall controller and on the app changing zones work fine.

        My only workaround is used in my automation. I have a script that closes 3 zones of open and open 4 zones of closed. I run it a few times every 10 seconds.

      2. Same here too, issue only with HA zones and Wall controller works fine.

        Do you mind sharing the script please? I would like to see how I can customise it. I have 4 zones and we use everything now and then daily, so I had work out on how to do that.

  14. Hi. I have a dumb question. I have Neo with multiple zones. And I use zigbee temperature sensors in all zones (The ones that come with actron controllers are not in all rooms). Is it possible to get actron to read zone temperatures from zigbee sensors?

  15. On the Neo I’ve had some issues with the sensors not showing the battery level. Posting here so you have email contact for my Github issue.

    I’ve forked the repo and have done some work towards getting additional Neo info available, plus early work on the batteries (but the official dev container broke logging, so I’ll have to move it over to my production server).

    1. I’ve got the batteries working for zone sensors – neo treats each sensor as a peripheral and separates them from the zone. I’ve included both the zone name and the sensor ID (on the back of the sensor) in the HA naming. I haven’t submitted a pull request yet, have only just finished debugging and cleaning up. I’ll liaise with Mike about this.

      There are also a whole load of additional diagnostic things that neo has available that I’m interested in (compressor pwm, defrost mode, filter change alert).

  16. For those that have NEO and NEO Sense. Do you have PerZoneControls True or PerZoneSensors True?

    With the NEO Sense you can set the temperature per zone, but if you just have PerZoneSensors True there is no way to set the target temp for that zone. Do I need to switch to PerZoneControls with the NEO?

    Also, would it be possible to detect what zones actually have individual sensors? I have 7 zones, but currently only have 4 NEO Sense sensors.

  17. Hi, I am trying to integrate my Neo into HA. i keep getting this error in my log on the Actron Addon:

    26-08-2024 11:25:20.41 MQTT.ConnectionProcessor() Unable to connect to MQTT broker: Error while connecting with host ‘core-mosquitto:8883’. Connection refused

    I assume it is a setting in the MQTT addon but i can’t figure out what. Any help woudl be appreciated. thanks,

  18. Thank you for your reply Mike.

    Under the network section in MQTT the NOrmal MQTT with SSL is 8883.

    Do I need to have a cafile or anything?

  19. For the past 48hrs, my QUE (and I believe others’ units) have been showing as Unavailable.Here is the log:Que.GetAirConditionerEvents() [0x000030C3] Error: Unable to process API response: Unauthorized/Unauthorized15-07-2025 16:40:24.71 Que.GenerateBearerToken() [0x000030C4] Base: https://que.actronair.com.au/api/v0/oauth/token15-07-2025 16:40:25.23 Que.GenerateBearerToken() [0x000030C4] Responded (Encoding N/A, 643 bytes)Gavng touched nothing to break it (and after it working flawlessly for 3+ years), I have checkedhttps://que.actronair.com.au/statusand everything shows as online except for this:Data Processing: OfflineIs this related, or is it truly an api/token issue?Edit: Official app still works (Android)

Leave a reply to rogchap Cancel reply