bwp91 / homebridge-deebot

Homebridge plugin to integrate ECOVACS Deebot devices into HomeKit.
MIT License
64 stars 4 forks source link

Spot areas not showing up in Eve / Wrong initialization of spot areas when using two bot devices #160

Open Ben-Bitdiddle-DE opened 6 months ago

Ben-Bitdiddle-DE commented 6 months ago

I was trying to setup my deebot configuration within homebridge. Plugin installs without errors and does find my deebots (i have two in my account), and homebridge buttons for "Clean", "Go Charge", "Charging status" do appear for both deebots.

They also seem to work as indended.

(1) Then i was trying to get Eve running for predefined rooms (spot areas). First of all it seems that "hideMotionSensor": false has to be set, as the predefined area infos are hidden behind that motion entry within Eve. It makes sense after digging through it, but maybe a hint somewhere in the setup docs could clarify that, to save one from needless struggle.

(2) After having found that i encountered, that the plugin (it seems) only reads the spot areas of the first configured device, or does not correctly reset the firsts values for the following device(s). So the spot areas are set to the same value or a mix of both for each device.

{
    "name": "Deebot",
    "countryCode": "DE",
    "username": "xxxx",
    "password": "xxxx",
    "devices": [
        {
            "label": "Deebot_EG",
            "deviceId": "b55ed940-6ce0-494d-9a0b-9bdb6d5d0715",
            "pollInterval": 30,
            "hideMotionSensor": false,
            "supportTrueDetect": true,
            "areaType1": "spotArea",
            "spotAreaIDs1": "9",
            "areaNote1": "K",
            "areaType2": "spotArea",
            "spotAreaIDs2": "10",
            "areaNote2": "EZ",
            "areaType3": "spotArea",
            "spotAreaIDs3": "11",
            "areaNote3": "Balkon",
            "areaType4": "spotArea",
            "spotAreaIDs4": "1",
            "areaNote4": "D",
            "areaType5": "spotArea",
            "spotAreaIDs5": "2",
            "areaNote5": "AZ",
            "areaType6": "spotArea",
            "spotAreaIDs6": "5",
            "areaNote6": "WC",
            "areaType7": "spotArea",
            "spotAreaIDs7": "4",
            "areaNote7": "WZ",
            "areaType8": "spotArea",
            "spotAreaIDs8": "6",
            "areaNote8": "Couch"
        },
        {
            "label": "Deebot_OG",
            "deviceId": "69e1ebd9-2722-4612-92c2-10723845aa0e",
            "pollInterval": 30,
            "hideMotionSensor": false,
            "supportTrueDetect": true,
            "areaType1": "spotArea",
            "spotAreaIDs1": "0",
            "areaNote1": "AZ",
            "areaType2": "spotArea",
            "spotAreaIDs2": "3",
            "areaNote2": "D",
            "areaType3": "spotArea",
            "spotAreaIDs3": "2",
            "areaNote3": "KZ",
            "areaType4": "spotArea",
            "spotAreaIDs4": "4",
            "areaNote4": "BZ",
            "areaType5": "spotArea",
            "spotAreaIDs5": "5",
            "areaNote5": "SZ"
        }
    ],
    "platform": "Deebot"
}

results in the following logs:

