Somfy IB / IB+ House Installation wired controlled by esp32/esp8266 D1MINI

In our House are Blinds and Shutters installed - controlled by a Somfy IB / IB+ system. BJ of our House is 2011.
Somfy is the controlling unit for the sunscreens and the rollos - there´s a automatic Wind/Sun and a chronological central Somfy unit installed.
For us it´s working fine but as always there are some improvements to go for:

  1. Steering by Home Assistant
  2. Getting the Sunscreen to anonther level: make the blinds shut more/less according to the anzimuth of the sun automatically
  3. Steering all togehter by home Assistant integrated sensors - to get a better and more automatic sun/blind cover than the automatic ones.

How to go:

  1. Get a esp32 / esp8266 D1Mini
    OIP
    (im using always the mini versions because they better fit in these housings)
  2. Get a esp32 4 chanel Relais module
  3. Have some soldering / low volt wiring / tools by hand
    Now the Funny Part: wiring your 4 Relay Module to esp 32 D1Mini:

Go from Ground to Ground on your ESP8266
Go from VCC to 5V on your ESP8266
Go from IN1 (Relay1) to RX (GPIO3)
Go from IN2 (Relay2) to D2 (GPIO4)
Go from IN3 (Relay3) to D1 (GPIO5)
Go from IN4 (Relay4) to D6 (GPIO12)

Second Part: Wiring your relay module to your Soliris Ib: (in our House this is originally only installed for our Blinds)

grafik

Go from relais module K1 common pin to Soliris IB Steuerleitung Gemeinsamer C
Go from relais moulde K1 normally open pin to Soliris IB Steuerleitung AUF
Go from relais module K2 common pin to Soliris IB Steuerleitung Gemeinsamer C
Go from relais module K2 normally open pin to Soliris IB Steuerleitung AB

Third Part: Wiring your relay module to your Chronis IB L comfort:
(in our House this is originally only installed for our Shutters)

grafik

Go from relais module K3 common pin to Chronis IBLcomfort to Steuerleitung Gemeinsamer C
Go from relais module K3 normally opend pin to Chronis IBLcomfort to Steuerleitung AUF
Go from relais module K4 common pin to Chronis IBLcomfort to Steuerleitung Gemeinsamer C
Go from relais module K4 normally opend pin to Chronis IBLcomfort to
Steuerleitung AB

  1. Install in your Home Assistant ESPHome Card your esp8266 and config it:
esphome:
  name: journamehere
  friendly_name: Rolläden/Jalousien

esp8266:
  board: esp01_1m

# Enable logging

# Enable Home Assistant API
api:
  encryption:
    key: " your encryption here "

ota:


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "your ssid here"
    password: "your pw here"
     

captive_portal:

logger: 

binary_sensor:
#
switch:

  - platform: gpio
    pin: 
      number: GPIO3
      inverted: true
    name: "Jalousie öffnen"
    id: open_switch_j
    icon: "mdi:window-shutter-open"
#    on_turn_on:
#    - delay: 0.3s
#    - switch.turn_off: open_switch_j
    internal: true
  - platform: gpio
    pin: 
      number: GPIO4
      inverted: true
    name: "Jalousie schließen"
    id: close_switch_j
    icon: "mdi:window-shutter"
#    on_turn_on:
#    - delay: 0.3s
#    - switch.turn_off: close_switch_j
    internal: true
  - platform: gpio
    pin: 
      number: GPIO5
      inverted: true
    name: "Rolladen öffnen"
    id: open_switch_r
    icon: "mdi:garage-open"
#    on_turn_on:
#    - delay: 0.3s
#    - switch.turn_off: open_switch_r
    internal: true
  - platform: gpio
    pin: 
      number: GPIO12
      inverted: true
    name: "Rolladen schließen"
    id: close_switch_r    
    icon: "mdi:garage"
#    on_turn_on:
#    - delay: 0.3s
#    - switch.turn_off: close_switch_r
    internal: true

cover:
  - platform: template
    name: "Jalousie"
    open_action:
      # Cancel any previous action
      - switch.turn_off: close_switch_j
      # Turn the OPEN switch on briefly
      - switch.turn_on: open_switch_j
      - delay: 0.3s
      - switch.turn_off: open_switch_j
    close_action:
      - switch.turn_off: open_switch_j
      - switch.turn_on: close_switch_j
      - delay: 0.3s
      - switch.turn_off: close_switch_j
    stop_action:
      - switch.turn_on: close_switch_j
      - switch.turn_on: open_switch_j
      - delay: 0.3s
      - switch.turn_off: close_switch_j
      - switch.turn_off: open_switch_j
    optimistic: true
    assumed_state: true
    icon: "mdi:blinds-horizontal"
  - platform: template
    name: "Rolladen"
    open_action:
      # Cancel any previous action
      - switch.turn_off: close_switch_r
      # Turn the OPEN switch on briefly
      - switch.turn_on: open_switch_r
      - delay: 0.3s
      - switch.turn_off: open_switch_r
    close_action:
      - switch.turn_off: open_switch_r
      - switch.turn_on: close_switch_r
      - delay: 0.3s
      - switch.turn_off: close_switch_r
    stop_action:
      - switch.turn_on: close_switch_r
      - switch.turn_on: open_switch_r
      - delay: 0.3s
      - switch.turn_off: close_switch_r
      - switch.turn_off: open_switch_r
    optimistic: true
    assumed_state: true    
    icon: "mdi:roller-shade"   

Reboot HA and configure your new Integration ESPHOME Rolläden/Jalousien: You should get a new EntityCard:

grafik

Last Part: (but most Funny) - get your automation done for the automatic angel of your Blinds by azimut and sun standig level:

2 Likes

thanks to @sleepymaxx for the explanations.

I’ve done the same thing with a 2 channel relay (2CH) and a wifi node mcu 8266 (cp2120 driver)

how to connect the pins from the wifi-modul to the relay:

  • Vin (wifi modul) → VCC (relay modul), you need Vin because of the 5V
  • GND (wifi modul) → GND (relay modul)
  • D1 (wifi modul) → IN1 (relay modul)
  • D2 (wifi modul) → IN2 (relay modul)

how to connect the relay modul with the somfy izymo transmitter F-74300:

  • S1 (somfy, green cable) → NO2 (relay modul, normally open)
  • S2 (somfy, yellow cable) → NO1 (relay modul, normally open)
  • COM (somfy, white cable) → COM2 (relay modul)
  • COM2 (relay modul) → COM1 (relay modul) connect these two COM pins together on the relay modul

my yaml config (without wifi config)

switch:
  - platform: gpio
    id: relayup
    icon: "mdi:window-shutter-open"
    name: "Öffnen"
    # D1
    pin: 
      number: GPIO5
      inverted: true 
  - platform: gpio
    id: relaydown
    icon: "mdi:window-shutter"
    name: "Schliessen"
    # D2
    pin: 
      number: GPIO4
      inverted: true

cover:
  - platform: template
    name: "Markise"
    open_action:
      # Cancel any previous action
      - switch.turn_off: relaydown
      # Turn the OPEN switch on briefly
      - switch.turn_on: relayup
      - delay: 1s
      - switch.turn_off: relayup
    close_action:
      - switch.turn_off: relayup
      - switch.turn_on: relaydown
      - delay: 1s
      - switch.turn_off: relaydown
    stop_action:
      - switch.turn_on: relaydown
      - switch.turn_on: relayup
      - delay: 1s
      - switch.turn_off: relaydown
      - switch.turn_off: relayup
    optimistic: true
    assumed_state: true
    icon: "mdi:blinds-horizontal"
1 Like

congratulations

1 Like

redone my whole ESP-Home Configuration due to lack of positioning my Blinds correctly as i need:
i want to steer the whole heigth of my Blinds as well as the angle of shutting. so i got this in ESP HOME:

esphome:
  name: "jalousien"
  friendly_name: Jalousien

esp8266:
  board: esp01_1m

# Enable logging

# Enable Home Assistant API
api:
  encryption:
    key: "xxx.xxx.xxx

ota:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: off
  power_save_mode: none

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "xxx.xxx.xxx.xxx""
    password: "xxx.xxx.xxx"

