Control Jarolift Eco UP 23/5 with Esp32 2x Relais

Hi there. First of, I´m german, so please excuse if my english isn´t perfect.

All the shutters in my house are controlled by electric shutter winders (don´t know the word in english). You simply push the up or down button and the shutter opens and closes.

Most of the Winders are from Schellenberg, model Rollodrive 45, but two of them are the Jarolift Eco Up 23/5. The Schellenberg PCB is allready documented, but the Jarolift is not.

The PCB is split in Mainboard which is built in the Case and the button PCB that is in the front. (Pic 1)

There are two exposed pins for power, this is where the relais board gets it´s power (Pic 2).

Pic 3 shows the already soldered wires that go to the relais, there are 3 exposed pins to solder to.

The Relais board I used is this:

ESP32-WROOM ESP32 Dual Kanal Wifi Bluetooth Relais Modul Sekundäre Entwicklung Bord DC5-60V Netzteil - AliExpress

This board works flawlessly with ESPHome and here is the yaml code:

esphome:
  name: "wintergarten"
  friendly_name: "wintergarten"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

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

ota:
  - platform: esphome
    password: ""

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Relay Fallback Hotspot"
    password: "btzomsuHxgc4"

captive_portal:

# -----------------------------
# Relais mit Verriegelung
# -----------------------------
switch:
  - platform: gpio
    id: relais_auf
    name: "Rolllade Relais AUF"
    pin: GPIO16
    restore_mode: ALWAYS_OFF
    interlock: &rolladen_interlock [relais_auf, relais_ab]
    interlock_wait_time: 300ms

  - platform: gpio
    id: relais_ab
    name: "Rolllade Relais AB"
    pin: GPIO17
    restore_mode: ALWAYS_OFF
    interlock: *rolladen_interlock
    interlock_wait_time: 300ms

# -----------------------------
# Impuls-Scripts (250 ms)
# -----------------------------
script:
  - id: rollade_auf
    mode: single
    then:
      - switch.turn_on: relais_auf
      - delay: 250ms
      - switch.turn_off: relais_auf

  - id: rollade_ab
    mode: single
    then:
      - switch.turn_on: relais_ab
      - delay: 250ms
      - switch.turn_off: relais_ab

# -----------------------------
# Buttons für Home Assistant
# -----------------------------
button:
  - platform: template
    name: "Rolllade AUF"
    icon: mdi:arrow-up
    on_press:
      - script.execute: rollade_auf

  - platform: template
    name: "Rolllade AB"
    icon: mdi:arrow-down
    on_press:
      - script.execute: rollade_ab

  - platform: template
    name: "Rolllade STOP"
    icon: mdi:stop
    on_press:
      - switch.turn_off: relais_auf
      - switch.turn_off: relais_ab

“wintergarten” is the name of the relais board which controls the shutter.

I deleted the keys from Home Assistant API and ota for showing you the code.

The impuls script controls the buttons on the pcb. “AUF” means shutters up, “AB” means shutters down. The relais is triggered for 250ms which emulates a short button press.

And also there are some premade buttons for Home Assistant.

I 3D printed a small case for the relais board, which can be found here:

For my house the case fits behind the shutter motor.

I reinstalled the motor, set the endstops and then went into HA to find the Board allready found and waiting.

I created some small Buttons on the Dashboard with Bubblecard:

Works like a charm, and now I can set the times for the shutters to go up and down through HA without pressing the physical buttons.

I hope someone finds this useful, if there are any questions, please feel free.

Cheers, Michael