Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Kogan lx15 #2890

Merged
merged 4 commits into from
Feb 11, 2025
Merged

Conversation

Mantrid42
Copy link
Contributor

Based on LX8/LX10

Added

  • Auto boost toggle
  • Pause toggle
  • UV sterilization
  • Voice (shows in diagnostic because DPS not writable locally)
  • Filter, and Main/Side brush remaining % (calculated from time) as per app display
  • Added remaining hours for Filter and Main/Side brush (calculated from time) as per app display

Changes

  • Mopping changed to Water regulation
  • Added Mode to diagnostic (raw sensor)
  • Added State to diagnostic (raw sensor)
  • Added Fault code to diagnostic (raw code display, in addition to Attribute in Problem)
  • Added Fault description to diagnostic (in addition to Attribute in Problem)

Based on fisher_summer

Adds support for:
- Anti-frost
- Anti-mildew
- Buzzer on/off
- Display on/off
- Eco mode on/off
- Health (UV and Ioniser)
- Self cleaning

Fixes
- Horizontal fixed position, not supported according to bitfield but it is and works
- Removed "Power" setting (1kWh/2kWh etc.), which does nothing
- Removed Running time, as it always reports 1s
- Added appropriate icons
- Removed "wide" swing modes (not supported)
- Removed Hot cold wind
- Removed Generator mode
- Removed Energy saving

