Skip to content

Add Duco bypass mode select#1

Open
korneo51 wants to merge 1 commit into
kokx:duco-componentfrom
korneo51:add-duco-bypass-mode-select
Open

Add Duco bypass mode select#1
korneo51 wants to merge 1 commit into
kokx:duco-componentfrom
korneo51:add-duco-bypass-mode-select

Conversation

@korneo51

Copy link
Copy Markdown

Summary

Adds a Duco bypass mode select to the ESPHome Duco component.

The existing bypass sensor exposes the physical bypass opening through register 0x1009. This adds a separate writable select for the bypass control mode discovered and validated on a DucoBox Energy Comfort installation:

  • AUTO -> 0x100A = 0
  • CLOSED -> 0x100A = 1
  • OPEN -> 0x100A = 2

Read uses fn=0x24 with payload {0x00, 0x10, 0x0A}.
Write uses fn=0x24 with payload {0x01, 0x10, 0x0A, value, 0x00, 0x00, 0x00}.

Usage

select:
  - platform: duco
    name: Duco Mode
    bypass_mode:
      name: Duco Bypass Mode

Validation

  • Verified with a standalone ESP32 firmware against a DucoBox Energy Comfort:
    • OPEN sets 0x100A=2 and physical bypass register 0x1009 reports 100.
    • CLOSED sets 0x100A=1 and 0x1009 reports 0.
    • AUTO sets 0x100A=0 and lets the Duco internal logic decide the physical position.
  • The Python component file was syntax-checked locally with py_compile.

No existing mode select behavior is intended to change; bypass_mode is optional.

@korneo51 korneo51 requested a review from kokx as a code owner May 29, 2026 19:16

@kokx kokx left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks pretty good! Have you validated this on your own Duco? (I need to learn to read)

Also, I'm curious, how exactly did you discover this specific way to set the bypass mode?

@korneo51

korneo51 commented May 29, 2026 via email

Copy link
Copy Markdown
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants