mirror of
https://github.com/esphome/esphome-docs.git
synced 2024-12-26 17:27:47 +01:00
Add endstop cover guide
This commit is contained in:
parent
7929a73e59
commit
0ad211f102
@ -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
113
cookbook/endstop-cover.rst
Normal 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::
|
@ -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:
|
||||||
|
@ -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>`.
|
||||||
|
Loading…
Reference in New Issue
Block a user