Giter VIP home page Giter VIP logo

esphome-tion's People

Contributors

dentra 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

Watchers

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

esphome-tion's Issues

Проблема подключения Tion 3S

Здравствуйте,

Большое спасибо за интеграцию. Очень много проблема решает с управлением и автоматизацией бризеров.

У меня на данный момент примерно через 10 часов работы ESP32 перестает подключаться к Тиону и не получает с него информацию. В логах ESP32 следующее:

[09:00:44][D][esp32_ble_client:048]: [0] [D5:91:DD:FC:1A:60] Found device
[09:00:44][I][esp32_ble_client:064]: [0] [D5:91:DD:FC:1A:60] 0x01 Attempting BLE connection
[09:00:45][V][esp32_ble_client:111]: [0] [D5:91:DD:FC:1A:60] gattc_event_handler: event=41 gattc_if=4
[09:00:45][V][esp32_ble_client:164]: [0] [D5:91:DD:FC:1A:60] ESP_GATTC_DISCONNECT_EVT, reason 62
[09:00:45][V][esp32_ble_client:111]: [0] [D5:91:DD:FC:1A:60] gattc_event_handler: event=2 gattc_if=4
[09:00:45][V][esp32_ble_client:126]: [0] [D5:91:DD:FC:1A:60] ESP_GATTC_OPEN_EVT
[09:00:45][W][esp32_ble_client:131]: [0] [D5:91:DD:FC:1A:60] Connection failed, status=133
[09:00:45][D][esp32_ble_client:048]: [0] [D5:91:DD:FC:1A:60] Found device
[09:00:45][I][esp32_ble_client:064]: [0] [D5:91:DD:FC:1A:60] 0x01 Attempting BLE connection
[09:00:45][V][esp32_ble_client:111]: [0] [D5:91:DD:FC:1A:60] gattc_event_handler: event=41 gattc_if=4
[09:00:45][V][esp32_ble_client:164]: [0] [D5:91:DD:FC:1A:60] ESP_GATTC_DISCONNECT_EVT, reason 62
[09:00:45][V][esp32_ble_client:111]: [0] [D5:91:DD:FC:1A:60] gattc_event_handler: event=2 gattc_if=4
[09:00:45][V][esp32_ble_client:126]: [0] [D5:91:DD:FC:1A:60] ESP_GATTC_OPEN_EVT
[09:00:45][W][esp32_ble_client:131]: [0] [D5:91:DD:FC:1A:60] Connection failed, status=133

Для решения в первый раз перепрошил ESP32, а потом сделал заново сопряжение. В чем может быть проблема?
Заранее спасибо!

Несколько бризеров на одной плате ESP32

Добрый день!
У меня есть три бризера, два Lite и один 4S. Пытаюсь завести их в ХА через одну плату ESP32.
Не пойму, как завести несколько устройств на одну плату.
Скорректировал код следующим образом:

substitutions:
  # tion mac address. setup yours.
   #1 4S Гостинная:
  tion1_mac_address: FC:51:8F:F7:77:20
   #2 Lite Спальня:
  tion2_mac_address: C5:D4:AA:B8:FB:09
   #3 Lite Детская:
  tion3_mac_address: FA:24:0D:17:58:FC
  # name of the node.
  node_name: tion
  # name for main climate entity and prefix for all others.
  friendly_name: Бризеры
  # add suffix for node name to have one firmware for many devices.
  node_add_mac_suffix: "true"


packages:
  tion:
    url: https://github.com/dentra/esphome-tion
    ref: 2024.1.3 # cant use substitutions here
    files:
      ## Enable additional WiFi signal sensor. Comment next line to disable.
      - packages/wifi_signal.yaml
      ## Enable additional BLE RSSI sensor. Comment next line to disable.
      - packages/rssi_signal.yaml
      ## Enable additional Uptime sensor. Comment next line to disable.
      - packages/uptime.yaml
      ## Enable additional Restart button. Comment next line to disable.
      - packages/restart.yaml
      ## Base climate definition. Do not comment or move or remove.
      - packages/tion_4s_climate.yaml
      - packages/tion_lt_climate.yaml
      ## Enable maximum target temperature to 30°C. Comment next line to disable.
      - packages/tion_temperature30c.yaml
      ## Enable heat_cool mode to workaraund when using Home Assistant turn_on service.
      # - packages/tion_enable_heat_cool.yaml
      ## Uncomment next line to enable additional energy sensor.
      - packages/tion_energy.yaml
      ## Common configuration settings. Do not comment or move or remove.
      - packages/base.yaml
      ## BLE configuration settings. Do not comment or move or remove.
      - packages/esp32_ble.yaml
      ## Uncomment next line to enable persistent connection runtime control switch.
      #- packages/persistent.yaml
      ## Uncomment next line to enable additional connect switch useful for debugging.
      # - packages/connect.yaml
      ## Uncomment next line to enable additional internal timers support.
      - packages/tion_4s_timers.yaml
      ## Uncomment next line to enable monitor internal ESP temperature.
      - packages/esp32_temperature.yaml
      ## Uncomment next line to enable additional debug information.
      # - packages/debug.yaml



