Closed Arise closed 1 year ago
Did you clone the repo, or did you copy thermostat-number-minimal.yaml into your own esphome folder? If the latter, did you replace the link to the external component with the GitHub link like this?
external_components:
source: github://arthurrump/esphome-opentherm@main
Which version of esphome are you using?
I just tried compiling this configuration in a fresh and empty folder using the latest esphome v2022.12.4:
# An extremely minimal configuration which only enables you to set the boiler's
# water temperature setpoint as a number.
esphome:
name: thermostat-number-minimal
external_components:
source: github://arthurrump/esphome-opentherm@main
esp8266:
board: d1_mini
logger:
api:
ota:
wifi:
ap:
ssid: "Thermostat"
password: "MySecretThemostat"
captive_portal:
opentherm:
number:
- platform: opentherm
t_set:
name: "Boiler Control setpoint"
This seems to work fine for me. The repo is indeed cloned into the .esphome\external_components\...
folder and I also see the .h and .cpp files appear in the .esphome\build\thermostat-number-minimal\src\esphome\components\opentherm
folder.
Tried in a new folder with the above mentioned example, esphome v2022.12.4.
The repo is brought in as a d4d3a138 folder inside .esphome/external_components
But that is it, no compilation takes place, because it complains of Component not found: opentherm.
If I remove the line with
opentherm:
from config yaml file then I can see everything compiling (obvious without the component).
I also tried to run directly compile_all.py, the examples all reference directly components\opentherm folder, but I get the same error.
Then the problem might be with Python, that it is somehow unable to load the project and thus esphome is unable to find the component. What version of Python are you running? I'm on 3.10 locally and CI is running on 3.9, but I might well be using Python features that are not available in earlier versions.
Found the issue will trying to run generate_schema_docs.py
After running
pip install typing-extensions
everything works now, I can compile successfully.
Don't know why this missing module is required and not flagged as such when trying to compile the config yaml files.
Seems this issue is rearing it's head again in ESPHome 2023.11. I rolled back to ESPHome 2023.10 and it works fine there.
Yes, I confirm, got the "Component not found: opentherm." after the update to 2023.11.0.
BTW never had that issue before.
I use ESPhome in docker on debian.
Installed the extension on OS level
sudo apt install python3-typing-extensions
Didn't help.
Please advise
Fixed in ESPHome 2023.11.2
@wildekek I've updated the esphome but the issue is still existing
Here is a validation error
INFO ESPHome 2023.11.2
INFO Reading configuration /config/014-wemos-d1-mini.yaml...
Failed config
opentherm: [source /config/014-wemos-d1-mini.yaml:45]
Component not found: opentherm.
ch_enable: True
dhw_enable: True
output.opentherm: [source /config/014-wemos-d1-mini.yaml:49]
Platform not found: 'output.opentherm'.
platform: opentherm
t_set:
id: t_set
min_value: 35
max_value: 55
zero_means_zero: True
sensor.opentherm: [source /config/014-wemos-d1-mini.yaml:65]
Platform not found: 'sensor.opentherm'.
platform: opentherm
rel_mod_level:
name: Gas Boiler Modulation
icon: mdi:chart-bell-curve
t_boiler:
name: Gas Boiler Temperature
icon: mdi:coolant-temperature
t_dhw_set:
name: Gas Boiler DWH Setpoint
icon: mdi:hand-water
dhw_flow_rate:
name: Boiler Water flow rate in DHW circuit
t_storage:
name: Boiler Solar storage temperature
t_flow_ch2:
name: Boiler Flow water temperature CH2 circuit
t_dhw_set_ub:
name: Boiler Upper bound for adjustement of DHW setpoint
t_dhw_set_lb:
name: Boiler Lower bound for adjustement of DHW setpoint
max_t_set_ub:
name: Boiler Upper bound for adjustement of max CH setpoint
max_t_set_lb:
name: Boiler Lower bound for adjustement of max CH setpoint
max_t_set:
name: Boiler Maximum allowable CH water setpoint
binary_sensor.opentherm: [source /config/014-wemos-d1-mini.yaml:176]
Platform not found: 'binary_sensor.opentherm'.
platform: opentherm
flame_on:
name: Gas Boiler Flame
icon: mdi:fire
diagnostic_indication:
name: Gas Boiler Diagnostic
entity_category: diagnostic
switch.opentherm: [source /config/014-wemos-d1-mini.yaml:185]
Platform not found: 'switch.opentherm'.
platform: opentherm
ch_enable:
name: Gas Heating
mode: restore_default_on
icon: mdi:water-boiler
dhw_enable:
name: Gas Hot Water
mode: restore_default_off
icon: mdi:hand-water
And the config itself
substitutions:
device_name: 014-wemos-d1-mini
esphome:
name: ${device_name}
comment: Gas Bolier
external_components:
# Replace with a direct reference to GitHub in your own configuration
source: github://arthurrump/esphome-opentherm@main
#source:
# type: local
# path: ./opentherm/
esp8266:
board: d1_mini
restore_from_flash: True
# Enable logging
logger:
# level: WARN
# baud_rate: 0
# Enable Home Assistant API
api:
ota:
password: "f5923c3172c4457c9facb9908a4cc5ae"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${device_name}
password: !secret fallback_password
captive_portal:
#web_server:
# port: 80
opentherm:
ch_enable: true
dhw_enable: true
output:
- platform: opentherm
t_set:
id: t_set
min_value: 35
# auto_max_value: true
max_value: 55
zero_means_zero: true
#number:
# - platform: opentherm
# t_dhw_set:
# name: "Gas Boiler DHW Setpoint"
# max_t_set:
# name: "Gas Boiler Max Setpoint"
sensor:
- platform: opentherm
rel_mod_level:
name: "Gas Boiler Modulation"
icon: mdi:chart-bell-curve
t_boiler:
name: "Gas Boiler Temperature"
icon: mdi:coolant-temperature
t_dhw_set:
name: "Gas Boiler DWH Setpoint"
icon: mdi:hand-water
# ch_pressure:
# name: "Boiler Water pressure in CH circuit"
dhw_flow_rate:
name: "Boiler Water flow rate in DHW circuit"
# t_dhw:
# name: "Boiler DHW temperature"
# t_outside:
# name: "Boiler Outside temperature"
# t_ret:
# name: "Boiler Return water temperature"
t_storage:
name: "Boiler Solar storage temperature"
# t_collector:
# name: "Boiler Solar collector temperature"
t_flow_ch2:
name: "Boiler Flow water temperature CH2 circuit"
# t_dhw2:
# name: "Boiler Domestic hot water temperature 2"
# t_exhaust:
# name: "Boiler Exhaust temperature"
# burner_starts:
# name: "Boiler Number of starts burner"
# ch_pump_starts:
# name: "Boiler Number of starts CH pump"
# dhw_pump_valve_starts:
# name: "Boiler Number of starts DHW pump/valve"
# dhw_burner_starts:
# name: "Boiler Number of starts burner during DHW mode"
# burner_operation_hours:
# name: "Boiler Number of hours that burner is in operation (i.e. flame on)"
# ch_pump_operation_hours:
# name: "Boiler Number of hours that CH pump has been running"
# dhw_pump_valve_operation_hours:
# name: "Boiler Number of hours that DHW pump has been running or DHW valve has been opened"
# dhw_burner_operation_hours:
# name: "Boiler Number of hours that burner is in operation during DHW mode"
t_dhw_set_ub:
name: "Boiler Upper bound for adjustement of DHW setpoint"
t_dhw_set_lb:
name: "Boiler Lower bound for adjustement of DHW setpoint"
max_t_set_ub:
name: "Boiler Upper bound for adjustement of max CH setpoint"
max_t_set_lb:
name: "Boiler Lower bound for adjustement of max CH setpoint"
max_t_set:
name: "Boiler Maximum allowable CH water setpoint"
# Get the boiler setpoint in celcius
- platform: template
id: boiler_setpoint_temperature
name: "Gas Boiler CH setpoint"
lambda: |-
return id(t_set).state;
update_interval: 1s
unit_of_measurement: "°C"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 2
- platform: homeassistant
id: ch_room_temperature
entity_id: sensor.current_temp_gas
filters:
# Push room temperature every second to update PID parameters
- heartbeat: 1s
- platform: pid
name: "PID Climate RESULT"
type: RESULT
- platform: pid
name: "PID Climate ERROR"
type: ERROR
- platform: pid
name: "PID Climate PROPORTIONAL"
type: PROPORTIONAL
- platform: pid
name: "PID Climate INTEGRAL"
type: INTEGRAL
- platform: pid
name: "PID Climate HEAT"
type: HEAT
- platform: pid
name: "PID Climate KP"
type: KP
- platform: pid
name: "PID Climate KI"
type: KI
- platform: uptime
name: ${device_name} Uptime
id: node_uptime
unit_of_measurement: "s"
binary_sensor:
- platform: opentherm
flame_on:
name: "Gas Boiler Flame"
icon: mdi:fire
diagnostic_indication:
name: "Gas Boiler Diagnostic"
entity_category: diagnostic
switch:
- platform: opentherm
ch_enable:
name: "Gas Heating"
mode: restore_default_on
icon: mdi:water-boiler
dhw_enable:
name: "Gas Hot Water"
mode: restore_default_off
icon: mdi:hand-water
- platform: template
name: "PID Autotune"
icon: mdi:tune-vertical-variant
turn_on_action:
- climate.pid.autotune:
id: pid_climate
noiseband: 0.1
- platform: restart
name: ${device_name} Restart
climate:
- platform: pid
id: pid_climate
name: "Gas Boiler"
heat_output: t_set
default_target_temperature: 10
sensor: ch_room_temperature
icon: mdi:home-thermometer
control_parameters:
kp: 0.1
ki: 0.0
kd: 0.0
Works only in esphome:2023.9.3
for me.
docker run --rm --net host -v "${PWD}":/config -it ghcr.io/esphome/esphome:2023.9.3 run examples/thermostat-pid-basic.yaml
Please help... i have the same issue running the Plugin version for home assistant.
I'm getting th error:
Failed config
opentherm: [source /config/esphome/opentherm-caldaia.yaml:36]
Component not found: opentherm.
in_pin: 4
out_pin: 5
With this simple config:
esphome:
name: opentherm-caldaia
friendly_name: OpenTherm Caldaia
esp32:
board: lolin32
framework:
type: arduino
external_components:
source: github://arthurrump/esphome-opentherm@main
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "XXXXXXXX"
ota:
password: "XXXXXXX"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Opentherm-Caldaia"
password: "bmiUPngRJlUj"
captive_portal:
opentherm:
in_pin: 4
out_pin: 5
@andreaconfa @ymatsiuk I've got it working by switching to another repo
source: github://ov1d1u/esphome-opentherm@main
Hello, I have this error:
UnknownPackageError: Could not find the package with 'ihormelnyk/OpenTherm Library @ 1.1.3' requirements for your system 'linux_aarch64'
withsource: github://ov1d1u/esphome-opentherm@main
Hello, I have this error:
UnknownPackageError: Could not find the package with 'ihormelnyk/OpenTherm Library @ 1.1.3' requirements for your system 'linux_aarch64'
with
source: github://ov1d1u/esphome-opentherm@main
I have the same error. I have forked the github repo and updated the version of the ihormelnyk to 1.1.5, but that results in the following error:
@Slevinoo , use github://Bugracer/esphome-opentherm@main
I made the corrections
@Slevinoo , use
github://Bugracer/esphome-opentherm@main
I made the corrections
@Bugracer thx! That worked! I can see a 1.1.5 version of the library is available, but your codebase uses 1.1.4. Maybe it makes sense to switch to the new version? I appreciate your efforts.
Not sure what I'm doing wrong but can't get this working:
when I run: esphome -v run thermostat-number-minimal.yaml I get below
Whatever I do, can't get opentherm to be found.
In the same folder as my thermostat-number-minimal.yaml there is also this tree folder with stuff brought in from git:
So git kinda works to bring in the repo source, but after that don't know why it still complains about opentherm not being found.