captive_portal:

sensor: 
  - platform: wifi_signal
    name: "${friendly_name} wifi_signal"
    update_interval: 60s
    
logger: 

binary_sensor:

external_components:
  - source: github://klaudiusz223/esphome@tilt-cover
    components: [ time_based_tilt ]

switch:
  - platform: gpio
    id: "blind_01_relay_down"
    disabled_by_default: true
    pin:
      number: GPIO4
      mode:
        output: true
      inverted: true

  - platform: gpio
    id: "blind_01_relay_up"
    disabled_by_default: true
    pin:
      number: GPIO3
      mode:
        output: true
      inverted: true

  - platform: gpio
    id: "blind_02_relay_down"
    disabled_by_default: true
    pin:
      number: GPIO12
      mode:
        output: true
      inverted: true

  - platform: gpio
    id: "blind_02_relay_up"
    disabled_by_default: true
    pin:
      number: GPIO5
      mode:
        output: true
      inverted: true

cover:
  - id: cover_01
    platform: time_based_tilt
    name: "Jalousie Sued"
    open_duration: 49700 ms
    close_duration: 48700 ms
    inertia_open_time: 105 ms
    tilt_open_duration: 930 ms
    inertia_close_time:  105 ms
    tilt_close_duration: 900 ms
    interlock_wait_time: 105 ms
    recalibration_time: 1500ms
    assumed_state: true
    close_action:
      - switch.turn_on: blind_01_relay_down
    open_action:
      - switch.turn_on: blind_01_relay_up   
    stop_action:
      - switch.turn_on: blind_01_relay_up
      - switch.turn_on: blind_01_relay_down	 
      - delay: 105 ms
      - switch.turn_off: blind_01_relay_up
      - switch.turn_off: blind_01_relay_down

  - id: cover_02
    platform: time_based_tilt
    name: "Jalousie West"
    open_duration: 49700 ms
    close_duration: 48700 ms
    inertia_open_time: 105 ms
    tilt_open_duration: 930 ms
    inertia_close_time: 105 ms
    tilt_close_duration: 900 ms
    interlock_wait_time: 105 ms
    recalibration_time: 1500ms
    assumed_state: true
    close_action:
      - switch.turn_on: blind_02_relay_down
    open_action:
      - switch.turn_on: blind_02_relay_up
    stop_action:
      - switch.turn_on: blind_02_relay_up
      - switch.turn_on: blind_02_relay_down	 
      - delay: 105 ms
      - switch.turn_off: blind_02_relay_up
      - switch.turn_off: blind_02_relay_down 

The whole overwork and idea belongs to : github://klaudiusz223/esphome@tilt-cover
i only changed the timings of the Jalousies to my needs

due to this overhaul i was able to set up two differnt automations for the passing blinds of my House - one of them goes to the south the other goes to the West…
South:

alias: Jalousie-Süden
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.vbc702_s_outside_temperature
    above: 19
    for:
      hours: 0
      minutes: 5
      seconds: 0
condition:
  - condition: sun
    before: sunset
    after: sunrise
  - condition: or
    conditions:
      - condition: state
        entity_id: weather.forecast_langenmaier
        attribute: cloud_coverage
        state: sunny
      - condition: state
        entity_id: weather.forecast_langenmaier
        state: partlycloudy
      - condition: state
        entity_id: weather.forecast_langenmaier
        state: cloudy
  - type: is_value
    condition: device
    device_id: 11b09e741d6b77c28d124b587c9283c3
    entity_id: 86642053d6587b36622f3338b59ac581
    domain: sensor
    above: 130
    below: 270
