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

Add library for ESP32 #4

Open
userosos opened this issue Dec 10, 2023 · 3 comments
Open

Add library for ESP32 #4

userosos opened this issue Dec 10, 2023 · 3 comments

Comments

@userosos
Copy link

userosos commented Dec 10, 2023

Привет! Я не могу добавить устройство в ESPhome.
Скопировал в /esphome/cgAnem/ файлы cgAnem.cpp и cgAnem.h
Файл конфигурации esphome:

esphome:
  name: esp32
  friendly_name: ESP32
  libraries:
   - Wire
   - "ClimateGuard CG Anem"
   -  Arduino
  includes:
   - cgAnem/cgAnem.h
   - cgAnem/cgAnem.cpp
   
esp32:
  board: esp32dev
  framework:
    type: arduino

i2c:
  - id: bus_a
    sda: 32
    scl: 33
  - id: bus_b
    sda: 14
    scl: 15
    scan: true
  #  scan: true
......
sensor:
  - platform: custom
    lambda: |-
     auto CGAnem = new CG_Anem(0x11);
     App.register_component(CGAnem);
     return {CGAnem->temperature,CGAnem->airConsumption,CGAnem->airflowRate};
     
    sensors:
    - name: "Temperatura"
      id: CG_Anem_temperature
#      accuracy_decimals: 0.1
      unit_of_measurement: C
      state_class: measurement
    - name: "airConsumption"
      id: airConsumption
#      accuracy_decimals: 0.1
      unit_of_measurement: m^3/hour
      state_class: measurement
    - name: "airflowRate"
      id: airflowRate
#      accuracy_decimals: 0.1
      unit_of_measurement: m/s
      state_class: measurement

Но так не работает. т. к. библиотека все же не предназначена для ESPhome.

Нашел подобный проект где человек переделал библиотеку, но сам не смогу переделать:
https://github.com/maaad/RadSens1v2

@climateguard
Copy link
Owner

Добрый день, как я понимаю esp home нужно задать методы которые надо вызывать. В конфиг файле я этого не вижу. Какую ошибку выдаёт esphome?

@userosos
Copy link
Author

userosos commented Dec 10, 2023

Добрый день, как я понимаю esp home нужно задать методы которые надо вызывать. В конфиг файле я этого не вижу. Какую ошибку выдаёт esphome?

INFO ESPHome 2023.11.6
INFO Reading configuration /config/esphome/esp32.yaml...
WARNING GPIO15 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
WARNING GPIO15 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Compiling app...
Processing esp32 (board: esp32dev; framework: arduino; platform: platformio/[email protected])
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 2.0.1
|-- Wire @ 2.0.0
|-- ClimateGuard CG Anem @ 1.0.3
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 3.1.0
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.4
|-- Sensirion Gas Index Algorithm @ 3.2.1+sha.dbf2982
Compiling .pioenvs/esp32/src/main.cpp.o
Compiling .pioenvs/esp32/lib64d/WiFi/WiFiGeneric.cpp.o
Compiling .pioenvs/esp32/lib64d/WiFi/WiFiMulti.cpp.o
Compiling .pioenvs/esp32/lib64d/WiFi/WiFiSTA.cpp.o
/config/esphome/esp32.yaml: In lambda function:
/config/esphome/esp32.yaml:133:77: error: could not convert '{CGAnem->CG_Anem::temperature, CGAnem->CG_Anem::airConsumption, CGAnem->CG_Anem::airflowRate}' from '<brace-enclosed initializer list>' to 'std::vector<esphome::sensor::Sensor*>'
      return {CGAnem->temperature,CGAnem->airConsumption,CGAnem->airflowRate};
                                                                             ^
Compiling .pioenvs/esp32/lib64d/WiFi/WiFiScan.cpp.o
In file included from src/esphome/components/api/api_connection.h:7,
                 from src/esphome.h:4,
                 from src/main.cpp:3:
src/esphome/core/application.h: In instantiation of 'C* esphome::Application::register_component(C*) [with C = CG_Anem]':
/config/esphome/esp32.yaml:132:36:   required from here
src/esphome/core/application.h:148:19: error: static assertion failed: Only Component subclasses can be registered
     static_assert(std::is_base_of<Component, C>::value, "Only Component subclasses can be registered");
                   ^~~
Compiling .pioenvs/esp32/lib64d/WiFi/WiFiServer.cpp.o
*** [.pioenvs/esp32/src/main.cpp.o] Error 1
========================== [FAILED] Took 9.51 seconds ==========================

Насколько я понял что бы подключить таким способом, как у меня в конфиге необходимо переделывать библиотеку как в этом проекте - https://github.com/climateguard/RadSens/blob/master/src/CG_RadSens.h
Но сам я. к сожалению, не смогу сделать.
Может можно и задать методы внутри конфиг. файла ESPhome, но как я не могу понять.

@userosos
Copy link
Author

Добрый день, как я понимаю esp home нужно задать методы которые надо вызывать. В конфиг файле я этого не вижу. Какую ошибку выдаёт esphome?

Вот тут человек подготовил библиотеку для ESPhome. Сегодня только вечером смогу попробовать.
https://github.com/maaad/CG-Anem

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

2 participants