github danrspencer/flare v2.0.0

latest releases: v2.0.1, v2.0.1-beta.1
4 hours ago

FLARE no longer needs zones. It keeps track of the lights it's driving by itself, so there's nothing extra to set up for each room, and two automations sharing a light no longer get in each other's way. Updating takes one extra step, and after that your rooms carry on as before.

Updating from 1.x

  1. Update FLARE in HACS and restart Home Assistant.
  2. Open Settings → System → Repairs, select FLARE blueprint is out of date, and submit it. This updates the blueprint your rooms use, and they keep all their settings. Until you do, your rooms' automations stop with an error each time they run, so their lights won't follow the schedule or switch off when a room empties.
  3. If you'd left Zone empty in a room's automation, that room now has override protection too. To keep it as it was, turn Override Protection off in that automation.
  4. If you've written automations of your own that call FLARE's services or listen for its events, check the last section below.

After updating:

  • Your zones and their devices are removed. FLARE → Zones is now FLARE → Settings, where the options are.
  • Any light you'd changed by hand goes back to the schedule the next time its room updates. This happens once, because FLARE starts its record of what it's driving afresh. From then on, a light you change is left alone as before.
  • The dashboard's Zones view is now Overrides. If you'd taken control of FLARE's dashboard, its Zones view no longer loads. Delete that dashboard and add FLARE's again: under Settings → Dashboards → Add dashboard, pick FLARE Lighting.

