Skip to content

Add Support for Smart 3D Oscillating DC Fan (Kogan)#4459

Open
angus-thompson wants to merge 8 commits intomake-all:mainfrom
angus-thompson:main
Open

Add Support for Smart 3D Oscillating DC Fan (Kogan)#4459
angus-thompson wants to merge 8 commits intomake-all:mainfrom
angus-thompson:main

Conversation

@angus-thompson
Copy link

Added configuration for Smart 3D Oscillating DC Fan including entities for fan control, modes, oscillation, and timer settings.

This is a relatively cheap Tuya based standard pedastal fan in Australia from Kogan link. It has both vertical and horizontal oscillation, vertical oscillation defined by DP 6: Run/Stop, and Horizontal by DP 7 as sweep angle in degrees. Speed is DP 3 as a value between 1 to 10. It also has various modes, which could be incorporated into the fan entity as preset modes, however these unfortunately do not appear in homekit well due to limitations, so for now I have them as a separate entity (and default hidden this as they aren't particularly useful). Noted however this config uses "3D Mode" (vertical and horizontal oscillation) as the oscillate attribute as I think this is more appropriate than using just vertical oscillation, or a set angled of horizontal oscillation as this binary value. Finally it has a timer function, I have included this but also default hidden it as timers in smart home products can be better triggered through automations.

Added configuration for Smart 3D Oscillating DC Fan including entities for fan control, modes, oscillation, and timer settings.
Hide the Timer entity in the configuration and ensure proper formatting of the switch name.
@@ -0,0 +1,114 @@
name: Smart 3D Oscillating DC Fan
Copy link
Owner

Choose a reason for hiding this comment

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

Top level name should be generic, as other models may also match

range:
min: 1
max: 10
- id: 2
Copy link
Owner

Choose a reason for hiding this comment

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

I don't think trying to map multiple modes into a boolean oscillate is a good idea, leave this out.

- dps_val: normal
value: false

- entity: select
Copy link
Owner

Choose a reason for hiding this comment

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

This can be the preset_mode of the fan (use translation_key:: fan_with_presets to pull in translations for most of the below)

- dps_val: auto
value: Auto
- dps_val: "3Dmode"
value: 3D Mode
Copy link
Owner

Choose a reason for hiding this comment

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

Aside from 3Dmode, the original tuya dps_val correspond to translated preset_modes already, so can map to themselves. 3D Mode can remain to a string, as it seems like a marketing term that should not be translated, and circulate is only available with the ventilation translation key (which does not have the other modes).

value: 3D Mode

- entity: select
name: Vertical Oscillation
Copy link
Owner

Choose a reason for hiding this comment

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

HA naming convention is to only capitalise the first word of device and entity names.

value: "150°"

- entity: select
name: Timer
Copy link
Owner

Choose a reason for hiding this comment

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

Use translation_key: timer instead of the explicit name and icon. Not sure why this is marked as hidden.

name: option
mapping:
- dps_val: cancel
value: "Off"
Copy link
Owner

@make-all make-all Feb 9, 2026

Choose a reason for hiding this comment

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

When using the translation_key, map these to the same string as original tuya values.

@make-all make-all moved this from 👀 In review to 🏗 Stalled in Tuya Local Feb 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🏗 Stalled

Development

Successfully merging this pull request may close these issues.

2 participants