action:
  - service: cover.open_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.jalousien_jalousie_sued
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - choose:
      - conditions:
          - condition: time
            before: "13:00:00"
        sequence:
          - service: cover.close_cover
            metadata: {}
            data: {}
            target:
              entity_id: cover.jalousien_jalousie_sued
          - delay:
              hours: 0
              minutes: 0
              seconds: 52
              milliseconds: 0
          - service: cover.stop_cover
            metadata: {}
            data: {}
            target:
              entity_id: cover.jalousien_jalousie_sued
          - delay:
              hours: 0
              minutes: 0
              seconds: 1
              milliseconds: 0
      - conditions:
          - condition: time
            after: "13:00:00"
        sequence:
          - service: cover.close_cover
            metadata: {}
            data: {}
            target:
              entity_id: cover.jalousien_jalousie_sued
          - delay:
              hours: 0
              minutes: 0
              seconds: 36
              milliseconds: 0
          - service: cover.stop_cover
            metadata: {}
            data: {}
            target:
              entity_id: cover.jalousien_jalousie_sued
          - delay:
              hours: 0
              minutes: 0
              seconds: 1
              milliseconds: 0
  - choose:
      - conditions:
          - type: is_value
            condition: device
            device_id: 11b09e741d6b77c28d124b587c9283c3
            entity_id: 83dcfe7101aa5dfb32d415cc5aded269
            domain: sensor
            above: 35
            below: 100
        sequence:
          - service: cover.set_cover_tilt_position
            metadata: {}
            data:
              tilt_position: 100
            target:
              entity_id:
                - cover.jalousien_jalousie_sued
      - conditions:
          - type: is_value
            condition: device
            device_id: 11b09e741d6b77c28d124b587c9283c3
            entity_id: 83dcfe7101aa5dfb32d415cc5aded269
            domain: sensor
            below: 35
            above: 25
        sequence:
          - service: cover.set_cover_tilt_position
            metadata: {}
            data:
              tilt_position: 80
            target:
              entity_id: cover.jalousien_jalousie_sued
      - conditions:
          - type: is_value
            condition: device
            device_id: 11b09e741d6b77c28d124b587c9283c3
            entity_id: 83dcfe7101aa5dfb32d415cc5aded269
            domain: sensor
            below: 25
            above: 15
        sequence:
          - service: cover.set_cover_tilt_position
            metadata: {}
            data:
              tilt_position: 60
            target:
              entity_id: cover.jalousien_jalousie_sued
      - conditions:
          - type: is_value
            condition: device
            device_id: 11b09e741d6b77c28d124b587c9283c3
            entity_id: 83dcfe7101aa5dfb32d415cc5aded269
            domain: sensor
            below: 15
            above: -15
        sequence:
          - service: cover.set_cover_tilt_position
            metadata: {}
            data:
              tilt_position: 40
            target:
              entity_id: cover.jalousien_jalousie_sued
    enabled: true
  - repeat:
      sequence:
        - delay:
            hours: 0
            minutes: 15
            seconds: 0
            milliseconds: 0
        - choose:
            - conditions:
                - condition: or
                  conditions:
                    - condition: numeric_state
                      entity_id: sensor.vbc702_s_outside_temperature
                      above: 30
                    - condition: numeric_state
                      entity_id: sensor.wasseruhr_esp_temperature_inside
                      above: 25
              sequence:
                - service: cover.close_cover
                  metadata: {}
                  data: {}
                  target:
                    entity_id:
                      - cover.jalousien_jalousie_sued
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 48
                    milliseconds: 0
                - service: cover.stop_cover
                  metadata: {}
                  data: {}
                  target:
                    entity_id: cover.jalousien_jalousie_sued
            - conditions:
                - type: is_value
                  condition: device
                  device_id: 11b09e741d6b77c28d124b587c9283c3
                  entity_id: 83dcfe7101aa5dfb32d415cc5aded269
                  domain: sensor
                  above: 35
                  below: 100
              sequence:
                - service: cover.open_cover_tilt
                  target:
                    entity_id:
                      - cover.jalousien_jalousie_sued
                  data: {}
            - conditions:
                - type: is_value
                  condition: device
                  device_id: 11b09e741d6b77c28d124b587c9283c3
                  entity_id: 83dcfe7101aa5dfb32d415cc5aded269
                  domain: sensor
                  below: 35
                  above: 25
              sequence:
                - service: cover.set_cover_tilt_position
                  metadata: {}
                  data:
                    tilt_position: 80
                  target:
                    entity_id: cover.jalousien_jalousie_sued
            - conditions:
                - type: is_value
                  condition: device
                  device_id: 11b09e741d6b77c28d124b587c9283c3
                  entity_id: 83dcfe7101aa5dfb32d415cc5aded269
                  domain: sensor
                  below: 25
                  above: 15
              sequence:
                - service: cover.set_cover_tilt_position
                  metadata: {}
                  data:
                    tilt_position: 60
                  target:
                    entity_id: cover.jalousien_jalousie_sued
            - conditions:
                - type: is_value
                  condition: device
                  device_id: 11b09e741d6b77c28d124b587c9283c3
                  entity_id: 83dcfe7101aa5dfb32d415cc5aded269
                  domain: sensor
                  below: 15
                  above: -15
              sequence:
                - service: cover.set_cover_tilt_position
                  metadata: {}
                  data:
                    tilt_position: 40
                  target:
                    entity_id: cover.jalousien_jalousie_sued
          enabled: true
      until:
        - condition: or
          conditions:
            - type: is_value
              condition: device
              device_id: 11b09e741d6b77c28d124b587c9283c3
              entity_id: 86642053d6587b36622f3338b59ac581
              domain: sensor
              above: 280
            - condition: numeric_state
              entity_id: sensor.vbc702_s_outside_temperature
              below: 18.5
  - service: cover.open_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.jalousien_jalousie_sued
  - delay:
      hours: 0
      minutes: 0
      seconds: 49
      milliseconds: 0
  - service: cover.stop_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.jalousien_jalousie_sued
