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

Custom Climate component example has ambiques ClimateMode error #617

Closed
NdS-Research-Facilities opened this issue Aug 25, 2019 · 1 comment

Comments

@NdS-Research-Facilities

Operating environment/Installation (Hass.io/Docker/pip/etc.):

Hass.io on VMware on Win10 on Lenovo P50 laptop

ESP (ESP32/ESP8266, Board/Sonoff):

ESP32

Affected component:

https://esphome.io/components/climate/custom.html

Description of problem:

Compiling this custom climate component example code gives error:

INFO Reading configuration /config/esphome/807d3ab9d974.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/807d3ab9d974
Processing 807d3ab9d974 (board: nodemcu-32s; framework: arduino; platform: espressif32@1.6.0)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/nodemcu-32s.html
PLATFORM: Espressif 32 1.6.0 > NodeMCU-32S
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: toolchain-xtensa32 2.50200.80 (5.2.0), framework-arduinoespressif32 2.10001.190111 (1.0.1), tool-esptoolpy 1.20600.0 (2.6.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Looking for Hash library in registry
Warning! Library `{'requirements': None, 'name': 'Hash'}` has not been found in PlatformIO Registry.
You can ignore this message, if `{'requirements': None, 'name': 'Hash'}` is a built-in library (included in framework, SDK). E.g., SPI, Wire, etc.
Found 28 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <AsyncTCP> 1.0.3
|-- <ESPmDNS> 1.0
|   |-- <WiFi> 1.0
|-- <FS> 1.0
|-- <ESP Async WebServer> 1.2.2
|   |-- <AsyncTCP> 1.0.3
|   |-- <FS> 1.0
|   |-- <WiFi> 1.0
|-- <DNSServer> 1.1.0
|   |-- <WiFi> 1.0
|-- <Update> 1.0
|-- <WiFi> 1.0
Compiling /data/807d3ab9d974/.pioenvs/807d3ab9d974/src/main.cpp.o
In file included from src/main.cpp:35:0:
src/OpenThermClimate.h: In member function 'virtual void OpenThermClimate::control(const esphome::climate::ClimateCall&)':
src/OpenThermClimate.h:14:7: error: reference to 'ClimateMode' is ambiguous
       ClimateMode mode = *call.get_mode();
       ^
In file included from src/esphome/components/api/api_connection.h:5:0,
                 from src/esphome.h:2,
                 from src/main.cpp:3:
src/esphome/components/api/api_pb2.h:46:6: note: candidates are: enum esphome::api::ClimateMode
 enum ClimateMode : uint32_t {
      ^
In file included from src/esphome/components/climate/climate.h:6:0,
                 from src/esphome/core/application.h:27,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:2,
                 from src/main.cpp:3:
src/esphome/components/climate/climate_mode.h:9:6: note:                 enum esphome::climate::ClimateMode
 enum ClimateMode : uint8_t {
      ^
*** [/data/807d3ab9d974/.pioenvs/807d3ab9d974/src/main.cpp.o] Error 1
========================== [FAILED] Took 2.22 seconds ==========================


Problem-relevant YAML-configuration entries:

PASTE YAML FILE HERE
esphome:
  name: 807d3ab9d974
  platform: ESP32
  board: nodemcu-32s
  includes:
    - OpenThermESPhome.h
    - OpenThermClimate.h


climate:
- platform: custom
  lambda: |-
    auto my_opentherm_climate = new OpenThermClimate();
    App.register_component(my_opentherm_climate);
    return {my_opentherm_climate};

  climates:
    - name: "OpenThermClimate"


sensor:
- platform: custom
  lambda: |-
    auto my_sensor = new OpenThermESPhome();
    App.register_component(my_sensor);
    return {
    my_sensor->GEN_CHpressure, my_sensor->GEN_Toutside, my_sensor->GEN_BurnerStarts, my_sensor->GEN_BurnerHours, my_sensor->GEN_DHWBurnerHours, my_sensor->GEN_Status_Fault, my_sensor->GEN_Status_CH_active, my_sensor->GEN_Status_DHW_active, my_sensor->GEN_Status_Flame_On, my_sensor->GEN_Status_Cooling_active, my_sensor->GEN_Status_CH2_active, my_sensor->GEN_Status_DIAG, my_sensor->CH_RelModLevel, my_sensor->CH_Tboiler, my_sensor->CH_TrOverride, my_sensor->DHW_FlowRate, my_sensor->DHW_Tdhw, my_sensor->DHW_TdhwSet
    };


#   OTGEN_CHpressure
#   OTGEN_Toutside
#   OTGEN_BurnerStarts
#   OTGEN_BurnerHours
#   OTGEN_DHWBurnerHours
#   OTGEN_Status_Fault
#   OTGEN_Status_CH_active
#   OTGEN_Status_DHW_active
#   OTGEN_Status_Flame_On
#   OTGEN_Status_Cooling_active
#   OTGEN_Status_CH2_active
#   OTGEN_Status_DIAG
#   OTCH_RelModLevel
#   OTCH_Tboiler
#   OTCH_TrOverride
#   OTDHW_FlowRate
#   OTDHW_Tdhw
#   OTDHW_TdhwSet






  sensors:
  - name: "OTGEN_CHpressure"
    unit_of_measurement: bar
    accuracy_decimals: 2
    
  - name: "OTGEN_Toutside"
    unit_of_measurement: °C
    accuracy_decimals: 2
    
  - name: "OTGEN_BurnerStarts"
    accuracy_decimals: 0

  - name: "OTGEN_BurnerHours"
    unit_of_measurement: H
    accuracy_decimals: 0

  - name: "OTGEN_DHWBurnerHours"
    unit_of_measurement: H
    accuracy_decimals: 0

  - name: "OTGEN_Status_Fault"
  - name: "OTGEN_Status_CH_active"
  - name: "OTGEN_Status_DHW_active"
  - name: "OTGEN_Status_Flame_On"
  - name: "OTGEN_Status_Cooling_active"
  - name: "OTGEN_Status_CH2_active"
  - name: "OTGEN_Status_DIAG"


  - name: "OTCH_RelModLevel"
    unit_of_measurement: "%"
    accuracy_decimals: 2

  - name: "OTCH_Tboiler"
    unit_of_measurement: °C
    accuracy_decimals: 2

  - name: "OTCH_TrOverride"
    unit_of_measurement: °C
    accuracy_decimals: 2

  - name: "OTDHW_FlowRate"
    unit_of_measurement: "L/m"
    accuracy_decimals: 2

  - name: "OTDHW_Tdhw"
    unit_of_measurement: °C
    accuracy_decimals: 2

  - name: "OTDHW_TdhwSet"
    unit_of_measurement: °C
    accuracy_decimals: 2

captive_portal:

# Enable logging
logger:
  level: VERY_VERBOSE

status_led:
  pin: GPIO2

Logs (if applicable):

PASTE DEBUG LOG HERE

see **Description of problem:** above for compile log

Additional information and things you've tried:

Changing line ClimateMode mode = *call.get_mode(); to esphome::climate::ClimateMode mode = *call.get_mode(); solves this issues.

@NdS-Research-Facilities
Copy link
Author

esphome.io dev chain 1.13.6

@esphome esphome locked and limited conversation to collaborators Oct 19, 2019
silverchris pushed a commit to silverchris/esphome that referenced this issue May 23, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants