Skip to content

Commit d7779e1

Browse files
committed
Add localdeck config
1 parent 6783213 commit d7779e1

File tree

3 files changed

+195
-0
lines changed

3 files changed

+195
-0
lines changed

devices/displays/localdeck.yaml

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
substitutions:
2+
name: localdeck
3+
friendly_name: LocalDeck
4+
5+
packages:
6+
- !include ../../common/platforms/common-esp32c3.yaml
7+
- !include ../../common/wifi.yaml
8+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "A"}}
9+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "B"}}
10+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "C"}}
11+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "D"}}
12+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "E"}}
13+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "F"}}
14+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "G"}}
15+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "H"}}
16+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "I"}}
17+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "J"}}
18+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "K"}}
19+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "L"}}
20+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "M"}}
21+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "N"}}
22+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "O"}}
23+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "P"}}
24+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "Q"}}
25+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "R"}}
26+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "S"}}
27+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "T"}}
28+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "U"}}
29+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "V"}}
30+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "W"}}
31+
- !include {file: ../../templates/buttons/keypad_button.yaml, vars: {key: "X"}}
32+
33+
# 24 leds
34+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 1}}
35+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 2}}
36+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 3}}
37+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 4}}
38+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 5}}
39+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 6}}
40+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 7}}
41+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 8}}
42+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 9}}
43+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 10}}
44+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 11}}
45+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 12}}
46+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 13}}
47+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 14}}
48+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 15}}
49+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 16}}
50+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 17}}
51+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 18}}
52+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 19}}
53+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 20}}
54+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 21}}
55+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 22}}
56+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 23}}
57+
- !include {file: ../../templates/localdeck/light-blink.yaml, vars: {number: 24}}
58+
59+
light:
60+
- platform: esp32_rmt_led_strip
61+
# name: None
62+
id: raw_ledstrip
63+
rgb_order: GRB
64+
color_correct: [100%, 100%, 100%]
65+
gamma_correct: 1.0
66+
pin:
67+
number: GPIO8
68+
ignore_strapping_warning: true
69+
num_leds: 24
70+
chipset: SK6812
71+
72+
- platform: partition
73+
id: ledstrip
74+
output_id: ledstrip_output
75+
color_correct: [100%, 100%, 100%]
76+
gamma_correct: 1.0
77+
segments:
78+
- id: raw_ledstrip
79+
from: 18
80+
to: 23
81+
- id: raw_ledstrip
82+
from: 12
83+
to: 17
84+
- id: raw_ledstrip
85+
from: 6
86+
to: 11
87+
- id: raw_ledstrip
88+
from: 0
89+
to: 5
90+
restore_mode: RESTORE_AND_OFF
91+
effects:
92+
- addressable_lambda:
93+
name: Keypad
94+
update_interval: 25ms
95+
lambda: |-
96+
it.all().darken(15);
97+
98+
99+
esphome:
100+
on_boot:
101+
- light.turn_on:
102+
id: ledstrip
103+
effect: Keypad
104+
105+
matrix_keypad:
106+
id: keypad
107+
keys: ABCDEFGHIJKLMNOPQRSTUVWX
108+
rows:
109+
- pin: GPIO7
110+
- pin: GPIO3
111+
- pin: GPIO20
112+
- pin: GPIO21
113+
columns:
114+
- pin:
115+
number: GPIO0
116+
drive_strength: 5mA
117+
- pin:
118+
number: GPIO1
119+
drive_strength: 5mA
120+
- pin:
121+
number: GPIO10
122+
drive_strength: 5mA
123+
- pin:
124+
number: GPIO4
125+
drive_strength: 5mA
126+
- pin:
127+
number: GPIO5
128+
drive_strength: 5mA
129+
- pin:
130+
number: GPIO6
131+
drive_strength: 5mA
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
defaults:
3+
button_hold: "2s"
4+
internal: true
5+
number: ${ord(key) - 64}
6+
7+
binary_sensor:
8+
- platform: matrix_keypad
9+
key: ${key}
10+
id: button_${number}
11+
name: Button ${number}
12+
internal: ${internal}
13+
disabled_by_default: true
14+
on_multi_click:
15+
- timing:
16+
- ON for at most 0.5s
17+
- OFF for at least 0.5s
18+
then:
19+
- event.trigger:
20+
id: event_button_${number}
21+
event_type: click
22+
- timing:
23+
- ON for at most 0.5s
24+
- OFF for at most 0.5s
25+
- ON for at most 0.5s
26+
- OFF for at least 0.5s
27+
then:
28+
- event.trigger:
29+
id: event_button_${number}
30+
event_type: double_click
31+
- timing:
32+
- ON for at most 0.5s
33+
- OFF for at most 0.5s
34+
- ON for at most 0.5s
35+
- OFF for at most 0.5s
36+
- ON for at most 0.5s
37+
- OFF for at most 0.5s
38+
- ON for at most 0.5s
39+
- OFF for at least 0.2s
40+
then:
41+
- event.trigger:
42+
id: event_button_${number}
43+
event_type: four_clicks
44+
- timing:
45+
- "ON for at least ${button_hold}"
46+
then:
47+
- event.trigger:
48+
id: event_button_${number}
49+
event_type: hold
50+
51+
event:
52+
- platform: template
53+
name: Button ${number}
54+
id: event_button_${number}
55+
event_types:
56+
- click
57+
- double_click
58+
- four_clicks
59+
- hold
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
binary_sensor:
2+
- id: !extend button_${number}
3+
on_press:
4+
- lambda: |-
5+
id(ledstrip_output).get(${number - 1}) = Color::WHITE;

0 commit comments

Comments
 (0)