Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- esphome:
- name: smart-rotary-switch
- friendly_name: Smart-Rotary-Switch
- platformio_options:
- upload_speed: 921600
- board_build.flash_mode: dio
- esp32:
- board: seeed_xiao_esp32c3
- variant: esp32c3
- logger:
- level: WARN
- baud_rate: 0
- # Enable Home Assistant API
- api:
- encryption:
- key: "xxxxxxxxxxxxxxxxx"
- ota:
- - platform: esphome
- password: "xxxxxxxx"
- wifi:
- ssid: !secret wifi_ssid
- password: !secret wifi_password
- # Enable fallback hotspot (captive portal) in case wifi connection fails
- ap:
- ssid: "Smart-Rotary-Switch"
- password: "xxxxxxxx"
- captive_portal:
- esp32_ble_tracker:
- bluetooth_proxy:
- active: true
- esp32_ble_server:
- globals:
- - id: encoder_value
- type: int
- initial_value: '0'
- restore_value: true
- sensor:
- - platform: rotary_encoder
- name: "Rotary Encoder Brightness"
- id: brightness_encoder
- pin_a: GPIO2
- pin_b: GPIO3
- min_value: 0
- max_value: 255
- resolution: 2
- on_clockwise:
- then:
- - lambda: |-
- if (id(encoder_value) < 25) {
- id(encoder_value) += 1;
- id(my_custom_encoder_script).execute();
- }
- on_anticlockwise:
- then:
- - lambda: |-
- if (id(encoder_value) > 0) {
- id(encoder_value) -= 1;
- id(my_custom_encoder_script).execute();
- }
- filters:
- - debounce: 25ms
- binary_sensor:
- - platform: gpio
- pin:
- number: GPIO4
- inverted: true
- mode:
- input: true
- pullup: true
- name: "Rotary Encoder Button"
- on_click:
- - homeassistant.service:
- service: script.re_button_press
- filters:
- - delayed_on: 10ms
- script:
- - id: my_custom_encoder_script
- then:
- - lambda: |-
- // Ensure the encoder value does not go below 0 or above 25
- if (id(encoder_value) < 0) {
- id(encoder_value) = 0;
- } else if (id(encoder_value) > 25) {
- id(encoder_value) = 25;
- }
- - homeassistant.service:
- service: script.handle_encoder_value
- data:
- value: !lambda 'return id(encoder_value);'
Advertisement
Add Comment
Please, Sign In to add comment