Достала меня эта TUYA Zigbee TRV

15 декабря 2020, 07:34

В общем достала меня это голова со своим не очень адекватным поведением.

У меня плотные занавески в пол, в итоге у окна жара, датчик показывает температуру 25, а то и 28 при целевых 24, а в комнате холодно 21 - 22, а батарея выключена и ждать пока сквозь занавеску, что то просочиться нет не какого желания.

В итоге решил взять управление полностью в свои руки, создал Generic Thermostat  и MQTT Switc.

climate:
## Термостат
  - platform: generic_thermostat 
    name: "bedroom"
    heater: switch.bedroom_heating
    target_sensor: sensor.cleargrass_air_temperature
    min_temp: 20
    max_temp: 27
    target_temp: 23.5
    ac_mode: false
    min_cycle_duration:
        seconds: 120
    initial_hvac_mode: "off"
    away_temp: 18
    precision: 0.1 
# Вертуальный свитч для термоголовы
switch:
  - platform: mqtt
    unique_id: bedroom_switch
    name: "Bedroom Heating"
    state_topic: "zigbee2mqtt/spal_bat/set/force"
    command_topic: "zigbee2mqtt/spal_bat/set/force"
    payload_on: "open"
    payload_off: "normal" # Смотрите что я тут не закрываю задвижку, а перевожу задвижку в "нормальное" состояние, пускай живет своей жизнью
    state_on: "open"
    state_off: "normal"
    optimistic: false
    qos: 0
    retain: true
    icon: mdi:radiator

И достаточная простая автоматизация по синхронизации целевых температур и еще одна на всякий случай при переходе в нормальное состояние, что бы дублировало, а то когда применяешь силу - голова как виснет.

### Управление батареей
#Синхронизируем термостаты
- alias: 'Synchronizing the thermostats'
  trigger:
    - platform: template
      value_template: "{{ state_attr('climate.bedroom', 'temperature') | float != state_attr('climate.spal_bat_climate', 'temperature') }}"
  action:
  - service: climate.set_temperature
    data_template:
      entity_id: climate.spal_bat_climate
      temperature: >- 
        {{ state_attr('climate.bedroom', 'temperature') | float }}

# Синхронизация при отключение
- alias: 'Synchronizing the thermostats when shutdown'
  trigger:
    platform: state
    entity_id: switch.bedroom_heating
    to: 'off'
    for:
      minutes: 1
  action:
  - service: climate.set_temperature
    data_template:
      entity_id: climate.spal_bat_climate
      temperature: >- 
        {{ state_attr('climate.bedroom', 'temperature') | float }}

Не сложно, но стало сильно лучше в комнате.

UPD 30.12.20

На github есть решение проблемы за счет калибровки, в комментариях тоже есть, но мне кажется на github проще. Ссылка на оригинал.Прожил 3 дня с ним - это просто праздник.Сам код:

- alias: Heat temperature update and calibration
  trigger: 
    - platform: time_pattern
      minutes: "/1"
    - platform: template
      value_template: "{{ (state_attr('climate.spal_bat_climate', 'temperature')|float - states('sensor.cleargrass_air_temperature')|float)|abs > 0.25 }}"
      for: '00:00:02'
  action:
    - service: mqtt.publish
      data_template:
        topic: 'zigbee2mqtt/spal_bat/set/local_temperature_calibration'
        payload_template: >-
          {{(state_attr('climate.spal_bat_climate','local_temperature_calibration')|float -
             state_attr('climate.spal_bat_climate', 'current_temperature')|float  
             states('sensor.cleargrass_air_temperature')|float   128)|round(1,'half')}}

Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (Baden-Baden)
    (Baden-Baden) 7 месяцев назад
    Да уж, заголовок сбивает с толку... "Туя достала", потому что шторы глухие и расположение термостата специфично :(

    • Лев Зебузов (WishMaster)
      Лев Зебузов (WishMaster) отредактировано 7 месяцев назад

      Надо было "рабочее" название перед публикацией изменить.

      Со стороны туя могли бы дать возможность выбирать датчик температуры (у них же есть отдельно датчик в системы, почему не сделать этого) и было бы очень круто.

  2. (fedottt)
    (fedottt) 7 месяцев назад

    это вам, батенька, повезло, что голова умеет ручное управление. у меня с дисплеем и такой чудесной фичи нет. в итоге я просто методом научного втыка скорректировал голову. в месте где она греется от батареи, просто добавлено 4 градуса сверху. и получилось то что надо. 

    • Лев Зебузов (WishMaster)
      Лев Зебузов (WishMaster) 7 месяцев назад

      Согласен - повезло, если бы не было такой возможности - отправил бы на барахолку ее.

      Тоже задирал температуру, но днем то я занавески открываю и становить жарко, тоже решаемая зада конечно (например по часам), но внешний датчик решает вообще все проблемы.

  3. (alex.kolesoff)
    (alex.kolesoff) 7 месяцев назад

    Ребята, а как проще всего будет притащить эту голову в ХК? И шоб оно стабильно работало.

  4. (d_positive)
    (d_positive) 7 месяцев назад

    Тоже думал над этим, но хотелось бы не просто полностью закрывать/открывать кран по дженерик термостату, а управлять степенью открытия крана основываясь на показаниях внешнего датчика температуры.
    Есть идеи как это реализовать?

    • Лев Зебузов (WishMaster)
      Лев Зебузов (WishMaster) 7 месяцев назад

      Идя - есть, но нет возможности управлять "position". Может и не появится.

      • (d_positive)
        (d_positive) 7 месяцев назад

        да, я тоже пробовал отправлять в топик
        zigbee2mqtt/TRV_name/set/position
        значения от 0 до 100, но реакции никакой

  5. (drnemo)
    (drnemo) отредактировано 7 месяцев назад

    Чтобы использовать штатный функционал "умного" неполного открытия (т.к. position не устанавливается кроме как 0/100) я использую local_temperature_calibration. Т.е. калибрую (у меня по времени автоматизация стоит) внутренний датчик туи по внешнему датчику (у меня ксяомишный). Пока тестирую, но вроде работает стабильно. Калибровка работает в +- 7 градусов. 

    Tw=Tw+256- - это чтобы корректно работала отрицательная калибровка. Более подробное обсуждение есть на гитхабе, если надо кину ссылку (англ.)

    Автоматизация такая (код криво сюда вставляется (( )

    - alias: Update Temp TRV 1  description: Update local temp TRV 1 trigger: - minutes: /10 platform: time_pattern condition: - condition: template value_template: >- {{(float(((states('sensor.a4c138b1856f_temperature')|round(1,'floor'))/0.5|round(1))|int*0.5) - float(state_attr('climate.radiator_1_climate','local_temperature')))!=0}} action: - service: mqtt.publish data_template: payload: >- {% set Tp=(((states('sensor.a4c138b1856f_temperature')|round(1,'floor'))/0.5|round(1))|int*0.5) -%}{% set Tg=(state_attr('climate.radiator_1_climate','local_temperature'))-%}{% set Tk=state_attr('climate.radiator_1_climate','local_temperature_calibration')-%}{% set Tw=float(Tp)-float(Tg)+float(Tk) -%}{% if Tw<0 -%}{% set Tw=Tw+256-%}{%- endif %}{{Tw}} topic: zigbee2mqtt/Radiator_1/set/local_temperature_calibration mode: single

    1000x_image.png?1608292342

    • Лев Зебузов (WishMaster)
      Лев Зебузов (WishMaster) 6 месяцев назад

      Мне кажется такой способ лучше чем мой. На том же гит человек опубликовал схожий вариант управления за счет калибровки:

      1000x_image.png?1609175980

      Сделал под себя, в гите есть не большая ошибка.

      Сегодня целый день ее пробую, открываю/закрываю окна - вроде работает, есть конечно скачек в минуту синхронизации, но в целом всё равно лучше.

      Как у вас дела с тестами?

      • (axxeeellll)
        (axxeeellll) 6 месяцев назад

        Привет! Как дела с постоянной калибровкой? 


        Язычок в батарее держит среднее значение? Есть график? 


        Былоб очень прикольно. 

        Я так понимаю в такой реализации температуру можно менять и на головке, и в приложении? 

        • Лев Зебузов (WishMaster)
          Лев Зебузов (WishMaster) 6 месяцев назад
          1000x_image.jpg?16106080751000x_image.jpg?16106080761000x_image.jpg?1610608076

          Привет. Дела с постоянной калибровкой отлично - всё работает отлично. Язык работает. Вот графики. Целевая температура 23.5 днем и 23 - ночью. По поводу управления батареей прямо с головы - не знаю. Я один раз настроил и больше не трогаю.

          По автоматизации, изменил время с раз в минуты на раз в пять минут из-за этого бывают сбои минутные. Еще когда пропадает датчик (у меня температура берется из датчика качества воздуха - он по фиви, по графикам видно когда я ее перегружал :) ) - то калибровка слетает в 0 или в 80 градусов.

          В общем я доволен и претензий не имею :)

          • (axxeeellll)
            (axxeeellll) 6 месяцев назад

            Привет! Спасибо! Выглядит хорошо. 

            У меня есть очень похожая задачка. Написал в телегу. Помоги плиз. 

            @WishFly

  6. Алексей Паращук (Kvazis)
    Алексей Паращук (Kvazis) отредактировано 7 месяцев назад

    Проблема force - open заключается в том, что режим форсированного обогрева включается на непродолжительное, заданное в настройках головы время. В результате, при необходимости длительного обогрева - голова будет включаться / выключаться. Поэтому к открытию, в список команд виртуального (вЕртуальный - уж очень глаз режет, исправьте) свича, добавить и указание высокой целевой температуры, у меня плотных штор нет - ставлю 25, со шторами - 30 можно поставить. А при закрытии - соответственно ставить низкую - 20 например, неважно. Можно и не трогать параметр force в таком случае, по большому счету.

    • Лев Зебузов (WishMaster)
      Лев Зебузов (WishMaster) 7 месяцев назад
      Не соглашусь что команда форс долго не работает.

      1000x_image.jpg?16085744301000x_image.jpg?16085744301000x_image.jpg?1608574431

      Видно что батарея включилась в 7 утра, видно что пошла температура вверх и видно что язык полностью выдвинут (батарея полностью открыта 12 часов).

      Тут или датчик виснет или движений языка нет? Но я так же не слышу работы задвижки\языка. Ну и температура тоже растёт.

      • Алексей Паращук (Kvazis)
        Алексей Паращук (Kvazis) 7 месяцев назад

        Это говорит только о том, что фактическая температура - ниже целевой. Время работы в форсированном режиме - настраивается на головке, он игнорирует показания целевой и фактической - просто открывается, по истечении этого времени, включается стандартный режим головки

        • Лев Зебузов (WishMaster)
          Лев Зебузов (WishMaster) 7 месяцев назад

          А как же вылет языка? Почему он в 100%.
          Форс и буст по вашему одно и тоже?
          • Алексей Паращук (Kvazis)
            Алексей Паращук (Kvazis) 7 месяцев назад

            postiton = 0 - закрытор, 100 - открыто. Естественно он будет в 100 при форсированном открытие. Не по моему, это и есть одно и то же. Поставьте низкую целевую температуру, включите force = open и проверьте через время (превышающее настройку на головке) - голова будет закрыта

            • Лев Зебузов (WishMaster)
              Лев Зебузов (WishMaster) 7 месяцев назад
              Я уверен, что это не одно и тоже.
              Я провел предложенный эксперимент. Надеюсь часа хватит (я буст в настройках головы не трогал).
              1000x_image.jpg?16086616751000x_image.jpg?16086616761000x_image.jpg?1608661676Я сломал generic_thermostat, что бы он не управлял mqtt switch, понизил целевую температуру до 20 и ручками включил mqtt switch.
              В итоге задвижка залипла на 100, температура в помещении ползет вверх не взирая на цель и mqtt switch не выключался. На всякий потрогал трубу - огненная - открыто там всё.

              • Алексей Паращук (Kvazis)
                Алексей Паращук (Kvazis) 7 месяцев назад

                Тем не менее. У меня термоголовка несколько месяцев, я это все давно проверил и высказывал не предположения, а факты. Однако есть еще и другой факт - "зоопарк" моделей и прошивок при идентичном внешнем виде. Возможно в вашей версии - имеется глюк, не отключающий force/boost режим. 

                • Лев Зебузов (WishMaster)
                  Лев Зебузов (WishMaster) отредактировано 7 месяцев назад

                  Так и я пишу факты. Про зоопарк согласен. Мне думается что у меня не глюк, а фича (может глюк у вас?, при всём уважении к вашим трудам). + в  generic_thermostat есть параметр  keep_alive и если я правильно понял его назначение- он проверяет состояние переключателя и если он выключился (по любым причинам) он его включит, т.е. если буст выключился то keep_alive включит его обратно, если конечно я понял его назначение.

                  Владельцы таких голов - делитесь у кого как работает форс.

                  • Алексей Паращук (Kvazis)
                    Алексей Паращук (Kvazis) отредактировано 7 месяцев назад

                    Ну не думаю что залипание головы в открытом состоянии вне зависимости от целевой температуры - это нормальная работы. Весь смысл в том, что "пнуть" голову на какое-то время при необходимости, после чего она перейдет в свое нормальное состояние.  keep_alive - нужен для устройств, которые автоматически отключаются если не получают никаких команд, если этот параметр установлен то свич будет срабатывать каждый раз по истечении этого интервала, что еще и помогает при потере статуса устройства. В случае с force - он действительно будет его постоянно дергать, что видимо приводит к обнулению интервала работы буст режима.

  7. (Muller)
    (Muller) 6 месяцев назад

    выпаял термодатчик и вывел его в другое место. Работает идеально

    • Лев Зебузов (WishMaster)
      Лев Зебузов (WishMaster) 6 месяцев назад
      Далеко?

      • (Muller)
        (Muller) 6 месяцев назад

        Примерно 1.5 метра. Из под занавески главное

    • (drnemo)
      (drnemo) 6 месяцев назад

      беспроводная превратилась в проводную ))

      • (Muller)
        (Muller) отредактировано 6 месяцев назад

        Мне с браком прислали, жрет 40ма в режиме покоя. Так что она стала проводной по питанию. Переписываюсь с инженерами в надежде на чудо, но не надеюсь.

        Снял на видео, если кому-то интересно https://zen.yandex.ru/media/id...

  8. (drnemo)
    (drnemo) 6 месяцев назад

    меня больше напрягает шум, который издает привод в движении, особенно слышно когда голова уже стоит на кране батареи ((

    • (Muller)
      (Muller) 6 месяцев назад

      Мне кажется что после выноса датчика шум почти исчез. Поясню догадки. Из-за того что колебания температуры исчезли, пид перестал колбасится. Регулирует редко и на долю секунды по 5%

  9. (d_positive)
    (d_positive) 6 месяцев назад

    Обнаружил у себя вот такую "красоту", ктото уже сталкивался с этим?

    1000x_image.png?1609768541
  10. (endoftime)
    (endoftime) 4 месяца назад

    вопрос. поддержка данного термоголовки есть в zigbee home automation?

  11. (Ezhische)
    (Ezhische) 3 месяца назад

    Ничего не понимаю, на внешнем датчике 22.8 на внутреннем 24 а калибровка всё равно в 0 встаёт

    Уже и с гитхаба и от  (drnemo) пробовал варианты. И руками дёргаю службу с этим темплейтом. всё одно в 0

К списку блогов

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

LifeControl

+7 495 240-81-01
Промокод:
sprut15
Размер скидки:
15%
На весь ассортимент Lifecontrol

Похожие записи

12 сентября 2020, 20:51
Создание при помощи бесплатной программы Sweet Home 3D интерактивного плана помещения для Home Assistant.
16 июля 2020, 15:13
Удобная настройка Home Assistant с помощью packages.
13 февраля 2019, 22:00
Подключение радио на Xiaomi Gateway к Home Assistant c дальнейшим использованием в автоматизациях
19 апреля 2019, 20:53
Требуется ваше мнение!
06 февраля 2019, 12:02
Автоматизированное открытие/закрытие окна
04 апреля 2019, 12:45
Самое важное из апдейта Home Assistant 0.91-0.91.4 от 03.04.19.
21 марта 2019, 11:59
Самое важное из апдейта Home Assistant 0.9 от 20.03.19.
21 февраля 2019, 21:12
Самое важное из апдейта Home Assistant 0.88 от 20.02.19.
19 января 2019, 20:49
Делюсь новостями по проекту.