mode: single

West:

alias: Jalousie-Westen
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.vbc702_s_outside_temperature
    above: 19
    for:
      hours: 0
      minutes: 10
      seconds: 0
condition:
  - condition: sun
    before: sunset
    after: sunrise
  - condition: or
    conditions:
      - condition: state
        entity_id: weather.forecast_langenmaier
        attribute: cloud_coverage
        state: sunny
      - condition: state
        entity_id: weather.forecast_langenmaier
        state: partlycloudy
      - condition: state
        entity_id: weather.forecast_langenmaier
        state: cloudy
  - type: is_value
    condition: device
    device_id: 11b09e741d6b77c28d124b587c9283c3
    entity_id: 86642053d6587b36622f3338b59ac581
    domain: sensor
    above: 175
    below: 307
action:
  - service: cover.open_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.jalousien_jalousie_west
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - service: cover.close_cover
    metadata: {}
    data: {}
    target:
      entity_id:
        - cover.jalousien_jalousie_west
  - delay:
      hours: 0
      minutes: 0
      seconds: 52
      milliseconds: 0
  - service: cover.stop_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.jalousien_jalousie_west
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - choose:
      - conditions:
          - type: is_value
            condition: device
            device_id: 11b09e741d6b77c28d124b587c9283c3
            entity_id: 83dcfe7101aa5dfb32d415cc5aded269
            domain: sensor
            above: 35
            below: 100
        sequence:
          - service: cover.set_cover_tilt_position
            metadata: {}
            data:
              tilt_position: 100
            target:
              entity_id: cover.jalousien_jalousie_west
      - conditions:
          - type: is_value
            condition: device
            device_id: 11b09e741d6b77c28d124b587c9283c3
            entity_id: 83dcfe7101aa5dfb32d415cc5aded269
            domain: sensor
            below: 35
            above: 25
        sequence:
          - service: cover.set_cover_tilt_position
            metadata: {}
            data:
              tilt_position: 80
            target:
              entity_id: cover.jalousien_jalousie_west
      - conditions:
          - type: is_value
            condition: device
            device_id: 11b09e741d6b77c28d124b587c9283c3
            entity_id: 83dcfe7101aa5dfb32d415cc5aded269
            domain: sensor
            below: 25
            above: 15
        sequence:
          - service: cover.set_cover_tilt_position
            metadata: {}
            data:
              tilt_position: 60
            target:
              entity_id: cover.jalousien_jalousie_west
      - conditions:
          - type: is_value
            condition: device
            device_id: 11b09e741d6b77c28d124b587c9283c3
            entity_id: 83dcfe7101aa5dfb32d415cc5aded269
            domain: sensor
            below: 15
            above: -15
        sequence:
          - service: cover.set_cover_tilt_position
            metadata: {}
            data:
              tilt_position: 40
            target:
              entity_id: cover.jalousien_jalousie_west
    enabled: true
  - repeat:
      sequence:
        - delay:
            hours: 0
            minutes: 15
            seconds: 0
            milliseconds: 0
        - choose:
            - conditions:
                - condition: or
                  conditions:
                    - condition: numeric_state
                      entity_id: sensor.vbc702_s_outside_temperature
                      above: 30
                    - condition: numeric_state
                      entity_id: sensor.wasseruhr_esp_temperature_inside
                      above: 25
              sequence:
                - service: cover.close_cover
                  metadata: {}
                  data: {}
                  target:
                    entity_id: cover.jalousien_jalousie_west
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 48
                    milliseconds: 0
                - service: cover.stop_cover
                  metadata: {}
                  data: {}
                  target:
                    entity_id: cover.jalousien_jalousie_west
            - conditions:
                - type: is_value
                  condition: device
                  device_id: 11b09e741d6b77c28d124b587c9283c3
                  entity_id: 83dcfe7101aa5dfb32d415cc5aded269
                  domain: sensor
                  above: 35
                  below: 100
              sequence:
                - service: cover.set_cover_tilt_position
                  metadata: {}
                  data:
                    tilt_position: 100
                  target:
                    entity_id: cover.jalousien_jalousie_west
            - conditions:
                - type: is_value
                  condition: device
                  device_id: 11b09e741d6b77c28d124b587c9283c3
                  entity_id: 83dcfe7101aa5dfb32d415cc5aded269
                  domain: sensor
                  below: 35
                  above: 25
              sequence:
                - service: cover.set_cover_tilt_position
                  metadata: {}
                  data:
                    tilt_position: 80
                  target:
                    entity_id: cover.jalousien_jalousie_west
            - conditions:
                - type: is_value
                  condition: device
                  device_id: 11b09e741d6b77c28d124b587c9283c3
                  entity_id: 83dcfe7101aa5dfb32d415cc5aded269
                  domain: sensor
                  below: 25
                  above: 15
              sequence:
                - service: cover.set_cover_tilt_position
                  metadata: {}
                  data:
                    tilt_position: 60
                  target:
                    entity_id: cover.jalousien_jalousie_west
            - conditions:
                - type: is_value
                  condition: device
                  device_id: 11b09e741d6b77c28d124b587c9283c3
                  entity_id: 83dcfe7101aa5dfb32d415cc5aded269
                  domain: sensor
                  below: 15
                  above: -15
              sequence:
                - service: cover.set_cover_tilt_position
                  metadata: {}
                  data:
                    tilt_position: 40
                  target:
                    entity_id: cover.jalousien_jalousie_west
          enabled: true
      until:
        - condition: or
          conditions:
            - condition: sun
              before: sunset
              after: sunset
              after_offset: "5"
            - condition: numeric_state
              entity_id: sensor.vbc702_s_outside_temperature
              below: 18.5
  - service: cover.open_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.jalousien_jalousie_west
  - delay:
      hours: 0
      minutes: 0
      seconds: 50
      milliseconds: 0
  - service: cover.stop_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.jalousien_jalousie_west