Line 18131: [1/31/2024, 1:06:04 PM] [Deebot] [Klaus Feger OG]  initialising with options: {"hideMotionSensor":false,"motionDuration":30,"lowBattThreshold":15,"showMotionLowBatt":false,"showBattHumidity":false,"showAirDryingSwitch":"presetting","supportTrueDetect":true,"commandType1":"","spotAreaCommand1":"","customAreaCommand1":"","commandNote1":"","commandType2":"","spotAreaCommand2":"","customAreaCommand2":"","commandNote2":"","commandType3":"","spotAreaCommand3":"","customAreaCommand3":"","commandNote3":"","commandType4":"","spotAreaCommand4":"","customAreaCommand4":"","commandNote4":"","commandType5":"","spotAreaCommand5":"","customAreaCommand5":"","commandNote5":"","commandType6":"","spotAreaCommand6":"","customAreaCommand6":"","commandNote6":"","commandType7":"","spotAreaCommand7":"","customAreaCommand7":"","commandNote7":"","commandType8":"","spotAreaCommand8":"","customAreaCommand8":"","commandNote8":"","commandType9":"","spotAreaCommand9":"","customAreaCommand9":"","commandNote9":"","commandType10":"","spotAreaCommand10":"","customAreaCommand10":"","commandNote10":"","commandType11":"","spotAreaCommand11":"","customAreaCommand11":"","commandNote11":"","commandType12":"","spotAreaCommand12":"","customAreaCommand12":"","commandNote12":"","commandType13":"","spotAreaCommand13":"","customAreaCommand13":"","commandNote13":"","commandType14":"","spotAreaCommand14":"","customAreaCommand14":"","commandNote14":"","commandType15":"","spotAreaCommand15":"","customAreaCommand15":"","commandNote15":"","pollInterval":30,"areaType1":"spotArea","spotAreaIDs1":"0","areaType2":"spotArea","spotAreaIDs2":"3","areaType3":"spotArea","spotAreaIDs3":"2","areaType4":"spotArea","spotAreaIDs4":"4","areaType5":"spotArea","spotAreaIDs5":"5","areaType6":"spotArea","spotAreaIDs6":"5","areaType7":"spotArea","spotAreaIDs7":"4","areaType8":"spotArea","spotAreaIDs8":"6"}.
Line 18134: [1/31/2024, 1:06:04 PM] [Deebot] [Karl Schrubb EG] initialising with options: {"hideMotionSensor":false,"motionDuration":30,"lowBattThreshold":15,"showMotionLowBatt":false,"showBattHumidity":false,"showAirDryingSwitch":"presetting","supportTrueDetect":true,"commandType1":"","spotAreaCommand1":"","customAreaCommand1":"","commandNote1":"","commandType2":"","spotAreaCommand2":"","customAreaCommand2":"","commandNote2":"","commandType3":"","spotAreaCommand3":"","customAreaCommand3":"","commandNote3":"","commandType4":"","spotAreaCommand4":"","customAreaCommand4":"","commandNote4":"","commandType5":"","spotAreaCommand5":"","customAreaCommand5":"","commandNote5":"","commandType6":"","spotAreaCommand6":"","customAreaCommand6":"","commandNote6":"","commandType7":"","spotAreaCommand7":"","customAreaCommand7":"","commandNote7":"","commandType8":"","spotAreaCommand8":"","customAreaCommand8":"","commandNote8":"","commandType9":"","spotAreaCommand9":"","customAreaCommand9":"","commandNote9":"","commandType10":"","spotAreaCommand10":"","customAreaCommand10":"","commandNote10":"","commandType11":"","spotAreaCommand11":"","customAreaCommand11":"","commandNote11":"","commandType12":"","spotAreaCommand12":"","customAreaCommand12":"","commandNote12":"","commandType13":"","spotAreaCommand13":"","customAreaCommand13":"","commandNote13":"","commandType14":"","spotAreaCommand14":"","customAreaCommand14":"","commandNote14":"","commandType15":"","spotAreaCommand15":"","customAreaCommand15":"","commandNote15":"","pollInterval":30,"areaType1":"spotArea","spotAreaIDs1":"0","areaType2":"spotArea","spotAreaIDs2":"3","areaType3":"spotArea","spotAreaIDs3":"2","areaType4":"spotArea","spotAreaIDs4":"4","areaType5":"spotArea","spotAreaIDs5":"5","areaType6":"spotArea","spotAreaIDs6":"5","areaType7":"spotArea","spotAreaIDs7":"4","areaType8":"spotArea","spotAreaIDs8":"6"}

which is identical for both devices (and resulting from the first configured device).

Hiding the first device

{
    "name": "Deebot",
    "countryCode": "DE",
    "username": "xxxx",
    "password": "xxxx",
    "devices": [
        {
            "label": "Deebot_EG",
            "deviceId": "b55ed940-6ce0-494d-9a0b-9bdb6d5d0715",
            **"ignoreDevice": true,**
            "pollInterval": 30,
            "hideMotionSensor": false,
            "supportTrueDetect": true,
            "areaType1": "spotArea",
            "spotAreaIDs1": "9",
            "areaNote1": "K",
            "areaType2": "spotArea",
            "spotAreaIDs2": "10",
            "areaNote2": "EZ",
            "areaType3": "spotArea",
            "spotAreaIDs3": "11",
            "areaNote3": "Balkon",
            "areaType4": "spotArea",
            "spotAreaIDs4": "1",
            "areaNote4": "D",
            "areaType5": "spotArea",
            "spotAreaIDs5": "2",
            "areaNote5": "AZ",
            "areaType6": "spotArea",
            "spotAreaIDs6": "5",
            "areaNote6": "WC",
            "areaType7": "spotArea",
            "spotAreaIDs7": "4",
            "areaNote7": "WZ",
            "areaType8": "spotArea",
            "spotAreaIDs8": "6",
            "areaNote8": "Couch"
        },
        {
            "label": "Deebot_OG",
            "deviceId": "69e1ebd9-2722-4612-92c2-10723845aa0e",
            "pollInterval": 30,
            "hideMotionSensor": false,
            "supportTrueDetect": true,
            "areaType1": "spotArea",
            "spotAreaIDs1": "0",
            "areaNote1": "AZ",
            "areaType2": "spotArea",
            "spotAreaIDs2": "3",
            "areaNote2": "D",
            "areaType3": "spotArea",
            "spotAreaIDs3": "2",
            "areaNote3": "KZ",
            "areaType4": "spotArea",
            "spotAreaIDs4": "4",
            "areaNote4": "BZ",
            "areaType5": "spotArea",
            "spotAreaIDs5": "5",
            "areaNote5": "SZ"
        }
    ],
    "platform": "Deebot"
}

