wichers / esphome-opentherm

Port of OpenTherm protocol to ESPHome.io firmware.
40 stars 16 forks source link

Unable to update esphome anymore #20

Closed Mio3000 closed 4 months ago

Mio3000 commented 8 months ago

Hello all,

I am not able to update the ESPHOME anymore and receiving following error during compilation:

`INFO ESPHome 2023.10.6
INFO Reading configuration /config/esphome/esphome-web-695195.yaml...
WARNING 'opentherm_gateway': Using the '_' (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see https://esphome.io/guides/faq.html#why-shouldn-t-i-use-underscores-in-my-device-name
INFO Generating C++ source...
INFO Compiling app...
Processing opentherm_gateway (board: d1_mini; framework: arduino; platform: platformio/espressif8266@3.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
Dependency Graph
|-- ESPAsyncTCP-esphome @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 3.1.0
|-- DNSServer @ 1.1.1
|-- ESP8266WiFi @ 1.0
|-- ESP8266mDNS @ 1.2
|-- ArduinoJson @ 6.18.5
Compiling .pioenvs/opentherm_gateway/src/main.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/LwipIntfCB.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/MD5Builder.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/Print.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/Schedule.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/StackThunk.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/Stream.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/StreamSend.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/Tone.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/TypeConversion.cpp.o
/config/esphome/esphome-web-695195.yaml: In lambda function:
/config/esphome/esphome-web-695195.yaml:60:68: error: no matching function for call to 'esphome::sensor::Sensor::Sensor(const char [25])'
   60 |     ot->boiler_water_temp = new Sensor("Boiler Water Temperature");
      |                                                                    ^
In file included from src/esphome/core/controller.h:17,
                 from src/esphome/components/api/api_server.h:9,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/sensor/sensor.h:59:12: note: candidate: 'esphome::sensor::Sensor::Sensor()'
   59 |   explicit Sensor();
      |            ^~~~~~
src/esphome/components/sensor/sensor.h:59:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(const esphome::sensor::Sensor&)'
   57 | class Sensor : public EntityBase, public EntityBase_DeviceClass, public EntityBase_UnitOfMeasurement {
      |       ^~~~~~
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [25]' to 'const esphome::sensor::Sensor&'
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(esphome::sensor::Sensor&&)'
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [25]' to 'esphome::sensor::Sensor&&'
/config/esphome/esphome-web-695195.yaml:64:57: error: no matching function for call to 'esphome::sensor::Sensor::Sensor(const char [16])'
   64 |     ot->dhw_temperature = new Sensor("DHW Temperature");
      |                                                         ^
In file included from src/esphome/core/controller.h:17,
                 from src/esphome/components/api/api_server.h:9,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/sensor/sensor.h:59:12: note: candidate: 'esphome::sensor::Sensor::Sensor()'
   59 |   explicit Sensor();
      |            ^~~~~~
src/esphome/components/sensor/sensor.h:59:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(const esphome::sensor::Sensor&)'
   57 | class Sensor : public EntityBase, public EntityBase_DeviceClass, public EntityBase_UnitOfMeasurement {
      |       ^~~~~~
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [16]' to 'const esphome::sensor::Sensor&'
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(esphome::sensor::Sensor&&)'
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [16]' to 'esphome::sensor::Sensor&&'
/config/esphome/esphome-web-695195.yaml:68:75: error: no matching function for call to 'esphome::sensor::Sensor::Sensor(const char [25])'
   68 |     ot->return_water_temperature = new Sensor("Return Water Temperature");
      |                                                                           ^
In file included from src/esphome/core/controller.h:17,
                 from src/esphome/components/api/api_server.h:9,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/sensor/sensor.h:59:12: note: candidate: 'esphome::sensor::Sensor::Sensor()'
   59 |   explicit Sensor();
      |            ^~~~~~
src/esphome/components/sensor/sensor.h:59:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(const esphome::sensor::Sensor&)'
   57 | class Sensor : public EntityBase, public EntityBase_DeviceClass, public EntityBase_UnitOfMeasurement {
      |       ^~~~~~
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [25]' to 'const esphome::sensor::Sensor&'
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(esphome::sensor::Sensor&&)'
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [25]' to 'esphome::sensor::Sensor&&'
/config/esphome/esphome-web-695195.yaml:72:77: error: no matching function for call to 'esphome::sensor::Sensor::Sensor(const char [26])'
   72 |     ot->relative_modulation_level = new Sensor("Relative Modulation Level");
      |                                                                             ^
In file included from src/esphome/core/controller.h:17,
                 from src/esphome/components/api/api_server.h:9,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/sensor/sensor.h:59:12: note: candidate: 'esphome::sensor::Sensor::Sensor()'
   59 |   explicit Sensor();
      |            ^~~~~~
src/esphome/components/sensor/sensor.h:59:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(const esphome::sensor::Sensor&)'
   57 | class Sensor : public EntityBase, public EntityBase_DeviceClass, public EntityBase_UnitOfMeasurement {
      |       ^~~~~~
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [26]' to 'const esphome::sensor::Sensor&'
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(esphome::sensor::Sensor&&)'
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [26]' to 'esphome::sensor::Sensor&&'
/config/esphome/esphome-web-695195.yaml:75:61: error: no matching function for call to 'esphome::sensor::Sensor::Sensor(const char [18])'
   75 |     ot->ch_water_pressure = new Sensor("CH Water Pressure");
      |                                                             ^
In file included from src/esphome/core/controller.h:17,
                 from src/esphome/components/api/api_server.h:9,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/sensor/sensor.h:59:12: note: candidate: 'esphome::sensor::Sensor::Sensor()'
   59 |   explicit Sensor();
      |            ^~~~~~
src/esphome/components/sensor/sensor.h:59:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(const esphome::sensor::Sensor&)'
   57 | class Sensor : public EntityBase, public EntityBase_DeviceClass, public EntityBase_UnitOfMeasurement {
      |       ^~~~~~
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [18]' to 'const esphome::sensor::Sensor&'
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(esphome::sensor::Sensor&&)'
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [18]' to 'esphome::sensor::Sensor&&'
/config/esphome/esphome-web-695195.yaml:80:73: error: no matching function for call to 'esphome::sensor::Sensor::Sensor(const char [24])'
   80 |     ot->outside_air_temperature = new Sensor("Outside Air Temperature");
      |                                                                         ^
In file included from src/esphome/core/controller.h:17,
                 from src/esphome/components/api/api_server.h:9,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/sensor/sensor.h:59:12: note: candidate: 'esphome::sensor::Sensor::Sensor()'
   59 |   explicit Sensor();
      |            ^~~~~~
src/esphome/components/sensor/sensor.h:59:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(const esphome::sensor::Sensor&)'
   57 | class Sensor : public EntityBase, public EntityBase_DeviceClass, public EntityBase_UnitOfMeasurement {
      |       ^~~~~~
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [24]' to 'const esphome::sensor::Sensor&'
src/esphome/components/sensor/sensor.h:57:7: note: candidate: 'esphome::sensor::Sensor::Sensor(esphome::sensor::Sensor&&)'
src/esphome/components/sensor/sensor.h:57:7: note:   no known conversion for argument 1 from 'const char [24]' to 'esphome::sensor::Sensor&&'
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/Updater.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/WMath.cpp.o
Compiling .pioenvs/opentherm_gateway/FrameworkArduino/WString.cpp.o
*** [.pioenvs/opentherm_gateway/src/main.cpp.o] Error 1
========================== [FAILED] Took 9.28 seconds ==========================`

