# 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)" 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 # ============================================================================= # Standard settings for each mode # Used as reference when creating mode application automations # ============================================================================= adaptive_lighting_mode_settings: name: "AL Mode Settings Reference (JSON)" initial: >- { "Adaptive": { "description": "Standard AL following sun", "use_defaults": "configuration" }, "Reading": { "description": "Bright, cool white", "min_brightness": 80, "max_brightness": 100, "min_color_temp": 4500, "max_color_temp": 5500, "transition": 2 }, "Relaxing": { "description": "Dim, warm white", "min_brightness": 20, "max_brightness": 40, "min_color_temp": 2000, "max_color_temp": 2500, "transition": 5 }, "Sleep": { "description": "Very dim red/amber", "min_brightness": 1, "max_brightness": 5, "min_color_temp": 2000, "max_color_temp": 2000, "sleep_rgb_color": [255, 50, 0], "transition": 2 }, "Theater": { "description": "Dim, cool for movies", "min_brightness": 5, "max_brightness": 20, "min_color_temp": 3000, "max_color_temp": 4000, "transition": 3 }, "Party": { "description": "Bright, dynamic for socializing", "min_brightness": 60, "max_brightness": 90, "min_color_temp": 3500, "max_color_temp": 4500, "transition": 1 }, "Homework": { "description": "Bright, neutral for focus", "min_brightness": 85, "max_brightness": 100, "min_color_temp": 4000, "max_color_temp": 5000, "transition": 2 }, "Play": { "description": "Medium bright, energizing", "min_brightness": 60, "max_brightness": 85, "min_color_temp": 4000, "max_color_temp": 5000, "transition": 2 }, "Cooking": { "description": "Bright, cool task lighting", "min_brightness": 90, "max_brightness": 100, "min_color_temp": 4500, "max_color_temp": 5500, "transition": 1 }, "Dining": { "description": "Medium, warm for meals", "min_brightness": 40, "max_brightness": 70, "min_color_temp": 2500, "max_color_temp": 3500, "transition": 3 }, "Cleanup": { "description": "Bright, standard for cleaning", "min_brightness": 80, "max_brightness": 100, "min_color_temp": 4000, "max_color_temp": 5000, "transition": 1 } } # ============================================================================= # HELPER SCRIPTS # ============================================================================= script: get_mode_color: alias: "Get LED Color for Mode" description: "Returns the LED color value (0-255) for a given mode name" fields: mode: description: "Mode name (e.g., 'Reading', 'Sleep')" example: "Reading" sequence: - stop: "Color retrieved" response_variable: "color" response: color: >- {% set colors = state_attr('input_text.adaptive_lighting_mode_colors', 'state') | from_json %} {{ colors.get(mode, 170) }} get_mode_settings: alias: "Get AL Settings for Mode" description: "Returns the AL settings dictionary for a given mode" fields: mode: description: "Mode name" example: "Reading" sequence: - stop: "Settings retrieved" response_variable: "settings" response: settings: >- {% set all_settings = state_attr('input_text.adaptive_lighting_mode_settings', 'state') | from_json %} {{ all_settings.get(mode, {}) }}