From 7cba90c7ab9455d05001a1b45ae7fe39981930c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sv=C3=A4topluk=20Hanzel?= Date: Fri, 3 Oct 2025 08:52:51 +0200 Subject: [PATCH] feat(device): Add E2201 device support E2201 is an alias to E1743 as they share the actions and default mapping --- apps/controllerx/cx_devices/ikea.py | 21 ++++++++++++++++++++- docs/docs/assets/controllers/E2201.jpeg | Bin 0 -> 10569 bytes 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 docs/docs/assets/controllers/E2201.jpeg diff --git a/apps/controllerx/cx_devices/ikea.py b/apps/controllerx/cx_devices/ikea.py index 958e2dd3..07181e2d 100644 --- a/apps/controllerx/cx_devices/ikea.py +++ b/apps/controllerx/cx_devices/ikea.py @@ -286,6 +286,26 @@ def get_zha_actions_mapping(self) -> DefaultActionsMapping: } +class E2201LightController(E1743Controller): + pass + + +class E2201Z2MLightController(E1743Z2MLightController): + pass + + +class E2201MediaPlayerController(E1743MediaPlayerController): + pass + + +class E2201SwitchController(E1743SwitchController): + pass + + +class E2201CoverController(E1743CoverController): + pass + + class ICTCG1Controller(LightController): # Different states reported from the controller: # rotate_left, rotate_left_quick @@ -769,7 +789,6 @@ def get_z2m_actions_mapping(self) -> DefaultActionsMapping: class E2123MediaPlayerController(MediaPlayerController): - def get_z2m_actions_mapping(self) -> DefaultActionsMapping: return { "toggle": MediaPlayer.PLAY_PAUSE, # click Play button diff --git a/docs/docs/assets/controllers/E2201.jpeg b/docs/docs/assets/controllers/E2201.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..08a949026e37136f7785b1e74a8583d8c927f768 GIT binary patch literal 10569 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