gduteil / OpenThermGateway

OpenTherm Gateway for ESPHome
2 stars 0 forks source link

OpenThermGateway

This is another ESPHome implementation for OpenThermGateway based on @arthurrump's ESPHome OpenTherm and @ihormelnyk's OpenTherm Library

Communication is stable, values will be requested from boiler at initialization, and updated periodically if the thermostat doesn't request them. There is an override for room temperature setpoint, boiler should return it's target temperature but the thermostat will still show the previous temperature requested.

I'm using this hardware DIYLESS OpenTherm Gateway with a ESP32 (WROOM), but it should work with other hardwares.

My boiler is an Atlantic NAEMA 2 MICRO 25 with a Navilink 128 RADIO-CONNECT.

Installation

Add to external section this repo :

external_components:
  - source: github://gduteil/OpenThermGateway
    components: [ openthermgw ]

Alternately you can install the component manually :

OTGW Configuration

Change the pins to match your hardware

openthermgw:
  pin_thermostat_in: 17
  pin_thermostat_out: 18
  pin_boiler_in: 13
  pin_boiler_out: 27

  ch_enable: true
  dhw_enable: true
  cooling_enable: false
  otc_active: false
  ch2_active: false

OTGW Temperature sensor

Change the pins and address to match your hardware (see https://esphome.io/components/sensor/dallas.html for information on getting the address)

dallas:
  - pin: 16

sensor:
  # OTGW Temperature sensor
  - platform: dallas
    address: 0x7dc76a750e64ff28
    name: "T°C OTGW"

OpenTherm binary sensors

Example for binary sensors

binary_sensor:
  - platform: openthermgw
    flame_on:
      name: "Flame"

Available binary sensors are :

OpenTherm sensors

Example for sensors

sensor:
  - platform: openthermgw
    t_roomset:
      name: "Room setpoint"  

Available sensors are :

OpenTherm text sensors

Text sensors

    time_date:
      name: "Date"
    dhw_present:
      name: "DHW Present"
      filters:
        - substitute:
          - "OFF -> Not present"
          - "ON -> Present"
    control_type:
      name: "Control type"
      filters:
        - substitute:
          - "OFF -> Modulating"
          - "ON -> On/Off"
    cooling_supported:
      name: "Cooling Supported"
      filters:
        - substitute:
          - "OFF -> No"
          - "ON -> Yes"
    dhw_config:
      name: "DHW Config"
      filters:
        - substitute:
          - "OFF -> Instantaneous"
          - "ON -> Storage tank"
    lowoff_pumpcontrol_allowed:
      name: "Pump Control"
      filters:
        - substitute:
          - "OFF -> Allowed"
          - "ON -> Not allowed"
    ch2_present:
      name: "CH2"
      filters:
        - substitute:
          - "OFF -> Not present"
          - "ON -> Present"

OpenTherm switches

switch:
  - platform: openthermgw
    ch_enable:
      name: "Heater"
    dhw_enable:
      name: "DHW"
    cooling_enable:
      name: "Cooling"
    otc_active:
      name: "OTC"
    ch2_active:
      name: "CH2"

OpenTherm number

Number is used for overrides, setting '0' will disable the override.

number:
  - platform: openthermgw
    t_roomset_override:
      name: "Temperature Override"