jxg81 / homebridge-actron-que

Homebridge plugin for Actron Que Controller
Apache License 2.0
8 stars 0 forks source link

Support for ActronAir NEO controllers #12

Closed domalab closed 10 months ago

domalab commented 1 year ago

Is your feature request related to a problem? Please describe. Installed the ActronQue plugin and configured to connect to my ActronAir NEO Controller. Error logs show errors with API Validation Schema.

Describe the solution you'd like Is it possible to add support for ActronAir NEO controller

Describe alternatives you've considered Home Assistant ActronAir QUE/NEO Add-On works and I can pass the climate domain through HomeKit Integration.

jxg81 commented 1 year ago

Hey - i would need someone to provide access to the NEO API. I believe it is similar, but different to the Que API (i have access to this as my system at home uses Que). If you could provide me with login details i should be able to take a look, and if viable add support. Let me know.

domalab commented 1 year ago

How can I give you access to Neo API?

Not sure if this will help but it's the code for the ActronAir Que/Neo Home Assistant Add-On.

I noticed in the Que.cs file there's Que / Neo code that looks like it's talking to the APIs.

https://github.com/MikeJMcGuire/HASSAddons/tree/master/hass-actronque/hass-actronque

jxg81 commented 1 year ago

@ruaandeysel you would need to loan me your login for your AC. Without access to a live system i am not able to help unfortunately as i would need to be able to review the API data and test commands. Let me know if your interested. You're also welcome to contribute to the code yourself if thats your preference

domalab commented 1 year ago

Let me take a crack at it. I will reach out if I get stuck.

domalab commented 1 year ago

@ruaandeysel you would need to loan me your login for your AC. Without access to a live system i am not able to help unfortunately as i would need to be able to review the API data and test commands. Let me know if your interested. You're also welcome to contribute to the code yourself if thats your preference

@jxg81 Looks like the Que API and Neo API is the same except that NEO controller connects to following url instead of https://que.actronair.com.au.

https://nimbus.actronair.com.au

Is there a way to add this to current plug-in allow you to select between QUE and NEO controllers?

jxg81 commented 1 year ago

@ruaandeysel Yes, this would be viable to add as a config option however there are various bits of data i would need to validate. Due to the lack of reliability in the actron web service there is a bunch of validation that occurs to maintain stability within homekit. This includes some very strict schema validation of API responses. If i sent you a number of url paths to check would you be able to send me the output from the Neo API?

domalab commented 1 year ago

@ruaandeysel Yes, this would be viable to add as a config option however there are various bits of data i would need to validate. Due to the lack of reliability in the actron web service there is a bunch of validation that occurs to maintain stability within homekit. This includes some very strict schema validation of API responses.

If i sent you a number of url paths to check would you be able to send me the output from the Neo API?

@jxg81 Sure mate. Please send the URLs and I'll check for you asap.

jxg81 commented 1 year ago

Ok - let me collect up the URL sand will send them to you later this evening.

domalab commented 1 year ago

Ok - let me collect up the URL sand will send them to you later this evening.

@jxg81 please remember to send me the urls when you are free 😊

jxg81 commented 1 year ago

Note, you will need to login via the web portal in your browser first before trying these paths. All these paths extend the base path, which for action is que.actronair.com.au, based on the info you provided this would be nimbus.actronair.com.au.

/api/v0/client/ac-systems /api/v0/client/user-devices

You will need to replace the xxxx at the end of this next path with you actual system serial number. /api/v0/client/ac-systems/status/latest?serial=xxxx

domalab commented 1 year ago

/api/v0/client/ac-systems/status/latest?serial=xxxx

@jxg81 Here you go

/api/v0/client/ac-systems

