blueprint: name: Smart Motion Light with Optional Lux and Time-Based Dimming description: Turns on a light when motion is detected, optionally based on ambient light, and dims based on time of day. domain: automation input: motion_entity: name: Motion Sensor selector: entity: filter: - domain: binary_sensor device_class: motion - domain: binary_sensor device_class: occupancy light_target: name: Light selector: target: entity: domain: light lux_entity: name: Lux Sensor (optional) default: null selector: entity: domain: sensor device_class: illuminance lux_threshold: name: Lux Threshold description: Only turn on the light if lux is below this value. default: 50 selector: number: min: 0 max: 1000 unit_of_measurement: lx no_motion_wait: name: Wait Time After Motion Stops default: 120 selector: number: min: 0 max: 3600 unit_of_measurement: seconds mode: restart max_exceeded: silent trigger: - platform: state entity_id: !input motion_entity from: "off" to: "on" condition: - alias: "Check lux only if sensor is defined" condition: template value_template: > {% if lux_entity %} {{ states(lux_entity) | float < lux_threshold }} {% else %} true {% endif %} action: - alias: "Turn on the light with calculated brightness" service: light.turn_on target: !input light_target data: brightness: "{{ brightness }}" - alias: "Wait until motion stops" wait_for_trigger: - platform: state entity_id: !input motion_entity from: "on" to: "off" - alias: "Wait the configured delay" delay: !input no_motion_wait - alias: "Turn off the light" service: light.turn_off target: !input light_target