• TedZanzibar@feddit.uk
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    Thank you, that’s food for thought at least.

    Can I ask about your light script? I have a bunch of smart bulbs that either don’t support or don’t expose the ‘power-on behaviour’ option, so in a power cut they come on full bright when power is restored, often in the middle of the night.

    My HA is on a UPS so I’ve been trying to have it store the states of lights when the UPS switches to battery power (before they go to unavailable) and then restore those states when power comes back, but it’s apparently way beyond my skill set. Curious as to how your “input list of lights” works and whether it could help me…

    • Ludicrous0251@piefed.zip
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Here is the full script in case it’s helpful. took a hot second of searching to set everything up, but now it’s really easy to use. When you call the script inside an automation it has input fields just like if you’re calling a built-in function like light.turn_on

      For your specific use case though, it may be easier to just take advantage of the built-in Scenes function. You can use an “entity snapshot” with “Scene: Create” a scene of the current state of your “bad” lights when the power goes out, then “Activate” that scene, perhaps with a couple of seconds transition time to smooth things out as soon as power is restored.

      I use a similar scene based function to create flashing colored light alerts based on certain conditions.

      sequence:
        - repeat:
            for_each: "{{ lights }}"
            sequence:
              - variables:
                  light_state: "{{states(repeat.item)}}"
                  timescale: "{{states('input_number.timescale')}}"
              - if:
                  - condition: template
                    value_template: "{{light_state == 'on'}}"
                then:
                  - metadata: {}
                    data:
                      brightness_pct: "{{target_brightness}}"
                      transition: "{{transition_rate * timescale}}"
                      kelvin: "{{color_temperature}}"
                    target:
                      entity_id: "{{repeat.item}}"
                    action: light.turn_on
      fields:
        lights:
          selector:
            entity:
              multiple: true
              filter:
                - domain: light
          name: Light(s)
          required: true
        target_brightness:
          selector:
            number:
              min: 1
              max: 100
          name: Target brightness (%)
          default: 1
          required: true
        color_temperature:
          selector:
            color_temp:
              unit: kelvin
              min: 1500
              max: 7000
          name: Color temperature
          required: true
          default: 2200
        transition_rate:
          selector:
            number:
              min: 1
              max: 600
          name: Transition rate
          description: Transition rate, scaled by 'input_number.timescale'
          required: true
          default: 100
      description: Dims the target light(s) if they are on - Kelvin setpoint.
      icon: mdi:lightbulb-auto-outline
      mode: parallel
      max: 15