20240410
This commit is contained in:
165
esphome/blinds.yaml
Normal file
165
esphome/blinds.yaml
Normal file
@@ -0,0 +1,165 @@
|
||||
substitutions:
|
||||
device_name: "blinds-speelkamer"
|
||||
friendly_name: "blinds speelkamer"
|
||||
comment: "esp32c3, motor, encoder"
|
||||
location: "speelkamer"
|
||||
api_password: !secret blinds_api
|
||||
ota_password: !secret ota_password
|
||||
wifi_ssid: !secret wifi_ssid
|
||||
wifi_password: !secret wifi_password
|
||||
gateway: !secret ip_gateway
|
||||
subnet: !secret ip_subnet
|
||||
ip: !secret blinds_ip
|
||||
update_interval: 30s
|
||||
pin_mot1: GPIO3
|
||||
pin_mot2: GPIO2
|
||||
pin_enc1: GPIO7
|
||||
pin_enc2: GPIO8
|
||||
pin_sw1: GPIO9
|
||||
pin_sw2: GPIO10
|
||||
|
||||
packages:
|
||||
board: !include boards/esp32-C3.yaml
|
||||
device_base: !include common/common.yaml
|
||||
connection: !include common/wifi.yaml
|
||||
logger: !include templates/logger.yaml
|
||||
|
||||
binary_sensor:
|
||||
- platform: gpio
|
||||
id: endstop1
|
||||
name: endstop1
|
||||
pin:
|
||||
number: ${pin_sw1}
|
||||
mode:
|
||||
input: true
|
||||
pullup: true
|
||||
inverted: true
|
||||
on_press:
|
||||
then:
|
||||
- sensor.rotary_encoder.set_value:
|
||||
id: encoder1
|
||||
value: 0
|
||||
- platform: gpio
|
||||
id: endstop2
|
||||
name: endstop2
|
||||
pin:
|
||||
number: ${pin_sw2}
|
||||
mode:
|
||||
input: true
|
||||
pullup: true
|
||||
inverted: true
|
||||
|
||||
|
||||
|
||||
globals:
|
||||
- id: min_tilt
|
||||
type: int
|
||||
restore_value: true
|
||||
initial_value: "0"
|
||||
- id: max_tilt
|
||||
type: int
|
||||
restore_value: true
|
||||
initial_value: "2328"
|
||||
|
||||
script:
|
||||
- id: tilt_left
|
||||
then:
|
||||
- switch.turn_off: positive
|
||||
- switch.turn_on: negative
|
||||
- id: tilt_right
|
||||
then:
|
||||
- switch.turn_off: negative
|
||||
- switch.turn_on: positive
|
||||
- id: tilt_stop
|
||||
then:
|
||||
- switch.turn_off: negative
|
||||
- switch.turn_off: positive
|
||||
|
||||
|
||||
sensor:
|
||||
- platform: rotary_encoder
|
||||
name: "Rotary Encoder"
|
||||
id: 'encoder1'
|
||||
pin_a: ${pin_enc1}
|
||||
pin_b: ${pin_enc2}
|
||||
publish_initial_value: True
|
||||
#restore_mode: RESTORE_DEFAULT_ZERO
|
||||
# on_value:
|
||||
# then:
|
||||
# - lambda: |-
|
||||
# id(blind).position = x / (id(max_tilt)-id(min_tilt));
|
||||
# id(blind).publish_state();
|
||||
|
||||
|
||||
# Exposed switches.
|
||||
switch:
|
||||
- platform: template
|
||||
id: resetc
|
||||
name: Reset count
|
||||
turn_on_action:
|
||||
then:
|
||||
- sensor.rotary_encoder.set_value:
|
||||
id: encoder1
|
||||
value: 0
|
||||
- switch.turn_off: resetc
|
||||
- platform: restart
|
||||
name: restart
|
||||
- platform: output
|
||||
name: "shade1"
|
||||
output: 'shade1'
|
||||
internal: true
|
||||
id: negative
|
||||
- platform: output
|
||||
name: "shade2"
|
||||
output: 'shade2'
|
||||
internal: true
|
||||
id: positive
|
||||
|
||||
output:
|
||||
- platform: gpio
|
||||
id: 'shade1'
|
||||
pin: ${pin_mot1}
|
||||
- platform: gpio
|
||||
id: 'shade2'
|
||||
pin: ${pin_mot2}
|
||||
|
||||
cover:
|
||||
- platform: endstop
|
||||
device_class: blind
|
||||
name: "speelkamer blind"
|
||||
#optimistic: TRUE
|
||||
id: blind
|
||||
#has_position: true
|
||||
# lambda: |-
|
||||
# if(id(endstop1).state & id(blind).current_operation == CoverOperation::COVER_OPERATION_CLOSING)
|
||||
# {
|
||||
# id(tilt_stop).execute();
|
||||
# return COVER_CLOSED;
|
||||
# }
|
||||
# else if(id(endstop2).state & id(blind).current_operation == CoverOperation::COVER_OPERATION_OPENING)
|
||||
# {
|
||||
# id(tilt_stop).execute();
|
||||
# return COVER_OPEN;
|
||||
# }
|
||||
# return {};
|
||||
|
||||
open_endstop: endstop2
|
||||
open_duration: 5s
|
||||
close_endstop: endstop1
|
||||
close_duration: 5s
|
||||
stop_action:
|
||||
then:
|
||||
- script.execute: tilt_stop
|
||||
|
||||
open_action:
|
||||
then:
|
||||
- script.execute: tilt_right
|
||||
|
||||
close_action:
|
||||
then:
|
||||
- script.execute: tilt_left
|
||||
|
||||
# on_open:
|
||||
# - logger.log: "Cover is Open!"
|
||||
# on_closed:
|
||||
# - logger.log: "Cover is Closed!"
|
||||
Reference in New Issue
Block a user