mode: single

With this setup i´m able to automatically steer the south/west Blinds accordingly to Sun Anzimuth/Elevation/Temperature Outside/Inside /the Radiation level /the amount of Light inside the House/ my Weather Forecast and so on… Also with the new Programming of my ESP HOME device im able to steer furthermore the percentage of closing/opening as well as the angle of the shading blinds.

Hi sleepymaxx,

excellent post! it is also a longterm objective for me to automate a stubborn Somfy awning.

I want to replace the Soliris IB switch (as depicted) but keep the functionality using a remote-controllable shutter switch but still use the output of the sun/wind sensors instead of adding an extra weather station.
this way I should also be able to control up/down remotely via home assistant plus have the sensor readings in ha.
if I get your solution correct you are keeping the original switch (and its wind/sun control) but are automating the buttons for open/close based on additional sun/wind sensors. I’m unsure if you are handling the weather inputs at all or if they where not connected at your installation.
I’d really appreciate it if you could spare some time to reply to my questions:

  • do you have any experience/thoughts/ideas integrating these weather sensors with ha using an esp board?
  • from what I see about the motor-control I should be able to use any generic shutter control (ie shelly plus 2pm). however your yaml suggests a special up/down/stop sequence for the motor. you are using delays to cancel the respective up/down switch after a very short time. I would have thought of a sequence like
