Dyson 360 Heurist Support

Hi,
I’ve recently purchased a Dyson Heurist and have tried intergrating this with the Dyson integration but am getting the error device cannot be found in my account. Looking at the github files there is no mention of the Heurist so I would imagine there is no support for it at this stage. Does anyone know if there are plans to update the repository so that this device could be linked in the future?

Thanks

Glad it’s not just me then :slight_smile:

Presumably the Python library is where we need to start:

Doesn’t look like the above has been updated for some time, there is a fork (below) however no support there either it would seem:

Whilst I might be wrong (will need to look into this further) the Dyson 360 is only supported on the ‘v1’ API - perhaps the Heurist is on the ‘v2’ API:

            for device in device_response.json():
                if is_360_eye_device(device):
                    dyson_device = Dyson360Eye(device)
                elif is_heating_device(device):
                    dyson_device = DysonPureHotCoolLink(device)
                else:
                    dyson_device = DysonPureCoolLink(device)
                devices.append(dyson_device)

            for device_v2 in device_v2_response.json():
                if is_dyson_pure_cool_device(device_v2):
                    devices.append(DysonPureCool(device_v2))
                elif is_heating_device_v2(device_v2):
                    devices.append(DysonPureHotCool(device_v2))

Using the below:

The Heurist returns on the v2 endpoint:

Auth Result
{
  "Account": "xxxxxx-2d46-4951-xxxxx-xxxxxx",
  "Password": "xxxxx/xxxxx/xxxxxx=="
}
API v1 endpoint
[]
API v2 endpoint
[
  {
    "Serial": "D8S-UK-xxxxxx",
    "Name": "Dyson 360 Heurist™",
    "Version": "RB02PR.01.05.003.0012",
    "LocalCredentials": "xxxxxxxx",
    "AutoUpdate": true,
    "NewVersionAvailable": false,
    "ProductType": "276",
    "ConnectionType": "wss"
  }
]

If I decide to keep the Heurist (still not 100% decided) I might take a look at this - might not be too much work to add it.

Seems the ProductType will need adding to const.py, to start with:

Then can probably cobble something together looking at the previous devices that have already been integrated.