Added

  • FLARE speaks German, in setup, on the dashboard, in its entities' names and in the blueprint's settings, following your Home Assistant language. Thanks to @stefanr09 for the translation (#301). The dashboard's cards now translate their own text, so other languages can follow.
  • Each light FLARE drives has a status sensor on its own device page, saying whether FLARE is setting it or something else has taken it over, with history.
  • The Overrides view lists each area's lights: each light's status, what FLARE last asked for and what the light is showing, with any value that differs in red, and a Clear for that light alone. Lights FLARE isn't driving are tucked away behind a row that shows them.
  • Lux Threshold, a new blueprint input under Sensors & Triggers. Above 0, the room leaves its lights off while every illuminance sensor in it reads above that many lux: a sensor, a scene and idle brightness won't switch one on. If someone is still there when it gets darker, the lights come on then. Lights already on carry on as before, and running the automation by hand still switches the room on. 0, the default, turns the check off. Thanks to @sbyx (#309).
  • The diagnostics from FLARE → Settings list the last 50 overrides, each with what FLARE asked for, what the light reported and what kind of light it is, so one file explains lights that keep being overridden.
  • Stored Traces, a new blueprint setting. Room automations keep their last 20 traces, up from Home Assistant's 5, which a room updating every minute used up in five minutes.

Changed

  • Setup is simpler. It starts with your schedules, then asks whether to set up room automations now. If you already have automations controlling your lights, skip it, then move your rooms over one at a time with Set up area. Setting up an area gives it an automation, and then a page of its own offers flares for the rooms you've just set up, which you can skip. Skip setup is gone: setup always sets up your schedules.
  • The blueprint's inputs are regrouped. Only Schedule and Lights & Occupancy are shown to begin with. Wait time, Lux Threshold and Additional Triggers are under a new Sensors & Triggers section, and Override Protection, Sensors From Areas and Prefer RGB During under a new Settings section. Existing rooms keep their values.
  • Rooms update one area at a time, a second apart, on the tick of the first area in their Lights & Occupancy. A room that names no area updates every minute, on the minute.
  • A room waits a few seconds for its lights to start up when they come back online together, such as when they're switched on at the wall, before setting them. A command sent while a bulb starts up is lost, so FLARE no longer sends it then.
  • The dashboard is easier to read on a light theme. A near-white colour temperature's slider is drawn a shade darker so you can see it, Day is amber instead of yellow, and Evening is deep orange so the two stay apart.

Deprecated

  • The Sensors From Areas setting is deprecated, and FLARE 3.0 removes it. From Home Assistant 2026.11, use Exclude target in Lights & Occupancy instead of turning it off, to leave out the sensors you don't want.

Fixed

  • Two automations driving the same light no longer treat each other's changes as overrides, so there's no more notification about a light in two zones.
  • A light you've changed by hand is left alone however long its room stays lit. It used to be taken back after a day.
  • Lights you've changed by hand are still left alone after Home Assistant restarts, including MQTT lights, which go unavailable as Home Assistant shuts down.
  • Evening starts at sunset without Home Assistant's Sun integration. Without it, Evening started at its latest time.
  • Renaming a light keeps FLARE's record of it, so a light you'd changed by hand is still left alone after a rename.
  • A light only counts as overridden once it's changed by enough to notice: by default more than 5% in brightness or 5 mireds in colour temperature away from what FLARE asked for. Some bulbs report back slightly different values from the ones they were sent, such as 4312 K for 4294 K, and were marked overridden at random (#323). The Minimum brightness change and Minimum colour temperature change options under FLARE → Settings → Configure now set this as well as what's worth sending, and are called Brightness tolerance and Colour temperature tolerance. A light FLARE sets by RGB follows the colour temperature tolerance too.
  • A light that comes back on reporting its old state is still set. A bulb back from a power cut can first report what it showed before while it has really started at its default. FLARE took the report at its word, sent nothing, and the light was then marked overridden. A light FLARE isn't yet driving is now always sent the schedule's values when FLARE takes it on.
  • A light whose first command from FLARE doesn't arrive is sent it again. FLARE remembers what the light was showing when it sent it, so if the light reports that again, it's tried on the next update. It used to be marked overridden and left alone until the room went dark: a bulb switched on at the wall, sent its schedule while still starting up, stayed at its start-up setting all evening.
  • A light Brightness Template leaves alone (null) no longer keeps an empty room lit. While it was on, the rest of the room switched off and back on every minute.
  • Lights that are on when a phase in Prefer RGB During starts now switch to RGB. A colour bulb that was showing the same colour temperature as a white stayed white, which looks much cooler than the same colour sent as RGB, so the room looked stuck on Day.

If you use FLARE's services or events yourself

  • zone_device_id is replaced by room_id, usually {{ this.entity_id }}, and an optional room_entities, on flare.apply_lighting, flare.claims_record and flare.claims_override.
  • flare.turn_off takes no room, and rejects zone_device_id, room_id and room_entities. A light it switches off is turned back on the next time FLARE sets the room, whichever automation set it before, rather than left off as one switched off by hand would be. flare.claims_check and flare.claims_clear take no room, and flare.claims_check returns rooms instead of zone. A call that still passes zone_device_id is rejected.
  • flare.claims_clear's cleared lists only the entities that had a claim, not every one passed in. flare.claims_record and flare.claims_override no longer return anything.
  • The schedule sensor's colour temperature is now color_temp_kelvin, not color_temp, and flare.compute_curve returns color_temp_kelvin instead of kelvin, the same name flare.apply_lighting takes. A template reading state_attr('sensor.home_flare', 'color_temp') needs changing to 'color_temp_kelvin'.
  • flare.compute_scene_coverage no longer returns scene_active, which was always the same as scene_valid.
  • two_step_label is gone from flare.apply_lighting; a call that passes it is rejected. Label a bulb no_combined_transition, or add its model under FLARE → Settings → Configure, instead.
  • flare.apply_lighting's transition is optional, defaulting to 0.
  • flare.compute_lighting_groups is gone. Call flare.apply_lighting with dry_run: true instead: it returns what it would send, in the same shape, without sending anything or recording claims.
  • flare_tick carries an area_id instead of a zone's device_id.
  • flare_lights_controlled and flare_lights_released carry room, and flare_light_overridden carries rooms, instead of zone. They're filed under sensor.flare_controlled_lights, sensor.flare_overridden_lights and button.flare_clear.
  • Each zone's entities are gone. button.flare_clear clears every claim, each light's status sensor shows its own, and FLARE → Settings has a diagnostics download of them all.
  • custom:flare-clear-card and the custom:flare-zone view are gone.
  • brightness_tolerance, color_temp_tolerance and rgb_color_tolerance are gone from flare.apply_lighting and flare.claims_check; a call that passes them is rejected. Both take min_brightness_change and min_color_temp_change instead, which decide both what's sent and whether a light still matches its claim. Each defaults to its setting under FLARE → Settings → Configure.
  • brightness, color_temp_kelvin, rgb_color and transition are checked as light.turn_on checks them, so a call is rejected straight away for an rgb_color value outside 0–255 or a negative color_temp_kelvin, rather than failing when FLARE sends it on. room_entities also takes a comma-separated list.

Full Changelog: v1.2.1...v2.0.0

Don't miss a new flare release

NewReleases is sending notifications on new releases.