Files
home-assistant-blueprints/packages/adaptive_lighting_global.yaml
John Ogle a5ed6c6340 Refactor global package to nested schema
Convert mode definitions from flat to nested JSON schema:
- Embed LED colors in mode settings (remove separate color mapping)
- Add behavior, manual_control, and led_color to top level
- Nest AL settings in al_config object for service validation
- Reduce from 11 to 8 essential modes (remove Reading, Homework, Play)

Modes now use nested structure to avoid AL service validation errors
while maintaining extensibility for different behavior types.
2025-12-21 17:44:32 -08:00

85 lines
4.2 KiB
YAML

# packages/adaptive_lighting_global.yaml
#
# Global constants for Adaptive Lighting Mode System
# This file is shared across all rooms and should be version controlled.
#
# To use: Place in config/packages/ directory
# Enable packages in configuration.yaml:
# homeassistant:
# packages: !include_dir_named packages/
# =============================================================================
# MODE SETTINGS DEFINITIONS
# =============================================================================
# Each mode has its own input_text helper with nested JSON schema
# Schema: {"behavior": "adaptive_lighting"|"scene"|"script",
# "manual_control": true|false,
# "led_color": 0-255,
# "al_config": {AL settings dict}}
# Room automations use convention-based lookup to apply settings
# =============================================================================
input_text:
# Adaptive mode - uses default AL configuration
adaptive_lighting_settings_adaptive:
name: "AL Settings: Adaptive"
max: 255
initial: '{"behavior":"adaptive_lighting","manual_control":false,"led_color":170,"al_config":{"use_defaults":"configuration"}}'
# Relaxing mode - dim, warm white
adaptive_lighting_settings_relaxing:
name: "AL Settings: Relaxing"
max: 255
initial: '{"behavior":"adaptive_lighting","manual_control":false,"led_color":21,"al_config":{"min_brightness":20,"max_brightness":40,"min_color_temp":2000,"max_color_temp":2500,"transition":5}}'
# Sleep mode - very dim red/amber
adaptive_lighting_settings_sleep:
name: "AL Settings: Sleep"
max: 255
initial: '{"behavior":"adaptive_lighting","manual_control":false,"led_color":0,"al_config":{"min_brightness":1,"max_brightness":5,"min_color_temp":2000,"sleep_rgb_color":[255,50,0],"transition":2}}'
# Theater mode - dim, cool for movies
adaptive_lighting_settings_theater:
name: "AL Settings: Theater"
max: 255
initial: '{"behavior":"adaptive_lighting","manual_control":false,"led_color":127,"al_config":{"min_brightness":5,"max_brightness":20,"min_color_temp":3000,"max_color_temp":4000,"transition":3}}'
# Party mode - bright, dynamic for socializing
adaptive_lighting_settings_party:
name: "AL Settings: Party"
max: 255
initial: '{"behavior":"adaptive_lighting","manual_control":false,"led_color":234,"al_config":{"min_brightness":60,"max_brightness":90,"min_color_temp":3500,"max_color_temp":4500,"transition":1}}'
# Cooking mode - bright, cool task lighting
adaptive_lighting_settings_cooking:
name: "AL Settings: Cooking"
max: 255
initial: '{"behavior":"adaptive_lighting","manual_control":false,"led_color":42,"al_config":{"min_brightness":90,"max_brightness":100,"min_color_temp":4500,"max_color_temp":5500,"transition":1}}'
# Dining mode - medium, warm for meals
adaptive_lighting_settings_dining:
name: "AL Settings: Dining"
max: 255
initial: '{"behavior":"adaptive_lighting","manual_control":false,"led_color":21,"al_config":{"min_brightness":40,"max_brightness":70,"min_color_temp":2500,"max_color_temp":3500,"transition":3}}'
# Cleanup mode - bright, standard for cleaning
adaptive_lighting_settings_cleanup:
name: "AL Settings: Cleanup"
max: 255
initial: '{"behavior":"adaptive_lighting","manual_control":false,"led_color":170,"al_config":{"min_brightness":80,"max_brightness":100,"min_color_temp":4000,"max_color_temp":5000,"transition":1}}'
# =============================================================================
# USAGE NOTES
# =============================================================================
# To access mode settings in blueprints/automations:
# {% set mode = states('input_select.room_lighting_mode') %}
# {% set settings_entity = 'input_text.adaptive_lighting_settings_' ~ (mode | lower | replace(' ', '_')) %}
# {% set settings = states(settings_entity) | from_json %}
# {{ settings.behavior }} # "adaptive_lighting", "scene", "script"
# {{ settings.manual_control }} # true/false - controls AL manual control state
# {{ settings.led_color }} # 0-255 hue value for LED feedback
# {{ settings.al_config }} # Dict to pass to adaptive_lighting.change_switch_settings
#
# To add custom modes:
# See ADDING_MODES.md for complete tutorial