Macropad 4x5 cho HomeAssistant / ESPHome
Mô hình Macropad 4x5 này tương thích ESPHome và sẵn sàng cho Home Assistant. Bao gồm hướng dẫn in và cấu hình, cùng với các tùy chỉnh cho cảm biến và đèn LED. Lý tưởng cho người dùng muốn tùy biến giao diện điều khiển nhà thông minh.
602
Lượt Xem
13
Lượt Thích
38
Lượt Tải
Cập Nhật Dec 15, 2025
Mô tả
Sau khi in xong, tui đã gỡ cái support ở giữa ra bằng kềm, hoặc bạn có thể xóa nó trong phần mềm slicer.
Cái Plate trên cùng cho Switch (công tắc) thì chắc chắn lắm, không cần support đâu.
esphome:
name: buttonpad-v2
friendly_name: ButtonPad-V2
on_boot:
priority: -10
then:
- lambda: !lambda |-
id(key_1_click_state).publish_state(false);
- lambda: !lambda |-
id(key_2_click_state).publish_state(false);
- lambda: !lambda |-
id(key_3_click_state).publish_state(false);
- lambda: !lambda |-
id(key_4_click_state).publish_state(false);
- lambda: !lambda |-
id(key_5_click_state).publish_state(false);
- lambda: !lambda |-
id(key_6_click_state).publish_state(false);
- lambda: !lambda |-
id(key_7_click_state).publish_state(false);
- lambda: !lambda |-
id(key_8_click_state).publish_state(false);
- lambda: !lambda |-
id(key_9_click_state).publish_state(false);
- lambda: !lambda |-
id(key_A_click_state).publish_state(false);
- lambda: !lambda |-
id(key_B_click_state).publish_state(false);
- lambda: !lambda |-
id(key_C_click_state).publish_state(false);
- lambda: !lambda |-
id(key_D_click_state).publish_state(false);
- lambda: !lambda |-
id(key_E_click_state).publish_state(false);
- lambda: !lambda |-
id(key_F_click_state).publish_state(false);
- lambda: !lambda |-
id(key_G_click_state).publish_state(false);
- lambda: !lambda |-
id(key_H_click_state).publish_state(false);
- lambda: !lambda |-
id(key_I_click_state).publish_state(false);
- lambda: !lambda |-
id(key_J_click_state).publish_state(false);
- lambda: !lambda |-
id(key_K_click_state).publish_state(false);
- lambda: !lambda |-
id(key_1_held_state).publish_state(false);
- lambda: !lambda |-
id(key_2_held_state).publish_state(false);
- lambda: !lambda |-
id(key_3_held_state).publish_state(false);
- lambda: !lambda |-
id(key_4_held_state).publish_state(false);
- lambda: !lambda |-
id(key_5_held_state).publish_state(false);
- lambda: !lambda |-
id(key_6_held_state).publish_state(false);
- lambda: !lambda |-
id(key_7_held_state).publish_state(false);
- lambda: !lambda |-
id(key_8_held_state).publish_state(false);
- lambda: !lambda |-
id(key_9_held_state).publish_state(false);
- lambda: !lambda |-
id(key_A_held_state).publish_state(false);
- lambda: !lambda |-
id(key_B_held_state).publish_state(false);
- lambda: !lambda |-
id(key_C_held_state).publish_state(false);
- lambda: !lambda |-
id(key_D_held_state).publish_state(false);
- lambda: !lambda |-
id(key_E_held_state).publish_state(false);
- lambda: !lambda |-
id(key_F_held_state).publish_state(false);
- lambda: !lambda |-
id(key_G_held_state).publish_state(false);
- lambda: !lambda |-
id(key_H_held_state).publish_state(false);
- lambda: !lambda |-
id(key_I_held_state).publish_state(false);
- lambda: !lambda |-
id(key_J_held_state).publish_state(false);
- lambda: !lambda |-
id(key_K_held_state).publish_state(false);
- lambda: !lambda |-
id(key_1_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_2_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_3_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_4_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_5_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_6_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_7_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_8_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_9_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_A_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_B_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_C_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_D_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_E_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_F_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_G_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_H_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_I_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_J_double_click_state).publish_state(false);
- lambda: !lambda |-
id(key_K_double_click_state).publish_state(false);
- light.turn_on:
id: led_strip
brightness: 100%
red: 80%
green: 60%
blue: 100%
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "PnBg/ca/r7Z4uEva9CTEkSXgm1kJx6FmgYcFnWvE4+c="
ota:
password: "dce4a01122c8c506a43fa3ebbdde628f"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Buttonpad-V2 Fallback Hotspot"
password: "m8caOXm3DMsB"
captive_portal:
light:
- platform: neopixelbus
id: led_strip
type: GRB
variant: WS2811
pin: GPIO13
num_leds: 16
name: "Podsvietenie"
matrix_keypad:
id: espdeck_keypad
rows:
- pin: GPIO33
- pin: GPIO32
- pin: GPIO16
- pin: GPIO17
columns:
- pin: GPIO12
- pin: GPIO14
- pin: GPIO27
- pin: GPIO26
- pin: GPIO25
keys: "123456789ABCDEFGHIJK"
has_diodes: false
binary_sensor:
- platform: template
name: "Keypad 1 Held"
id: key_1_held_state
- platform: template
name: "Keypad 1 Double Click"
id: key_1_double_click_state
- platform: template
name: "Keypad 1 Click"
id: key_1_click_state
- platform: template
name: "Keypad 2 Held"
id: key_2_held_state
- platform: template
name: "Keypad 2 Double Click"
id: key_2_double_click_state
- platform: template
name: "Keypad 2 Click"
id: key_2_click_state
- platform: template
name: "Keypad 3 Held"
id: key_3_held_state
- platform: template
name: "Keypad 3 Double Click"
id: key_3_double_click_state
- platform: template
name: "Keypad 3 Click"
id: key_3_click_state
- platform: template
name: "Keypad 4 Held"
id: key_4_held_state
- platform: template
name: "Keypad 4 Double Click"
id: key_4_double_click_state
- platform: template
name: "Keypad 4 Click"
id: key_4_click_state
- platform: template
name: "Keypad 5 Held"
id: key_5_held_state
- platform: template
name: "Keypad 5 Double Click"
id: key_5_double_click_state
- platform: template
name: "Keypad 5 Click"
id: key_5_click_state
- platform: template
name: "Keypad 6 Held"
id: key_6_held_state
- platform: template
name: "Keypad 6 Double Click"
id: key_6_double_click_state
- platform: template
name: "Keypad 6 Click"
id: key_6_click_state
- platform: template
name: "Keypad 7 Held"
id: key_7_held_state
- platform: template
name: "Keypad 7 Double Click"
id: key_7_double_click_state
- platform: template
name: "Keypad 7 Click"
id: key_7_click_state
- platform: template
name: "Keypad 8 Held"
id: key_8_held_state
- platform: template
name: "Keypad 8 Double Click"
id: key_8_double_click_state
- platform: template
name: "Keypad 8 Click"
id: key_8_click_state
- platform: template
name: "Keypad 9 Held"
id: key_9_held_state
- platform: template
name: "Keypad 9 Double Click"
id: key_9_double_click_state
- platform: template
name: "Keypad 9 Click"
id: key_9_click_state
- platform: template
name: "Keypad A Held"
id: key_A_held_state
- platform: template
name: "Keypad A Double Click"
id: key_A_double_click_state
- platform: template
name: "Keypad A Click"
id: key_A_click_state
- platform: template
name: "Keypad B Held"
id: key_B_held_state
- platform: template
name: "Keypad B Double Click"
id: key_B_double_click_state
- platform: template
name: "Keypad B Click"
id: key_B_click_state
- platform: template
name: "Keypad C Held"
id: key_C_held_state
- platform: template
name: "Keypad C Double Click"
id: key_C_double_click_state
- platform: template
name: "Keypad C Click"
id: key_C_click_state
- platform: template
name: "Keypad D Held"
id: key_D_held_state
- platform: template
name: "Keypad D Double Click"
id: key_D_double_click_state
- platform: template
name: "Keypad D Click"
id: key_D_click_state
- platform: template
name: "Keypad E Held"
id: key_E_held_state
- platform: template
name: "Keypad E Double Click"
id: key_E_double_click_state
- platform: template
name: "Keypad E Click"
id: key_E_click_state
- platform: template
name: "Keypad F Held"
id: key_F_held_state
- platform: template
name: "Keypad F Double Click"
id: key_F_double_click_state
- platform: template
name: "Keypad F Click"
id: key_F_click_state
- platform: template
name: "Keypad G Held"
id: key_G_held_state
- platform: template
name: "Keypad G Double Click"
id: key_G_double_click_state
- platform: template
name: "Keypad G Click"
id: key_G_click_state
- platform: template
name: "Keypad H Held"
id: key_H_held_state
- platform: template
name: "Keypad H Double Click"
id: key_H_double_click_state
- platform: template
name: "Keypad H Click"
id: key_H_click_state
- platform: template
name: "Keypad I Held"
id: key_I_held_state
- platform: template
name: "Keypad I Double Click"
id: key_I_double_click_state
- platform: template
name: "Keypad I Click"
id: key_I_click_state
- platform: template
name: "Keypad J Held"
id: key_J_held_state
- platform: template
name: "Keypad J Double Click"
id: key_J_double_click_state
- platform: template
name: "Keypad J Click"
id: key_J_click_state
- platform: template
name: "Keypad K Held"
id: key_K_held_state
- platform: template
name: "Keypad K Double Click"
id: key_K_double_click_state
- platform: template
name: "Keypad K Click"
id: key_K_click_state
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key1
key: 1
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_1_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_1_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 1 MultiHeld"
- lambda: !lambda |-
id(key_1_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_1_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 1 Double Click"
- lambda: !lambda |-
id(key_1_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_1_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key2
key: 2
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_2_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_2_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 2 MultiHeld"
- lambda: !lambda |-
id(key_2_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_2_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 2 Double Click"
- lambda: !lambda |-
id(key_2_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_2_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key3
key: 3
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_3_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_3_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 3 MultiHeld"
- lambda: !lambda |-
id(key_3_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_3_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 3 Double Click"
- lambda: !lambda |-
id(key_3_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_3_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key4
key: 4
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_4_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_4_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 4 MultiHeld"
- lambda: !lambda |-
id(key_4_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_4_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 4 Double Click"
- lambda: !lambda |-
id(key_4_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_4_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key5
key: 5
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_5_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_5_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 5 MultiHeld"
- lambda: !lambda |-
id(key_5_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_5_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 5 Double Click"
- lambda: !lambda |-
id(key_5_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_5_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key6
key: 6
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_6_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_6_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 6 MultiHeld"
- lambda: !lambda |-
id(key_6_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_6_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 6 Double Click"
- lambda: !lambda |-
id(key_6_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_6_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key7
key: 7
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_7_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_7_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 7 MultiHeld"
- lambda: !lambda |-
id(key_7_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_7_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 7 Double Click"
- lambda: !lambda |-
id(key_7_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_7_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key8
key: 8
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_8_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_8_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 8 MultiHeld"
- lambda: !lambda |-
id(key_8_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_8_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 8 Double Click"
- lambda: !lambda |-
id(key_8_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_8_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: key9
key: 9
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_9_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_9_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key 9 MultiHeld"
- lambda: !lambda |-
id(key_9_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_9_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key 9 Double Click"
- lambda: !lambda |-
id(key_9_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_9_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyA
key: A
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_A_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_A_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key A MultiHeld"
- lambda: !lambda |-
id(key_A_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_A_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key A Double Click"
- lambda: !lambda |-
id(key_A_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_A_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyB
key: B
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_B_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_B_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key B MultiHeld"
- lambda: !lambda |-
id(key_B_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_B_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key B Double Click"
- lambda: !lambda |-
id(key_B_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_B_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyC
key: C
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_C_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_C_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key C MultiHeld"
- lambda: !lambda |-
id(key_C_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_C_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key C Double Click"
- lambda: !lambda |-
id(key_C_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_C_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyD
key: D
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_D_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_D_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key D MultiHeld"
- lambda: !lambda |-
id(key_D_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_D_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key D Double Click"
- lambda: !lambda |-
id(key_D_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_D_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyE
key: E
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_E_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_E_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key E MultiHeld"
- lambda: !lambda |-
id(key_E_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_E_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key E Double Click"
- lambda: !lambda |-
id(key_E_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_E_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyF
key: F
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_F_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_F_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key F MultiHeld"
- lambda: !lambda |-
id(key_F_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_F_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key F Double Click"
- lambda: !lambda |-
id(key_F_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_F_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyG
key: G
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_G_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_G_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key G MultiHeld"
- lambda: !lambda |-
id(key_G_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_G_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key G Double Click"
- lambda: !lambda |-
id(key_G_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_G_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyH
key: H
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_H_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_H_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key H MultiHeld"
- lambda: !lambda |-
id(key_H_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_H_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key H Double Click"
- lambda: !lambda |-
id(key_H_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_H_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyI
key: I
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_I_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_I_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key I MultiHeld"
- lambda: !lambda |-
id(key_I_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_I_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key I Double Click"
- lambda: !lambda |-
id(key_I_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_I_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyJ
key: J
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_J_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_J_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key J MultiHeld"
- lambda: !lambda |-
id(key_J_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_J_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key J Double Click"
- lambda: !lambda |-
id(key_J_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_J_double_click_state).publish_state(false);
- platform: matrix_keypad
keypad_id: espdeck_keypad
id: keyK
key: K
on_multi_click:
- timing:
- ON for at most 950ms
- OFF for at least 500ms
then:
- lambda: !lambda |-
id(key_K_click_state).publish_state(true);
- delay: 500ms
- lambda: !lambda |-
id(key_K_click_state).publish_state(false);
- timing:
- ON for at least 1s
then:
- logger.log: "Key K MultiHeld"
- lambda: !lambda |-
id(key_K_held_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_K_held_state).publish_state(false);
on_double_click:
min_length: 25ms
max_length: 350ms
then:
- logger.log: "Key K Double Click"
- lambda: !lambda |-
id(key_K_double_click_state).publish_state(true);
- delay: 1s
- lambda: !lambda |-
id(key_K_double_click_state).publish_state(false);
Giấy phép
File mô hình
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.
Vui lòng đăng nhập để khoe bản in của bạn.
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!