Andrychów, Poland

OpenTherm Adapter

Zlutowana PCB

 

OpenTherm Adapter to shield przeznaczony do połączenia z modułem Wemos D1 ESP8266. Umożliwia on stworzenie termostatu sprzęgniętego z systemem Home Assistant pozwalającego na sterowanie kotłem gazowym lub innym urządzeniem grzejnym wyposażonym w magistralę OpenTherm.

Dodatkowo moduł umożliwia podłączenie popularnego czujnika temperatury DS18B20 opartego o magistralę 1-Wire. Moduł posiada również wyprowadzone na bocznej stronie płytki PCB 4 linii GPIO oraz napięcia zasilania i masy(GND). Umożliwia to dołączenie dodatkowych modułów lub czujników. Można np. dodając zewnętrzny moduł przekaźników sterować pompami obiegowymi oraz zaworem mieszającym co pozwala na zbudowanie kompletnego modułu sterującego prostą kotłownią.

 Moduł można nabyć na Allegro Lokalnie: https://allegrolokalnie.pl/oferta/opentherm-adapted-do-wemos-d1-esp8266-esphome-homeassistantSchematicOpenThermAdapter

Przykładowe funkcjonalności jakich może dostarczyć opisywany adapter w systemie Home Assitent:

 

OTHA1OTHA2OTHA3

 

OTHA4OTHA5

 

Poniżej kod zawarty w moim pliku openthermadapter.yaml ESPHome obsługujący adapter OpenTherm:

 

esphome:
name: openthermadapter
friendly_name: OpenthermAdapter

esp8266:
board: esp01_1m

# 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: "Openthermadapter"
password: "…"

one_wire:
- platform: gpio
pin: GPIO14

opentherm:
in_pin: GPIO4
out_pin: GPIO5
dhw_enable: true

output:
- platform: opentherm
t_set:
id: t_set
min_value: 30
max_value: 55
zero_means_zero: true

sensor:
- platform: dallas_temp
name: "WZ"
address: 0x653c01e07698bd28
update_interval: 5s

- platform: opentherm
rel_mod_level:
name: "Boiler Relative modulation level"
t_boiler:
name: "Boiler water temperature"
t_ret:
name: "Boiler Return water temperature"

- platform: homeassistant
id: ch_room_temperature
entity_id: sensor.temperature
filters:
# Push room temperature every second to update PID parameters
- heartbeat: 1s

binary_sensor:
- platform: opentherm
ch_active:
name: "Boiler Central Heating active"
dhw_active:
name: "Boiler Domestic Hot Water active"
flame_on:
name: "Boiler Flame on"
fault_indication:
name: "Boiler Fault indication"
entity_category: diagnostic
diagnostic_indication:
name: "Boiler Diagnostic event"
entity_category: diagnostic

switch:
- platform: opentherm
ch_enable:
name: "Boiler Central Heating enabled"
restore_mode: RESTORE_DEFAULT_ON

climate:
- platform: pid
name: "Central heating"
heat_output: t_set
default_target_temperature: 15
sensor: ch_room_temperature
control_parameters:
kp: 0.4
ki: 0.004

captive_portal: