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 air purifier 5 pro #2889

Merged
merged 5 commits into from
Feb 11, 2025

Conversation

Mantrid42
Copy link
Contributor

Based on lifubide_x600_purifier (closest match)

Added support for:

  • Air quality
  • Filter remaining
  • Filter time
  • Timer remaining
  • Fan speed
  • Filter reset
  • Off timer
  • Preset mode (Smart/Sleep/Manual)
  • UV sterilization

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 lifubide_x600_purifier (closest match)

Added support for:
- Air quality
- Filter remaining
- Filter time
- Timer remaining
- Fan speed
- Filter reset
- Off timer
- Preset mode (Smart/Sleep/Manual)
- UV sterilization
Fixed unit in wrong place
@Mantrid42 Mantrid42 changed the title Mantrid42 kogan air purifier 5 pro Add support for Kogan air purifier 5 pro Feb 1, 2025
@Mantrid42
Copy link
Contributor Author

Query Properties for this device:

{
"result": {
"properties": [
{
"code": "switch",
"custom_name": "",
"dp_id": 1,
"time": 1738369966477,
"type": "bool",
"value": true
},
{
"code": "pm25",
"custom_name": "",
"dp_id": 2,
"time": 1738415278831,
"type": "value",
"value": 4
},
{
"code": "mode",
"custom_name": "",
"dp_id": 3,
"time": 1738369966382,
"type": "enum",
"value": "auto"
},
{
"code": "speed",
"custom_name": "",
"dp_id": 4,
"time": 1738283794376,
"type": "enum",
"value": "low"
},
{
"code": "filter_life",
"custom_name": "",
"dp_id": 5,
"time": 1738276107006,
"type": "value",
"value": 99
},
{
"code": "lock",
"custom_name": "",
"dp_id": 7,
"time": 1738314154991,
"type": "bool",
"value": false
},
{
"code": "light",
"custom_name": "",
"dp_id": 8,
"time": 1738314134946,
"type": "bool",
"value": true
},
{
"code": "uv",
"custom_name": "",
"dp_id": 9,
"time": 1738369966432,
"type": "bool",
"value": true
},
{
"code": "filter_reset",
"custom_name": "",
"dp_id": 11,
"time": 1731278229041,
"type": "bool",
"value": false
},
{
"code": "countdown_left",
"custom_name": "",
"dp_id": 20,
"time": 1738258039605,
"type": "value",
"value": 0
},
{
"code": "air_quality",
"custom_name": "",
"dp_id": 21,
"time": 1736652150376,
"type": "enum",
"value": "great"
},
{
"code": "fault",
"custom_name": "",
"dp_id": 22,
"time": 1735084448749,
"type": "bitmap",
"value": 0
},
{
"code": "filter_time",
"custom_name": "",
"dp_id": 101,
"time": 1738413242561,
"type": "value",
"value": 4293
},
{
"code": "Timer_OFF",
"custom_name": "",
"dp_id": 102,
"time": 1738258039595,
"type": "value",
"value": 0
}
]
},
"success": true,
"t": 1738415280318,
"tid": "90085456e09d11ef9e609e9247cde4aa"
}

name: sensor
unit: ugm3
class: measurement
- name: Preset mode
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no need to duplicate this

category: config
icon: "mdi:fan"
dps:
- id: 4
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could be merged into the fan entity as speed (percentage)

name: sensor
type: integer
unit: "%"
- name: Child lock
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The standard pattern for child locks is to use a lock entity, with translation_key: child_lock.

- translation_key: filter_reset
entity: button
category: config
icon: "mdi:clock-outline"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be no need to override icons for translated entities.

type: boolean
name: button
optional: true
- name: Timer remaining
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

translation_key: time_remaining

type: string
mapping:
- dps_val: great
value: Great
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

air_quality sensors should use values from the translated keys: "excellent", "good", "moderate", "poor", "severe"

type: integer
unit: h
mapping:
- scale: 3600
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it has class: duration, there should be no need to scale it. Scaling should be automatic.

unit: h
mapping:
- scale: 3600
- name: Off timer
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

translation_key: timer is probably better. And class: duration should be used.

- id: 102
type: integer
name: value
unit: m
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unit should not be metres. Maybe "min", but "h" seems more likely to me, as a 12 minute off timer seems very short.

- changes proposed in PR make-all#2889
- standardise filename as manufacturer_model_type.yaml
- remove meaningless "Smart" from device name
@make-all make-all merged commit bba4a51 into make-all:main Feb 11, 2025
4 checks passed
make-all added a commit that referenced this pull request Feb 11, 2025
- add model info for existing Kogan air purifier to better differentiate
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