Hi, I have 2 shutters (left and right) on my bedroom windows which I can operate using a Sonoff RF Bridge using MQTT. I’ve found that sometimes the command doesn’t work (perhaps RF interference) so I want to resend the command when it doesn’t work. I’ve recently purchased some Xiaomi Door Window sensors which have been attached to the shutters and correctly report whether they are open or closed. How would I integrate their feedback to my open/close script below to allow the command to be repeated in the event they don’t close successfully?
Because there are 2 shutters and I could not successfully decode the RFraw command that closes both I close one, wait 1.2 seconds for the command to process and then close the second. The close script also has a check to make sure the balcony door is closed after I damaged the shutter in the past from closing it over the door…
Configuration.yaml
cover:
- platform: mqtt
unique_id: Left_Bedroom_Shutter
name: "Left Bedroom Shutter"
command_topic: "cmnd/bedroom_rf_bridge/backlog"
payload_open: "rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A1A1A192A19292A1A192A192A192929 55;rfraw 0"
payload_close: "rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A192A1A1A1A19292A19292A1A1A192929 55;rfraw 0"
payload_stop: "rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A192A1A1A19292A192A1A1A1A192929 55;rfraw 0"
- platform: mqtt
unique_id: Right_Bedroom_Shutter
name: "Right Bedroom Shutter"
command_topic: "cmnd/bedroom_rf_bridge/backlog"
payload_open: "rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A1A1A1A192A19292A1A192A19292A1A19 55;rfraw 0"
payload_close: "rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A192A1A1A1A19292A19292A1A192A1A19 55;rfraw 0"
payload_stop: "rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A1A192A1A1A19292A192A1A1A192A1A19 55;rfraw 0"
- platform: template
covers:
bedroom_shutters:
device_class: shutter
friendly_name: "Bedroom Shutters"
unique_id: Bedroom_Shutters
value_template: "{{ states('sensor.bedroom_shutters')|float > 0 }}"
open_cover:
service: script.open_bedroom_shutters
close_cover:
service: script.close_bedroom_shutters
stop_cover:
service: script.stop_bedroom_shutters
scripts.yaml
close_bedroom_shutters:
alias: Close Bedroom Shutters
sequence:
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.balcony_door_sensor
state: Open
- service: mqtt.publish
data:
topic: cmnd/bedroom_rf_bridge/backlog
payload: rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A192A1A1A1A19292A19292A1A1A192929
55;rfraw 0
- delay: '2'
- service: mqtt.publish
data:
topic: cmnd/bedroom_rf_bridge/backlog
payload: rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A192A1A1A1A19292A19292A1A192A1A19
55;rfraw 0
mode: single
icon: mdi:window-shutter
open_bedroom_shutters:
alias: Open Bedroom Shutters
sequence:
- service: mqtt.publish
data:
topic: cmnd/bedroom_rf_bridge/backlog
payload: rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A1A1A1A192A19292A1A192A19292A1A19
55;rfraw 0
- delay:
milliseconds: 1200
- service: mqtt.publish
data:
topic: cmnd/bedroom_rf_bridge/backlog
payload: rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A1A1A192A19292A1A192A192A192929
55;rfraw 0
mode: single
icon: mdi:window-shutter
stop_bedroom_shutters:
alias: Stop Bedroom Shutters
sequence:
- service: mqtt.publish
data:
topic: cmnd/bedroom_rf_bridge/backlog
payload: rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A1A192A1A1A19292A192A1A1A192A1A19
55;rfraw 0
- delay:
milliseconds: 1200
- service: mqtt.publish
data:
topic: cmnd/bedroom_rf_bridge/backlog
payload: rfraw AA B0 4C 04 08 1374 0258 0118 1388 38192A192A1A1A19292A1929292A19292A19292A19292A1A1929292A192A1A1A1A1A1A1A1A1A1A1A192A1A1A1A1A1A1A1A1A1A192A1A1A19292A192A1A1A1A192929
55;rfraw 0 55;rfraw 0
mode: single
icon: mdi:window-shutter
The script is complicated as it is and I hate MQTT (this is my only MQQT device) so not really sure how to make this happen…