Commit ad847c0
committed
feat: add lux sensor brightness mode (#1177)
Add support for controlling brightness based on an outdoor lux sensor
instead of sun position. Users can select "lux" as the brightness_mode
and configure a lux sensor entity.
New configuration options:
- lux_sensor: Entity ID of outdoor illuminance sensor
- lux_min: Lux value for minimum brightness (default: 0)
- lux_max: Lux value for maximum brightness (default: 10000)
- lux_smoothing_samples: Number of samples to average (default: 5)
- lux_smoothing_window: Time window in seconds (default: 300)
Features:
- Linear brightness mapping matching circadian behavior (dark = dim)
- Smoothing buffer to prevent rapid fluctuations
- Automatic fallback to sun-based calculation when sensor unavailable
- Switch attributes show current_lux and lux_samples_count1 parent 74a795d commit ad847c0
6 files changed
Lines changed: 493 additions & 12 deletions
File tree
- custom_components/adaptive_lighting
- tests
Lines changed: 44 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
229 | | - | |
| 229 | + | |
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
| 233 | + | |
| 234 | + | |
233 | 235 | | |
234 | 236 | | |
235 | 237 | | |
| |||
312 | 314 | | |
313 | 315 | | |
314 | 316 | | |
315 | | - | |
316 | | - | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
317 | 349 | | |
318 | 350 | | |
319 | | - | |
320 | | - | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
321 | 356 | | |
322 | 357 | | |
323 | 358 | | |
| |||
344 | 379 | | |
345 | 380 | | |
346 | 381 | | |
| 382 | + | |
347 | 383 | | |
348 | 384 | | |
349 | 385 | | |
350 | 386 | | |
351 | 387 | | |
352 | 388 | | |
353 | | - | |
| 389 | + | |
354 | 390 | | |
355 | 391 | | |
356 | 392 | | |
| |||
394 | 430 | | |
395 | 431 | | |
396 | 432 | | |
| 433 | + | |
397 | 434 | | |
398 | 435 | | |
399 | 436 | | |
400 | 437 | | |
401 | 438 | | |
402 | 439 | | |
403 | | - | |
| 440 | + | |
404 | 441 | | |
405 | 442 | | |
406 | 443 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
11 | 17 | | |
12 | 18 | | |
13 | 19 | | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
14 | 23 | | |
15 | 24 | | |
16 | 25 | | |
| |||
152 | 161 | | |
153 | 162 | | |
154 | 163 | | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
155 | 176 | | |
156 | 177 | | |
157 | 178 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
179 | | - | |
180 | | - | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
181 | 208 | | |
182 | 209 | | |
183 | 210 | | |
| |||
363 | 390 | | |
364 | 391 | | |
365 | 392 | | |
366 | | - | |
| 393 | + | |
367 | 394 | | |
368 | 395 | | |
369 | 396 | | |
370 | 397 | | |
371 | 398 | | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
372 | 404 | | |
373 | 405 | | |
374 | 406 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
53 | 58 | | |
54 | 59 | | |
55 | 60 | | |
| |||
83 | 88 | | |
84 | 89 | | |
85 | 90 | | |
86 | | - | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
87 | 97 | | |
88 | 98 | | |
89 | 99 | | |
| |||
0 commit comments