# Virtual port configuration
vport:
  - platform: tion_4s
    id: tion1_ble_vport
    ble_client_id: tion1_ble_client
    ## Optional, Do not disconnect after receiving state. Default: false.
    persistent_connection: false
    ## Optional, Allow to disable other BLE device scanning when breezer is already connected. Default: false.
    # disable_scan: false
    ## Optional, Interval between sending commmands. Set to 0ms to send one command per loop.
    # command_interval: 100ms
    ## Optional, Command queue size. Default: 10.
    # command_queue_size: 16
  - platform: tion_lt
    id: tion2_ble_vport
    ble_client_id: tion2_ble_client
    ## Optional, Do not disconnect after receiving state. Default: false.
    persistent_connection: false
    ## Optional, Allow to disable other BLE device scanning when breezer is already connected. Default: false.
    # disable_scan: false
    ## Optional, Interval between sending commmands. Set to 0ms to send one command per loop.
    # command_interval: 100ms
    ## Optional, Command queue size. Default: 10.
    # command_queue_size: 16
  - platform: tion_lt
    id: tion3_ble_vport
    ble_client_id: tion3_ble_client
    ## Optional, Do not disconnect after receiving state. Default: false.
    persistent_connection: false
    ## Optional, Allow to disable other BLE device scanning when breezer is already connected. Default: false.
    # disable_scan: false
    ## Optional, Interval between sending commmands. Set to 0ms to send one command per loop.
    # command_interval: 100ms
    ## Optional, Command queue size. Default: 10.
    # command_queue_size: 16

# Main climate component configuration.
climate:
  - id: !extend tion_climate
    # Required, the name of climate entity
    name: Бризер Гостинная # use friendly_name
    # Optional, virtual port id. Default: autodetect
    vport_id: tion1_ble_vport
    # Optional, Temperatire of air before heater, °C (celsius).
    outdoor_temperature:
      name: "Outdoor Temperature"
    # Optional, Buzzer control switch.
    buzzer:
      name: "Buzzer"
    # Optional, Led control switch.
    led:
      name: "Led"
    # Optional, Heater power, W (watt).
    heater_power:
      name: "Heater power"
    # Optional, Total airflow counter, m³ (cubic meters).
    airflow_counter:
      name: "Airflow counter"
    # Optional, Recirculation control switch.
    recirculation:
      name: "Recirculation"
    # Optional, Current productivity, m³/h (cubic meters per hour).
    productivity:
      name: "Productivity"
    # Optional, Filter time left counter, days.
    filter_time_left:
      name: "Filter Time Left"
    # Optional, Filter warning state.
    filter_warnout:
      name: "Filter Warnout"
    # Optional, Tion firmware version.
    version:
      name: "Version"

    presets:
      # enable "home" preset and override default settings
      home: { fan_speed: 2, target_temperature: 10, gate_position: outdoor, mode: fan_only }
      # enable "away" preset with default settings
      away:
      # enable "boost" preset with default settings
      boost:
      # enable "sleep" preset and override default settings
      sleep: { fan_speed: 1, target_temperature: 10, gate_position: outdoor, mode: fan_only }
    # Optional, configure boost time
    boost_time:
      name: "Boost Time"
    # Optional, display remaining boost time
    boost_time_left:
      name: "Boost Time Left"
    # Optional, How often query device state. Default: 60s.
    update_interval: 60s
    # Optional, reset filter button
    reset_filter:
      name: "Reset Filter"
    # Optional, reset filter confirmation. When off then reset_filter will not work.
    reset_filter_confirm:
      name: "Reset Filter Confirm"
    # Optional, Informs about get state problem from breezer.
    state_warnout:
      name: "State Warnout"
    # Optional, Timeout when state_warnout will be informed. Default: 3s.
    state_timeout: 3s
    # Optional, Timeout to combine update operations. Default: 200ms.
    batch_timeout: 200ms
    # Optional, Reports Tion's errors (EC) and warnings (WS).
    errors:
      name: "Errors"
  - id: !extend tion_climate
    # Required, the name of climate entity
    name: Бризер Спальня # use friendly_name
    # Optional, virtual port id. Default: autodetect
    vport_id: tion2_ble_vport
    # Optional, Temperatire of air before heater, °C (celsius).
    outdoor_temperature:
      name: "Outdoor Temperature"
    # Optional, Buzzer control switch.
    buzzer:
      name: "Buzzer"
    # Optional, Heater power, W (watt).
    heater_power:
      name: "Heater power"
    # Optional, Total airflow counter, m³ (cubic meters).
    airflow_counter:
      name: "Airflow counter"
    # Optional, Gate state control binary sensor.
    gate_state:
      name: "Gate State"
    # Optional, Current productivity, m³/h (cubic meters per hour).
    productivity:
      name: "Productivity"
    # Optional, Filter time left counter, days.
    filter_time_left:
      name: "Filter Time Left"
    # Optional, Filter warning state.
    filter_warnout:
      name: "Filter Warnout"
    # Optional, Tion firmware version.
    version:
      name: "Version"

    presets:
      # enable "home" preset and override default settings
      home: { fan_speed: 2, target_temperature: 10, gate_position: outdoor, mode: fan_only }
      # enable "away" preset with default settings
      away:
      # enable "boost" preset with default settings
      boost:
      # enable "sleep" preset and override default settings
      sleep: { fan_speed: 1, target_temperature: 10, gate_position: outdoor, mode: fan_only }
    # Optional, configure boost time
    boost_time:
      name: "Boost Time"
    # Optional, display remaining boost time
    boost_time_left:
      name: "Boost Time Left"
    # Optional, How often query device state. Default: 60s.
    update_interval: 60s
    # Optional, reset filter button
    reset_filter:
      name: "Reset Filter"
    # Optional, reset filter confirmation. When off then reset_filter will not work.
    reset_filter_confirm:
      name: "Reset Filter Confirm"
    # Optional, Informs about get state problem from breezer.
    state_warnout:
      name: "State Warnout"
    # Optional, Timeout when state_warnout will be informed. Default: 3s.
    state_timeout: 3s
    # Optional, Timeout to combine update operations. Default: 200ms.
    batch_timeout: 200ms
    # Optional, Reports Tion's errors (EC) and warnings (WS).
    errors:
      name: "Errors"
  - id: !extend tion_climate
    # Required, the name of climate entity
    name: Бризер Детская # use friendly_name
    # Optional, virtual port id. Default: autodetect
    vport_id: tion3_ble_vport
    # Optional, Temperatire of air before heater, °C (celsius).
    outdoor_temperature:
      name: "Outdoor Temperature"
    # Optional, Buzzer control switch.
    buzzer:
      name: "Buzzer"
    # Optional, Heater power, W (watt).
    heater_power:
      name: "Heater power"
    # Optional, Total airflow counter, m³ (cubic meters).
    airflow_counter:
      name: "Airflow counter"
    # Optional, Gate state control binary sensor.
    gate_state:
      name: "Gate State"
    # Optional, Current productivity, m³/h (cubic meters per hour).
    productivity:
      name: "Productivity"
    # Optional, Filter time left counter, days.
    filter_time_left:
      name: "Filter Time Left"
    # Optional, Filter warning state.
    filter_warnout:
      name: "Filter Warnout"
    # Optional, Tion firmware version.
    version:
      name: "Version"

    presets:
      # enable "home" preset and override default settings
      home: { fan_speed: 2, target_temperature: 10, gate_position: outdoor, mode: fan_only }
      # enable "away" preset with default settings
      away:
      # enable "boost" preset with default settings
      boost:
      # enable "sleep" preset and override default settings
      sleep: { fan_speed: 1, target_temperature: 10, gate_position: outdoor, mode: fan_only }
    # Optional, configure boost time
    boost_time:
      name: "Boost Time"
    # Optional, display remaining boost time
    boost_time_left:
      name: "Boost Time Left"
    # Optional, How often query device state. Default: 60s.
    update_interval: 60s
    # Optional, reset filter button
    reset_filter:
      name: "Reset Filter"
    # Optional, reset filter confirmation. When off then reset_filter will not work.
    reset_filter_confirm:
      name: "Reset Filter Confirm"
    # Optional, Informs about get state problem from breezer.
    state_warnout:
      name: "State Warnout"
    # Optional, Timeout when state_warnout will be informed. Default: 3s.
    state_timeout: 3s
    # Optional, Timeout to combine update operations. Default: 200ms.
    batch_timeout: 200ms
    # Optional, Reports Tion's errors (EC) and warnings (WS).
    errors:
      name: "Errors"

Но при проверке выдает ошибку:

INFO ESPHome 2024.4.0
INFO Reading configuration /config/esphome/breezers.yaml...
WARNING Found '$tion_mac_address' (see sensor->1->mac_address) which looks like a substitution, but 'tion_mac_address' was not declared
WARNING Found '$tion_mac_address' (see ble_client->mac_address) which looks like a substitution, but 'tion_mac_address' was not declared
WARNING Found '$tion_mac_address' (see sensor->1->mac_address) which looks like a substitution, but 'tion_mac_address' was not declared
WARNING Found '$tion_mac_address' (see ble_client->mac_address) which looks like a substitution, but 'tion_mac_address' was not declared
INFO Detected timezone 'Europe/Moscow'
Failed config

sensor.ble_rssi: [source /data/packages/a28f4a62/packages/rssi_signal.yaml:2]
  platform: ble_rssi
  
  MAC Address must consist of 6 : (colon) separated parts.
  mac_address: $tion_mac_address
  name: RSSI
  filters: 
    throttle_average: 60s
  entity_category: diagnostic
climate.tion_lt: [source /data/packages/a28f4a62/packages/tion_lt_climate.yaml:2]
  platform: tion_lt
  id: tion_climate
  heater_power: 
    id: heater_power
    on_raw_value: 
      then: 
        lambda: id(heater_power_plus_fan).update();
    name: Heater power
  name: Бризер Детская
  vport_id: tion3_ble_vport
  outdoor_temperature: 
    name: Outdoor Temperature
  buzzer: 
    name: Buzzer
  led: 
    name: Led
  airflow_counter: 
    name: Airflow counter
  
  [recirculation] is an invalid option for [climate.tion_lt]. Please check the indentation.
  recirculation: 
    name: Recirculation
  productivity: 
    name: Productivity
  filter_time_left: 
    name: Filter Time Left
  filter_warnout: 
    name: Filter Warnout
  version: 
    name: Version
  presets: 
    home: 
      fan_speed: 2
      target_temperature: 10
      gate_position: outdoor
      mode: fan_only
    away: 
    boost: 
    sleep: 
      fan_speed: 1
      target_temperature: 10
      gate_position: outdoor
      mode: fan_only
  boost_time: 
    name: Boost Time
  boost_time_left: 
    name: Boost Time Left
  update_interval: 60s
  reset_filter: 
    name: Reset Filter
  reset_filter_confirm: 
    name: Reset Filter Confirm
  state_warnout: 
    name: State Warnout
  state_timeout: 3s
  batch_timeout: 200ms
  errors: 
    name: Errors
  gate_state: 
    name: Gate State
ble_client: [source /data/packages/a28f4a62/packages/esp32_ble.yaml:22]
  - 
    MAC Address must consist of 6 : (colon) separated parts.
    mac_address: $tion_mac_address
    id: tion_ble_client

Как я понимаю, в других файлах отсутствуют такие переменные, как tion1_mac_address и т.д., а есть только tion_mac_address.
Как от этого уйти - не понял.
Подскажите, как решить эту задачу.
Заранее, спасибо!

Не хватает сенсоров.

В интеграции отсутсвует сенсор скорости вентилятора. Из-за этого невозможно посмотреть историю скорости вентилятора.
Можно его добавить?

Так же не хватает сенсоров состония заслонки и состояния работы нагревателя.

Screenshot 2024-01-17 112349 Screenshot 2024-01-17 112340

Постоянное подключение к бризеру

На Tion 4S испытываю периодический отвал бризера с невозможностью дальнейшего подключения. Иногда помогает перезагрузка ESP, иногда только полная перезагрузка бризера.

Возможно имеет смысл рассмотреть опциональную возможность постоянного соединения с бризером? Моим бризером управляет только HA и подключение других клиентов не требуется.

У себя попробовал реализовать это патчем ниже, посмотрим на стабильность работы в течение нескольких дней

--- a/components/tion_4s/tion_4s.cpp
+++ b/components/tion_4s/tion_4s.cpp
@@ -26,7 +26,6 @@ void Tion4s::read(const tion_dev_status_t &status) {
   // this->request_timers();

   this->request_state();
-  this->schedule_disconnect(this->state_timeout_);
 };

 void Tion4s::read(const tion4s_time_t &tion_time) {
@@ -161,9 +160,6 @@ void Tion4s::read(const tion4s_state_t &state) {
   ESP_LOGV(TAG, "work_time      : %u", state.counters.work_time);
   ESP_LOGV(TAG, "fan_time       : %u", state.counters.fan_time);
   ESP_LOGV(TAG, "errors         : %u", state.errors);
-
-  // leave 3 sec connection left to end all of jobs
-  this->schedule_disconnect();
 }

 void Tion4s::flush_state_(const tion4s_state_t &state_) const {
diff --git a/components/tion_4s/tion_4s.h b/components/tion_4s/tion_4s.h
index 2740766..9921d23 100644
--- a/components/tion_4s/tion_4s.h
+++ b/components/tion_4s/tion_4s.h
@@ -22,7 +22,13 @@ class Tion4s : public TionClimateComponent, public Tion<TionApi4s>,public TionDi
     return traits;
   }

-  void update() override { this->parent_->set_enabled(true); }
+  void update() override {
+    if (this->node_state == esp32_ble_tracker::ClientState::ESTABLISHED) {
+      this->on_ready();
+    } else {
+      this->parent_->set_enabled(true);
+    }
+  }

   void on_ready() override;

@@ -31,7 +37,11 @@ class Tion4s : public TionClimateComponent, public Tion<TionApi4s>,public TionDi
   bool write_state() override {
     this->publish_state();
     this->update_flag_ |= UPDATE_STATE;
-    this->parent_->set_enabled(true);
+    if (this->node_state == esp32_ble_tracker::ClientState::ESTABLISHED) {
+      this->on_ready();
+    } else {
+      this->parent_->set_enabled(true);
+    }
     return true;
   };

Compilation error on captive_portal

Try compiling the recommended profile for Tion 4S BLE on ESPHome 2023.12.5

INFO ESPHome 2023.12.5
INFO Reading configuration /config/esphome/tion-bug.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing tion-4s (board: nodemcu-32s; framework: arduino; platform: platformio/[email protected])
--------------------------------------------------------------------------------
Library Manager: Installing etlcpp/Embedded Template Library @ 20.35.8
INFO Installing etlcpp/Embedded Template Library @ 20.35.8
Unpacking  [####################################]  100%
Library Manager: Embedded Template [email protected] has been installed!
INFO Embedded Template [email protected] has been installed!
Library Manager: Installing esphome/AsyncTCP-esphome @ 2.0.1
INFO Installing esphome/AsyncTCP-esphome @ 2.0.1
Unpacking  [####################################]  100%
Library Manager: [email protected] has been installed!
INFO [email protected] has been installed!
Library Manager: Installing esphome/ESPAsyncWebServer-esphome @ 2.1.0
INFO Installing esphome/ESPAsyncWebServer-esphome @ 2.1.0
Unpacking  [####################################]  100%
Library Manager: [email protected] has been installed!
INFO [email protected] has been installed!
Library Manager: Resolving dependencies...
INFO Resolving dependencies...
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- Embedded Template Library @ 20.35.8
|-- AsyncTCP-esphome @ 2.0.1
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
Compiling .pioenvs/tion-4s/src/esphome/components/api/api_connection.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/api/api_frame_helper.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/api/api_pb2.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/api/api_pb2_service.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/api/api_server.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/api/list_entities.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/api/proto.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/api/subscribe_state.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/api/user_services.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/binary_sensor/automation.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/binary_sensor/binary_sensor.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/binary_sensor/filter.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/ble_client/automation.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/ble_client/ble_client.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/ble_rssi/ble_rssi_sensor.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/button/button.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/captive_portal/captive_portal.cpp.o
Compiling .pioenvs/tion-4s/src/esphome/components/climate/climate.cpp.o
src/esphome/components/captive_portal/captive_portal.cpp: In member function 'void esphome::captive_portal::CaptivePortal::start()':
src/esphome/components/captive_portal/captive_portal.cpp:51:48: error: invalid cast from type 'esphome::network::IPAddress' to type 'uint32_t' {aka 'unsigned int'}
   this->dns_server_->start(53, "*", (uint32_t) ip);
                                                ^~
*** [.pioenvs/tion-4s/src/esphome/components/captive_portal/captive_portal.cpp.o] Error 1
========================= [FAILED] Took 18.33 seconds =========================

Пекетный режим не работает как ожидается

из коментов в телеграм:

Денис Трачук, [18.01.2024 02:10]
Я батч режим сделал в этом релизе как раз для того чтобы задержки не ставить, у вас тоже не работает? У себя на стенде пока воспроизвести не могу :(

Вячеслав, [18.01.2024 02:19]
Читал, но сегодня столкнулся с необходимостью ставить задержки, иначе следующая команда не срабатывала. И несколько раз после этого секунд 5-10 не обновлялся статус бризера🤷‍♂️

Mr K, [17.01.2024 13:05]
сделал включение обогрева и установку 1 скорости, по логу вроде нормально все, но потом приходит state, а изменилась только скорость:

Mr K, [17.01.2024 13:05]

[13:03:46][D][climate:011]: 'tion-bedroom' - Setting
[13:03:46][D][climate:015]:   Mode: HEAT
[13:03:46][D][tion_climate:048]: Set mode HEAT
[13:03:46][D][tion_4s:177]: New heater mode ON -> OFF
[13:03:46][D][tion_climate_component:129]: Starting batch update 1000
[13:03:46][D][climate:011]: 'tion-bedroom' - Setting
[13:03:46][D][climate:019]:  Custom Fan: 1
[13:03:46][D][tion_climate:055]: Set fan speed 1
[13:03:46][D][tion_4s:177]: New heater mode OFF -> ON
[13:03:46][D][tion_4s:184]: New fan speed 3 -> 1
[13:03:46][D][tion_climate_component:129]: Continue batch update 1000
[13:03:47][D][tion_climate_component:133]: Write out batch changes
[13:03:47][D][tion-api-4s:201]: Request[20] Write state
[13:03:47][D][tion-api-4s:063]: Response[20] Write State
[13:03:47][D][climate:396]: 'tion-bedroom' - Sending state:
[13:03:47][D][climate:399]:   Mode: FAN_ONLY
[13:03:47][D][climate:401]:   Action: FAN
[13:03:47][D][climate:407]:   Custom Fan Mode: 1
[13:03:47][D][climate:410]:   Preset: NONE
[13:03:47][D][climate:419]:   Current Temperature: 13.00°C
[13:03:47][D][climate:425]:   Target Temperature: 10.00°C

Нагрев даже в режиме fan_only

После какого то из обновлений, заметил большое потребление тиона в энергомониторинге.
Полез разбираться, выяснил, что теперь даже в режиме "проветривание" если температура ниже нуля, то автоматом включается подогрев до нуля. Есть ли вариант отключить это поведение? Да я хочу холодный воздух в квартиру без обогрева, если он мне понадобиться, я переведу его в нагрев сам.
Tion 4s ble версия плагина 2024.1.3

image
image

Update to ESPhome 2022.9.3

During updating the node a got the error in logs. Update failed

Updating /config/esphome/esp32-climate.yaml
------------------------------------------------------------

INFO Reading configuration /config/esphome/esp32-climate.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp32-climate (board: esp32doit-devkit-v1; framework: arduino; platform: platformio/espressif32 @ 3.5.0)
--------------------------------------------------------------------------------
Library Manager: Installing Hash
INFO Installing Hash
Library Manager: Installing ESP8266WiFi
INFO Installing ESP8266WiFi
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 1.0
|-- FS @ 1.0
|-- Update @ 1.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
|   |-- AsyncTCP-esphome @ 1.2.2
|-- DNSServer @ 1.1.0
|-- ESPmDNS @ 1.0
|-- Wire @ 1.0.1
Compiling /data/esp32-climate/.pioenvs/esp32-climate/src/esphome/components/tion/tion.cpp.o
Compiling /data/esp32-climate/.pioenvs/esp32-climate/src/esphome/components/uart/uart_component_esp_idf.cpp.o
Compiling /data/esp32-climate/.pioenvs/esp32-climate/src/esphome/components/uart/uart_debugger.cpp.o
Compiling /data/esp32-climate/.pioenvs/esp32-climate/src/esphome/components/uptime/uptime_sensor.cpp.o
Compiling /data/esp32-climate/.pioenvs/esp32-climate/src/esphome/components/web_server_base/web_server_base.cpp.o
Compiling /data/esp32-climate/.pioenvs/esp32-climate/src/esphome/components/wifi/wifi_component.cpp.o
Compiling /data/esp32-climate/.pioenvs/esp32-climate/src/esphome/components/wifi/wifi_component_esp32_arduino.cpp.o
src/esphome/components/tion/tion.cpp: In member function 'virtual void esphome::tion::TionBleNode::gattc_event_handler(esp_gattc_cb_event_t, esp_gatt_if_t, esp_ble_gattc_cb_param_t*)':
src/esphome/components/tion/tion.cpp:85:67: error: 'class esphome::ble_client::BLEClient' has no member named 'gattc_if'
       auto err = esp_ble_gattc_register_for_notify(this->parent_->gattc_if, this->parent_->remote_bda, this->char_rx_);
                                                                   ^
src/esphome/components/tion/tion.cpp:85:92: error: 'class esphome::ble_client::BLEClient' has no member named 'remote_bda'
       auto err = esp_ble_gattc_register_for_notify(this->parent_->gattc_if, this->parent_->remote_bda, this->char_rx_);
                                                                                            ^
src/esphome/components/tion/tion.cpp: In member function 'virtual bool esphome::tion::TionBleNode::write_data(const uint8_t*, uint16_t) const':
src/esphome/components/tion/tion.cpp:127:50: error: 'class esphome::ble_client::BLEClient' has no member named 'gattc_if'
   return esp_ble_gattc_write_char(this->parent_->gattc_if, this->parent_->conn_id, this->char_tx_, size,
                                                  ^
src/esphome/components/tion/tion.cpp:127:75: error: 'class esphome::ble_client::BLEClient' has no member named 'conn_id'
   return esp_ble_gattc_write_char(this->parent_->gattc_if, this->parent_->conn_id, this->char_tx_, size,
                                                                           ^
*** [/data/esp32-climate/.pioenvs/esp32-climate/src/esphome/components/tion/tion.cpp.o] Error 1
========================== [FAILED] Took 8.85 seconds ==========================
======== [ERROR] /config/esphome/esp32-climate.yaml ========



======================== [SUMMARY] ========================
  - /config/esphome/esp32-climate.yaml: FAILED

Ошибка компиляции при выключенных пресетах

Artem Sorokin, [19.01.2024 18:51]
Небольшой баг в сборке из мастера:
Объявление TionClimateGatePosition требует наличия TION_ENABLE_PRESETS, который есть только если есть пресеты.
Если пресетов нет - бум :)
Передвинул его за пределы макроса - собралось :)

Вычисление температуры аналогично приложению, с фильтрацией аномальных значений

"Родное" приложение Tion выводит температуру не напрямую с датчиков, а считает по показаниям с двух датчиков:

int(((unknown <= 0 ? current : unknown) + (current <= 0 ? unknown : current)) / 2)

Имеет смысл использовать аналогичный расчет и в ESPHome с дополнительной отбраковкой слишкрм высоких значений (>30 градусов), т.к. бывает, что один из датчиков может начинать "забрасывать" значения вплоть до 70 градусов.

Периодические зависания

Установил прошивку на стик Lilygo T-Dongle S3, подключил к бризеру, всё было в порядке. Устройство проработало полутора суток, потом стик "отвалился". В сети недоступен, на команды из HA не реагирует, данные не выдаёт. При этом сам бризер продолжает работать и управляться через пульт и родное приложение. Восстановление работоспособности только через снятие питания (выключение из розетки или изъятие донгла из бризера и повторное его подключение). После сброса по питанию работоспособность восстановилась, бризер проработал ещё пять суток, и сегодня ситуация повторилась. Вынес стик на удлинителе наружу бризера чтобы промониторить возможный перегрев - такового не обнаружено. Остаётся две возможных причины: бракованный стик либо слабое/зашумлённое питание от самого бризера. Испытание в процессе, заказан ещё один стик, пока в пути. Можно ли на уровне кода добавить ватчдог (если его ещё нет конечно), который бы автоматически ресетил плату при её зависании? Хотелось бы также знать, сталкивался ли кто-либо ещё с такой же проблемой как у меня, и если да, то как её решали? Да, можно подключить бризер через управляемую розетку и дёргать питание каждый раз, когда плата перестаёт отвечать, но это имхо костыль.

Подключение Тиона 3S по uart в Спрутхаб

Здравствуйте, выложите пожалуйста кто-нибудь свой реально работающий tion-3s-uart.yaml
для подключения Tion 3s UART по mqtt в спрутхаб, чтобы было понимание где и что менять, чтоб пробелы и вводы не напутать. Я новичок, а хочется разобраться

Не работает с TionLite

Прошил плату esp32-wroom-32u традиционным способом

Бризер не управляется, в логах сообщение
Current Temperature: nan°C

Файл конфигурации esp32-20220218.yaml

esphome:
  name: esp32-20220218

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  level: debug

# Enable Home Assistant API
api:

ota:
  password: "3b228ef79d1c0ab6150f91f149482137"
  on_begin:
    then:
      - lambda: id(ble_client_tion).set_enabled(false);

wifi:
  ssid: home
  password: password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "esp32-20220218"
    password: "KQvv1gbGWqng"

captive_portal:

external_components:
  - source: github://dentra/[email protected]

esp32_ble_tracker:

ble_client:
  - mac_address: F8:E3:9B:FB:FD:3E
    id: ble_client_tion

climate:
  - platform: tion_lt
    ble_client_id: ble_client_tion
    name: "Tion Lite"
    buzzer:
      name: "Tion Lite Buzzer"
    led:
      name: "Tion Lite Led"
    temp_in:
      name: "Tion Lite Temp in"
    temp_out:
      name: "Tion Lite Temp out"
    heater_power:
      name: "Tion Lite Heater power"
    airflow_counter:
      name: "Tion Lite Airflow counter"
    filter_days_left:
      name: "Tion Lite Filter Days Left"
    filter_warnout:
      name: "Tion Lite Filter Warnout"
    version:
      name: "Tion Lite Version"

Сообщения журнала

INFO Reading configuration /config/esp32-20220218.yaml...
INFO Starting log output from esp32-20220218.local using esphome API
INFO Successfully connected to esp32-20220218.local
[19:43:39][I][app:102]: ESPHome version 2022.2.3 compiled on Feb 18 2022, 19:37:53
[19:43:39][C][wifi:491]: WiFi:
[19:43:39][C][wifi:353]:   Local MAC: 08:3A:F2:7D:4B:D4
[19:43:39][C][wifi:354]:   SSID: [redacted]
[19:43:39][C][wifi:355]:   IP Address: 192.168.1.11
[19:43:39][C][wifi:357]:   BSSID: [redacted]
[19:43:39][C][wifi:358]:   Hostname: 'esp32-20220218'
[19:43:39][C][wifi:360]:   Signal strength: -88 dB ▂▄▆█
[19:43:40][C][wifi:364]:   Channel: 1
[19:43:40][C][wifi:365]:   Subnet: 255.255.255.0
[19:43:40][C][wifi:366]:   Gateway: 192.168.1.1
[19:43:40][C][logger:233]: Logger:
[19:43:40][C][logger:234]:   Level: DEBUG
[19:43:40][C][esp32_ble_tracker:709]: BLE Tracker:
[19:43:40][C][esp32_ble_tracker:710]:   Scan Duration: 300 s
[19:43:40][C][esp32_ble_tracker:711]:   Scan Interval: 320.0 ms
[19:43:40][C][esp32_ble_tracker:712]:   Scan Window: 30.0 ms
[19:43:40][C][esp32_ble_tracker:713]:   Scan Type: ACTIVE
[19:43:40][C][ble_client:035]: BLE Client:
[19:43:40][C][ble_client:036]:   Address: f8:e3:9b:fb:fd:3e
[19:43:40][C][captive_portal:144]: Captive Portal:
[19:43:40][C][mdns:084]: mDNS:
[19:43:40][C][mdns:085]:   Hostname: esp32-20220218
[19:43:40][C][ota:085]: Over-The-Air Updates:
[19:43:40][C][ota:086]:   Address: esp32-20220218.local:3232
[19:43:40][C][ota:089]:   Using Password.
[19:43:40][C][api:138]: API Server:
[19:43:40][C][api:139]:   Address: esp32-20220218.local:6053
[19:43:46][I][ota:105]: Boot seems successful, resetting boot loop counter.
[19:43:46][D][esp32.preferences:114]: Saving preferences to flash...
[19:43:47][D][esp32_ble_tracker:217]: Starting scan...
[19:43:54][D][climate:009]: 'Tion Lite' - Setting
[19:43:54][D][climate:013]:   Mode: OFF
[19:43:54][D][tion:116]: Set mode 0
[19:43:54][D][climate:381]: 'Tion Lite' - Sending state:
[19:43:54][D][climate:384]:   Mode: OFF
[19:43:54][D][climate:392]:   Custom Fan Mode: 5
[19:43:54][D][climate:404]:   Current Temperature: nan°C
[19:43:54][D][climate:410]:   Target Temperature: 0.00°C
[19:44:16][D][climate:009]: 'Tion Lite' - Setting
[19:44:16][D][climate:013]:   Mode: HEAT
[19:44:16][D][tion:116]: Set mode 3
[19:44:16][D][climate:381]: 'Tion Lite' - Sending state:
[19:44:16][D][climate:384]:   Mode: HEAT
[19:44:16][D][climate:392]:   Custom Fan Mode: 5
[19:44:16][D][climate:404]:   Current Temperature: nan°C
[19:44:16][D][climate:410]:   Target Temperature: 0.00°C
[19:44:24][D][climate:009]: 'Tion Lite' - Setting
[19:44:24][D][climate:013]:   Mode: HEAT
[19:44:24][D][tion:116]: Set mode 3
[19:44:24][D][climate:381]: 'Tion Lite' - Sending state:
[19:44:24][D][climate:384]:   Mode: HEAT
[19:44:24][D][climate:392]:   Custom Fan Mode: 5
[19:44:24][D][climate:404]:   Current Temperature: nan°C
[19:44:24][D][climate:410]:   Target Temperature: 0.00°C

fan_mode: 0

Хотелось бы видеть реализацию fan_mode: 0, при которой бризер 4S выключался.

Tion O2 Mac

Привет! А есть ли вероятность, что заработает с О2 МАС? Вроде как где-то слышал, что он по WiFi работает...

Multiple breezers with single esp32 board only

👋 Hi there,
is it possible to control multiple breezers only with single board? It seems not supported by configuration yaml?

I've had a 4 x Tion Lite with externals CO2/Temp sensors. I would like to control they from one esp32.
Thanks!

Screenshot 2023-01-26 at 15 29 36

Положение заслонки как аргумент в персетах

На данный момент в пресетах можно указать желаемую температуру, режим (обогрев вкл/выкл) и скорость. Была бы полезной возможность указывать также положение заслонки (забор с улицы/забор из помещения) для создания пресета "очистки" помещения, когда бризер пропускает через свой фильтр внутрикомнатный воздух, выполняя функцию воздухоочистителя.

UART for Tion 4S

Tion 4S has a built in communication port that is simple implements a standard UART interface via USB pins. The difference is in inverted RX/TX pins.

Communication protocol is the same as BLE, but additionally we need to send heartbeat command (0x3931) and absence of support for Turbo mode.

Не возвращается после буста в обычный режим

Mr K, [31.01.2024 12:09]
в общем ситуация такая, если в процессе работы пресета буст

Mr K, [31.01.2024 12:09]
что-то меняется извне, например подогрев включается

Mr K, [31.01.2024 12:11]
то бризеру сносит крышу и:

  1. в mqtt топике буст отключается
  2. сам пресет как бы работает, но потом выводит в логе
    [12:00:00][W][tion_climate:153]: No data for preset UNKNOWN
    и буст не выключается, так как не знает на какой пресет ему вернуться

logs_tion-childroom_run-4.txt

Суммарное дневное потребление растёт при выключенном бризере

а так и задумано что суммарное дневное потребление растёт при выключенном бризере? глянул по диагонали код, там вроде нет поверки на то, включен бризер или нет, то есть похоже продолжает считать по установленной скорости

Унификация взаимодействия со всеми бризерами

  • Вынести в API унифицированную информацию о состоянии всех бризеров
  • Вынести в API все унифицированное управление любым бризером
  • Выделить API в самостоятельную сущность
  • Отвязать от компонент climate все сенсоры и управление
  • Выделить сенсоры и управление в самостоятельные сущности

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.