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

34 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?

Leave a reply to ilium007 Cancel reply