Restructure public config and deployment
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
from ha_deconz_bridge.automation import ActionSpec, automation_rules
|
||||
|
||||
|
||||
def kelvin_to_mireds(kelvin: int) -> int:
|
||||
return int(round(1_000_000 / kelvin))
|
||||
|
||||
|
||||
def scene(target: str, *, brightness: int, kelvin: int) -> ActionSpec:
|
||||
return ActionSpec(
|
||||
"set_scene",
|
||||
target=target,
|
||||
brightness=brightness,
|
||||
color_temp=kelvin_to_mireds(kelvin),
|
||||
)
|
||||
|
||||
|
||||
def all_lights_scene(*, brightness: int, kelvin: int) -> tuple[ActionSpec, ...]:
|
||||
return (
|
||||
scene("Living Room", brightness=brightness, kelvin=kelvin),
|
||||
scene("Hallway", brightness=brightness, kelvin=kelvin),
|
||||
scene("Kitchen", brightness=brightness, kelvin=kelvin),
|
||||
scene("Bathroom", brightness=brightness, kelvin=kelvin),
|
||||
scene("Bedroom", brightness=brightness, kelvin=kelvin),
|
||||
)
|
||||
|
||||
|
||||
def all_lights_off() -> tuple[ActionSpec, ...]:
|
||||
return (
|
||||
ActionSpec("turn_off", target="Living Room"),
|
||||
ActionSpec("turn_off", target="Hallway"),
|
||||
ActionSpec("turn_off", target="Kitchen"),
|
||||
ActionSpec("turn_off", target="Bathroom"),
|
||||
ActionSpec("turn_off", target="Bedroom"),
|
||||
)
|
||||
|
||||
|
||||
def room_automation(room: str) -> dict[str, dict[str, tuple[ActionSpec, ...]]]:
|
||||
return {
|
||||
"top": {
|
||||
"single": (scene(room, brightness=255, kelvin=4000),),
|
||||
"double": (scene(room, brightness=255, kelvin=5500),),
|
||||
"hold": all_lights_scene(brightness=255, kelvin=4000),
|
||||
"double_hold": all_lights_scene(brightness=255, kelvin=5500),
|
||||
},
|
||||
"up": {
|
||||
"single": (scene(room, brightness=153, kelvin=3000),),
|
||||
"double": (scene(room, brightness=204, kelvin=3500),),
|
||||
"hold": (ActionSpec("brightness_step", target=room, brightness_step=26),),
|
||||
},
|
||||
"down": {
|
||||
"single": (scene(room, brightness=51, kelvin=2200),),
|
||||
"double": (scene(room, brightness=102, kelvin=2500),),
|
||||
"hold": (ActionSpec("brightness_step", target=room, brightness_step=-26),),
|
||||
},
|
||||
"bottom": {
|
||||
"single": (ActionSpec("turn_off", target=room),),
|
||||
"hold": all_lights_off(),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
AUTOMATION_CONFIG = {
|
||||
"example_living_remote": room_automation("Living Room"),
|
||||
"example_kitchen_remote": room_automation("Kitchen"),
|
||||
"example_hall_remote": room_automation("Hallway"),
|
||||
"example_bathroom_remote": room_automation("Bathroom"),
|
||||
"example_bedroom_remote": room_automation("Bedroom"),
|
||||
}
|
||||
|
||||
AUTOMATIONS = automation_rules(AUTOMATION_CONFIG)
|
||||
Reference in New Issue
Block a user