close:
 - turn_off: up
 - turn_on: down
 - delay: runtime top_to_bottom
 - turn_off down

instead of your 0.3s delays. same goes for the stop action. do you really need to turn on and off both up/down to stop the motor?

cheers, Udo

thanks for your patience… busy on projects

Please refer to my updated version - the Timings have changed very much!

first Question:
yes i only added the option to steer my blinds through HA and meawhile the Steering by the Somfy devices itself stayed as is was before. So i can use every input from my software side aditionally. But in case of - the somfy steering is always as backup there!
The weather inputs of my somfy are not ariving my HA (both systems are not connected here) - but my HA has altered weather inputs itself so i can use these altered infos also to steer the blinds by other ways.

2 Question:
no none at all … my own experience in ESP Home is only reading and copying - this stuff is way too high for me! The real work is build much by someone else - i hope i did mentiond this in my explanation!

So i went the easy way for me - doing the automation and tilting shutting opening … and so on in Home Assistant itself - this stuff in reality im able to handle…
and this stuff is way much more configurable for my needs also this is very much easier to learn!

normally your Home Assistant should have very much Weather/Sun/Heat/Cloud/Wind/Anzimuth/Sunheight/… and so on sensors who are very much integrated by HA itself in a proper /clean setup so im using these sensors to steer my blinds…

  1. Question: Here i´m not sure what your installation looks like: there are two options on the market and you have to know yourself before using the optional commands:

