Add endstop cover guide

This commit is contained in:
Otto Winter 2019-03-11 13:18:15 +01:00
parent 7929a73e59
commit 0ad211f102
No known key found for this signature in database
GPG Key ID: DB66C0BE6013F97E
4 changed files with 125 additions and 12 deletions

View File

@ -31,13 +31,13 @@ for some motors.
.. code-block:: yaml .. code-block:: yaml
esphome: esphome:
name: cover name: cover
platform: ESP8266 platform: ESP8266
board: esp01_1m board: esp01_1m
wifi: wifi:
ssid: '***' ssid: '***'
password: '***' password: '***'
api: api:
@ -48,7 +48,7 @@ for some motors.
binary_sensor: binary_sensor:
- platform: gpio - platform: gpio
pin: pin:
number: 10 number: GPIO10
inverted: true inverted: true
id: button id: button
on_press: on_press:
@ -75,10 +75,10 @@ for some motors.
switch: switch:
- platform: gpio - platform: gpio
pin: 12 pin: GPIO12
id: open id: open
- platform: gpio - platform: gpio
pin: 5 pin: GPIO5
id: close id: close
cover: cover:
@ -102,7 +102,8 @@ for some motors.
stop_action: stop_action:
- switch.turn_off: open - switch.turn_off: open
- switch.turn_off: close - switch.turn_off: close
optimistic: true optimistic: True
assumed_state: True
See Also See Also
-------- --------

113
cookbook/endstop-cover.rst Normal file
View File

@ -0,0 +1,113 @@
Template Cover with Endstops
============================
.. seo::
:description: An example of how to integrate covers with endstops in ESPHome.
:image: window-open.jpg
The following is an example configuration for controlling covers (like window blinds etc)
with ESPHome. This guide assumes that the cover is set up with two endstops at the top
and the bottom. When these endstops are reached, the cover will automatically stop.
To protect the motors from spinning indefinitely (in case an endstop fails) the motors
also have a maximum run time - after 3 minutes they will automatically turn off even if the
endstop is not reached.
ESPHome uses Home Assistant's cover architecture model which has two states: "OPEN" or
"CLOSED". We will map OPEN to "cover is at the top endstop" and CLOSE to "cover is at the bottom".
.. code-block:: yaml
switch:
# The switch that turns the UP direction on
- platform: gpio
pin: D1
id: up_pin
# Use interlocking to keep at most one of the two directions on
interlock: &interlock_group [up_pin, down_pin]
# If ESP reboots, do not attempt to restore switch state
restore_mode: always off
# The switch that turns the DOWN direction on
- platform: gpio
pin: D2
id: down_pin
interlock: *interlock_group
restore_mode: always off
binary_sensor:
# The top endstop
- platform: gpio
pin: D4
id: top_endstop
on_press:
# Acknowledge that the cover is open
- cover.template.publish:
id: my_cover
state: OPEN
# Stop the cover motors
- cover.stop: my_cover
- platform: gpio
pin: D5
id: bottom_endstop
on_press:
# Acknowledge that the cover is closed
- cover.template.publish:
id: my_cover
state: CLOSED
# Stop the cover motors
- cover.stop: my_cover
cover:
- platform: template
name: "My Endstop Cover"
id: my_cover
open_action:
- switch.turn_on: up_pin
# Failsafe: Turn off motors after 3min if endstop not reached.
- delay: 3 min
- cover.stop: my_cover
close_action:
- switch.turn_on: down_pin
- delay: 3 min
- cover.stop: my_cover
stop_action:
- switch.turn_off: up_pin
- switch.turn_off: down_pin
optimistic: True
assumed_state: True
You can then optionally also add manual controls to the cover with three buttons:
open, close, and stop.
.. code-block:: yaml
binary_sensor:
# [...] - Previous binary sensors
- platform: gpio
id: open_button
pin: D3
on_press:
- cover.open: my_cover
- platform: gpio
id: close_button
pin: D6
on_press:
- cover.close: my_cover
- platform: gpio
id: stop_button
pin: D7
on_press:
- cover.stop: my_cover
See Also
--------
- :doc:`/guides/automations`
- :doc:`/components/cover/template`
- :doc:`dual-r2-cover`
- :ghedit:`Edit`
.. disqus::

View File

@ -9,8 +9,6 @@ The following is a possible configuration file for garage doors that are control
One for opening and another one for closing the garage door. When either one of them is turned on One for opening and another one for closing the garage door. When either one of them is turned on
for a short period of time, the close/open action begins. for a short period of time, the close/open action begins.
.. code-block:: yaml .. code-block:: yaml
switch: switch:

View File

@ -278,7 +278,7 @@ Cookbook
.. imgtable:: .. imgtable::
Garage Door, cookbook/garage-door, window-open.svg Endstop Cover, cookbook/endstop-cover, window-open.svg
PIR Sensor, cookbook/pir, pir.jpg PIR Sensor, cookbook/pir, pir.jpg
Relay, cookbook/relay, relay.jpg Relay, cookbook/relay, relay.jpg
BRUH Multisensor, cookbook/bruh, bruh.png BRUH Multisensor, cookbook/bruh, bruh.png
@ -290,6 +290,7 @@ Cookbook
H801 LED Controller, cookbook/h801, h801.jpg H801 LED Controller, cookbook/h801, h801.jpg
Time & Temperature on OLED Display, cookbook/display_time_temp_oled, display_time_temp_oled_2.jpg Time & Temperature on OLED Display, cookbook/display_time_temp_oled, display_time_temp_oled_2.jpg
Mirabella Genio Bulb, cookbook/mirabella-genio-bulb, cookbook-mirabella-genio-b22-rgbw.jpg Mirabella Genio Bulb, cookbook/mirabella-genio-bulb, cookbook-mirabella-genio-b22-rgbw.jpg
Garage Door, cookbook/garage-door, window-open.svg
Do you have other awesome automations or cool setups? Please feel free to add them to the Do you have other awesome automations or cool setups? Please feel free to add them to the
documentation for others to copy. See :doc:`Contributing </guides/contributing>`. documentation for others to copy. See :doc:`Contributing </guides/contributing>`.