dext0r / yandex_smart_home

Adds support for Yandex Smart Home (Alice voice assistant) and Marusia voice assistant into Home Assistant
https://docs.yaha-cloud.ru
MIT License
800 stars 114 forks source link

Включение чайника через сервис water_heater.turn_on #363

Closed ClusterM closed 2 years ago

ClusterM commented 2 years ago

Почему операции "включить" и "выключить" для water_heater сделаны через переключение режимов?

https://github.com/dmitry-k/yandex_smart_home/blob/c65ba7ba719cd645a800f879d02ac4aa0399c4df/custom_components/yandex_smart_home/capability_onoff.py#L363 https://github.com/dmitry-k/yandex_smart_home/blob/c65ba7ba719cd645a800f879d02ac4aa0399c4df/custom_components/yandex_smart_home/capability_onoff.py#L373

У меня, например, это режим "boil".

У water_heater есть же методы turn_on и turn_off. И есть соответствующие сервисы для включения и выключения - water_heater.turn_on и water_heater.turn_off:

alias: Turn on the kettle
sequence:
  - service: water_heater.turn_on
    entity_id: water_heater.skykettle_rk_g211
mode: single

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

dext0r commented 2 years ago

У water_heater есть же методы turn_on и turn_off. И есть соответствующие сервисы для включения и выключения - water_heater.turn_on и water_heater.turn_off:

Эти сервисы есть не у всех устройств в домене water_heater, и лишь только некоторые интеграции их реализует. Определить поддерживает ли устройство сервис turn_on возможности нет. И эти сервисы, кстати, не заявлены на странице интеграции Water Heater.

У меня, например, это режим "boil".

Давайте добавим его к списку режимов в STATE_ON. Да, это будет не совсем универсально, но будет работать для вашей интеграции.

ClusterM commented 2 years ago

Эти сервисы есть не у всех устройств в домене water_heater, и лишь только некоторые интеграции их реализует. Определить поддерживает ли устройство сервис turn_on возможности нет. И эти сервисы, кстати, не заявлены на странице интеграции Water Heater.

Ну ничто не мешает пытаться его использовать, если подходящего режима нет :)

Давайте добавим его к списку режимов в STATE_ON. Да, это будет не совсем универсально, но будет работать для вашей интеграции.

Ну хотя бы так :) Спасибо.

ClusterM commented 2 years ago

"Boil" с большой буквы, если что. Хотя наверное лучше оба варианта включить (или не учитывать регистра).

dext0r commented 2 years ago

Всё таки решил сделать поддержку turn_on/turn_off. Просьба проверить корректность работы на коде из мастера.

ClusterM commented 2 years ago

Всё таки решил сделать поддержку turn_on/turn_off. Просьба проверить корректность работы на коде из мастера.

Работает!

dsyntech commented 2 years ago

У меня перестало работать включение\выключение чайника с это интеграцией https://github.com/mavrikkk/ha_kettler Там используется переключение режимов. Хотя если Алису попросит установить определенную температуру то включает.

dext0r commented 2 years ago

У меня перестало работать включение\выключение чайника с это интеграцией https://github.com/mavrikkk/ha_kettler Там используется переключение режимов. Хотя если Алису попросит установить определенную температуру то включает.

https://t.me/yandex_smart_home/22784

dsyntech commented 2 years ago

https://t.me/yandex_smart_home/22784

Спасибо. Костыль помог:

water_heater.kettle_rk_m171s:
        name: Чайник
        room: Кухня
        properties:
            - type: temperature
              attribute: current_temperature
        turn_off:
            service: water_heater.set_operation_mode
            target:
              entity_id: water_heater.kettle_rk_m171s
            data:
              operation_mode: 'off'
        turn_on:
            service: water_heater.set_operation_mode
            target:
              entity_id: water_heater.kettle_rk_m171s
            data:
              operation_mode: 'electric'