im using following yaml code"

`esphome:
  includes:
    - opentherm.h
    - opentherm.cpp
    - opentherm_gw_climate.h
    - opentherm_gw_climate.cpp
  name: opentherm_gateway
  platform: ESP8266
  board: d1_mini
# arduino_version: '2.7.2'  

# Enable logging
logger:
#  baud_rate: 0
#  level: DEBUG
# Enable Home Assistant API
api:
#  encryption:
#    key: XXXXXX

web_server:
  port: 80

ota:
sensor:
binary_sensor:

climate:
- platform: custom
  lambda: |-
    auto thermostat_in = new esphome::esp8266::ESP8266GPIOPin();
    thermostat_in->set_pin(12);
    thermostat_in->set_flags(gpio::FLAG_INPUT);
    auto thermostat_out = new esphome::esp8266::ESP8266GPIOPin();
    thermostat_out->set_pin(13);
    thermostat_out->set_flags(gpio::FLAG_OUTPUT);
    auto boiler_in = new esphome::esp8266::ESP8266GPIOPin();
    boiler_in->set_pin(4);
    boiler_in->set_flags(gpio::FLAG_INPUT);
    auto boiler_out = new esphome::esp8266::ESP8266GPIOPin();
    boiler_out->set_pin(5);
    boiler_out->set_flags(gpio::FLAG_OUTPUT);
    auto ot = new esphome::opentherm::OpenThermGWClimate(thermostat_in, thermostat_out, boiler_in, boiler_out);
    App.register_component(ot);
    ot->ch_active = new BinarySensor();
    ot->ch_active->set_name("CH Active");
    App.register_binary_sensor(ot->ch_active);
    ot->dhw_active = new BinarySensor();
    ot->dhw_active->set_name("DHW Active");
    App.register_binary_sensor(ot->dhw_active);
    ot->flame_on = new BinarySensor();
    ot->flame_on->set_name("Flame On");
    App.register_binary_sensor(ot->flame_on);
    ot->diagnostic_event = new BinarySensor();
    ot->diagnostic_event->set_name("Diagnostic Event");
    App.register_binary_sensor(ot->diagnostic_event);
    ot->fault_indication = new BinarySensor();
    ot->fault_indication->set_name("Fault Indication");
    App.register_binary_sensor(ot->fault_indication);
    ot->boiler_water_temp = new Sensor("Boiler Water Temperature");
    ot->boiler_water_temp->set_device_class("temperature");
    ot->boiler_water_temp->set_unit_of_measurement("°C");
    App.register_sensor(ot->boiler_water_temp);
    ot->dhw_temperature = new Sensor("DHW Temperature");
    ot->dhw_temperature->set_device_class("temperature");
    ot->dhw_temperature->set_unit_of_measurement("°C");
    App.register_sensor(ot->dhw_temperature);
    ot->return_water_temperature = new Sensor("Return Water Temperature");
    ot->return_water_temperature->set_device_class("temperature");
    ot->return_water_temperature->set_unit_of_measurement("°C");
    App.register_sensor(ot->return_water_temperature);
    ot->relative_modulation_level = new Sensor("Relative Modulation Level");
    ot->relative_modulation_level->set_unit_of_measurement("%");
    App.register_sensor(ot->relative_modulation_level);
    ot->ch_water_pressure = new Sensor("CH Water Pressure");
    ot->ch_water_pressure->set_unit_of_measurement("bar");
    ot->ch_water_pressure->set_device_class("pressure");
    ot->ch_water_pressure->set_accuracy_decimals(2);
    App.register_sensor(ot->ch_water_pressure);
    ot->outside_air_temperature = new Sensor("Outside Air Temperature");
    ot->outside_air_temperature->set_unit_of_measurement("°C");
    ot->outside_air_temperature->set_device_class("temperature");
    App.register_sensor(ot->outside_air_temperature);
    App.register_climate(ot);
    return {ot};
  climates:
    - name: "OpenTherm Thermostat"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "XXXXXX"
    password: "XXXXX"

captive_portal:`

Could someone pls help me to fix this error? thank you.

wichers commented 4 months ago

fixed in latest commit

Mio3000 commented 4 months ago

@wichers could you please update also yaml code/binaries for ESP8266? thank you