{"isOnline":true,"timeSinceLastContact":"00:00:16.8600005","lastStatusUpdate":"2023-05-28T22:50:02+00:00","lastKnownState":{"<22H09780>":{"Cloud":{"ConnectionState":"Connected","FailedSentPackets":0,"ReceivedPackets":2206080,"SentPackets":28211718,"Connection":{"UpTime":{"SinceLastMCUReset_s":584375,"CurrentSession_s":361},"SessionCount":{"SinceLastMCUReset":93,"PriorToLastMCUReset":0},"ErrorCount":{"AbortedSockets":0,"LoopbackError":93,"DNSFailures":3}}},"Modbus":{"LinkPort":"Opened"},"NV_SystemSettings_Local":{"OTA":{"Mode":2,"CheckInterval":{"Mode1_Period_min":1440,"Mode2_TimeOfDay":"T02:00:00"},"LastCheck":{"Trigger":"NA","Time":"2023-05-28T02:00:47","Result":"NA","Images":[0]},"NextCheck":{"Time":"2023-05-30T02:14:27"}},"amMasterController":true,"isConfigured":true,"isLinkedToCloud":true},"SystemState":{"CpuId":"0x003C00213156500520313543","LastShutdownReason":"Software Trigger","MCUResetCountSincePOR":{"Total":6,"Remote":0},"HardFaultDebug":{"Type":"0","IncidentCount":0,"LastIncidentTime":"NA","CoreRegisterDump":{"R0":"0x00000000","R1":"0x00000000","R2":"0x00000000","R3":"0x00000000","R12":"0x00000000","LR":"0x00000000","PC":"0x00000000","PSR":"0x00000000"}},"RTOS":{"BlockingTaskMonitor":{"Id":0,"TimeStamp":"NA","Parameters":[0],"StackDump":[0]}},"LinkedToMaster":false,"WCFirmwareVersion":"NEO v2.1.0.9, Mar 31 2023 11:15:20","WCBootloaderVersion":"1.0.2.0","ExternalFlash":{"GFXAssets":{"Primary":{"Version":{"Installed":"1.1.0.2","Required":"1.1.0.2"},"CRC":"OK"},"Secondary":{"Version":{"Installed":"1.0.4.2","Required":"1.0.4.2"},"CRC":"OK"}},"FirmwareImages":{"STM32_NEO":"NA","PIC24_ODU":"No Image","PIC24_Inzone":"3.2","PIC24_CMI":"No Image","NRF52_BLECentral":"1.1.0.0","NRF52_BLEPeripheral1":"1.1.4.0","NRF52_BLEPeripheral2":"No Image","WINC1500":"No Image"}}},"SystemStatus_Local":{"Uptime_s":587564,"WifiStrength_of3":-61,"SensorInputs":{"SHTC1":{"RelativeHumidity_pc":42.0,"Temperature_oC":20.5},"RS485":{"AInput_Voltage":2.1,"BInput_Voltage":1.6,"Current":4.0},"PSU_Voltage":11.6,"AmbientLight":380.0,"Thermistors":{"NearAmbient_oC":20.5,"WiFi_oC":28.8,"MainPCB_oC":31.3,"RoomAmbient_oC":18.9},"TOF":{"Enabled":true,"Range_mm":-1.0}},"WiFi":{"FirmwareVersion":"19.6.1","DriverVersion":"19.3.0","ModuleMACAddress":"60:8A:10:B3:B5:99","ApSSID":"SuperHuis_IoT","ApBSSID":"D6:21:F9:8C:19:EA","RFChannel":6,"ConnectionCount":1,"DisconnectCount":0,"DeinitCount":0,"HardwareErrorCount":0},"TouchScreen":{"LastTouchTime":"2023-05-28T18:48:37","State":0,"XCoordinate":523,"YCoordinate":255,"I2CErrorCount":0,"ControllerModel":"Goodix GT9271"},"TouchButton":{"State":0,"I2CErrorCount":265},"GUI":{"ActiveScreen":"HOME"},"LTDC":{"FiFoUnderRunError":{"IncidentCount":0,"OffendingTask":"NONE","IncidentActive":false,"IncidentDuration_ms":0}},"BTLE":{"Central":{"Mode":"NEO2 BTLE","FirmwareVersion":"1.1.0.0"}}}},"ACStats":{"NV_FanRunTime_10m":0,"NV_FanRunTime_Total_10m":0},"AirconSystem":{"MasterWCModel":"NTW-1000","MasterSerial":"22H09780","MasterWCFirmwareVersion":"2.1.0.9","IndoorUnit":{"NV_ModelNumber":"EVA150S","SerialNumber":"748836","IndoorFW":"3.02","NV_SupportedFanModes":3,"NV_AutoFanEnabled":false},"OutdoorUnit":{"Family":"Fixed Speed: Classic","ModelNumber":"0","SerialNumber":"772902","SoftwareVersion":"1.05"},"WallControllers":[{"Address":"C1","Type":"NEO","FirmwareVersion":"2.1.0.9"},{"Address":"C2","Type":"NA","FirmwareVersion":"NA"},{"Address":"C3","Type":"NA","FirmwareVersion":"NA"}],"Sensors":[{"Designator":"C1","Detected":true,"Enabled":true,"Temperature_oC":18.8,"TemperatureOffset_oC":0.0},{"Designator":"C2","Detected":false,"Enabled":true,"Temperature_oC":"NA","TemperatureOffset_oC":0.0},{"Designator":"C3","Detected":false,"Enabled":true,"Temperature_oC":"NA","TemperatureOffset_oC":0.0},{"Designator":"RS1","Detected":false,"Enabled":true,"Temperature_oC":"NA","TemperatureOffset_oC":0.0},{"Designator":"RS2","Detected":false,"Enabled":true,"Temperature_oC":"NA","TemperatureOffset_oC":0.0},{"Designator":"RS3","Detected":false,"Enabled":true,"Temperature_oC":"NA","TemperatureOffset_oC":0.0}],"Peripherals":[{"LogicalAddress":1,"DeviceType":"Zone Sensor","SerialNumber":"23E01206","MACAddress":"BC:06:12:14:23:CB","ZoneAssignment":[2],"ConnectionState":"Connected","Firmware":{"InstalledVersion":{"NRF52":"1.1.4.0","EFM8":"0.1.4.0"},"Update":{"CurrentState":"Device Pairing","CurrentInstallProgress_pc":0,"Events":{"LastStartTime":"NA","LastCompleteTime":"NA","LastFailureTime":"NA","LastFailureStep":"Device Pairing"},"RunCount":0,"FailureCount":0}},"LastConnectionTime":"2023-05-22T14:44:21","ConnectionEventCounts":1,"RSSI":{"Local":-39,"Remote":0},"RemainingBatteryCapacity_pc":90,"SensorInputs":{"BatteyLevels":{"B1V5":1.567,"B3V3":1.499,"B4V5":1.54},"RS485":{"PSU_Voltage":-10.5},"SHTC1":{"RelativeHumidity_pc":53,"Temperature_oC":16.0},"Thermistors":{"Ambient_oC":15.1,"Wall_oC":15.1}}},{"LogicalAddress":2,"DeviceType":"Zone Sensor","SerialNumber":"23D05708","MACAddress":"BC:08:57:10:23:CB","ZoneAssignment":[2],"ConnectionState":"Connected","Firmware":{"InstalledVersion":{"NRF52":"1.1.4.0","EFM8":"0.1.4.0"},"Update":{"CurrentState":"Device Pairing","CurrentInstallProgress_pc":0,"Events":{"LastStartTime":"NA","LastCompleteTime":"NA","LastFailureTime":"NA","LastFailureStep":"Device Pairing"},"RunCount":0,"FailureCount":0}},"LastConnectionTime":"2023-05-22T14:44:16","ConnectionEventCounts":1,"RSSI":{"Local":-32,"Remote":0},"RemainingBatteryCapacity_pc":93,"SensorInputs":{"BatteyLevels":{"B1V5":1.584,"B3V3":1.518,"B4V5":1.552},"RS485":{"PSU_Voltage":-4.2},"SHTC1":{"RelativeHumidity_pc":47,"Temperature_oC":17.9},"Thermistors":{"Ambient_oC":17.4,"Wall_oC":16.3}}},{"LogicalAddress":3,"DeviceType":"Zone Sensor","SerialNumber":"23E03236","MACAddress":"BC:36:32:14:23:CB","ZoneAssignment":[2],"ConnectionState":"Connected","Firmware":{"InstalledVersion":{"NRF52":"1.1.4.0","EFM8":"0.1.4.0"},"Update":{"CurrentState":"Device Pairing","CurrentInstallProgress_pc":0,"Events":{"LastStartTime":"NA","LastCompleteTime":"NA","LastFailureTime":"NA","LastFailureStep":"Device Pairing"},"RunCount":0,"FailureCount":0}},"LastConnectionTime":"2023-05-22T14:44:26","ConnectionEventCounts":1,"RSSI":{"Local":-29,"Remote":0},"RemainingBatteryCapacity_pc":93,"SensorInputs":{"BatteyLevels":{"B1V5":1.576,"B3V3":1.52,"B4V5":1.54},"RS485":{"PSU_Voltage":-6.3},"SHTC1":{"RelativeHumidity_pc":47,"Temperature_oC":17.8},"Thermistors":{"Ambient_oC":17.5,"Wall_oC":16.0}}},{"LogicalAddress":4,"DeviceType":"Zone Sensor","SerialNumber":"23E03234","MACAddress":"BC:34:32:14:23:CB","ZoneAssignment":[2],"ConnectionState":"Connected","Firmware":{"InstalledVersion":{"NRF52":"1.1.4.0","EFM8":"0.1.4.0"},"Update":{"CurrentState":"Device Pairing","CurrentInstallProgress_pc":0,"Events":{"LastStartTime":"NA","LastCompleteTime":"NA","LastFailureTime":"NA","LastFailureStep":"Device Pairing"},"RunCount":0,"FailureCount":0}},"LastConnectionTime":"2023-05-22T14:44:31","ConnectionEventCounts":1,"RSSI":{"Local":-27,"Remote":0},"RemainingBatteryCapacity_pc":93,"SensorInputs":{"BatteyLevels":{"B1V5":1.585,"B3V3":1.533,"B4V5":1.542},"RS485":{"PSU_Voltage":0.0},"SHTC1":{"RelativeHumidity_pc":50,"Temperature_oC":16.1},"Thermistors":{"Ambient_oC":15.1,"Wall_oC":14.6}}}]},"Alerts":{"CleanFilter":false,"DRED":false,"Defrosting":false},"AwayModeSavedState":{"Master":{"TemperatureSetpoint_Cool_oC":26.0,"TemperatureSetpoint_Heat_oC":20.0}},"LiveAircon":{"AmRunningFan":true,"CanRunSystem":true,"CoilInlet":35.5,"CompressorCanRun":true,"CompressorCapacity":1,"CompressorChasingTemperature":22.0,"CompressorLiveTemperature":17.4,"CompressorMode":"OFF","DRM":false,"Defrost":false,"ErrCode":0,"FanDemandPC":0,"FanPWM":79,"FanRPM":1385,"IndoorUnitTemp":0,"ModbusErr":0,"OutdoorUnit":{"AmbTemp":0.0,"AmbientSensErr":true,"AutoMode":0,"CoilSenseErr":false,"CoilTemp":8.8,"CompMustRunOFF":false,"CompMustRunON":false,"CompPower":0,"CompRunningPWM":100,"CompSpeed":100.0,"CompressorMode":1,"CompressorOn":true,"CompressorSetSpeed":100,"CondPc":0.0,"ContFan":false,"DRM":0,"DRMModeTime_s":0,"DeIceConfirm_s":0,"DeIceHoldMax_s":0,"DeIceHold_s":0,"DeIceTime_s":0,"DefrostCycleNo":0,"DefrostMode":0,"DischargeTemp":0.0,"DriveAOCVersion":0,"DriveDefault":false,"DriveHP2":false,"DriveMOCVersion":0,"DriveTemp":0,"ECFanErr":false,"EEV":{"ControlStatus":0,"EvapPress":0,"EvapTemp":0,"Opening_pc":0,"SuperHeat":3000.0,"SuperHeatRef":3000},"EXV":false,"EXVErr":false,"ErrCode_1":0,"ErrCode_2":0,"ErrCode_3":0,"ErrCode_4":0,"ErrCode_5":0,"ErrFlag":0,"EvacMode":false,"FanMode":0,"FanSetSpeed":0,"FanSpeed":0,"Fault":false,"ForcedDefrost":false,"HPErr":false,"HPLPTripTime_s":0,"HPTripCount":0,"IndoorEEVTemp":0,"LPBypass_s":0,"LPErr":false,"LPTripCount":0,"Mode":0,"ODFan":0,"ODUDefault":false,"ODUSel":0,"OilReturn":false,"OilReturnEnable":false,"RemoteOnOff":false,"RevTimeout_s":0,"RevTimoutOn":false,"RevValue":false,"RoomTemp":17,"RoomTempODU":17,"RoomTempSet":17,"SFanErr":false,"ServiceStatusCodes":"NA","SetTempODU":0,"SuctP0":0.0,"SuctTemp":0.0,"SuctionSensErr":false,"SupplyPhaseA_Current":0.0,"SupplyPhaseB_Current":0.0,"SupplyPhaseC_Current":0.0,"SupplyVolatge_Vac":0,"TestModeCooling":false,"TestModeHeating":false,"EnvelopeProtection":false,"ReverseValvePosition":"heat","OverheatProtection":false},"SensorErr":0,"SystemOn":false,"isAntiFreeze":false},"MasterInfo":{"CanOperate":true,"CloudConnected":"Connected","CloudReachable":true,"LiveHumidity_pc":41.8,"LiveOutdoorTemp_oC":3000.0,"LiveTempHysteresis_oC":17.4,"LiveTemp_oC":17.4,"RemoteHumidity_pc":{"22H09780":41.8}},"NV_Limits":{"UserSetpoint_oC":{"MinGap":0,"VarianceAboveMasterCool":0,"VarianceAboveMasterHeat":0,"VarianceBelowMasterCool":0,"VarianceBelowMasterHeat":0,"setCool_Max":30,"setCool_Min":10,"setHeat_Max":30,"setHeat_Min":10}},"NV_QuickTimer":{"Master":[{"OriginalTime":"01:00","Status":"Stopped","Mode":"Timer","Time":"00:00:00","Zones":[true,true,true,true,true,true,true,true]}]},"NV_Schedule":{"Enabled":false,"Events":[]},"NV_SystemSettings":{"AFP_ChaseTemp_oC":0.0,"AFP_ExitTemp_oC":0.0,"AFP_StartTemp_oC":0.0,"AwayMode":{"TemperatureSetpoint_Cool_oC":26.0,"TemperatureSetpoint_Heat_oC":20.0,"TemperatureMinLimit_Cool_oC":26.0,"TemperatureMaxLimit_Cool_oC":36.0,"TemperatureMinLimit_Heat_oC":10.0,"TemperatureMaxLimit_Heat_oC":20.0},"Logs":{"snapshotTime_ms":900000},"Display":{"HomeScreen":{"BackgroundColour":"Black","Brightness":50},"ScreenSaver":{"Enabled":true,"Timeout_s":60,"Brightness":30},"ScreenOff":{"Enabled":true,"Timeout_s":60}},"ProxmitySensor":{"Enabled":true,"Range_cm":60},"LEDIndicators":{"WallGlow":{"Enabled":false},"OnOffButton":{"Enabled":true}},"Locks":{"PIN":"","RentryTimeout_s":0,"HomeScreen":{"ModeSelector":false,"TemperatureSetpoint":false,"FanSpeed":false,"OnOffButton":false},"MenuSystem":{"OptionsButton":false,"Timer":false,"Schedule":false,"WiFiAccount":false,"SystemSettings":false}},"SystemName":"NEO_22H09780","Time":{"SetAutomatically":true,"TimeMode24h":true,"Timezone":"Australia/Queensland","Timezone_Readable":"QLD, Australia"},"UpdateTime":"T02:00:00","UserACSettings":{"DefrostFanPWM":0,"FanAlertTime_h":200,"Fanspeed":{"High":99,"HighDefault":99,"HighRPM":1290,"Low":60,"LowDefault":60,"LowRPM":1290,"Med":75,"MedDefault":75,"MedRPM":1290}},"enableFastHeat":false,"restoreSettingsOnPowerUp":true},"RemoteZoneInfo":[{"CanOperate":true,"CommonZone":false,"LiveHumidity_pc":41.8,"LiveTempHysteresis_oC":15.1,"LiveTemp_oC":15.5,"NV_Exists":true,"NV_Title":"Master Bedroom","NV_VAV":false,"NV_ITC":false,"NV_ITD":false,"NV_IHD":true,"NV_amSetup":true,"LastZoneProtection":true,"Sensors":{"22H09780":{"Connected":false,"NV_Kind":"ZS","NV_isPaired":true,"NV_isViaRepeater":false,"Signal_of3":"-39","TX_Power":0,"lastRssi":"-39"}},"TemperatureSetpoint_Cool_oC":21.0,"TemperatureSetpoint_Heat_oC":21.0,"ZonePosition":0},{"CanOperate":true,"CommonZone":false,"LiveHumidity_pc":41.8,"LiveTempHysteresis_oC":17.4,"LiveTemp_oC":17.6,"NV_Exists":true,"NV_Title":"Guest Room","NV_VAV":false,"NV_ITC":false,"NV_ITD":false,"NV_IHD":true,"NV_amSetup":true,"LastZoneProtection":false,"Sensors":{"22H09780":{"Connected":false,"NV_Kind":"ZS","NV_isPaired":true,"NV_isViaRepeater":false,"Signal_of3":"-32","TX_Power":0,"lastRssi":"-32"}},"TemperatureSetpoint_Cool_oC":23.0,"TemperatureSetpoint_Heat_oC":23.0,"ZonePosition":0},{"CanOperate":true,"CommonZone":false,"LiveHumidity_pc":41.8,"LiveTempHysteresis_oC":17.5,"LiveTemp_oC":18.0,"NV_Exists":true,"NV_Title":"Office 1 ","NV_VAV":false,"NV_ITC":false,"NV_ITD":false,"NV_IHD":true,"NV_amSetup":true,"LastZoneProtection":false,"Sensors":{"22H09780":{"Connected":false,"NV_Kind":"ZS","NV_isPaired":true,"NV_isViaRepeater":false,"Signal_of3":"-29","TX_Power":0,"lastRssi":"-29"}},"TemperatureSetpoint_Cool_oC":23.0,"TemperatureSetpoint_Heat_oC":23.0,"ZonePosition":20},{"CanOperate":true,"CommonZone":false,"LiveHumidity_pc":41.8,"LiveTempHysteresis_oC":15.1,"LiveTemp_oC":15.4,"NV_Exists":true,"NV_Title":"Office 2","NV_VAV":false,"NV_ITC":false,"NV_ITD":false,"NV_IHD":true,"NV_amSetup":true,"LastZoneProtection":false,"Sensors":{"22H09780":{"Connected":false,"NV_Kind":"ZS","NV_isPaired":true,"NV_isViaRepeater":false,"Signal_of3":"-27","TX_Power":0,"lastRssi":"-27"}},"TemperatureSetpoint_Cool_oC":23.0,"TemperatureSetpoint_Heat_oC":23.0,"ZonePosition":0},{"CanOperate":true,"CommonZone":false,"LiveHumidity_pc":41.8,"LiveTempHysteresis_oC":18.8,"LiveTemp_oC":18.8,"NV_Exists":true,"NV_Title":"Downstairs","NV_VAV":false,"NV_ITC":false,"NV_ITD":false,"NV_IHD":true,"NV_amSetup":true,"LastZoneProtection":false,"Sensors":{"22H09780":{"Connected":false,"NV_Kind":"C1","NV_isPaired":false,"NV_isViaRepeater":false,"Signal_of3":"NA","TX_Power":0,"lastRssi":"NA"}},"TemperatureSetpoint_Cool_oC":21.0,"TemperatureSetpoint_Heat_oC":21.0,"ZonePosition":0},{"CanOperate":false,"CommonZone":false,"LiveHumidity_pc":41.8,"LiveTempHysteresis_oC":18.8,"LiveTemp_oC":18.8,"NV_Exists":false,"NV_Title":"Zone 6","NV_VAV":false,"NV_ITC":false,"NV_ITD":false,"NV_IHD":true,"NV_amSetup":true,"LastZoneProtection":false,"Sensors":{"22H09780":{"Connected":false,"NV_Kind":"C1","NV_isPaired":false,"NV_isViaRepeater":false,"Signal_of3":"NA","TX_Power":0,"lastRssi":"NA"}},"TemperatureSetpoint_Cool_oC":23.0,"TemperatureSetpoint_Heat_oC":23.0,"ZonePosition":20},{"CanOperate":false,"CommonZone":false,"LiveHumidity_pc":41.8,"LiveTempHysteresis_oC":18.8,"LiveTemp_oC":18.8,"NV_Exists":false,"NV_Title":"Zone 7","NV_VAV":false,"NV_ITC":false,"NV_ITD":false,"NV_IHD":true,"NV_amSetup":true,"LastZoneProtection":false,"Sensors":{"22H09780":{"Connected":false,"NV_Kind":"C1","NV_isPaired":false,"NV_isViaRepeater":false,"Signal_of3":"NA","TX_Power":0,"lastRssi":"NA"}},"TemperatureSetpoint_Cool_oC":23.0,"TemperatureSetpoint_Heat_oC":23.0,"ZonePosition":20},{"CanOperate":false,"CommonZone":false,"LiveHumidity_pc":41.8,"LiveTempHysteresis_oC":18.8,"LiveTemp_oC":18.8,"NV_Exists":false,"NV_Title":"Zone 8","NV_VAV":false,"NV_ITC":false,"NV_ITD":false,"NV_IHD":true,"NV_amSetup":true,"LastZoneProtection":false,"Sensors":{"22H09780":{"Connected":false,"NV_Kind":"C1","NV_isPaired":false,"NV_isViaRepeater":false,"Signal_of3":"NA","TX_Power":0,"lastRssi":"NA"}},"TemperatureSetpoint_Cool_oC":23.0,"TemperatureSetpoint_Heat_oC":23.0,"ZonePosition":20}],"DataLogger":{"EventCount":4096,"EventHistory":[{"Id":0,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:04","Event":"IOT State Change","Parameters":["Get Installer Details"]},{"Id":1,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:04","Event":"IOT Connect","Parameters":[0,0]},{"Id":2,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:04","Event":"IOT State Change","Parameters":["Connection Error"]},{"Id":3,"Task":"None","TimeStamp":"2023-05-29T08:44:04","Event":"TCPIP Socket Connect","Parameters":[1,0]},{"Id":4,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:04","Event":"IOT State Change","Parameters":["Start"]},{"Id":5,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:03","Event":"IOT State Change","Parameters":["Connect"]},{"Id":6,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:03","Event":"TCPIP Socket Connect","Parameters":[0,0]},{"Id":7,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:03","Event":"IOT State Change","Parameters":["Check Account Status"]},{"Id":8,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:03","Event":"IOT State Change","Parameters":["Get Session Token"]},{"Id":9,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:03","Event":"IOT State Change","Parameters":["Get Pairing Token"]},{"Id":10,"Task":"Cloud","TimeStamp":"2023-05-29T08:44:02","Event":"IOT State Change","Parameters":["Full Status Broadcast"]},{"Id":11,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:33","Event":"IOT State Change","Parameters":["Websocket Scheduler"]},{"Id":12,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:33","Event":"IOT Error","Parameters":["Connect"]},{"Id":13,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:32","Event":"IOT State Change","Parameters":["Connect"]},{"Id":14,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:32","Event":"IOT State Change","Parameters":["Check Account Status"]},{"Id":15,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:32","Event":"IOT State Change","Parameters":["Get Session Token"]},{"Id":16,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:32","Event":"IOT State Change","Parameters":["Get Pairing Token"]},{"Id":17,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:32","Event":"IOT Disconnect","Parameters":[0,0]},{"Id":18,"Task":"None","TimeStamp":"2023-05-29T08:43:32","Event":"TCPIP Socket Close","Parameters":[1,0]},{"Id":19,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:32","Event":"IOT State Change","Parameters":["Full Status Broadcast"]},{"Id":20,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:02","Event":"IOT State Change","Parameters":["Websocket Scheduler"]},{"Id":21,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:02","Event":"IOT Error","Parameters":["Unpair Cloud Account"]},{"Id":22,"Task":"Cloud","TimeStamp":"2023-05-29T08:43:02","Event":"IOT Loopback Fail","Parameters":[0,0]},{"Id":23,"Task":"None","TimeStamp":"2023-05-29T06:48:38","Event":"TCPIP Socket Error","Parameters":["Remote Disconnect"]},{"Id":24,"Task":"None","TimeStamp":"2023-05-29T06:48:38","Event":"TCPIP Socket Close","Parameters":[0,0]}]},"Servicing":{"NV_ErrorHistory":[{"Code":"E00","Description":"No Error","Severity":"No Error","Time":"2023-05-22T14:44:25"},{"Code":"E00","Description":"No Error","Severity":"No Error","Time":"2023-04-26T15:17:02"},{"Code":"E00","Description":"No Error","Severity":"No Error","Time":"2023-04-26T15:14:48"},{"Code":"E00","Description":"No Error","Severity":"No Error","Time":"2023-04-26T15:03:31"},{"Code":"E00","Description":"No Error","Severity":"No Error","Time":"2023-04-21T07:56:32"},{"Code":"E00","Description":"No Error","Severity":"No Error","Time":"2023-04-19T07:46:31"},{"Code":"E00","Description":"No Error","Severity":"No Error","Time":"2023-04-17T02:05:15"}]},"Installer":{"Id":"NA","Name":"NA","Email":"NA","Phone":"NA"},"UserAirconSettings":{"AfterHours":{"Enabled":false,"Duration":120},"ApplicationMode":"Residential","AwayMode":false,"EnabledZones":[false,false,true,false,false,false,false,false],"FanMode":"HIGH","Mode":"AUTO","NV_SavedZoneState":[false,false,true,false,false,false,false,false],"QuietMode":false,"QuietModeEnabled":false,"QuietModeActive":false,"ServiceReminder":{"Enabled":false,"Time":"NA"},"VFT":{"Airflow":708.0,"StaticPressure":275.0,"Supported":false,"Enabled":false,"SelfLearn":{"LastRunTime":"NA","CurrentState":"Idle","LastResult":"Idle","MaxStaticPressure":0}},"TurboMode":{"Supported":false,"Enabled":false},"TemperatureSetpoint_Cool_oC":22.0,"TemperatureSetpoint_Heat_oC":22.0,"isFastHeating":false,"isOn":false,"ChangeSrc":{"Mode":"Cloud","isOn":"Cloud"}}}}

/api/v0/client/user-devices

{"_links":{"user-device":[{"href":"/api/v0/client/user-devices/Crw4O_GgBJDxzplhuif17e0Z-H7uXGcPhc3MGY0b4Ns%3D"},{"href":"/api/v0/client/user-devices/fIdbrji2F72QdIbto76aYmZb_KRU2z_gF2604Bc2Jt8%3D"},{"href":"/api/v0/client/user-devices/yJPCMafTPij6myR63RV2CXnTgeVHMQmGHQtglDvkMzM%3D"}]},"_embedded":{"user-device":[{"type":"Ios","deviceName":"HASSActronQue","id":"Crw4O_1gXJPxzplhuif17e0Z-H7uXGcPhc3MGY0b4Ns=","issued":"2022-11-28T10:24:28.4172801+00:00","expires":"3022-11-28T10:24:28.4172801+00:00","_links":{"self":{"href":"/api/v0/client/user-devices/Crw4O_XgBJPxzplhuis17e0Z-H7uXGcPhc3MGY0b4Ns%3D"}}},{"type":"Ios","deviceName":"iPhone","id":"fIdbrji2F72QdIbto76aYm24_KRU2z_gF2604Bc2Jt8=","issued":"2022-11-28T00:43:45.3151006+00:00","expires":"3022-11-28T00:43:45.3151006+00:00","_links":{"self":{"href":"/api/v0/client/user-devices/fIdbrji2F72QdIbto76aJamB0_KRU2z_gF2604Bc2Jt8%3D"}}},{"type":"Ios","deviceName":"iPhone","id":"yJPCMafTPij6myR99RV2CXnTgeVHMQmGHQtglDvkMzM=","issued":"2023-05-22T05:08:43.7274127+00:00","expires":"3023-05-22T05:08:43.7274127+00:00","_links":{"self":{"href":"/api/v0/client/user-devices/yJPCMafTPij6myR99RV2CXnTgeVHMQmGHQtglDvkMzM%3D"}}}]}}

andrew-burgher commented 1 year ago

Hi. Would be great to see the Neo systems supported. Please let me know how I could help. Eg. Testing

jxg81 commented 1 year ago

Hey Andrew - i have taken a look at this; and although the API looks similar there are some clear differences. To make progress i would need a) access to the online portal of a system, and b) someone willing to test. Let me know and if you are keen we can work something out - that doesnt involve me remotely turning on and off your aircon at random times of day :) haha

andrew-burgher commented 1 year ago

Hi Julian - Happy to help - so can provide both (a) and (b).

From: Julian Greensmtih @.> Sent: Tuesday, August 1, 2023 12:41 PM To: jxg81/homebridge-actron-que @.> Cc: andrew-burgher @.>; Manual @.> Subject: Re: [jxg81/homebridge-actron-que] Support for ActronAir NEO controllers (Issue #12)

Hey Andrew - i have taken a look at this; and although the API looks similar there are some clear differences. To make progress i would need a) access to the online portal of a system, and b) someone willing to test. Let me know and if you are keen we can work something out - that doesnt involve me remotely turning on and off your aircon at random times of day :) haha

