mrbungle64/ecovacs-deebot.js

Retrieve values for air quality returns code 500

p08dev opened this issue ยท 10 comments

p08dev commented

Is there an existing issue for this?

  • I have searched the existing issues and no issue is describing my issue

The problem

The command returns the following error:
{"type":"LastError","value":{"error":"Request Timeout (command 'getAirQuality')","code":"500"}}

Screenshot 2023-11-22 at 09 26 18

With which model does the problem occur?

Other model (Please fill out the fields at the bottom of the form)

From which source you have installed the library?

GitHub

Version of the ecovacs-deebot.js library

0.9.5

Version of Node.js

Node-RED 16.0.2

Operating system

Linux

Anything in the logs that might be useful?

No response

Additional information

Airbot Z1

@p08dev

I will try to reproduce this issue when I receive my Airbot Z1 at the end of next week.

@p08dev

Please try version 0.4.10 ๐Ÿ˜‰

looks like ecovacs has changed some commands.. they send "getAirQuality0" instead of "getAirQuality" from the app

Hey @bhuebschen

looks like ecovacs has changed some commands.. they send "getAirQuality0" instead of "getAirQuality" from the app

Did you recognize it using mitmproxy?

i saw it last time i was looking for the problem... but now it's gone ๐Ÿ˜‚

{
    "app": {
        "id": "ecovacs"
    },
    "auth": {
        "realm": "ecouser.net",
        "resource": "***",
        "token": "***",
        "userid": "***",
        "with": "users"
    },
    "cmdName": "getAirQuality",
    "payload": {
        "body": {
            "data": {}
        },
        "header": {
            "pri": 1,
            "ts": "***",
            "tzm": ***,
            "ver": "0.0.50"
        }
    },
    "payloadType": "j",
    "td": "q",
    "toId": "***",
    "toRes": "***",
    "toType": "sdp1y1"
}

is currently sent from the App

i saw it last time i was looking for the problem... but now it's gone ๐Ÿ˜‚

{
    "app": {
        "id": "ecovacs"
    },
    "auth": {
        "realm": "ecouser.net",
        "resource": "***",
        "token": "***",
        "userid": "***",
        "with": "users"
    },
    "cmdName": "getAirQuality",
    "payload": {
        "body": {
            "data": {}
        },
        "header": {
            "pri": 1,
            "ts": "***",
            "tzm": ***,
            "ver": "0.0.50"
        }
    },
    "payloadType": "j",
    "td": "q",
    "toId": "***",
    "toRes": "***",
    "toType": "sdp1y1"
}

is currently sent from the App

but the command has an HTTP-answer, containing the desired data:

{
    "id": "oOsJ",
    "payloadType": "j",
    "resp": {
        "body": {
            "code": 0,
            "data": {
                "aq": 1,
                "hum": 32,
                "pm10": 1,
                "pm25": 1,
                "pm_10": 1,
                "tem": 21,
                "voc": 1
            },
            "msg": "ok"
        },
        "header": {
            "fwVer": "1.15.8",
            "hwVer": "0.1.1",
            "pri": 1,
            "ts": "***",
            "tzm": 60,
            "ver": "0.0.1",
            "wkVer": "0.1.54"
        }
    },
    "ret": "ok"
}

and it seems that it's not the only command that now sends it's answers via http

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

This issue has been automatically closed.