AlexxIT / YandexStation

Управление Яндекс.Станцией и другими устройствами умного дома с Алисой из Home Assistant
https://t.me/AlexxIT_SmartHome
MIT License
1.27k stars 119 forks source link

Кондиционер Ballu: hvac_modes только off и auto #514

Open PiratesGhost opened 1 week ago

PiratesGhost commented 1 week ago

Кондиционер Ballu Discovery (BSVI-09HN8). Это завод TCL, насколько я разобрался. Добавлен в УДЯ через интеграцию HOMMYN, используется официальный стик HOMMYN HDN/WFN-02-01.

История похожая на https://github.com/AlexxIT/YandexStation/issues/432 и https://github.com/AlexxIT/YandexStation/issues/366 В hvac_modes присутствуют только off и auto. Остальные параметры, которые вроде как и являются режимами HVAC, отображены в пресетах. С этим жить можно, управляется в ХА корректно, единственная проблема в том, что карточка термостата отображается куцо, т.е. имеет только статусы выкл и авто (при любом активном режиме работы).

Состояние объекта:

hvac_modes: auto, off
min_temp: 16
max_temp: 30
target_temp_step: 1
preset_modes: cool, heat, fan_only, dry, auto, quiet, turbo, eco
current_temperature: 19
temperature: 16
preset_mode: auto
friendly_name: Кондиционер
supported_features: 401

Описание устройства из yandex.ru/quasar/iot/device/*** :

 "name": "Кондиционер",
                    "type": "devices.types.thermostat.ac",
                    "icon_url": "https://avatars.mds.yandex.net/get-iot/icons-devices-devices.types.thermostat.ac.svg/orig",
                    "capabilities": [
                        {
                            "reportable": true,
                            "retrievable": true,
                            "type": "devices.capabilities.on_off",
                            "state": {
                                "instance": "on",
                                "value": false
                            },
                            "parameters": {
                                "split": false
                            }
                        },
                        {
                            "reportable": true,
                            "retrievable": true,
                            "type": "devices.capabilities.range",
                            "state": {
                                "instance": "temperature",
                                "value": 16
                            },
                            "parameters": {
                                "instance": "temperature",
                                "name": "температура",
                                "unit": "unit.temperature.celsius",
                                "random_access": true,
                                "looped": false,
                                "range": {
                                    "min": 16,
                                    "max": 30,
                                    "precision": 1
                                }
                            }
                        },
                        {
                            "reportable": true,
                            "retrievable": true,
                            "type": "devices.capabilities.mode",
                            "state": {
                                "instance": "swing",
                                "value": "auto"
                            },
                            "parameters": {
                                "instance": "swing",
                                "name": "направление воздуха",
                                "modes": [
                                    {
                                        "value": "auto",
                                        "name": "Авто"
                                    },
                                    {
                                        "value": "vertical",
                                        "name": "Вертикальный"
                                    },
                                    {
                                        "value": "horizontal",
                                        "name": "Горизонтальный"
                                    },
                                    {
                                        "value": "stationary",
                                        "name": "Статичный"
                                    }
                                ]
                            }
                        },
                        {
                            "reportable": true,
                            "retrievable": true,
                            "type": "devices.capabilities.mode",
                            "state": {
                                "instance": "work_speed",
                                "value": "low"
                            },
                            "parameters": {
                                "instance": "work_speed",
                                "name": "скорость работы",
                                "modes": [
                                    {
                                        "value": "auto",
                                        "name": "Авто"
                                    },
                                    {
                                        "value": "low",
                                        "name": "Низкая"
                                    },
                                    {
                                        "value": "medium",
                                        "name": "Средняя"
                                    },
                                    {
                                        "value": "high",
                                        "name": "Высокая"
                                    },
                                    {
                                        "value": "quiet",
                                        "name": "Тихий"
                                    },
                                    {
                                        "value": "turbo",
                                        "name": "Турбо"
                                    }
                                ]
                            }
                        },
                        {
                            "reportable": true,
                            "retrievable": true,
                            "type": "devices.capabilities.mode",
                            "state": {
                                "instance": "thermostat",
                                "value": "auto"
                            },
                            "parameters": {
                                "instance": "thermostat",
                                "name": "термостат",
                                "modes": [
                                    {
                                        "value": "cool",
                                        "name": "Охлаждение"
                                    },
                                    {
                                        "value": "heat",
                                        "name": "Нагрев"
                                    },
                                    {
                                        "value": "fan_only",
                                        "name": "Вентиляция"
                                    },
                                    {
                                        "value": "dry",
                                        "name": "Осушение"
                                    },
                                    {
                                        "value": "auto",
                                        "name": "Авто"
                                    },
                                    {
                                        "value": "quiet",
                                        "name": "Тихий"
                                    },
                                    {
                                        "value": "turbo",
                                        "name": "Турбо"
                                    },
                                    {
                                        "value": "eco",
                                        "name": "Эко"
                                    }
                                ]
                            }
                        }
                    ],
                    "properties": [],
                    "item_type": "device",
                    "skill_id": "b8deb65b-d522-4f02-8f65-52ccdd195bff",
                    "room_name": "Комната",
                    "status_info": {
                        "status": "online",
                        "reportable": true,
                        "updated": 1718753653.209784
                    },
                    "state": "online",
                    "created": "2024-06-16T20:56:14Z",
                    "parameters": {
                        "device_info": {
                            "manufacturer": "Ballu",
                            "model": "Discovery",
                            "hw_version": "",
                            "sw_version": "1.12"
                        }
                    }
                },
                {

В УДЯ карточка кондиционера выглядит так:

ballu_udy

В качестве дополнительной информации:

Нижний блок (Скорость работы) в ХА по умолчанию не передавался. Передался после добавления work_speed в configuration.yaml

yandex_station:
  include:
  - name: Кондиционер
    capabilities: [ "thermostat", "temperature", "work_speed", "swing" ] 

Режимы "Эко", "Тихий" и "Турбо" из нижнего блока запараллелены с верхним блоком, т.е. при нажатии в одном месте меняются и там и там.

В общем полазил тут по веткам, но где что можно подправить в моей инсталяции не нашёл - вроде как всё и так соответствует. Повторюсь, отображается и управляется в ХА всё корректно, я насоздавал кнопки, которые дёргают соответствующие службы и вполне себе доволен собой :) но если есть какой-то способ корректно передать hvac_modes, чтобы отобразить карточку термостата по феншую, так сказать, буду признателен за помощь.