esphome: name: blinds friendly_name: "Blinds" area: "Entryway" project: name: dasfoo.blinds version: "2.0" includes: - blinds/somfy.h - blinds/cc1101.h libraries: - SPI - lsatan/SmartRC-CC1101-Driver-Lib packages: device_base: !include templates/esp32-poe.yaml globals: - id: somfy_remote_id_base type: int # Can be retrieved from MQTT server. Take the key with lowest integer value # from /rolling_code/ path. initial_value: !secret somfy_remote_id_base cover: - platform: custom lambda: |- auto rfPin = 4; std::vector blinds; for (int i = 0; i < 13; ++i) { auto cover = new SomfyRTS( rfPin, id(somfy_remote_id_base) + i, id(mqtt_homeassistant)); blinds.push_back(cover); App.register_component(cover); } // SomfyRTS ctor will set correct pin modes, now we can initialize cc1101. cc1101_Init(); return blinds; covers: - name: "Office window" - name: "Bedroom" - name: "Living Room side" - name: "Wardrobe" - name: "Child West door" - name: "Child West window" - name: "Hallway Stairs window" - name: "Kitchen window" - name: "Kitchen door" - name: "Living Room door" - name: "Living Room window" - name: "Child East window" - name: "Child East door" - platform: template name: "Wintergarten" device_class: shade optimistic: true assumed_state: true # always show both buttons stop_action: - switch.turn_off: wintergarten_deploy - switch.turn_off: wintergarten_retract open_action: - switch.turn_off: wintergarten_deploy - switch.turn_on: wintergarten_retract - delay: 35s - switch.turn_off: wintergarten_retract # TODO: check last action close_action: - switch.turn_off: wintergarten_retract - switch.turn_on: wintergarten_deploy - delay: 35s - switch.turn_off: wintergarten_deploy # TODO: check last action switch: - platform: gpio pin: GPIO32 id: wintergarten_deploy restore_mode: ALWAYS_OFF inverted: true - platform: gpio pin: GPIO33 id: wintergarten_retract restore_mode: ALWAYS_OFF inverted: true