Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't compile #10

Closed
Arise opened this issue Jan 21, 2023 · 17 comments
Closed

Can't compile #10

Arise opened this issue Jan 21, 2023 · 17 comments

Comments

@Arise
Copy link

Arise commented Jan 21, 2023

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

INFO Reading configuration thermostat-number-minimal.yaml...
Failed config

opentherm: [source thermostat-number-minimal.yaml:25]

  Component not found: opentherm.
number.opentherm: [source thermostat-number-minimal.yaml:28]

  Platform not found: 'number.opentherm'.
  platform: opentherm
  t_set:
    name: Boiler Control setpoint

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:

.esphome\external_components\e2aecb28\components\opentherm\

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.

@arthurrump
Copy link
Owner

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?

@arthurrump
Copy link
Owner

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.

@Arise
Copy link
Author

Arise commented Jan 21, 2023

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.
image

@arthurrump
Copy link
Owner

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.

@Arise
Copy link
Author

Arise commented Jan 21, 2023

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.

@wildekek
Copy link

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.

@en-ver
Copy link

en-ver commented Nov 15, 2023

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

@wildekek
Copy link

Fixed in ESPHome 2023.11.2

@en-ver
Copy link

en-ver commented Nov 18, 2023

@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

@ymatsiuk
Copy link

ymatsiuk commented Dec 1, 2023

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

@andreaconfa
Copy link

andreaconfa commented Dec 4, 2023

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 

@en-ver
Copy link

en-ver commented Dec 4, 2023

@andreaconfa @ymatsiuk I've got it working by switching to another repo
source: github://ov1d1u/esphome-opentherm@main

@Bugracer
Copy link

Bugracer commented Mar 25, 2024

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

@Slevinoo
Copy link

Slevinoo commented Apr 27, 2024

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:
Schermafbeelding 2024-04-27 104225

@Bugracer
Copy link

Bugracer commented Apr 27, 2024

@Slevinoo , use github://Bugracer/esphome-opentherm@main
I made the corrections

@en-ver
Copy link

en-ver commented Jul 7, 2024

@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.

@kmarek1
Copy link

kmarek1 commented Oct 21, 2024

Can't compile "Component not found: opentherm." ESPHome Current version: 2024.10.0

sudo apt install python3-typing-extensions

Didn't help.

~$ python3 --version
Python 3.11.2

use
external_components:
source: github://arthurrump/esphome-opentherm@main

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

No branches or pull requests

9 participants