/
cover_control_automation.yaml
3475 lines (3133 loc) · 152 KB
/
cover_control_automation.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
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
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
blueprint:
name: "Cover Control Automation (CCA)"
description: |
# ⭐ Cover Control Automation (CCA) ⭐
### A comprehensive and highly configurable blueprint for roller shutters and roller blinds
**Version**: 2024.05.15-02
**Help**: [Community Thread](https://community.home-assistant.io/t/cover-control-automation-cca-a-comprehensive-and-highly-configurable-roller-blind-blueprint/680539)
**Source Code**: [github.com/hvorragend](https://github.com/hvorragend/ha-blueprints/blob/main/blueprints/automation/cover_control_automation.yaml)
**Tickets**: [Issues](https://github.com/hvorragend/ha-blueprints/issues)
**Full Changelog**: [CHANGELOG.md](https://github.com/hvorragend/ha-blueprints/blob/main/blueprints/automation/CHANGELOG.md)
<details>
<summary><strong>Features</strong></summary>
✅ Automatic opening and closing the roller shutters
✅ Freely configurable time windows for opening or closing
✅ Brightness control and/or control via the sun-elevation
✅ The use of scheduler helpers are possible
✅ Ventilation feature (Currently for two-way sensors)
✅ Resident feature: keep the cover closed if resident is asleep
✅ Complete flexibility in almost all parameters (drive delays, waiting times, position tolerance)
✅ Each feature can be activated or deactivated as required
✅ Dynamic conditions possible (see examples in `Details`)
✅ Extensive automatic sun shading with many different setting options (see features in `Details`)
✅ Added the option to save the current status in a helper. This has the advantage that the cover can also be in other positions and the automation can still be executed. And manual interventions are not constantly overridden with every trigger.
**Sun shading features**
✅ Sun azimuth
✅ Sun elevation
✅ Solar irradiation/Light intensity/Illuminance
✅ Weather Conditions
✅ Two different temperature sensors (compare thresholds for indoor and/or outdoor sensors)
✅ Not only the current temperature, but also the temperature forecast can also be taken into account.
✅ If multiple criteria (e.g. temperature sensors and/or azimuth and/or elevation) are defined, shading will not occur until <ins>all</ins> criteria are met.
</details>
<details>
<summary><strong>Condition examples</strong></summary>
- If, for example, your blinds on the upper floor only close automatically and are not opened via the automation, you can also enable the blinds to be opened during this time by activating a vacation mode boolean.
- If you have visitors or a party, you may not want the blinds to close. This can be easily configured using a party mode boolean.
- If, for any reason, you want to pause the activation of sun shading or the ending of shading, this can be controlled via a shading boolean.
- If you want to suspend the entire roller blind control for a short time, perhaps because maintenance work or window cleaning is being carried out, this is possible with just one boolean.
- Are the roller blinds on side doors normally only opened by the automation system and never closed because you don't want to lock yourself out? But on vacation, the blinds should still be closed. This is how the conditions work.
</details>
<details>
<summary><strong>Important notes</strong></summary>
- It is <ins>not</ins> possible to execute this automation manually!
- If you want to use sun elevation and/or azimuth it's strongly advised to use sun.sun. And please make sure your sun.sun entity is enabled!
- `time_up_early` should be earlier `than time_up_late`
- `time_up_early_non_workday` should be earlier than `time_up_late_non_workday`
- `time_down_early` should be earlier than `time_down_late`
- `time_down_early_non_workday` should be earlier than `time_down_late_non_workday`
- `shading_azimuth_start` should be lower than `shading_azimuth_end`
- `shading_elevation_min` should be lower than `shading_elevation_max`
- `shading_sun_brightness_start` should be higher than `shading_sun_brightness_end`
- `open_position` should be higher than `close_position`
- `open_position` should be higher than `ventilate_position`
- `close_position` should be lower than `ventilate_position`
- `shading_position` should be higher than `close_position`
- `shading_position` should be lower than `open_position`
- `resident_sensor` is only allowed to be on/off/true/false
- cover must have a `current_position` attribute
- After <ins>manual creation</ins> of the helper in the GUI, it will be filled with standard content on the <ins>first trigger</ins>.
In rare cases, this may mean that the first trigger does not move the blinds. This may take care of itself with the next trigger later.
Alternatively, the roller blinds must be moved shortly once so that the automation system knows what the current status is.
*This was originally a fork of Eimeel's blueprint [automatic_blinds_shading.yaml](https://gist.github.com/jmerifjKriwe/bffbc7424dd04f4a31d6a71f7012cd1f) and is largely based on his programming.*
Note: My blueprint is not compatible with Eimeel's variant. I have used his basis, but the variables are completely different from his design.<br />
</details>
<details>
<summary><strong>Latest changes</strong></summary>
2024.03.21-01:
- **Breaking change** in the schedule helper usage! You can find the details in the section "Selection of time control options".
- New: Reduction of triggers and thus avoidance of overlaps due to running delays (fixes #40)
- New: Added possibility to disable the use of 'set_cover_position' and 'set_cover_tilt_position' and only use the additional actions
- Fixed: Shading Forecast Weather Conditions
- Fixed: Ventilation mode should not only be ended in the evening, but whenever it is not yet daytime.
- Fixed: Added the ventilation mode activation on closing down again
- Try to avoid overlaps in the execution of the automation if several triggers are triggered shortly after each other.
- Fixed: Optional weather conditions for "shading in" #41
2024.04.05-01:
- Update: Forecast Temperature below 0 possible
- Delay lines minimally changed
- Added: Allow shading to activate multiple times a day #44
- Fixed: Ventilation is usually activated too often.
2024.04.08-01:
- Fixed: Make the shading work even without a helper
2024.05.01-01:
- Updated: Trigger shading at time_up_early and schedule helper state change, too
- Fixed: Possibility to ignore actions after manual position changes
- Added Feature: Force activation of sun shading #49
- Fixed: Manual shutter movements after a core restart were not always recognised.
2024.05.03-01:
- Minor editorial changes
2024.05.15-01:
- Fixed: Do not recognise manual movement if status is unknown
- Updated: Change the step size for the brightness values to 1
- Fixed: Made the force function easier with fewer conditions
- Added: Make it possible to open and close the roller blinds multiple times
- Added: The forecast sensor can now trigger the sun shading #48
- Added: Delay between set_cover_position and set_cover_tilt_position.
- Added: Lockout protection implemented at the start and end of shading. #43/#55 (Attention: Cover may close in the evening after contact is closed again!)
- Fixed: Retriggering of the shading is possible again. Open/close branches are only started if automation is not already running.
2024.05.15-02:
- Quick workaround, as opening and closing does not currently work.
- Minor changes
</details>
source_url: https://github.com/hvorragend/ha-blueprints/blob/main/blueprints/automation/cover_control_automation.yaml
domain: automation
homeassistant:
min_version: "2023.9.0"
input:
blind:
name: "🏠 Cover"
description: >-
Which blind or roller shutter should be automated?
<details>
<summary><code><strong>CLICK HERE:</strong> Information about a cover group</code></summary>
In principle, you can use a group here.
But please note that there are problems with position detection for a group of covers!
For example, one cover may be at position 100% and the other cover at position 0%.
This results in a wrong group-value of 50%.
My clear recommendation is to create **one automation for each cover**.
</details>
selector:
entity:
filter:
- domain:
- cover
auto_options:
name: "👉 Automation options"
description: >-
This <ins>basically</ins> determines whether the cover is allowed to open or close.
<details>
<summary><code><strong>CLICK HERE:</strong> Further description</code></summary>
This can be extended by further conditions (see below). However, it is important that the options are still activated here.
Otherwise the conditions will not take effect.
**Please ensure that the corresponding sensors are also specified.**
For example, the brightness control only works if a brightness sensor is also specified.
**Note:** If you want to use the <ins>lockout protection</ins>, I recommend configuring a cover status helper.
Otherwise, the cover cannot be moved to the next state after the door contact is closed.
See further information in the description of "Contact Sensor Entity"
</details>
default:
[
auto_up_enabled,
auto_down_enabled,
auto_brightness_enabled,
auto_sun_enabled,
]
selector:
select:
options:
- label: "🔼 - Enable automatic daily cover opening"
value: "auto_up_enabled"
- label: "🔻 - Enable automatic daily cover closing"
value: "auto_down_enabled"
- label: "🔅 - Enable control (for opening/closing) via brightness values"
value: "auto_brightness_enabled"
- label: "☀️ - Enable control (for opening/closing) via sun elevation"
value: "auto_sun_enabled"
- label: "💨 - Enable ventilation mode"
value: "auto_ventilate_enabled"
- label: "🚪 - Enable lockout protection"
value: "auto_lockout_protection_enabled"
- label: "🥵 - Enable automatic sun shading / sun protection control"
value: "auto_shading_enabled"
multiple: true
sort: false
custom_value: false
mode: list
time_control:
name: "⏲️ Selection of time control options"
description: >-
<details>
<summary><code><strong>CLICK HERE:</strong> Further descriptions</code></summary>
The times for opening and closing the cover are usually configured here in the blueprint.
There are various input fields here for this purpose.
Even if you only want to control the covers using brightness values or the sun elevation,
it is important to specify times. The times are used to divide the day into "morning" (up) and "evening" (down).
However, you can also activate a scheduler helper mode at this point.
This would allow you to configure a different time period for keeping the cover open for each day.
Unfortunately, the HA core currently only has a 30-minute time grid for the time configuration.
When using scheduler helper - Important difference to the usual input fields!
- <ins>Without brightness or sun elevation control:</ins>
As soon as the helper state is switched on, the cover is opened.
The cover is closed when the helper state changes from off to on.
- <ins>With brightness or sun elevation control:</ins>
The cover is opened when the threshold is exceeded and the helper is on.
The cover is closed when the threshold is undershot and the helper is off.
</details>
<br />
<details>
<summary><code><strong>CLICK HERE:</strong> Important information on using the schedule helper</code></summary>
It is not possible to find out more about the status of the schedule helper in Home Assistant.
I never know whether we are at the beginning or end of the period.
However, this is important to avoid bouncing when controlling the brightness, for example.
In order to recognise whether we are still in the opening period or the closing period,
it is necessary to enter a very rough time period in the time variables in the blueprint.
<br />
<ins>Example:</ins>
If the schedule helper goes to the "ON" status at 08:00 and to the "OFF" status at 18:00, it is sufficient to configure the times as follows:
<br /><br />
Time For Drive Up - Early: 06:00<br />
Time For Drive Up - Late: 12:00<br /><br />
Time For Drive Down - Early: 16:00<br />
Time For Drive Down - Late: 22:00<br />
The times are not used for triggering, but only to divide the day into two halves!
</details>
default: time_control_input
selector:
select:
options:
- label: "✏️ Use the time input fields in the blueprint"
value: "time_control_input"
- label: "⏲️ Use an external schedule helper"
value: "time_control_schedule"
sort: false
multiple: false
custom_value: false
time_schedule_helper:
name: "⏲️ Cover driving time schedule helper"
description: >-
If enabled above, please select the schedule helper here.
Of course, it is also important that the times in the helper are configured accordingly.
Please create only one period in total. Example: Start at 08:00 and end at 22:00.
The helper can be created [here](https://my.home-assistant.io/redirect/helpers/).
default: []
selector:
entity:
filter:
- domain:
- schedule
multiple: false
cover_status_options:
name: "🦮 Status detection of the cover"
description: >
It is essential that the roller blind has the <em>current_position</em> attribute.
Regardless of which option is selected here, the position detection is based on this attribute.
The <em>current_tilt_position</em> attribute is <ins>not</ins> taken into account.
<details>
<summary><code><strong>CLICK HERE:</strong> Further descriptions</code></summary>
- <ins>Check the current position</ins><br />
The automation only moves the cover if it is positioned at one of the defined positions (ventilate position, shading position, open position or closed position). Otherwise, the cover has been moved manually.
After a manual movement, it is unclear what is intended to be achieved, so the automation no longer takes action.
To automate the movement of the cover again, it must be moved to one of the defined positions beforehand.
The advantage of this is that you don't have to create a helper in Home Assistant.
Only basic features are available with this setting.
- <ins>Use an external cover status helper</ins><br />
If you want to be able to do manual overrides and have the automation do the next movement as usual,
then a helper is necessary. Without a helper, the manual override would always be overwritten by the automation.
This has the advantage that the cover does not necessarily have to be in a defined position.
With this choice, advanced functions are possible and you can always rely on the automation.
</details>
default: cover_helper_disabled
selector:
select:
options:
- label: "#️⃣ Check the current position"
value: "cover_helper_disabled"
- label: "🦮 Use an external cover status helper"
value: "cover_helper_enabled"
cover_status_helper:
name: "🦮 Cover Status Helper"
description: >-
Helper used to store the last cover event.
*Attention:* You will need to manually create a [input_text](https://my.home-assistant.io/redirect/helpers/) entity with a <ins>length of 254 chars</ins> for this.
<br /><br />`Optional`
default: []
selector:
entity:
domain: input_text
drive_time:
name: "🦮 Cover Drive Time"
description: "Can be used to recognise manual control. Please round up a little and do not adjust too precisely. Is used to delay the trigger if too much or incorrect position data is sent back."
default: 90
selector:
number:
min: 0.0
max: 180.0
unit_of_measurement: seconds
step: 1.0
mode: slider
auto_global_condition:
name: "❓ Additional condition for the entire automation"
description: >-
This condition allows you to control the execution of the <ins>entire</ins> automation dynamically and outside of the blueprint configuration.
With this option you could enable a party mode.
<br /><br />`Optional`
default: []
selector:
condition: {}
open_position:
name: "🔼 Open Position"
description: "What position should the cover be moved into when opening?"
default: 100
selector:
number:
min: 0.0
max: 100.0
unit_of_measurement: "%"
open_tilt_position:
name: "🔼 Open Tilt Position"
description: >-
To which tilt position should the cover be moved when opening?
<details>
<summary><code><strong>CLICK HERE:</strong> Further description</code></summary>
If the cover and the integration support it, the tilt position can be used.
However, the attribute 'current_position' is used for position detection and
'current_tilt_position' is not used or taken into account.
</details>
default: 50
selector:
number:
min: 0
max: 100
unit_of_measurement: "%"
time_up_early:
name: "🔼 Time For Drive Up - Early On Workdays"
description: >-
The earliest time at which the cover may be opened. The cover will be opened if <ins>AFTER</ins> this time the defined brightness
or sun-elevation value is high enough. (**NOTE**: If a resident is defined, he must also be awake).
default: "06:00:00"
selector:
time: {}
time_up_early_non_workday:
name: "🔼 Time For Drive Up - Early On Non-Workdays"
description: >-
As directly above, but for non-workdays.
default: "07:00:00"
selector:
time: {}
time_up_late:
name: "🔼 Time For Drive Up - Late On Workdays"
description: >-
The latest time at which the cover should be opened.
If the required brightness or sun-elevation value has <ins>NOT</ins> yet been reached by this time, the cover will still be opened.
(**NOTE**: If a resident is defined and he is still asleep, the cover will <ins>NOT</ins> be opened.
It will only be opened when the resident has woken up).
default: "08:00:00"
selector:
time: {}
time_up_late_non_workday:
name: "🔼 Time For Drive Up - Late On Non-Workdays"
description: >-
As directly above, but for non-workdays.
default: "08:00:00"
selector:
time: {}
auto_up_condition:
name: "🔼 Additional Condition For Opening The Cover"
description: >-
This condition can be used to dynamically control the <ins>opening</ins> of the cover.
You can use this, for example, if the covers normally don't open, but you really want to do it on vacation.
<br /><br />`Optional`
default: []
selector:
condition: {}
auto_up_force:
name: "🔼 Force Immediate Opening"
description: >-
If the status of this entity changes to on or true, the cover is opened immediately and without further checking.
<details>
<summary><code><strong>CLICK HERE:</strong> Further description</code></summary>
This can be used for the following purposes under certain circumstances: Antifreeze, RainProtection or WindProtection.
Note:
- However, after forcing a state, you must ensure that you move to the correct target position yourself.
- Force is a final state that cannot be cancelled or resetted by CCA.
- The default automations (open, close, and further) will never be able to override a force. The force feature must therefore be cancelled manually beforehand.
- If you use any force feature, you are responsible for getting CCA back on track.
</details>
<br /><code>Optional</code>
default: []
selector:
entity:
domain:
- input_boolean
- binary_sensor
auto_up_action:
name: "🔼 Additional Actions After Opening The Cover"
description: Additional actions to run after opening the cover
default: []
selector:
action: {}
close_position:
name: "🔻 Close Position"
description: "What position should the cover be moved into when closing?"
default: 0
selector:
number:
min: 0.0
max: 100.0
unit_of_measurement: "%"
close_tilt_position:
name: "🔻 Close Tilt Position"
description: >-
To which tilt position should the cover be moved when closing?
<details>
<summary><code><strong>CLICK HERE:</strong> Further description</code></summary>
If the cover and the integration support it, the tilt position can be used.
However, the attribute 'current_position' is used for position detection and
'current_tilt_position' is not used or taken into account.
</details>
default: 50
selector:
number:
min: 0
max: 100
unit_of_measurement: "%"
time_down_early:
name: "🔻 Time For Drive Down - Early On Workdays"
description: >-
The earliest time at which the cover may be closed.
The cover will be closed if <ins>AFTER</ins> this time the defined brightness or sun-elevation value is low enough.
default: "16:00:00"
selector:
time: {}
time_down_early_non_workday:
name: "🔻 Time For Drive Down - Early On Non-Workdays"
description: >-
As directly above, but for non-workdays.
default: "16:00:00"
selector:
time: {}
time_down_late:
name: "🔻 Time For Drive Down - Late On Workdays"
description: >-
The latest time at which the cover should be closed.
If the required brightness or sun-elevation value has <ins>NOT</ins> yet been reached by this time,
the cover will still be closed.
default: "22:00:00"
selector:
time: {}
time_down_late_non_workday:
name: "🔻 Time For Drive Down - Late On Non-Workdays"
description: >-
As directly above, but for non-workdays.
default: "22:00:00"
selector:
time: {}
auto_down_condition:
name: "🔻 Additional Condition For Closing The Cover"
description: >-
This condition can be used to dynamically control the <ins>closing</ins> of the cover.
You can use this, for example, at Christmas time or if you want the covers to behave differently while on vacation.
<br /><br />`Optional`
default: []
selector:
condition: {}
auto_down_force:
name: "🔻 Force Immediate Closing"
description: >-
If the status of this entity changes to on or true, the cover is closed immediately and without further checking.
<details>
<summary><code><strong>CLICK HERE:</strong> Further description</code></summary>
This can be used for the following purposes under certain circumstances: Antifreeze, RainProtection or WindProtection.
Note:
- However, after forcing a state, you must ensure that you move to the correct target position yourself.
- Force is a final state that cannot be cancelled or resetted by CCA.
- The default automations (open, close, and further) will never be able to override a force. The force feature must therefore be cancelled manually beforehand.
- If you use any force feature, you are responsible for getting CCA back on track.
</details>
<br /><code>Optional</code>
default: []
selector:
entity:
domain:
- input_boolean
- binary_sensor
auto_down_action:
name: "🔻 Additional Actions After Closing The Cover"
description: Additional actions to run after closing the cover
default: []
selector:
action: {}
default_brightness_sensor:
name: "🔅 Default Brightness Sensor"
description: >-
This default brightness sensor can be defined here, which is used for daily up and down.
<br /><br />`Optional`
default: []
selector:
entity:
filter:
- domain:
- sensor
brightness_time_duration:
name: "🔅 Brightness Time Duration"
description: "Defines the time to given brightness sensor must be stay above/below the thresholds."
default: 30
selector:
number:
min: 0.0
max: 600.0
mode: slider
step: 1.0
unit_of_measurement: seconds
brightness_up:
name: "🔅 Brightness Value For Opening The Cover"
description: "At what brightness value should the cover be opened?"
default: 0
selector:
number:
min: 0.0
max: 100000.0
unit_of_measurement: lx
step: 1.0
brightness_down:
name: "🔅 Brightness Value For Closing The Cover"
description: "At what brightness value should the cover be closed? Must be lower then the brightness up value."
default: 0
selector:
number:
min: 0.0
max: 100000.0
unit_of_measurement: lx
step: 1.0
default_sun_sensor:
name: "☀️ Sun Sensor"
description: >-
Which sensors provides attributes with current azimuth and elevation of sun.
I strongly suggest to use sun.sun ([Sun integration](https://www.home-assistant.io/integrations/sun/)).
Please make sure that the integration is activated and provides the attributes.
<strong>Important: If you want to use automatic shading, the sensor must also be specified here.
Regardless of whether the basic sun control is used.</strong>
<br /><br />`Optional`
<br /><br />`Shading`
default: "sun.sun"
selector:
entity:
filter:
- domain:
- sun
sun_time_duration:
name: "☀️ Sun Time Duration"
description: "Defines the time to given sun sensor must be stay above/below the thresholds."
default: 30
selector:
number:
min: 0.0
max: 600.0
mode: slider
step: 1.0
unit_of_measurement: seconds
sun_elevation_up:
name: "☀️ Sun Elevation Value For Opening The Cover"
description: "The cover will be <ins>opened</ins> if the sun elevation is over this value"
default: 0
selector:
number:
min: -90.0
max: 90.0
unit_of_measurement: °
step: 0.1
mode: slider
sun_elevation_down:
name: "☀️ Sun Elevation Value For Closing The Cover"
description: "The cover will be <ins>closed</ins> if the sun elevation is under this value"
default: 0
selector:
number:
min: -90.0
max: 90.0
unit_of_measurement: °
step: 0.1
mode: slider
drive_delay_fix:
name: "🕛 Fixed Drive Delay"
description: >-
Fixed drive delay to avoid radio interferences.
<br /><br />`Optional`
default: 0
selector:
number:
min: 0.0
max: 600.0
unit_of_measurement: seconds
step: 1.0
mode: slider
drive_delay_random:
name: "🕛 Random Drive Delay"
description: "Additional random delay."
default: 5
selector:
number:
min: 0.0
max: 600.0
unit_of_measurement: seconds
step: 1.0
mode: slider
tilt_delay:
name: "🕛 Tilt Delay"
description: >-
Delay between <em>set_cover_position</em> and <em>set_cover_tilt_position</em>.
Only necessary when using the tilt functions.
This separates the two commands in terms of time.
<br /><br />`Optional`
default: 0
selector:
number:
min: 0.0
max: 600.0
unit_of_measurement: seconds
step: 1.0
mode: slider
position_tolerance:
name: "〰️ Position Tolerance"
description: >-
Tolerance to be applied when comparing the current position with the to be position.
These are absolute values. Not relative to the previous position values.
<details>
<summary><code><strong>CLICK HERE:</strong> Further descriptions</code></summary>
Attention: Bear in mind that the other positions are not too close to each other if you include the tolerance.
The following could cause problems and would then be <ins>incorrect</ins>:
<br />
- Open Position = 100<br />
- Ventilate Position = 99<br />
- Tolerance >= 1<br />
</details>
default: 0
selector:
number:
min: 0.0
max: 20.0
unit_of_measurement: "%"
workday_sensor:
name: "💼 Sensor For Workday/Non-Workday"
description: >-
It may be desired to open a cover at a different time on work days than on non-work days.
The corresponding binary sensor can be defined here. If not set, the cover will open every time at time_up_early.
<br /><br />`Optional`
default: []
selector:
entity:
filter:
- domain:
- binary_sensor
resident_sensor:
name: "🛌 Resident Mode"
description: >-
Overwrite mode for opening and unplannend closing.
<details>
<summary><code><strong>CLICK HERE:</strong> Further descriptions</code></summary>
This switch can be used to override the automatic opening of the cover.
If this sensor (input_boolean or binary_sensor) is set to ON, the cover will not open automatically.
This can be used e.g. to define a resident for the room. In this case, the cover only opens when the resident is no longer asleep.
<br />
For this it is necessary to use a boolean sensor that returns TRUE/ON for sleeping and FALSE/OFF for non-sleeping.
<br />
The cover will also close (without checking the defined times) if this sensor switches to TRUE/ON (because the resident is sleeping).
</details>
<br /><code>Optional</code>
default: []
selector:
entity:
domain:
- input_boolean
- binary_sensor
contact_sensor:
name: "💨 Contact Sensor Entity"
description: >-
The contact sensor is required for lockout protection and for ventilation mode. It must be a binary two-way contact sensor.
<details>
<summary><code><strong>CLICK HERE:</strong> Further descriptions</code></summary>
- <ins>Lockout protection:</ins> 🚪
<br />
The cover is not closed and the sun shading is not activated when the door contact is open.
Note that the cover can close in the evening when the door contact is closed.
It is not moved to the previously desired shading position!
<br /><br />
If the sun shading is cancelled, the door contact is open and the lock-out protection is enabled,
the blind does not move from the shading position to the ventilation position.
Instead, the roller blind is opened.
<br /><br />
- <ins>Ventilation mode:</ins> 💨
<br />
If the door contact changes to on/true, the cover is moved to the ventilation position.
The prerequisite is that the cover is already closed.
After the status changes to off/false, the close position is activated.
The same applies in the shading-out situation.
</details>
<br /><code>Optional</code>
default: []
selector:
entity:
filter:
- domain:
- binary_sensor
- input_boolean
ventilate_position:
name: "💨 Ventilate Position"
description: >-
What position should the cover move to when opening the window/door and the cover is closed to allow ventilation?
If closing is triggered and the contact_sensor is 'on' the cover will move to this position instead of closing completly
<br /><br />Should not be 100. In this case please use 99. And please also note the information in the position tolerance.
<br /><br />`Optional`
default: 30
selector:
number:
min: 0.0
max: 100.0
unit_of_measurement: "%"
ventilate_tilt_position:
name: "💨 Ventilate Tilt Position"
description: >-
To which tilt position should the cover be moved for ventilation?
<details>
<summary><code><strong>CLICK HERE:</strong> Further description</code></summary>
If the cover and the integration support it, the tilt position can be used.
However, the attribute 'current_position' is used for position detection and
'current_tilt_position' is not used or taken into account.
</details>
default: 50
selector:
number:
min: 0
max: 100
unit_of_measurement: "%"
auto_ventilate_condition:
name: "💨 Additional Condition For Ventilation"
description: >-
This condition can be used to dynamically control the <ins>start of the ventilation</ins> of the cover.
<br /><br />`Optional`
default: []
selector:
condition: {}
auto_ventilate_force:
name: "💨 Force Immediate Ventilation"
description: >-
If the status of this entity changes to on or true, the cover is immediately set to ventilation mode and without further checking.
<details>
<summary><code><strong>CLICK HERE:</strong> Further description</code></summary>
This can be used for the following purposes under certain circumstances: Antifreeze, RainProtection or WindProtection.
Note:
- However, after forcing a state, you must ensure that you move to the correct target position yourself.
- Force is a final state that cannot be cancelled or resetted by CCA.
- The default automations (open, close, and further) will never be able to override a force. The force feature must therefore be cancelled manually beforehand.
- If you use any force feature, you are responsible for getting CCA back on track.
</details>
<br /><code>Optional</code>
default: []
selector:
entity:
domain:
- input_boolean
- binary_sensor
auto_ventilate_action:
name: "💨 Additional Actions After Ventilating The Cover"
description: Additional actions to run after ventilating the cover
default: []
selector:
action: {}
auto_ventilate_options:
name: "💨 Ventilation Configuration"
description: >-
Various different ventilation options.
<details>
<summary><code><strong>CLICK HERE:</strong> Further descriptions</code></summary>
- <ins>Enable delay in ventilation mode:</ins>
<br />
Normally, when the window contact is opened, there is no delay in the upcoming movements. If you do want this, you can activate it here.
<br /><br />
The "Fixed Drive Delay" and "Random Drive Delay" settings which are already used everywhere are then used.
<br /><br />
- <ins>Allow ventilation not only when closed:</ins>
<br />
Allow ventilation not only in closed state, but also when the position is below the ventilation position.
</details>
default: []
selector:
select:
options:
- label: "💨 Enable delay in ventilation mode"
value: "ventilation_delay_enabled"
- label: "💨 Allow ventilation not only when closed"
value: "ventilation_if_lower_enabled"
multiple: true
sort: false
custom_value: false
mode: list
shading_position:
name: "🥵 Sun Shading Position"
description: "To which position should the cover be moved for shading?<br /><br />`Shading`"
default: 25
selector:
number:
min: 0.0
max: 100.0
unit_of_measurement: "%"
shading_tilt_position:
name: "🥵 Sun Shading Tilt Position"
description: >-
To which tilt position should the cover be moved for shading?
<br /><br />`Shading`
default: 50
selector:
number:
min: 0
max: 100
unit_of_measurement: "%"
shading_brightness_sensor:
name: "🥵 Brightness Sensor For Sun Shading"
description: >-
An additional brightness sensor can be defined here, which is only used for shading.
<br /><br />`Optional`
<br /><br />`Shading`
default: []
selector:
entity:
filter:
- domain:
- sensor
shading_sun_brightness_start:
name: "🥵 Sun Shading Brightness Start Value"
description: >-
The minimum brightness value from which shading should start.
(Must be above the value of brightness end!)
<br /><br />`Optional`
<br /><br />`Shading`
default: 35000
selector:
number:
min: 0.0
max: 100000.0
unit_of_measurement: lx
step: 1.0
shading_sun_brightness_end:
name: "🥵 Sun Shading Brightness End Value"
description: >-
The brightness value from which shading is no longer necessary.
(Must be below the value of brightness start!).
<br /><br />`Optional`
<br /><br />`Shading`
default: 25000
selector:
number:
min: 0.0
max: 100000.0
unit_of_measurement: lx
step: 1.0
shading_azimuth_start:
name: "🥵 Sun Shading Azimuth Start Value"
description: >-
What is the minimum azimuth at which the sun hits the window? (Shading will start)
<br /><br />`The attribute of default sun sensor (configured above) is used.`
<br /><br />`Shading`
default: 95
selector:
number:
min: 0
max: 365
unit_of_measurement: "°"
shading_azimuth_end: