Giter Site home page Giter Site logo

esphome-components's People

Contributors

ayufan avatar grumpymeow avatar hlfbt avatar pieter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esphome-components's Issues

EQ3 features

is it possible to control the EQ3 thermostats with this component or is it just a read only connection to home assistant?
Would be cool if you could update the Readme with this, thanks!

frame rate at full res

Hi, I tried this in vlc and a couple hours in zoneminder and it works! Using ESPcam may be a viable alternative for me to network CCTV, especially now that prices for such devices are rising due to IC shortage? While ESP only costs $5.

Question, what determines the frame rate of the stream? On boot I get 4fps but a few seconds after it settles to 1fps - 2fps.

Errors when compiling inode_ble sensor with esp-idf

Hi @ayufan,

When compiling inode_ble sensor with the framework esp-idf I get the below errors.

Thanks in advance for getting this issue solved.

esp32:
  board: esp32doit-devkit-v1
  framework:
    type: esp-idf
INFO Reading configuration /config/esphome/ble-gateway07.yaml...
INFO Detected timezone 'Europe/Bucharest'
INFO Compiling app...
Processing ble-gateway07 (board: esp32doit-devkit-v1; framework: espidf; platform: platformio/espressif32 @ 5.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40402.0 (4.4.2) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- ArduinoJson @ 6.18.5
Compiling /data/ble-gateway07/.pioenvs/ble-gateway07/src/main.o
src/main.cpp:109:1: error: 'iNodeMeterSensor' does not name a type
 iNodeMeterSensor *inodemetersensor;
 ^~~~~~~~~~~~~~~~
src/main.cpp:114:1: error: 'iNodeMeterSensor' does not name a type
 iNodeMeterSensor *inodemetersensor_2;
 ^~~~~~~~~~~~~~~~
src/main.cpp:119:1: error: 'iNodeMeterSensor' does not name a type
 iNodeMeterSensor *inodemetersensor_3;
 ^~~~~~~~~~~~~~~~
/config/esphome/ble-gateway07.yaml: In function 'void setup()':
/config/esphome/ble-gateway07.yaml:782:3: error: 'inodemetersensor' was not declared in this scope
/config/esphome/ble-gateway07.yaml:782:26: error: expected type-specifier before 'iNodeMeterSensor'
/config/esphome/ble-gateway07.yaml:870:3: error: 'inodemetersensor_2' was not declared in this scope
/config/esphome/ble-gateway07.yaml:870:3: note: suggested alternative: 'sensor_sensor_2'
/config/esphome/ble-gateway07.yaml:870:28: error: expected type-specifier before 'iNodeMeterSensor'
/config/esphome/ble-gateway07.yaml:958:3: error: 'inodemetersensor_3' was not declared in this scope
/config/esphome/ble-gateway07.yaml:958:3: note: suggested alternative: 'sensor_sensor_3'
/config/esphome/ble-gateway07.yaml:958:28: error: expected type-specifier before 'iNodeMeterSensor'
*** [/data/ble-gateway07/.pioenvs/ble-gateway07/src/main.o] Error 1
========================= [FAILED] Took 21.27 seconds =========================

eq3_v2: errors on compilation

receiving following errors during compilation:

INFO Reading configuration...
INFO Detected timezone 'CET' with UTC offset 1 and daylight savings time from 03/28/21 02:00:00 to 10/31/21 03:00:00
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/eq3
Processing eq3 (platform: [email protected]; framework: arduino; board: esp-wrover-kit)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp-wrover-kit.html
PLATFORM: Espressif 32 > Espressif ESP-WROVER-KIT
HARDWARE: ESP32 240MHz 320KB RAM (4MB Flash)
DEBUG: CURRENT(ftdi) ON-BOARD(ftdi) 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)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 27 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ESPmDNS> 1.0
|   |-- <WiFi> 1.0
|-- <Preferences> 1.0
|-- <Update> 1.0
|-- <WiFi> 1.0
Compiling /data/eq3/.pioenvs/eq3/src/esphome/components/climate/climate.cpp.o
Compiling /data/eq3/.pioenvs/eq3/src/esphome/components/climate/climate_mode.cpp.o
Compiling /data/eq3/.pioenvs/eq3/src/esphome/components/climate/climate_traits.cpp.o
Compiling /data/eq3/.pioenvs/eq3/src/esphome/components/eq3_v2/eq3.cpp.o
Compiling /data/eq3/.pioenvs/eq3/src/esphome/components/eq3_v2/eq3_cmd.cpp.o
Compiling /data/eq3/.pioenvs/eq3/src/esphome/components/esp32_ble_clients/esp32_ble.cpp.o
In file included from src/esphome/components/eq3_v2/eq3.cpp:3:0:
src/esphome/components/eq3_v2/eq3.cpp: In member function 'void EQ3Climate::parse_state(const string&)':
src/esphome/components/eq3_v2/eq3.cpp:169:58: error: 'hexencode' was not declared in this scope
hexencode((const uint8_t*)data.c_str(), data.size()).c_str());
^
src/esphome/core/log.h:119:86: note: in definition of macro 'esph_log_w'
esp_log_printf_(ESPHOME_LOG_LEVEL_WARN, tag, ESPHOME_LOG_FORMAT(tag, W, format), ##__VA_ARGS__)
^
src/esphome/components/eq3_v2/eq3.cpp:167:5: note: in expansion of macro 'ESP_LOGW'
ESP_LOGW(TAG, "State parse of %10llx failed: %s.",
^
src/esphome/components/eq3_v2/eq3.cpp: In member function 'void EQ3Climate::parse_schedule(const string&)':
src/esphome/components/eq3_v2/eq3.cpp:228:58: error: 'hexencode' was not declared in this scope
hexencode((const uint8_t*)data.c_str(), data.size()).c_str());
^
src/esphome/core/log.h:119:86: note: in definition of macro 'esph_log_w'
esp_log_printf_(ESPHOME_LOG_LEVEL_WARN, tag, ESPHOME_LOG_FORMAT(tag, W, format), ##__VA_ARGS__)
^
src/esphome/components/eq3_v2/eq3.cpp:226:5: note: in expansion of macro 'ESP_LOGW'
ESP_LOGW(TAG, "Schedule parse of %10llx failed: %s.",
^
src/esphome/components/eq3_v2/eq3.cpp: In member function 'void EQ3Climate::parse_id(const string&)':
src/esphome/components/eq3_v2/eq3.cpp:260:58: error: 'hexencode' was not declared in this scope
hexencode((const uint8_t*)data.c_str(), data.size()).c_str());
^
src/esphome/core/log.h:119:86: note: in definition of macro 'esph_log_w'
esp_log_printf_(ESPHOME_LOG_LEVEL_WARN, tag, ESPHOME_LOG_FORMAT(tag, W, format), ##__VA_ARGS__)
^
src/esphome/components/eq3_v2/eq3.cpp:258:5: note: in expansion of macro 'ESP_LOGW'
ESP_LOGW(TAG, "ID parse of %10llx failed: %s.",
^
src/esphome/components/eq3_v2/eq3.cpp:270:45: error: 'hexencode' was not declared in this scope
hexencode(id->serial, sizeof(id->serial)).c_str());
^
src/esphome/core/log.h:110:86: note: in definition of macro 'esph_log_i'
esp_log_printf_(ESPHOME_LOG_LEVEL_INFO, tag, ESPHOME_LOG_FORMAT(tag, I, format), ##__VA_ARGS__)
^
src/esphome/components/eq3_v2/eq3.cpp:269:3: note: in expansion of macro 'ESP_LOGI'
ESP_LOGI(TAG, "'%s': Serial: %s", get_name().c_str(),
^
src/esphome/components/eq3_v2/eq3.cpp: In member function 'virtual void EQ3Climate::dump_config()':
src/esphome/components/eq3_v2/eq3.cpp:288:45: error: 'LOG_CLIMATE' was not declared in this scope
LOG_CLIMATE("", "EQ3-Max Thermostat", this);
^
*** [/data/eq3/.pioenvs/eq3/src/esphome/components/eq3_v2/eq3.cpp.o] Error 1
In file included from src/esphome/components/eq3_v2/eq3_cmd.cpp:3:0:
src/esphome/components/eq3_v2/eq3_cmd.cpp: In member function 'void EQ3Climate::parse_client_notify(std::__cxx11::string)':
src/esphome/components/eq3_v2/eq3_cmd.cpp:289:58: error: 'hexencode' was not declared in this scope
hexencode((const uint8_t*)data.c_str(), data.size()).c_str());
^
src/esphome/core/log.h:119:86: note: in definition of macro 'esph_log_w'
esp_log_printf_(ESPHOME_LOG_LEVEL_WARN, tag, ESPHOME_LOG_FORMAT(tag, W, format), ##__VA_ARGS__)
^
src/esphome/components/eq3_v2/eq3_cmd.cpp:287:5: note: in expansion of macro 'ESP_LOGW'
ESP_LOGW(TAG, "Received unknown characteristic from %10llx: %s.",
^
*** [/data/eq3/.pioenvs/eq3/src/esphome/components/eq3_v2/eq3_cmd.cpp.o] Error 1
src/esphome/components/esp32_ble_clients/esp32_ble.cpp: In constructor 'ESP32BLE::ESP32BLE()':
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:30:61: error: 'ESP_LOGE' was not declared in this scope
ESP_LOGE(TAG, "esp_ble_gattc_register_callback: %x", err);
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp: In member function 'bool ESP32BLE::ble_setup()':
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:50:17: error: 'btStarted' was not declared in this scope
if (btStarted()) {
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:64:52: error: 'ESP_LOGD' was not declared in this scope
ESP_LOGD(TAG, "esp_bt_controller_init: %d", err);
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:70:54: error: 'ESP_LOGD' was not declared in this scope
ESP_LOGD(TAG, "esp_bt_controller_enable: %d", err);
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:77:55: error: 'ESP_LOGE' was not declared in this scope
ESP_LOGE(TAG, "esp_bluedroid_init failed: %d", err);
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:82:57: error: 'ESP_LOGE' was not declared in this scope
ESP_LOGE(TAG, "esp_bluedroid_enable failed: %d", err);
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:91:67: error: 'ESP_LOGE' was not declared in this scope
ESP_LOGE(TAG, "esp_ble_gap_set_security_param failed: %d", err);
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:96:56: error: 'ESP_LOGE' was not declared in this scope
ESP_LOGE(TAG, "esp_ble_gatt_set_local_mtu: %x", err);
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:101:12: error: 'delay' was not declared in this scope
delay(200);  // NOLINT
^
src/esphome/components/esp32_ble_clients/esp32_ble.cpp:103:32: error: 'ESP_LOGD' was not declared in this scope
ESP_LOGD(TAG, "BT init done.");
^
*** [/data/eq3/.pioenvs/eq3/src/esphome/components/esp32_ble_clients/esp32_ble.cpp.o] Error 1
========================== [ERROR] Took 2.15 seconds ==========================

my YAML for this project looks like this:

esphome:
  name: eq3
  platform: ESP32
  board: esp-wrover-kit

wifi:
  ssid: "<REDACTED>"
  password: "<REDACTED>"
  power_save_mode: none

# Enable logging
#logger:

# Enable Home Assistant API
#api:

ota:

# time is required by `eq3_v2` to send
# an accurate time spec when requesting
# current state
time:
  - platform: sntp
    id: sntp_time

# refresh component state every 30mins,
# and announce it to Home Assistant MQTT
climate:
  - platform: eq3_v2
    id: thermostat
    name: Thermostat
    mac_address: '<REDACTED>'
    update_interval: 30min
    valve: # optional, allows to save valve state in %
      name: Thermostat Valve State
      #expire_after: 61min

# allow to force refresh component state
switch:
  - platform: template
    name: "Refresh Thermostat"
    lambda: "return false;"
    turn_on_action:
      - component.update: thermostat

Half degree EQ3 temperature setting doesn't work

As always, massive thanks for this amazing project - just want to help improve by doing some testing.

I've got it all working in Home Assistant but when I try and set a temperature value that is not a whole number it rounds down to the nearest whole number.

See the example here, where 19.5 degrees was requested but 19 degrees was actually applied. The heater successfully takes the 19 degree value (checked on the valve display).

[15:40:42][D][climate:010]: 'Study EQ3' - Setting
[15:40:42][D][climate:017]:   Target Temperature: 19.50
[15:40:42][I][eq3:110]: Requesting climate control of 1a220*****...
[15:40:46][W][eq3:144]: Climate control of 1a220***** succeeded.
[15:40:46][I][eq3:168]: 'Study EQ3': Valve: 0%. Target: 19.0. Mode: dst.
[15:40:46][I][eq3:173]: 'Study EQ3': Window Open: 15 minutes. Temp: 12.0.
[15:40:46][I][eq3:179]: 'Study EQ3': Temp: Comfort: 21.0. Eco: 17.0. Offset: 0.0.
[15:40:46][D][sensor:092]: 'Study EQ3 Valve State': Sending state 0.00000 % with 0 decimals of accuracy
[15:40:46][D][climate:172]: 'Study EQ3' - Sending state:
[15:40:46][D][climate:175]:   Mode: AUTO
[15:40:46][D][climate:186]:   Target Temperature: 19.00°C

The EQ3 valve definitely supports half degrees - using the CalorBT app or the dial on the valve I can reach 19.5 degrees. In the case the code correctly reads the value of 19.5 degrees (see below), so it only seems to be an issue with the setting.

[15:44:50][I][eq3:042]: Requesting update of 1a220*****...
[15:44:54][I][eq3:049]: Update of 1a220*****succeeded.
[15:44:54][I][eq3:168]: 'Study EQ3': Valve: 0%. Target: 19.5. Mode: dst.
[15:44:54][I][eq3:173]: 'Study EQ3': Window Open: 15 minutes. Temp: 12.0.
[15:44:54][I][eq3:179]: 'Study EQ3': Temp: Comfort: 21.0. Eco: 17.0. Offset: 0.0.
[15:44:54][D][sensor:092]: 'Study EQ3 Valve State': Sending state 0.00000 % with 0 decimals of accuracy
[15:44:55][D][climate:172]: 'Study EQ3' - Sending state:
[15:44:55][D][climate:175]:   Mode: AUTO
[15:44:55][D][climate:186]:   Target Temperature: 19.50°C

Setup effects on wled component

Hey @ayufan, great job, I'm really new on esphome and was really nice to see wled available as a custom component, thanks for your effort.
So, I was able to installed succesfully but I can't see any effect, can you give me a clue of how to put all of them available?

eq3 valve state without mqtt?

Hi!
Is it possible to get the valve state without using mqtt?
Then your creation would be even better!
Thank you for your work
Cheers
James

esp32_ble-clients

Could you please expand on how to install/use the esp32_ble_clients.

You have a line in your readme.md saying:
This uses custom esp32_ble_clients implementation to support Bluetooth on ESP32.

But I'm not entirely sure how you go about using this custom implementation.
Is copying the files to the esp/home/custom_components dir enough?
Do I need to put esp32_ble_clients: into my esphome node.yaml file like I would have with esp_ble_tracker:?

Help.....

"custom_components" folder is ignored

Thanks for your work, it's just what I am looking for.

I followed your instructions but (probably it's a my mistake) compiling inside the Hass.io ESPHome plugin, looks like the "custom_componets" folder is ignored.

Infact, adding platform eq3_v2 in climate.yaml I get this error: "Platform error climate.eq3_v2 - Integration 'eq3_v2' not found".

Home Assistant 0.103.5
ESPhome 1.15.0-dev

EDIT 08/01/2020:
I managed to include the custom component files by editing the device yaml in EspHome:

includes:
- custom_components/eq3_v2/eq3_const.h
- custom_components/eq3_v2/eq3.h
- custom_components/esp32_ble_clients/esp32_ble_lock.h
- custom_components/esp32_ble_clients/esp32_ble_log.h
- custom_components/esp32_ble_clients/esp32_ble.h
- custom_components/esp32_ble_clients/esp32_ble_client.h

Anyway, somenthing does not work when compiling: the compiler cannot found the esphome components "sensor.h" and "climate.h (included in eq3.h).

Error on camera web server

Hey @ayufan! Quick update, using the same version that I used to compile it (Version: 2021.10.3), it now fails again but with a different issue:

Error:

Processing garage_camera (board: esp32dev; framework: arduino; platform: espressif32 @ 3.3.2)
---------------------------------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
Dependency Graph
|-- <AsyncTCP-esphome> 1.2.2
|-- <WiFi> 1.0
|-- <FS> 1.0
|-- <Update> 1.0
|-- <ESPAsyncWebServer-esphome> 2.0.0
|   |-- <AsyncTCP-esphome> 1.2.2
|-- <DNSServer> 1.1.0
|-- <AsyncMqttClient-esphome> 0.8.6
|   |-- <AsyncTCP-esphome> 1.2.2
|-- <ArduinoJson-esphomelib> 5.13.3
|-- <ESPmDNS> 1.0
Compiling .pioenvs/garage_camera/src/esphome/components/esp32_camera_web_server/camera_web_server.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mdns/mdns_esp32_arduino.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mdns/mdns_esp8266.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mdns/mdns_esp_idf.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mqtt/custom_mqtt_device.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mqtt/mqtt_binary_sensor.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mqtt/mqtt_client.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mqtt/mqtt_climate.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mqtt/mqtt_component.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mqtt/mqtt_cover.cpp.o
Compiling .pioenvs/garage_camera/src/esphome/components/mqtt/mqtt_fan.cpp.o
src/esphome/components/esp32_camera_web_server/camera_web_server.cpp: In member function 'esp_err_t esphome::esp32_camera_web_server::CameraWebServer::streaming_handler_(httpd_req*)':
src/esphome/components/esp32_camera_web_server/camera_web_server.cpp:160:32: error: 'millis' was not declared in this scope
   uint32_t last_frame = millis();
                                ^
*** [.pioenvs/garage_camera/src/esphome/components/esp32_camera_web_server/camera_web_server.cpp.o] Error 1
====================================== [FAILED] Took 1.81 seconds ======================================

If you want me to open an issue with more details do not hesitate on contacting me.

P.D: More info on #22

ESPHOME 1.19 break component

During compilation following warnings appear, which do not appear to be major, but the resulting firmware does no longer function on the ESP32 board.

Compiling /data/ttgo_trv_vzvn_beneden/.pioenvs/ttgo_trv_vzvn_beneden/src/esphome/components/eq3_v2/eq3_cmd.cpp.o
src/esphome/components/eq3_v2/eq3.cpp: In member function 'void EQ3Climate::parse_state(const string&)':
src/esphome/components/eq3_v2/eq3.cpp:215:3: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]
away = state->mode.away_mode;
^
In file included from src/esphome/components/eq3_v2/eq3.h:5:0,
from src/esphome/components/eq3_v2/eq3.cpp:1:
src/esphome/components/climate/climate.h:196:18: note: declared here
bool away{false};
^
src/esphome/components/eq3_v2/eq3.cpp:215:3: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]
away = state->mode.away_mode;
^
In file included from src/esphome/components/eq3_v2/eq3.h:5:0,
from src/esphome/components/eq3_v2/eq3.cpp:1:
src/esphome/components/climate/climate.h:196:18: note: declared here
bool away{false};
^
src/esphome/components/eq3_v2/eq3.cpp: In member function 'virtual esphome::climate::ClimateTraits EQ3Climate::traits()':
src/esphome/components/eq3_v2/eq3.cpp:275:37: warning: 'void esphome::climate::ClimateTraits::set_supports_auto_mode(bool)' is deprecated: This method is deprecated, use set_supported_modes() instead [-Wdeprecated-declarations]
traits.set_supports_auto_mode(true);
^
In file included from src/esphome/components/climate/climate.h:8:0,
from src/esphome/components/eq3_v2/eq3.h:5,
from src/esphome/components/eq3_v2/eq3.cpp:1:
src/esphome/components/climate/climate_traits.h:54:8: note: declared here
void set_supports_auto_mode(bool supports_auto_mode) { set_mode_support_(CLIMATE_MODE_AUTO, supports_auto_mode); }
^
src/esphome/components/eq3_v2/eq3.cpp:279:37: warning: 'void esphome::climate::ClimateTraits::set_supports_heat_mode(bool)' is deprecated: This method is deprecated, use set_supported_modes() instead [-Wdeprecated-declarations]
traits.set_supports_heat_mode(true);
^
In file included from src/esphome/components/climate/climate.h:8:0,
from src/esphome/components/eq3_v2/eq3.h:5,
from src/esphome/components/eq3_v2/eq3.cpp:1:
src/esphome/components/climate/climate_traits.h:58:8: note: declared here
void set_supports_heat_mode(bool supports_heat_mode) { set_mode_support_(CLIMATE_MODE_HEAT, supports_heat_mode); }
^
src/esphome/components/eq3_v2/eq3.cpp:280:33: warning: 'void esphome::climate::ClimateTraits::set_supports_away(bool)' is deprecated: This method is deprecated, use set_supported_presets() instead [-Wdeprecated-declarations]
traits.set_supports_away(false); // currently not working
^
In file included from src/esphome/components/climate/climate.h:8:0,
from src/esphome/components/eq3_v2/eq3.h:5,
from src/esphome/components/eq3_v2/eq3.cpp:1:
src/esphome/components/climate/climate_traits.h:119:8: note: declared here
void set_supports_away(bool supports) {

eq3_v2: clock source invalid

since I re-flashed my ESP I can't connect to the eQ3 Thermostat anymore. Getting clock source invalid:

[18:04:03][I][eq3:052]: Requesting update of <ADDRESS>...
[18:04:07][E][eq3_cmd:144]: Clock source for <ADDRESS> is not valid.
[18:04:07][W][eq3:066]: Update of <ADDRESS> failed. Too many tries.

I made sure the time is set correctly on the Thermostat, tried both disabling and enabling dst (summertime) setting and even did a full reset of the device.

e131 Component Only Works on Strips

Been testing the e131 component in esphome for a few days. This is excellent thanks for the great work!

Now I am trying to use it to drive a single dimmer (Martin Jerry MJ-SD01). I get an error when trying to build that complains:

Failed config

light.monochromatic: [source mj_sd02_testing.yaml:84]
  platform: monochromatic
  name: Martin Jerry MJ-SD01
  output: pwm
  default_transition_length: 0s
  id: dimmer
  effects:  [source mj_sd02_testing.yaml:91]
    
    The effect 'e131' is not allowed for this light type.
    - [source mj_sd02_testing.yaml:91]
      e131: 
        universe: 1
        channels: MONO

I suspect support would have to be added for this or perhaps I am applying the effect to the wrong component? Or I need a lambda effect in between?

Also would love to see a few inputs added to the web controls to support setting a base DMX address and universe instead of it being hard coded into the yaml.

Thanks!

ESPBTDevice' has no member named 'get_manufacturer_data' during iNode compilation

While compiling esphome with iNode component I got the following errors:

INFO Reading configuration /config/esphome/esp_fence_ble_node.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/esp_fence_ble_node
Processing esp_fence_ble_node (board: nodemcu-32s; framework: arduino; platform: [email protected])
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
PACKAGES: 
 - framework-arduinoespressif32 3.10004.200129 (1.0.4) 
 - tool-esptoolpy 1.20600.0 (2.6.0) 
 - toolchain-xtensa32 2.50200.80 (5.2.0)
Dependency Graph
|-- <AsyncTCP-esphome> 1.1.1
|-- <ESPmDNS> 1.0
|   |-- <WiFi> 1.0
|-- <FS> 1.0
|-- <ESPAsyncWebServer-esphome> 1.2.6
|   |-- <AsyncTCP-esphome> 1.1.1
|   |-- <FS> 1.0
|   |-- <WiFi> 1.0
|   |-- <ArduinoJson-esphomelib> 5.13.3
|-- <ArduinoJson-esphomelib> 5.13.3
|-- <DNSServer> 1.1.0
|   |-- <WiFi> 1.0
|-- <Update> 1.0
|-- <WiFi> 1.0
Compiling /data/esp_fence_ble_node/.pioenvs/esp_fence_ble_node/src/esphome/components/inode_ble/inode_ble.cpp.o
Compiling /data/esp_fence_ble_node/.pioenvs/esp_fence_ble_node/src/esphome/components/template/switch/template_switch.cpp.o
Compiling /data/esp_fence_ble_node/.pioenvs/esp_fence_ble_node/src/esphome/components/text_sensor/text_sensor.cpp.o
Compiling /data/esp_fence_ble_node/.pioenvs/esp_fence_ble_node/src/esphome/components/uptime/uptime_sensor.cpp.o
src/esphome/components/inode_ble/inode_ble.cpp: In member function 'virtual bool iNodeMeterSensor::parse_device(const esphome::esp32_ble_tracker::ESPBTDevice&)':
src/esphome/components/inode_ble/inode_ble.cpp:15:27: error: 'const class esphome::esp32_ble_tracker::ESPBTDevice' has no member named 'get_manufacturer_data'
   auto data_size = device.get_manufacturer_data().size();
                           ^
src/esphome/components/inode_ble/inode_ble.cpp:20:38: error: 'const class esphome::esp32_ble_tracker::ESPBTDevice' has no member named 'get_manufacturer_data'
   auto data = (unsigned char*)device.get_manufacturer_data().c_str();
                                      ^
*** [/data/esp_fence_ble_node/.pioenvs/esp_fence_ble_node/src/esphome/components/inode_ble/inode_ble.cpp.o] Error 1
========================== [FAILED] Took 9.69 seconds ==========================

I was working with previous esphome version.

eq3_v2: Feature Request: Use existing Temperature Sensor when Thermostat doesnt have one

Hi,

im using this component for quite a while and am really happy with it. It works like a charm.

My Thermostats have as well no (usable) temperature sensor available but i do have at least one DHT22/BME280 Sensor connected to each of my esp32s. So i thought it would be nice to have the possibility to provide the available sensor data of a room to each eq3 thermostat.

Is there a way to let the user define a custom sensor to provide the current temperature in the room?

Thanks and BR

esphome yaml for inode component has errors

Hi,

I was looking for such possibility - integration with iNode energy via esp32.
After coping iNode files into /conf/custom_components/inode_ble/ directory, when edditing esphome yaml file for my esp32 there is an error:

"Platform not found: sensor.inode_ble"

It seems that I am missing registration somewhere of this custom component implementation.

Warning when compiling inode_ble sensor

Hi @ayufan,

Thank you for this integration.

When compiling with an inode_ble sensor, ESPHome shows the below warning.
This doesn't seem to affect the functioning of the sensor because the data is received and displayed properly.

Compiling /data/ble-gateway01/.pioenvs/ble-gateway01/src/esphome/components/inode_ble/inode_ble.cpp.o
src/esphome/components/inode_ble/inode_ble.cpp: In member function 'virtual bool iNodeMeterSensor::parse_device(const esphome::esp32_ble_tracker::ESPBTDevice&)':
src/esphome/components/inode_ble/inode_ble.cpp:32:30: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
     if (service_data.uuid == emeterDevice || service_data.uuid == emeterDeviceLR) {
                              ^~~~~~~~~~~~
In file included from src/esphome/components/inode_ble/inode_ble.cpp:1:
src/esphome/components/inode_ble/inode_ble.h:28:13: note: candidate 1: 'bool operator==(esphome::esp32_ble_tracker::ESPBTUUID, esphome::esp32_ble_tracker::ESPBTUUID)'
 inline bool operator == (esphome::esp32_ble_tracker::ESPBTUUID a, esphome::esp32_ble_tracker::ESPBTUUID b) {
             ^~~~~~~~
In file included from src/esphome/components/inode_ble/inode_ble.h:5,
                 from src/esphome/components/inode_ble/inode_ble.cpp:1:
src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.h:39:8: note: candidate 2: 'bool esphome::esp32_ble_tracker::ESPBTUUID::operator==(const esphome::esp32_ble_tracker::ESPBTUUID&) const'
   bool operator==(const ESPBTUUID &uuid) const;
        ^~~~~~~~
src/esphome/components/inode_ble/inode_ble.cpp:32:67: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
     if (service_data.uuid == emeterDevice || service_data.uuid == emeterDeviceLR) {
                                                                   ^~~~~~~~~~~~~~
In file included from src/esphome/components/inode_ble/inode_ble.cpp:1:
src/esphome/components/inode_ble/inode_ble.h:28:13: note: candidate 1: 'bool operator==(esphome::esp32_ble_tracker::ESPBTUUID, esphome::esp32_ble_tracker::ESPBTUUID)'
 inline bool operator == (esphome::esp32_ble_tracker::ESPBTUUID a, esphome::esp32_ble_tracker::ESPBTUUID b) {
             ^~~~~~~~
In file included from src/esphome/components/inode_ble/inode_ble.h:5,
                 from src/esphome/components/inode_ble/inode_ble.cpp:1:
src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.h:39:8: note: candidate 2: 'bool esphome::esp32_ble_tracker::ESPBTUUID::operator==(const esphome::esp32_ble_tracker::ESPBTUUID&) const'
   bool operator==(const ESPBTUUID &uuid) const;
        ^~~~~~~~
Compiling /data/ble-gateway01/.pioenvs/ble-gateway01/src/main.cpp.o

Error trying to use the esp32_camera_web_server

Hey @ayufan,

First of all, thanks for this amazing components you've created, I tried to use the esp32_camera_web_server but I'm not able to finish compiling the code. Can you please help me a bit here? Maybe I'm doing something wrong 😢

Error output:

Processing garage_camera (board: esp32dev; framework: arduino; platform: platformio/[email protected])
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
PACKAGES: 
 - framework-arduinoespressif32 3.10006.210326 (1.0.6) 
 - tool-esptoolpy 1.30000.201119 (3.0.0) 
 - toolchain-xtensa32 2.50200.97 (5.2.0)
Library Manager: Installing Hash
Library Manager: Already installed, built-in library
Dependency Graph
|-- <AsyncTCP-esphome> 1.2.2
|-- <FS> 1.0
|-- <ESPAsyncWebServer-esphome> 1.3.0
|   |-- <AsyncTCP-esphome> 1.2.2
|   |-- <Crypto> 0.2.0
|   |-- <FS> 1.0
|   |-- <WiFi> 1.0
|   |-- <ArduinoJson-esphomelib> 5.13.3
|-- <ESPmDNS> 1.0
|   |-- <WiFi> 1.0
|-- <AsyncMqttClient-esphome> 0.8.4
|   |-- <AsyncTCP-esphome> 1.2.2
|-- <ArduinoJson-esphomelib> 5.13.3
|-- <noise-c> 0.1.3
|   |-- <libsodium> 1.10018.1
|-- <DNSServer> 1.1.0
|   |-- <WiFi> 1.0
|-- <Update> 1.0
|-- <WiFi> 1.0
Compiling .pioenvs/garage_camera/src/main.cpp.o
src/main.cpp:18:1: error: 'esp32_camera_web_server' does not name a type
 esp32_camera_web_server::WebServer *esp32_camera_web_server_webserver;
 ^
src/main.cpp: In function 'void setup()':
src/main.cpp:238:3: error: 'esp32_camera_web_server_webserver' was not declared in this scope
   esp32_camera_web_server_webserver = new esp32_camera_web_server::WebServer();
   ^
src/main.cpp:238:43: error: 'esp32_camera_web_server' does not name a type
   esp32_camera_web_server_webserver = new esp32_camera_web_server::WebServer();
                                           ^
src/main.cpp:240:47: error: 'esp32_camera_web_server' has not been declared
   esp32_camera_web_server_webserver->set_mode(esp32_camera_web_server::Stream);
                                               ^
Compiling .pioenvs/garage_camera/lib39c/noise-c/backend/sodium/dh-curve25519.c.o
Compiling .pioenvs/garage_camera/lib39c/noise-c/backend/sodium/hash-blake2b.c.o
Compiling .pioenvs/garage_camera/lib39c/noise-c/backend/sodium/hash-sha256.c.o
Compiling .pioenvs/garage_camera/lib39c/noise-c/crypto/aes/rijndael-alg-fst.c.o
/root/.platformio/lib/noise-c/src/backend/sodium/dh-curve25519.c: In function 'noise_curve25519_calculate':
/root/.platformio/lib/noise-c/src/backend/sodium/dh-curve25519.c:97:5: warning: ignoring return value of 'crypto_scalarmult_curve25519', declared with attribute warn_unused_result [-Wunused-result]
     crypto_scalarmult_curve25519(
     ^
Compiling .pioenvs/garage_camera/lib39c/noise-c/crypto/blake2/blake2b.c.o
Compiling .pioenvs/garage_camera/lib39c/noise-c/crypto/blake2/blake2s.c.o
Compiling .pioenvs/garage_camera/lib39c/noise-c/crypto/chacha/chacha.c.o
*** [.pioenvs/garage_camera/src/main.cpp.o] Error 1

YAML used for the camera:

substitutions:
  # Common variables used on templates
  node_name: garage_camera
  update_interval: "5"
  log_level: debug
  # Get the secret's values
  node_ip: !secret garage_camera

# Include common packages in order not to rewrite every single node
packages:
  device_base: !include common/base_esp32.yaml

# Core configuration
esphome:
  name: ${node_name}
  board: esp32dev
  comment: "Garage monitoring camera"

esp32_camera:
  name: ${node_name} camera
  external_clock:
    pin: GPIO0
    frequency: 20MHz
  i2c_pins:
    sda: GPIO26
    scl: GPIO27
  data_pins: [GPIO5, GPIO18, GPIO19, GPIO21, GPIO36, GPIO39, GPIO34, GPIO35]
  vsync_pin: GPIO25
  href_pin: GPIO23
  pixel_clock_pin: GPIO22
  power_down_pin: GPIO32
  resolution: 1600x1200
  jpeg_quality: 12

# Camera flash light
switch:
  - platform: gpio
    pin: GPIO4
    name: ${node_name} camera flash
    id: ${node_name}_camera_flash

external_components:
  - source: github://ayufan/esphome-components

esp32_camera_web_server:
  # define only what is needed
  # only a single stream is supported at a given time
  - port: 8080
    mode: stream

If you need more info just ask for it.

eq3_v2 crashes on ESPHome 2021.12.0

At least I think it's caused by eq3_v2 since that is the only thing running, and my other devices did update to 2021.12.0 with no problems.

[D][climate:381]: 'Thermostat EQ3 Schlofzimmer' - Sending state:
[D][climate:384]:   Mode: AUTO
[D][climate:395]:   Preset: HOME
[D][climate:410]:   Target Temperature: 12.00°C
[I][app:062]: setup() finished successfully!
[I][eq3:072]: Requesting ID of 1a220e5096...
[D][esp32_ble:104]: BT init done.
E (8066) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (8066) task_wdt:  - loopTask (CPU 1)
E (8066) task_wdt: Tasks currently running:
E (8066) task_wdt: CPU 0: IDLE0
E (8066) task_wdt: CPU 1: IDLE1
E (8066) task_wdt: Aborting.
abort() was called at PC 0x401b9f28 on core 0

ELF file SHA256: 0000000000000000

Backtrace: 0x4008f980:0x3ffbfdf0 0x4008fbfd:0x3ffbfe10 0x401b9f28:0x3ffbfe30 0x4008e029:0x3ffbfe50 0x401e4767:0x3ffbc100 0x401bb8b3:0x3ffbc120 0x40092421:0x3ffbc140 0x40090c72:0x3ffbc160

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
[E][esp32-hal-misc.c:111] disableCore1WDT(): Failed to remove Core 1 IDLE task from WDT

And then reboots.

My config

esphome:
  name: esp-gang
  platform: ESP32
  board: esp32doit-devkit-v1

wifi:
 *******
logger:

api:

ota:

external_components:
  - source: github://ayufan/esphome-components

time:
  - platform: sntp
    id: sntp_time

climate:
  - platform: eq3_v2
    id: thermostat_eq3_schlofzimmer
    name: Thermostat EQ3 Schlofzimmer
    mac_address: ************
    update_interval: 30min
    valve: # optional, allows to see valve state in %
      name: Thermostat EQ3 Schlofzimmer State
     # expire_after: 61min

switch:
  - platform: template
    name: "Thermostat EQ3 Schlofzimmer Refresh"
    lambda: "return false;"
    turn_on_action:
      - component.update: thermostat_eq3_schlofzimmer

A side note, the expire_after: entry gives a This option requires component mqtt. when compiling. I'm a bit confused as it already uses mqtt?

Error while compiling eq3_v2/climate.py

I am trying to use this eq3_v2 component in esphome.

I have included the advised include lines:

external_components:
  - source: github://ayufan/esphome-components
.......

# time is required by `eq3_v2` to send
# an accurate time spec when requesting
# current state
time:
  - platform: sntp
    id: sntp_time

# refresh component state every 30mins,
# and announce it to Home Assistant MQTT
climate:
  - platform: eq3_v2
    id: office_eq3
    name: Office EQ3
    mac_address: 00:1A:22:12:5B:34
    update_interval: 30min
    valve: # optional, allows to see valve state in %
      name: Office EQ3 Valve State
      expire_after: 61min

# allow to force refresh component state
switch:
  - platform: template
    name: "Refresh Office EQ3"
    lambda: "return false;"
    turn_on_action:
      - component.update: office_eq3

But then I get an error saying that the eq3_v2.climate component cannot be found

INFO Reading configuration /config/esphome/conrad-salajuegos.yaml...
ERROR Unable to load component eq3_v2.climate:
Traceback (most recent call last):
  File "/esphome/esphome/loader.py", line 162, in _lookup_module
    module = importlib.import_module(f"esphome.components.{domain}")
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/esphome/.esphome/external_components/d599fc18/components/eq3_v2/climate.py", line 23, in <module>
    cv.Optional(CONF_VALVE): sensor.sensor_schema(UNIT_PERCENT, ICON_PERCENT, 0),
TypeError: sensor_schema() takes from 0 to 1 positional arguments but 3 were given
INFO Detected timezone 'Europe/Madrid'
Failed config

Assuming it was a documentation error, I have changed the include lines to:

external_components:
  - source: github://ayufan/esphome-components/components

But now I get an error in the climate.py code:

INFO Reading configuration /config/esphome/conrad-salajuegos.yaml...
ERROR Unable to load component eq3_v2.climate:
Traceback (most recent call last):
  File "/esphome/esphome/loader.py", line 162, in _lookup_module
    module = importlib.import_module(f"esphome.components.{domain}")
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/esphome/.esphome/external_components/d599fc18/components/eq3_v2/climate.py", line 23, in <module>
    cv.Optional(CONF_VALVE): sensor.sensor_schema(UNIT_PERCENT, ICON_PERCENT, 0),
TypeError: sensor_schema() takes from 0 to 1 positional arguments but 3 were given
INFO Detected timezone 'Europe/Madrid'
Failed config

It seems that there is a bug and and one more parameter than needed.

eq3_v2 component doesn't want to work

Hello
I'm trying to implement eq3_v2 component, but it doesn't want to compile in esphome because of the error "Platform not found: 'climate.eq3_v2'.
Here is part of my config:

esphome:
  name: esp32-eq3-gateway
  platform: ESP32
  board: esp32dev

logger:

api:

ota:

wifi:
  ssid: 'Home automation'
  password: 'secretpassword'

  ap:
    ssid: "Esp32-Eq3-Gateway"
    password: "password"

captive_portal:

web_server:
  port: 80
  
external_components:
  - source: github://ayufan/esphome-components

esp32_ble_tracker:

sensor:
  - platform: ble_rssi
    mac_address: 03:14:54:0E:0A:5B
    name: "EQ3 valve"

time:
  - platform: sntp
    id: sntp_time
    
climate:
  - platform: eq3_v2
    id: office_eq3
    name: Bathroom EQ3
    mac_address: 03:14:54:0E:0A:5B
    update_interval: 30min
    valve:
      name: Bathroom EQ3 Valve State
      expire_after: 61min

I'm using ESPHome 2021.9.3.
Kind regards

Making memory component a sensor with a percentage?

Hi, I was wondering if you had tried to make the memory component report a percentage free, or if you'd considered it and felt the current implementation is more useful? Also, what do you think about making it a sensor to be visible from the dashboard?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.