Elica snap AirQualityBalancer

I (and hopefully others) would be interested to integrate elica snap to HA. It’s a connected air purifier that connects to WiFi and can be remotely controlled with an app even from outside the lan.

Thanks

Thaks for your proposal, have 5 of those and it would be really useful to get an integration working on HA. Unfortuantely the Elica application has a bunch of issues, expecially the Android version. At the same time it looks the Air Purifier is not exposing an API library, tried to http to their IP addresses but got an outaded page with old info about the device, possibly an initial attempt to make it availabl to 3rd party apps, but so far no luck after a few years i got them
let’s hope thanks
Mike

1 Like

It looks like Elica are killing the app in the next week or so. I had the email a few weeks ago saying so :frowning:

I have been trying to figure out if any sort of local control is possible, but it looks like it will be tough without a firmware update.

The device seems to connect to a remote MQTT server that is controlled by Elica, and I haven’t been able to MITM the traffic to try to reverse engineer the protocol used. I can see the messages that are sent from the Elica app to their server, however.

The app submits a POST request to:
https://cloudprod.elica.com/eiot-api/v1/devices/DEVICE_ID/commands

The messages that are sent to the API look like this:

{
    "async": true,
    "capabilities": {
        "160": 3,
        "169": 0,
        "170": 15,
        "171": 1,
        "172": 0
    },
    "name": "capabilities",
    "timeout": 30000,
    "type": "Snap"
}

The fields in the message seem to be:
160: Integer from 0-6 for the mode/fan speed. I think that 0-3 are manual speeds.
169: Integer from 0-28 for the light colour
170: Integer from 0-16 for light brightness
171: 0 for night mode, 1 for normal mode
172: 0 for relax mode, 1 for normal mode

Some example captures:

Auto mode:

{
    "async": true,
    "capabilities": {
        "160": 1,
        "169": 0,
        "170": 15,
        "171": 1,
        "172": 0
    },
    "name": "capabilities",
    "timeout": 30000,
    "type": "Snap"
}

Dry mode:

{
    "async": true,
    "capabilities": {
        "160": 6,
        "169": 0,
        "170": 15,
        "171": 1,
        "172": 0
    },
    "name": "capabilities",
    "timeout": 30000,
    "type": "Snap"
}

Detox mode:

{
    "async": true,
    "capabilities": {
        "160": 5,
        "169": 0,
        "170": 15,
        "171": 1,
        "172": 0
    },
    "name": "capabilities",
    "timeout": 30000,
    "type": "Snap"
}

Yes, received the email, too. It’s a shame to hear that in a connected world, Elica decided to rely on remote control and drop connection.
I don’t have capabilities to make use of the info @malbertone provided, it would be great if some made use of them. For now I’ve been thinking of trying to clone the remote control and control elica snap with a esp32 radio module. However, it would be much better to use MQTT.