- Reply to this email directly, view it on GitHubhttps://github.com/jxg81/homebridge-actron-que/issues/12#issuecomment-1659478171, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXYY3WOLIBIU6UFKZU544HTXTBUCPANCNFSM6AAAAAAYDDXEJU. You are receiving this because you are subscribed to this thread.Message ID: @.**@.>>

bstillitano commented 1 year ago

@andrew-burgher I'm happy to give you access to my system. Please let me know how I can help.

bstillitano commented 1 year ago

Same to you @jxg81 and @ruaandeysel

bstillitano commented 1 year ago

For what it's worth also, the API for nimbus/neo requires that we add the param includeNeo=true when calling /api/v0/client/ac-systems. So the function private async getAcSystems(): Promise<void> { needs to change the url to const url : string = this.basePath + '/api/v0/client/ac-systems?includeNeo=true'; Screenshot 2023-09-10 at 12 29 13 am

I've got this forked, updated and "working" now over at https://github.com/bstillitano/homebridge-actron-neo and it appears to control the system properly. By "working" I mean that your commands will succeed but the plugin will throw a heap of log errors. This is because the schemas do not match up for the expected responses but these are just noise at this point. I will make sure all the schemas get updated to remove these warnings.

I've also published this to NPM so you can install it onto your homebridge system directly. I'll be making some updates and improvements over the coming days/weeks to make this a standalone neo plugin.

andrew-burgher commented 1 year ago

@bstillitano - Nice one. Will check it out!

bstillitano commented 1 year ago

@andrew-burgher thanks mate. As I did, still a few quirks to work out but I'll spend my spare time getting it going.

I'd also appreciate any help you can offer. I'm a Swift/iOS developer so learning TS as I go with this.

andrew-burgher commented 1 year ago

@bstillitano Happy to help. Will you be enabling ‘Issues’ on your forked repo? Or prefer feedback through another channel?

bstillitano commented 1 year ago

I'll enable issues over on my fork

domalab commented 1 year ago

@andrew-burgher thanks mate. As I did, still a few quirks to work out but I'll spend my spare time getting it going.

I'd also appreciate any help you can offer. I'm a Swift/iOS developer so learning TS as I go with this.

I installed it today.

I have 5 zones but can only see one zone.

I left the configs on default.

Any ideas?

bstillitano commented 1 year ago

@ruaandeysel as I've said, I plan on working on this and working out the quirks. Feel free to dig in and open a PR and/or issue on the repo.

jxg81 commented 10 months ago

This has been addressed via a fork produced by @bstillitano here: https://github.com/bstillitano/homebridge-actron-neo