chore: initial baseline before refactoring

Initial snapshot of Home Assistant config (HAOS 2026.4.4)
prior to dashboard restructuring and helper YAML migration.

Pre-commit cleanup applied:
- Removed blueprints/switch_manager/ (9.4 MB stale, component already gone)
- Removed .storage/switch_manager
- Removed home-assistant.log.{1,old,fault}
- Removed zigbee2mqtt/configuration_backup_v{1..4}.yaml
- Removed zigbee2mqtt/database.db.tmp.2024-09-27 (1.5y old)
- Created empty themes/ to satisfy configuration.yaml include

.gitignore uses allowlist strategy for .storage/ to keep
all tokens, keys, and PINs out of version control.
This commit is contained in:
2026-05-02 14:24:53 +02:00
commit 5f01411780
149 changed files with 47886 additions and 0 deletions
@@ -0,0 +1,58 @@
from cx_const import DefaultActionsMapping, Light, MediaPlayer
from cx_core import LightController, MediaPlayerController
class SmartThingsButtonLightController(LightController):
"""
This controller sends click, double click, and hold commands.
No release command is sent.
"""
def get_z2m_actions_mapping(self) -> DefaultActionsMapping:
return {
"single": Light.TOGGLE,
"double": Light.ON_FULL_BRIGHTNESS,
"hold": Light.SET_HALF_BRIGHTNESS,
}
def get_deconz_actions_mapping(self) -> DefaultActionsMapping:
return {
1002: Light.TOGGLE,
1004: Light.ON_FULL_BRIGHTNESS,
1001: Light.SET_HALF_BRIGHTNESS,
}
def get_zha_actions_mapping(self) -> DefaultActionsMapping:
return {
"button_single_1_0_0_0": Light.TOGGLE,
"button_double_2_0_0_0": Light.ON_FULL_BRIGHTNESS,
"button_hold_3_0_0_0": Light.SET_HALF_BRIGHTNESS,
}
class SmartThingsButtonMediaPlayerController(MediaPlayerController):
"""
This controller sends click, double click, and hold commands.
No release command is sent.
"""
def get_z2m_actions_mapping(self) -> DefaultActionsMapping:
return {
"single_click": MediaPlayer.PLAY_PAUSE,
"double_click": MediaPlayer.NEXT_TRACK,
"hold": MediaPlayer.PREVIOUS_TRACK,
}
def get_deconz_actions_mapping(self) -> DefaultActionsMapping:
return {
1002: MediaPlayer.PLAY_PAUSE,
1004: MediaPlayer.NEXT_TRACK,
1001: MediaPlayer.PREVIOUS_TRACK,
}
def get_zha_actions_mapping(self) -> DefaultActionsMapping:
return {
"button_single_1_0_0_0": MediaPlayer.PLAY_PAUSE,
"button_double_2_0_0_0": MediaPlayer.NEXT_TRACK,
"button_hold_3_0_0_0": MediaPlayer.PREVIOUS_TRACK,
}