Files
home-assistant-blueprints/packages/adaptive_lighting_global.yaml
John Ogle 258c4172e9 Implement Adaptive Lighting Mode System Phase 1 foundation
Add global mode definitions and config button mode cycling blueprint to
establish the foundation for the adaptive lighting mode system.

Changes:
- Add input_text helpers for all 11 mode settings (Adaptive, Reading,
  Relaxing, Sleep, Theater, Party, Homework, Play, Cooking, Dining,
  Cleanup) with JSON configuration for brightness, color temp, and
  transition parameters
- Store mode settings as individual input_text entities to work within
  Home Assistant's 255 character limit
- Add usage notes for accessing mode settings in templates
- Fix variable definition bug in inovelli_mode_cycling blueprint by
  adding zigbee2mqtt_device_name to variables section
- Update README to reflect that PACKAGE_SETUP_GUIDE.md exists

All YAML files validated with yamllint. JSON configuration validated
with jq.

Part of Phase 1 implementation from adaptive lighting mode system plan.
Automated verification complete, ready for manual testing.
2025-12-20 15:00:02 -08:00

115 lines
4.6 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 COLOR MAPPINGS (ROYGBIV Scheme)
# =============================================================================
# These colors are used for LED feedback on Inovelli switches
# Values are hue (0-255) for Zigbee2MQTT ledColorWhenOn/Off parameter
#
# Reference ADAPTIVE_LIGHTING_CONTROL_SYSTEM_DESIGN.md lines 112-131
# =============================================================================
input_text:
adaptive_lighting_mode_colors:
name: "AL Mode Color Mappings (JSON)"
max: 255
# JSON minified to fit in 255 char limit
initial: >-
{"Adaptive":170,"Reading":42,"Relaxing":21,"Sleep":0,
"Manual Override":212,"Theater":127,"Party":234,"Homework":85,
"Play":148,"Cooking":42,"Dining":21,"Cleanup":170}
# =============================================================================
# MODE SETTINGS DEFINITIONS
# =============================================================================
# Each mode has its own input_text helper to stay within 255 char limit
# Room automations read these to apply appropriate AL settings
# =============================================================================
# Adaptive mode - uses default AL configuration
adaptive_lighting_settings_adaptive:
name: "AL Settings: Adaptive"
max: 255
initial: '{"use_defaults":"configuration"}'
# Reading mode - bright, cool white
adaptive_lighting_settings_reading:
name: "AL Settings: Reading"
max: 255
initial: '{"min_brightness":80,"max_brightness":100,"min_color_temp":4500,"max_color_temp":5500,"transition":2}'
# Relaxing mode - dim, warm white
adaptive_lighting_settings_relaxing:
name: "AL Settings: Relaxing"
max: 255
initial: '{"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: '{"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: '{"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: '{"min_brightness":60,"max_brightness":90,"min_color_temp":3500,"max_color_temp":4500,"transition":1}'
# Homework mode - bright, neutral for focus
adaptive_lighting_settings_homework:
name: "AL Settings: Homework"
max: 255
initial: '{"min_brightness":85,"max_brightness":100,"min_color_temp":4000,"max_color_temp":5000,"transition":2}'
# Play mode - medium bright, energizing
adaptive_lighting_settings_play:
name: "AL Settings: Play"
max: 255
initial: '{"min_brightness":60,"max_brightness":85,"min_color_temp":4000,"max_color_temp":5000,"transition":2}'
# Cooking mode - bright, cool task lighting
adaptive_lighting_settings_cooking:
name: "AL Settings: Cooking"
max: 255
initial: '{"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: '{"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: '{"min_brightness":80,"max_brightness":100,"min_color_temp":4000,"max_color_temp":5000,"transition":1}'
# Manual Override mode - pauses AL completely (no settings needed)
# =============================================================================
# USAGE NOTES
# =============================================================================
# To access mode colors in templates:
# {% set colors = states('input_text.adaptive_lighting_mode_colors') | from_json %}
# {{ colors.get('Reading', 170) }}
#
# To access mode settings in templates:
# {% set settings = states('input_text.adaptive_lighting_settings_reading') | from_json %}
# {{ settings.min_brightness }}