first Option: the somfy weather station / Time station is wired conneced to all of your in room steering modules on low voltage - only these single room modules are connected to your blinds/covers (and here the connection is [in germany 220V] high wired. Here you can simply use my directions (if you are wiring in the low voltage region between weather station and in room modules) - here the 105 ms are NEEDED to fulfil a stop action (its the same signal as send by the weather controlling device to stop moving).

Second Option: You will steer your Yalousies/Rollos,… whatever only by hot wire (220V /110V) and give here the Signals through your shellys - if you are giving a on signal on both (up/down) wires togehter - DONT DO THIS! this will be a real bad idea because you will electric weld your Motors down to ashes!

In my overhauled version the timings were adjustet and here are very much more (better timings) inserted and the run up/down stop tilt … funcions are implemented - so you can use any command only out of home assistant by itself … …

Best greetings slmx

ok. understood.

bit more backstory on my plan/questions:
I want to rip out the current soliris switch and replace that with a simple “Roller/Shutter/Blind”-actor like any other blind that I have automated in the house. This way up and down can never be powered at the same time as device has this under its control.
I’m already using some homematic blind controllers which I also would use for the awning then.

For the sun/wind -data I need a local sensor to open/close the awning given the weather conditions very much like that soliris switch does right now.
I have a 8x4m awning so I need to be careful with windspeeds/-gusts.
Here I would simply like to reuse the mounted somfy wind/sun sensor.
However without the soliris switch this needs to be read via an esp device or fully replaced with a separate weather station.

guess I’ll break out my multimeter and measure what’s going on with the various inputs and outputs of that soliris switch.

Thanks again for your reply

Really nice thougts … yes the originally Soliris is a little bit confusing… - The alternate steering (in my house) was intentionally planned.
And also yes from time to time (Daughter is having Friends/ Son is having party / the little one is playing with the switches … ) the blinds are confused for about this 1day - till through my automation they are resetting (at evening they will close alltogehter - independet from the given state of any of the blinds theses automation goes by time) and in the following morning the blinds will rise up as programmed.

Also like you i really will NOT recommend to rip the somfy wind/sun sensor also of - here security (of your money) goes first…

These Days the Original Writer of the ESP-Software Klaudiusz233 made a few changes in the ESP - Script so you have to Change your ESPHome to the Following.
Please do this to keep up to date with your Software/Hardware configuration

esphome:
  name: "jalousien"
  friendly_name: Jalousien

esp8266:
  board: esp01_1m

# Enable logging

# Enable Home Assistant API
api:
  encryption:
    key: "xxx.xxx.xxx.xxx"

ota:
  - platform: esphome

# WiFi.setSortMethod(WIFI_CONNECT_AP_BY_SIGNAL);
# WiFi.setScanMethod(WIFI_ALL_CHANNEL_SCAN);

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: off
  power_save_mode: none
  manual_ip:
    static_ip: xxx.xxx.xxx.xxx
    gateway: xxx.xxx.xxx.xxx
    subnet: xxx.xxx.xxx.xxx
  reboot_timeout: 5 min

  # Enable fallback hotspot (captive portal) in case wifi connection fails
#  ap:
#    ssid: "xx.xx.xxx.xx"
#    password: "xx.xxx.xxx.xxx"
    
captive_portal:

logger: 

binary_sensor:

external_components:
  - source: github://pr#6146
    components: [ time_based_tilt ]

switch:
  - platform: gpio
    id: "blind_01_relay_down"
    disabled_by_default: true
    pin:
      number: GPIO4
      mode:
        output: true
      inverted: true

  - platform: gpio
    id: "blind_01_relay_up"
    disabled_by_default: true
    pin:
      number: GPIO3
      mode:
        output: true
      inverted: true

  - platform: gpio
    id: "blind_02_relay_down"
    disabled_by_default: true
    pin:
      number: GPIO12
      mode:
        output: true
      inverted: true

  - platform: gpio
    id: "blind_02_relay_up"
    disabled_by_default: true
    pin:
      number: GPIO5
      mode:
        output: true
      inverted: true

cover:
  - id: cover_01
    platform: time_based_tilt
    name: "Jalousie Sued"
    open_duration: 52500 ms
    close_duration: 52000 ms
    inertia_open_time: 105 ms
    tilt_open_duration: 900 ms
    inertia_close_time:  105 ms
    tilt_close_duration: 900 ms
    interlock_wait_time: 105 ms
    recalibration_close_time: 1500ms
    recalibration_open_time: 1500ms
    actuator_activation_open_time: 200ms
    actuator_activation_close_time: 250ms
    assumed_state: true

    close_action:
      - switch.turn_on: blind_01_relay_down
      - delay: 105ms
      - switch.turn_off: blind_01_relay_down
    open_action:
      - switch.turn_on: blind_01_relay_up
      - delay: 105ms
      - switch.turn_off: blind_01_relay_up   
    stop_action:
      - switch.turn_on: blind_01_relay_up
      - switch.turn_on: blind_01_relay_down
      - delay: 105 ms
      - switch.turn_off: blind_01_relay_up
      - switch.turn_off: blind_01_relay_down

  - id: cover_02
    platform: time_based_tilt
    name: "Jalousie West"
    open_duration: 52500 ms
    close_duration: 52000 ms
    inertia_open_time: 105 ms
    tilt_open_duration: 900 ms
    inertia_close_time: 105 ms
    tilt_close_duration: 900 ms
    interlock_wait_time: 105 ms
    recalibration_close_time: 1500ms
    recalibration_open_time: 1500ms
    actuator_activation_open_time: 200ms
    actuator_activation_close_time: 250ms
    assumed_state: true

    close_action:
      - switch.turn_on: blind_02_relay_down
      - delay: 105ms
      - switch.turn_off: blind_02_relay_down
    open_action:
      - switch.turn_on: blind_02_relay_up
      - delay: 105ms
      - switch.turn_off: blind_02_relay_up     
    stop_action:
      - switch.turn_on: blind_02_relay_up
      - switch.turn_on: blind_02_relay_down
      - delay: 105 ms
      - switch.turn_off: blind_02_relay_up
      - switch.turn_off: blind_02_relay_down    

i myselve added fixed ip´s in all my ESP-Home devices (sometimes bad network connetion occured - the fixed ip`s made this issue gone forever)!

As mentioned bevore - the really work is on klaudiusz223 - he worked out the entire Software - - and idea. Best wishes for Christmas slmx…