leads to

Line 19103: [1/31/2024, 1:14:26 PM] [Deebot] [Klaus Feger OG] initialising with options: {"hideMotionSensor":false,"motionDuration":30,"lowBattThreshold":15,"showMotionLowBatt":false,"showBattHumidity":false,"showAirDryingSwitch":"presetting","supportTrueDetect":true,"commandType1":"","spotAreaCommand1":"","customAreaCommand1":"","commandNote1":"","commandType2":"","spotAreaCommand2":"","customAreaCommand2":"","commandNote2":"","commandType3":"","spotAreaCommand3":"","customAreaCommand3":"","commandNote3":"","commandType4":"","spotAreaCommand4":"","customAreaCommand4":"","commandNote4":"","commandType5":"","spotAreaCommand5":"","customAreaCommand5":"","commandNote5":"","commandType6":"","spotAreaCommand6":"","customAreaCommand6":"","commandNote6":"","commandType7":"","spotAreaCommand7":"","customAreaCommand7":"","commandNote7":"","commandType8":"","spotAreaCommand8":"","customAreaCommand8":"","commandNote8":"","commandType9":"","spotAreaCommand9":"","customAreaCommand9":"","commandNote9":"","commandType10":"","spotAreaCommand10":"","customAreaCommand10":"","commandNote10":"","commandType11":"","spotAreaCommand11":"","customAreaCommand11":"","commandNote11":"","commandType12":"","spotAreaCommand12":"","customAreaCommand12":"","commandNote12":"","commandType13":"","spotAreaCommand13":"","customAreaCommand13":"","commandNote13":"","commandType14":"","spotAreaCommand14":"","customAreaCommand14":"","commandNote14":"","commandType15":"","spotAreaCommand15":"","customAreaCommand15":"","commandNote15":"","pollInterval":30,"areaType1":"spotArea","spotAreaIDs1":"0","areaType2":"spotArea","spotAreaIDs2":"3","areaType3":"spotArea","spotAreaIDs3":"2","areaType4":"spotArea","spotAreaIDs4":"4","areaType5":"spotArea","spotAreaIDs5":"5","areaType6":"spotArea","spotAreaIDs6":"5","areaType7":"spotArea","spotAreaIDs7":"4","areaType8":"spotArea","spotAreaIDs8":"6"}.

which is the 2nd device configuration enriched by the last three spot areas of the first (disabled) device.

Another try has been to change the order of the devices in the configuration.

{
    "name": "Deebot",
    "countryCode": "DE",
    "username": "xxxx",
    "password": "xxxx",
    "devices": [
        {
            "label": "Deebot_OG",
            "deviceId": "69e1ebd9-2722-4612-92c2-10723845aa0e",
            "pollInterval": 30,
            "hideMotionSensor": false,
            "supportTrueDetect": true,
            "areaType1": "spotArea",
            "spotAreaIDs1": "0",
            "areaNote1": "AZ",
            "areaType2": "spotArea",
            "spotAreaIDs2": "3",
            "areaNote2": "D",
            "areaType3": "spotArea",
            "spotAreaIDs3": "2",
            "areaNote3": "KZ",
            "areaType4": "spotArea",
            "spotAreaIDs4": "4",
            "areaNote4": "BZ",
            "areaType5": "spotArea",
            "spotAreaIDs5": "5",
            "areaNote5": "SZ"
        },
        {
            "label": "Deebot_EG",
            "deviceId": "b55ed940-6ce0-494d-9a0b-9bdb6d5d0715",
            "ignoreDevice": false,
            "pollInterval": 30,
            "hideMotionSensor": false,
            "supportTrueDetect": true,
            "areaType1": "spotArea",
            "spotAreaIDs1": "9",
            "areaNote1": "K",
            "areaType2": "spotArea",
            "spotAreaIDs2": "10",
            "areaNote2": "EZ",
            "areaType3": "spotArea",
            "spotAreaIDs3": "11",
            "areaNote3": "Balkon",
            "areaType4": "spotArea",
            "spotAreaIDs4": "1",
            "areaNote4": "D",
            "areaType5": "spotArea",
            "spotAreaIDs5": "2",
            "areaNote5": "AZ",
            "areaType6": "spotArea",
            "spotAreaIDs6": "5",
            "areaNote6": "WC",
            "areaType7": "spotArea",
            "spotAreaIDs7": "4",
            "areaNote7": "WZ",
            "areaType8": "spotArea",
            "spotAreaIDs8": "6",
            "areaNote8": "Couch"
        }
    ],
    "platform": "Deebot"
}

which gives the same result as before (so it seems that the "longer" configuration wins and is taken for all devices.

Will try to circumvent it somehow for the moment.

Details of your setup.

(1)

HB1.7.0 Plugin6.1.1

Docker instance (oznu/homebridge) on RPi4, Node.js v18.19.0

Both are DEEBOT N8.