Caveats
- Customised for this specific model/id, so optional DPS removed (avoids unavailable entities, which aren't disabled by default)
- Air quality & Dirty filter probably aren't supported (they just report Great and OK), so they're in diagnostic
Based on LX8/LX10

Added
- Auto boost toggle
- Pause toggle
- UV sterilization
- Voice (shows in diagnostic because DPS not writable locally)
- Filter, and Main/Side brush remaining % (calculated from time) as per app display
- Added remaining hours for Filter and Main/Side brush (calculated from time) as per app display

Changes
- Mopping changed to Water regulation
- Added Mode to diagnostic (raw sensor)
- Added State to diagnostic (raw sensor)
- Added Fault code to diagnostic (raw code display, in addition to Attribute in Problem)
- Added Fault description to diagnostic (in addition to Attribute in Problem)
@Mantrid42 Mantrid42 changed the title Add support for Logan lx15 Add support for Kogan lx15 Feb 1, 2025
@Mantrid42
Copy link
Contributor Author

Query Properties for this device:

{
"result": {
"properties": [
{
"code": "power",
"custom_name": "",
"dp_id": 1,
"time": 1621909595611,
"type": "bool",
"value": false
},
{
"code": "power_go",
"custom_name": "",
"dp_id": 2,
"time": 1621909595611,
"type": "bool",
"value": false
},
{
"code": "mode",
"custom_name": "",
"dp_id": 3,
"time": 1621909595611,
"type": "enum",
"value": "standby"
},
{
"code": "seek",
"custom_name": "",
"dp_id": 13,
"time": 1621909595611,
"type": "bool",
"value": false
},
{
"code": "clean_switch",
"custom_name": "",
"dp_id": 101,
"time": 1738249764636,
"type": "bool",
"value": false
},
{
"code": "pause_switch",
"custom_name": "",
"dp_id": 102,
"time": 1738249308485,
"type": "bool",
"value": false
},
{
"code": "charge_switch",
"custom_name": "",
"dp_id": 103,
"time": 1738249764695,
"type": "bool",
"value": true
},
{
"code": "clean_mode",
"custom_name": "",
"dp_id": 104,
"time": 1738249764745,
"type": "enum",
"value": "backcharge"
},
{
"code": "robot_state",
"custom_name": "",
"dp_id": 105,
"time": 1738251739886,
"type": "enum",
"value": "fullcharge"
},
{
"code": "battery",
"custom_name": "",
"dp_id": 106,
"time": 1738251734897,
"type": "value",
"value": 100
},
{
"code": "cur_clean_time",
"custom_name": "",
"dp_id": 107,
"time": 1738249760260,
"type": "value",
"value": 460
},
{
"code": "cur_clean_area",
"custom_name": "",
"dp_id": 108,
"time": 1738249681676,
"type": "value",
"value": 9
},
{
"code": "fan_mode",
"custom_name": "",
"dp_id": 109,
"time": 1738239880526,
"type": "enum",
"value": "auto"
},
{
"code": "water_mode",
"custom_name": "",
"dp_id": 110,
"time": 1738249289925,
"type": "enum",
"value": "mid"
},
{
"code": "remote_ctrl",
"custom_name": "",
"dp_id": 111,
"time": 1621909595611,
"type": "enum",
"value": "forward"
},
{
"code": "seek_robot",
"custom_name": "",
"dp_id": 112,
"time": 1621909595611,
"type": "bool",
"value": false
},
{
"code": "disturb_switch",
"custom_name": "",
"dp_id": 113,
"time": 1738231850656,
"type": "bool",
"value": false
},
{
"code": "volume",
"custom_name": "",
"dp_id": 114,
"time": 1738230695381,
"type": "value",
"value": 6
},
{
"code": "material_reset",
"custom_name": "",
"dp_id": 115,
"time": 1621909595611,
"type": "enum",
"value": "gettime"
},
{
"code": "total_clean_time",
"custom_name": "",
"dp_id": 116,
"time": 1738249811065,
"type": "value",
"value": 19139
},
{
"code": "total_clean_area",
"custom_name": "",
"dp_id": 117,
"time": 1738249811096,
"type": "value",
"value": 260
},
{
"code": "total_clean_count",
"custom_name": "",
"dp_id": 118,
"time": 1738249811126,
"type": "value",
"value": 18
},
{
"code": "side_brush_time",
"custom_name": "",
"dp_id": 119,
"time": 1738249811156,
"type": "value",
"value": 959
},
{
"code": "main_brush_time",
"custom_name": "",
"dp_id": 120,
"time": 1738249811175,
"type": "value",
"value": 1443
},
{
"code": "filter_time",
"custom_name": "",
"dp_id": 121,
"time": 1738249811195,
"type": "value",
"value": 1443
},
{
"code": "robot_fault",
"custom_name": "",
"dp_id": 122,
"time": 1738261530746,
"type": "bitmap",
"value": 0
},
{
"code": "path_comm",
"custom_name": "",
"dp_id": 123,
"time": 1738249798255,
"type": "raw",
"value": "eyJkYXRhIjp7InBhdGhJRCI6MTczODI0OTI4OCwicG9pbnRDb3VudHMiOjEsInBvc0FycmF5IjpbWy0yNCwtMTU5XV0sInN0YXJ0UG9zIjoxNTU2LCJ0b3RhbFBvaW50cyI6MTU1N30sImluZm9UeXBlIjoyMTAxMSwibWVzc2FnZSI6Im9rIn0="
},
{
"code": "cmd_comm",
"custom_name": "",
"dp_id": 124,
"time": 1730944586992,
"type": "raw"
},
{
"code": "request_data",
"custom_name": "",
"dp_id": 125,
"time": 1621909595611,
"type": "enum",
"value": "map"
},
{
"code": "comm_flag",
"custom_name": "",
"dp_id": 126,
"time": 1621909595611,
"type": "enum",
"value": "1"
},
{
"code": "comm_raw",
"custom_name": "",
"dp_id": 127,
"time": 1738249289096,
"type": "raw",
"value": "eyJkSW5mbyI6eyJ0cyI6IjE3MzgyNDkyODY2NDciLCJ1c2VySWQiOiIwIn0sImRhdGEiOnsiY21kcyI6W3siaW5mb1R5cGUiOjIxMDAzLCJtZXNzYWdlIjoib2sifSx7ImluZm9UeXBlIjoyMTAyMywibWVzc2FnZSI6Im9rIn0seyJpbmZvVHlwZSI6MjEwMDUsIm1lc3NhZ2UiOiJvayJ9XSwiZmFzdENtZHMiOlsyMTAwMywyMTAyMywyMTAwNV19LCJpbmZvVHlwZSI6MzAwMDAsIm1lc3NhZ2UiOiJvayJ9"
},
{
"code": "message_report",
"custom_name": "",
"dp_id": 128,
"time": 1738233186365,
"type": "enum",
"value": "6"
},
{
"code": "reset_map",
"custom_name": "",
"dp_id": 129,
"time": 1621909595611,
"type": "bool",
"value": false
},
{
"code": "sn",
"custom_name": "",
"dp_id": 130,
"time": 1738230704315,
"type": "raw",
"value": "d2owMDM0YmVkMDdjYzUyMTVmMWE="
},
{
"code": "uuid",
"custom_name": "",
"dp_id": 131,
"time": 1738230704636,
"type": "raw",
"value": "d2owMDM0YmVkMDdjYzUyMTVmMWE="
},
{
"code": "device_info",
"custom_name": "",
"dp_id": 132,
"time": 1737971157101,
"type": "raw",
"value": "eyJkSW5mbyI6eyJ0cyI6IjQ2OTgwIiwidXNlcklkIjoiMCJ9LCJkYXRhIjp7ImFwSWQiOiJTbWFydExpZmUtMzc3RC1jNTIxNWYxYSIsImFwSXAiOiIxOTIuMTY4Ljc4LjEiLCJjb21waWxlVmVyIjoxNDQ5LCJtY3VWZXIiOiJoMTUydjYwXzAiLCJzdGFJZCI6IkhJVCIsInN0YUlwIjoiMTAuNDIuNC4xIiwic3RhTWFjIjoiMzg6MDE6NDY6NTU6Mzc6N0QiLCJzdGFTaWduYWwiOjB9LCJpbmZvVHlwZSI6MjEwMTksIm1lc3NhZ2UiOiJvayJ9"
},
{
"code": "voice_id",
"custom_name": "",
"dp_id": 133,
"time": 1738236440791,
"type": "enum",
"value": "2"
},
{
"code": "voice_link",
"custom_name": "",
"dp_id": 134,
"time": 1738236443845,
"type": "raw",
"value": "eyJkSW5mbyI6eyJ0cyI6IjE3MzgyMzY0MzgwODEiLCJ1c2VySWQiOiIwIn0sImRhdGEiOnsiY21kIjoiZG93bmxvYWRBbmRBcHBseSIsImVycm9yIjowLCJpZCI6IjIiLCJwcm9jZXNzIjowfSwiaW5mb1R5cGUiOjIxMDI3LCJtZXNzYWdlIjoib2sifQ=="
},
{
"code": "yu_liu",
"custom_name": "",
"dp_id": 135,
"time": 1621909595611,
"type": "bool",
"value": false
},
{
"code": "yu_liu1_unseen",
"custom_name": "",
"dp_id": 136,
"time": 1621909595611,
"type": "enum",
"value": "0"
},
{
"code": "auto_boost",
"custom_name": "",
"dp_id": 137,
"time": 1738239940587,
"type": "bool",
"value": true
},
{
"code": "mop_installed",
"custom_name": "",
"dp_id": 138,
"time": 1621909595611,
"type": "bool",
"value": false
},
{
"code": "uvc",
"custom_name": "",
"dp_id": 142,
"time": 1738249764786,
"type": "bool",
"value": false
}
]
},
"success": true,
"t": 1738415310723,
"tid": "a228a061e09d11ef9e609e9247cde4aa"
}

- use existing translation for mopping
- make language a select as normally implemented, and use existing translations
- remove duplicate sensors - if users really want hours or percentage they can use template sensors to derive them.
@make-all make-all merged commit 6e937b1 into make-all:main Feb 11, 2025
4 checks passed
make-all added a commit that referenced this pull request Feb 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants