SommerESP, a replacement for Conex and Output OC on Base and Pro

My friend asked me to make his new garage door a bit more smart and on the cheap. I instead created a small and plug and play kit.

My friend had a Sommer Pro+ controller for the garage door and to make it “Smart” Sommer requires to use their Somweb device or a Conex + Output OC + some controller.

I decided to make a complete replacement of the Conex and Output OC modules and its encapsulated into the controller with no wires on the outside or DC DC transformers and such.

You can find the project on the github here https://github.com/exico91/SommerESP/blob/main/README.md

Id like to have your opinion, if i should change anything, suggestions or modifications to make to, maybe, a next version.

Thank you!

3 Likes

Amazing, was looking into this while I have some ESP32-wroom and some other ATOM (tasmota) 1ch relay’s for new project laying around. Yet decided to search for sommer esp32 to see any easier setups (omitting the Conex and OC modules) and there I your project which you seem to deployed just in time for my search :slight_smile:

Would it also work with Tasmotta? Or is it better to ESPhome seen you read the feedback from the device?

Anyhow, I’ll order it from your tindie soon.

It will work with Tasmota, not sure ho to setup it tough. If you check the github you can find all the settings you need but in short:
The two optocouples simulate the two button press on the Sommer but to check if the door is open or not you need to mesure a voltage via ADC and I’m not sure how to setup this in Tasmota.

If you make it work please send a pull request or send me the firmware/settings so I can add them to the repository.

Interesting project!

I see that it’s using a 3-pin keypad connector and tries to work as a conex in order to control the doors, but on my pro+ the keypad connector has five pins, and they’re going to membrane sensor panel with three buttons and two-color LED.

Have you had experience with this variation of pro+?

Unfortunately I just encountered 3 pin versions. If you want we can work on a revision compatible with this one.

Do you know where pins are mapped? can you provide me some photos? and more documentation?

On the 3 pin version pin 1 and 3 are the buttons and pin 2 is the ground/common.
For the 5 pin version I suspect that one pin is for the led, maybe is a ARGB led, 3 pins for the 3 buttons and one ground.

oh last question, what the buttons do?

This is the model, and the Technical Manual is downloadable from Files: 2060 pro+ (pro+ Standard Operators) - SOMMER

Neither of the five PINs are connected to the ground. PINs 2 and 4 have capacitors on the PCB going to the ground, which is similar to PINs 1 and 3 on the older pro+ or on evo+. So one might think that PIN 3 on my unit would also be the ground, and the 5-pin connector would be backward compatible with the 3-pin one, but unfortunately it’s not the case.

And the buttons are:

  • Light
  • Open/Close
  • Lock

You can check with a multimeter in continuos mode, on the keypad there should be a common pin. To check that remove the keypad and keep a button pressed. Check the pins, when you get a beep from the multimeter you found one ground/common, now you have to check wich is the common with the other pins, one pin is the common one for all 3 and maybe the led too. Also, map the pins, what the pins one to five do on the keypad/front cover.

Anyhow, try one thing, on the board flip to ON the first toggle on the DIP switch and check if now the buttons are UP, DOWN and LOCK instead of LIGHT, OPEN/CLOSE and LOCK. That’s how SommerESP operates at the moment, Im looking to integrate a control for the light instead of UP/DOWN but not a lot of time atm.
You can find this information on the manual you linked page 32.
Also on the manual of the Sommer Pro+ that I found in the wild until now: https://www.vartai.eu/uploads/userfiles/pdf/Garazo%20vartai/Sommer/pro%20plus/pro-pro+_S10931-00001.pdf page 57.

If it is similar enough we can place a 5 pin bypass instead of 3 pin and mantain compatibility

Yeah… The issue here is that I don’t have the entire unit. I have a set of PCBs that were sent as a replacement for the old evo+ PCBs. Didn’t expect to get pro+ PCBs, but this is what Sommer has sent me.

If I had everything, I’d just scope things out, but now all that’s left for me is guessing. Eventually, if I don’t find any info, I may just short PIN 3 and 2 via e.g. 5K resistor and see if it works, and I would do it already if PIN 3 was connected to the ground, but it’s not.

Btw, any reason why you use optocouplers instead of just pulling PINs 1 or 3 to the ground?

Well, isolation is one thing. Im not even sure that is ground. I say ground because is a common thing to use ground to activate signals from buttons but it can also be, lets say, +5v. The key is that is common between the buttons.

Hi @exico91 ,

unfortunately I’ve bought the (expensive) Output OC and Conex modules just a few months before you created this :sweat:

Do you think it would be too difficult to use the hardware list here but implement it with ESPHome? We would probably need something like:

switch:
  - platform: gpio
    pin: 
      number: D1
      #inverted: True
    name: "Garage door toggle switch"
    id: toggle_switch
    on_turn_on:
      - delay: 250ms
      - switch.turn_off: toggle_switch
    restore_mode: ALWAYS_OFF

but the binary sensor should come from an analog input, something like:

sensor:
  - platform: adc
    pin: A0
    name: "garage_state_sensor"
    update_interval: 1s

binary_sensor:
  - platform: analog_threshold
    name: "Garage Door  Binary State"
    sensor_id: garage_state_sensor
    threshold: 17

and probably template the cover accordingly.

I don’t have a lot of experience with ESPHome, jsut wondering if you could give some hints.

Thanks!

I got the pro+ 9110 (bought 2022), working with the SommeESP from @exico91. Did you open the unit to verify the pin connection?

Edit: the 2060 pro+ is the US version I recall, thought it was identical to be frank. In case you are located in the EU, I would contact them as they send you a wrong board.

Sorry for the late reply, for some reason i didnt get any notification.

I started too with the Conex and Output OC modules. You can get some information from the two project I got inspiration from: GitHub - jampez77/garage_door_sensor: An add on to connect a Sommer Base + garage door opener to Home Assistant. GitHub - azrael783/esphome_garagedoor_opener: Smart garagedoor opener based on a NodeMCU and ESPHOME which integrates in Home Assistant. You already got one from what I see.
I should have a non-SommerESP yaml somewhere…
Here it is:

binary_sensor:
  - platform: gpio
    pin: 
      number: 17
      inverted: True
      mode:
        input: True
        pullup: True
    name: "Stato Sezionale"
    device_class: garage_door
    id: stato_sezionale

switch:
  - platform: gpio
    pin: 
      number: 5
      #inverted: True
    name: "Garage door Open Switch"
    id: open_switch
    on_turn_on:
      - delay: 250ms
      - switch.turn_off: open_switch
    restore_mode: ALWAYS_OFF
  - platform: gpio
    pin: 
      number: 4
      #inverted: True
    name: "Garage door close Switch"
    id: close_switch
    on_turn_on:
      - delay: 250ms
      - switch.turn_off: close_switch
    restore_mode: ALWAYS_OFF
  - platform: restart
    name: "Restart ESP"

cover:
  - platform: template
    device_class: garage
    name: "Sezionale"
    open_action:
      # Cancel any previous action
      - switch.turn_off: close_switch
      # Turn the OPEN switch on briefly
      - switch.turn_on: open_switch
      - delay: 250ms
      - switch.turn_off: open_switch
    close_action:
      - switch.turn_off: open_switch
      - switch.turn_on: close_switch
      - delay: 250ms
      - switch.turn_off: close_switch
    stop_action:
      - switch.turn_off: close_switch
      - switch.turn_off: open_switch
    lambda: |-
      if (id(stato_sezionale).state) {
        return COVER_OPEN;
      } else {
        return COVER_CLOSED;
      }

This should work, maybe with some modification for the PIN numbers
You can bypass the analog threshold, just put a pullup. I discovered that later thanks to a contributor.
In this code I used two relais, one was not reliable. Just put the central pin from the Conex on both the common of both relais and the NO of the relais to the other 2 pins of the conex. If you check the other github there is a schematic of the two relais.
Also, if you get a DC to DC converter from 24V to 5 you can power the ESP from the Output OC