vooon / elehant-to-mqtt

Collect and publish to MQTT data from Elehant SVD-15 water counters
GNU General Public License v3.0
23 stars 7 forks source link

Esphome... error.... HELP!) #5

Closed kirkorblack closed 4 years ago

kirkorblack commented 4 years ago

Error when try to compile

HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash Dependency Graph |-- 1.1.1 |-- 1.0 | |-- 1.0 |-- 1.0 |-- 1.2.6 | |-- 1.1.1 | |-- 1.0 | |-- 1.0 | |-- 5.13.3 |-- 5.13.3 |-- 1.1.0 | |-- 1.0 |-- 1.0 |-- 1.0 Compiling /data/esp_ble_gateway/.pioenvs/esp_ble_gateway/src/main.cpp.o Compiling /data/esp_ble_gateway/.pioenvs/esp_ble_gateway/libb15/ESPAsyncWebServer-esphome/WebResponses.cpp.o Compiling /data/esp_ble_gateway/.pioenvs/esp_ble_gateway/libb15/ESPAsyncWebServer-esphome/WebServer.cpp.o Compiling /data/esp_ble_gateway/.pioenvs/esp_ble_gateway/lib43b/DNSServer/DNSServer.cpp.o In file included from src/main.cpp:22:0: src/elehant_ble.h: In member function 'virtual bool ElehantBLE::parse_device(const esphome::esp32_ble_tracker::ESPBTDevice&)': src/elehant_ble.h:35:28: error: 'const class esphome::esp32_ble_tracker::ESPBTDevice' has no member named 'get_manufacturer_datas' auto mfg_datas = device.get_manufacturer_datas(); ^ *** [/data/esp_ble_gateway/.pioenvs/esp_ble_gateway/src/main.cpp.o] Error 1 ========================= [FAILED] Took 11.14 seconds =========================

kirkorblack commented 4 years ago

Ошибка выше решилась исправлением get_manufacturer_datas на get_manufacturer_data Видимо переименовали

но появились другие ошибки

|-- 1.0 |-- 1.0 Compiling /data/esp_ble_gateway/.pioenvs/esp_ble_gateway/src/main.cpp.o In file included from src/main.cpp:22:0: src/elehant_ble.h: In member function 'virtual bool ElehantBLE::parse_device(const esphome::esp32_ble_tracker::ESPBTDevice&)': src/elehant_ble.h:48:18: error: request for member 'uuid' in 'mfg_data', which is of non-class type 'char' if (!mfg_data.uuid.contains(0xff, 0xff)) { ^ In file included from src/esphome/components/api/api_server.h:6:0, from src/esphome/components/api/api_connection.h:7, from src/esphome.h:2, from src/main.cpp:3: src/elehant_ble.h:49:85: error: request for member 'uuid' in 'mfg_data', which is of non-class type 'char' ESP_LOGE(TAG, "parse_device(): unexpected manufacturer data uuid: %s", mfg_data.uuid.to_string().c_str()); ^ src/esphome/core/log.h:119:89: note: in definition of macro 'esph_log_e' esp_logprintf(ESPHOME_LOG_LEVEL_ERROR, tag, LINE, ESPHOME_LOG_FORMAT(format), ##__VA_ARGS__) ^ src/elehant_ble.h:49:5: note: in expansion of macro 'ESP_LOGE' ESP_LOGE(TAG, "parse_device(): unexpected manufacturer data uuid: %s", mfg_data.uuid.to_string().c_str()); ^ In file included from src/main.cpp:22:0: src/elehant_ble.h:52:17: error: request for member 'data' in 'mfg_data', which is of non-class type 'char' if (mfg_data.data.size() != 17) { ^ In file included from src/esphome/components/api/api_server.h:6:0, from src/esphome/components/api/api_connection.h:7, from src/esphome.h:2, from src/main.cpp:3:

vooon commented 4 years ago

Видимо они переделали АПИ. Раньше на сколько помню возвращался вектор. Попробую посмотреть на выходных.

vooon commented 4 years ago

Попробовал собрать как есть - собралось. Может у вас esphome старый? Я проверял на мастере (1.16). Да и разрабатывал когда 1.15 была еще в деве.

kirkorblack commented 4 years ago

Черт! Это я болван! Не понятно по какой причине у меня действительно старая версия ESPHome!!! Обновился, добавил 2 счетчика, все скомпилировалось и работает Обновления как то медленно происходит.... медленнее чем на USB-BlueTooth свистке воткнутом в малину на прямую

vooon commented 4 years ago

Там надо играться с параметрами сканирования, при чем я так и не понял какие будут лучше работать всегда. Сами счетчики не совсем валидные БЛЕ-устройства, из-за чего по моему мнению китайский стек подглючивает.

Старая, не-esphome версия, работает несколько лучше, но добавить что-то еще туда сложнее.