forked from KaufHA/kauf-rgb-switch
-
Notifications
You must be signed in to change notification settings - Fork 1
/
kauf-rgbs-factory.yaml
156 lines (140 loc) · 4.26 KB
/
kauf-rgbs-factory.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
substitutions:
project_ver_let: f
sub_on_press: script_toggle_factory
sub_blink_check: script_blink_check_factory
packages:
kauf_rgbsw_update: !include kauf-rgbs-update.yaml
esphome:
on_boot:
then:
- if:
condition:
lambda: return id(first_boot);
then:
# set factory defaults for config lights:
- lambda: |-
auto call = id(big_light_on).turn_on();
call.set_brightness(1.0f);
call.set_rgb(0.0f, 1.0f, 0.0f); // small light green when switch is on
call.perform();
- lambda: |-
auto call = id(big_light_off).turn_on();
call.set_brightness(0.75f);
call.set_rgb(1.0f, 0.0f, 0.0f); // small light red when switch is off
call.perform();
- lambda: |-
auto call = id(small_light_on).turn_on();
call.set_brightness(1.0f);
call.set_rgb(0.0f, 1.0f, 1.0f); // big light cyan when switch is on
call.perform();
- lambda: |-
auto call = id(small_light_off).turn_on();
call.set_brightness(0.25f);
call.set_rgb(0.0f, 1.0f, 1.0f); // big light cyan when switch is off but dimmer
call.perform();
# call factory test script. It will loop forever until button is pressed.
- script.execute: factory_test
globals:
- id: first_boot # used to run routine at factory to confirm
type: bool # correct firwmare is running.
restore_value: yes
initial_value: 'true'
- id: finished_loop
type: bool
restore_value: no
initial_value: 'false'
script:
- id: factory_test
mode: queued
then:
- delay: 1s
- light.turn_off: big_light
- light.turn_off: small_light
- delay: 1s
- light.turn_on:
id: big_light
brightness: 100%
red: 100%
green: 0%
blue: 0%
transition_length: 1s
- delay: 1s
- light.turn_on:
id: small_light
brightness: 100%
red: 100%
green: 0%
blue: 0%
transition_length: 1s
- delay: 1s
- light.turn_off: big_light
- light.turn_off: small_light
- delay: 1s
- switch.turn_on: relay
- light.turn_on:
id: big_light
brightness: 100%
red: 0%
green: 100%
blue: 0%
transition_length: 1s
- delay: 1s
- light.turn_on:
id: small_light
brightness: 100%
red: 0%
green: 100%
blue: 0%
transition_length: 1s
- delay: 1s
- light.turn_off: big_light
- light.turn_off: small_light
- switch.turn_off: relay
- delay: 1s
- light.turn_on:
id: big_light
brightness: 100%
red: 0%
green: 0%
blue: 100%
transition_length: 1s
- delay: 1s
- light.turn_on:
id: small_light
brightness: 100%
red: 0%
green: 0%
blue: 100%
transition_length: 1s
- delay: 1s
- light.turn_off: big_light
- light.turn_off: small_light
# repeat forever, will stop when button is pressed after finished_loop is set.
- globals.set:
id: finished_loop
value: 'true'
- script.execute: factory_test
- id: script_toggle_factory
then:
# stop test loop if still going and first loop has finished.
- if:
condition:
lambda: return ( id(finished_loop) );
then:
- globals.set:
id: first_boot
value: 'false'
- script.execute: script_save_changes
- script.stop: factory_test
- id: script_blink_check_factory
then:
- if: # don't blink status led during factory test
condition:
- lambda: return (id(first_boot));
then:
- script.stop: blink_status_led
- if: # don't blink status led if no_hass is on
condition:
- lambda: return (id(switch_no_hass).state);
then:
- script.stop: blink_status_led