vooon / hass-myheat Goto Github PK
View Code? Open in Web Editor NEWHome Assistant intergration with myheat.net gas heating controllers
License: MIT License
Home Assistant intergration with myheat.net gas heating controllers
License: MIT License
Версия интеграции 0.2.0 версия ХА 2023.2.5
Не даёт зарегистрироваться - сообщает "Неверный логин или пароль"
В качестве пароля пробовал сначала указать ключ API, затем пароль от веб-интерфейса myheat - резальтат один и тот же.
И логин, и ключ API однозначно верны, ибо использую в ХА "самописную полуинтеграцию" через сенсоры RESTFull, и там они вполне себе работают.
Через climate невозможно указать использовать кривые или менять режимы.
Прямой вызов через автоматизацию может это обойти.
В текущей версии (0.4.0) реализована дискретность (точность) при задании целевых температур в 1 целый градус. То есть, задать целевую температуру зоны можно, например, 22 или 23 градуса, но никак не 22.1 или 23,6.
Возможности штатного управления MyHeat поддерживают точность задания температуры до 0.1 градуса (см. скриншот в качестве доказательства)
Более того - возможности адд-она также позволяют использовать точность 0.1 градуса.
Для этого надо открыть на редактирование файл climate.py, найти в нем строку...
self._attr_target_temperature_step = 1.0
...и заменить 1.0 на 0.1 (или 0.5, если вас устраивает точность в пол-градуса).
Затем сохранить файл и перезапустить Home Assistant.
После этого на термостатах можно будет задавать температуру с новым значением дискретности:
Добавить entity last seen - сколько секунд назал получены данные от котла / сервера myheat.
В новой (0.3.0) версии появился объект "severity", отражающий общее состояние контроллера.
Но почему-то реализован он как "binary_sensor" - то есть, рассчитан на выдачу двух состояний - 1 и 0.
Однако на самом деле значение "severity" может принимать несколько значений, четыре из которых описаны в документации по API:
0 - состояние неизвестно
1 - система работает нормально
32 - предупреждение
64 - критическое состояние системы
По практическому опыту - например, если долгое время нет связи с контроллером или даже с каким-то датчиком, то MyHeat выдает значение severity=64 (критическое состояние системы).
Полагаю, что сенсор "severity" должен быть не бинарным, а обычным, принимающим числовые (целочисленные) значения.
HA Core: 2024.4.0
MyHeat: 0.4.0
2024-04-04 22:47:09.783 DEBUG (MainThread) [custom_components.myheat] Data: {'data': {'heaters': [{'id': 12, 'name': 'Котел', 'disabled': False, 'flowTemp': 25.889999999999997, 'returnTemp': None, 'pressure': None, 'targetTemp': None, 'burnerWater': False, 'burnerHeating': False, 'modulation': 0, 'severity': 1, 'severityDesc': 'Котел работает исправно.'}], 'envs': [{'id': 94, 'type': 'boiler_temperature', 'name': 'Горячая вода', 'value': 58.8, 'target': 60, 'demand': False, 'severity': 1, 'severityDesc': 'Нормальное состояние.'}, {'id': 95, 'type': 'room_temperature', 'name': 'Температура помещения', 'value': 25, 'target': 24, 'demand': False, 'severity': 1, 'severityDesc': 'Нормальное состояние.'}], 'engs': [], 'alarms': [], 'dataActual': True, 'severity': 32, 'severityDesc': 'Низкий баланс SIM-карты.', 'weatherTemp': '5.980000000000018', 'city': 'Столбищи'}, 'err': 0, 'refreshPage': False}
2024-04-04 22:39:21.386 WARNING (MainThread) [homeassistant.components.climate] Entity None (<class 'custom_components.myheat.climate.MhEnvClimate'>) implements HVACMode(s): off, heat and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/vooon/hass-myheat/issues
- type: thermostat
entity: climate.myheat_temperatura_pomeshcheniia
features:
- type: climate-preset-modes
style: dropdown
preset_modes:
- home
- eco
- sleep
- away
- none
- type: climate-hvac-modes
hvac_modes:
- 'off'
- heat
show_current_as_primary: false
Названия режимов переименованы, но id остались такие же
Если в интерфейсе карточки выбирать режим, то в myheat.net от успешно переключается, после перезагрузки страницы в HA сбрасывается на None
Не хочу показаться нескромным (тем более, что и сам готов принять посильное участие в развитии проекта), но тем не менее очень хотелось бы расширения функционала, а именно:
P.S. все вышеупомянутые данные выдаются по запросу "get_device_info", я не придумал никакой "отсебятины". Ниже даю пример такого запроса, как это выглядит у меня:
friendly_name: 'Контроллер: информация об устройстве'
heaters:
- id: 234
name: Котёл
disabled: false
flowTemp: 48
returnTemp: 35.75
pressure: null
targetTemp: null
burnerWater: false
burnerHeating: false
modulation: 0
envs:
- id: 109
type: room_temperature
name: 3-й этаж
value: 22.875
target: 21
demand: false
severity: 1
severityDesc: Нормальное состояние.
- id: 247
type: floor_temperature
name: Тёплый пол
value: 25.25
target: 24
demand: false
severity: 1
severityDesc: Нормальное состояние.
- id: 220
type: room_temperature
name: 2-й этаж
value: 22.375
target: 22
demand: false
severity: 1
severityDesc: Нормальное состояние.
- id: 235
type: boiler_temperature
name: Бойлер
value: 56.6875
target: 60
demand: true
severity: 1
severityDesc: Нормальное состояние.
- id: 219
type: outdoor_temperature
name: Уличная температура
value: 5.9375
target: 7
demand: false
severity: 1
severityDesc: Нормальное состояние.
- id: 80
type: circuit_temperature
name: Контур отопления
value: 48.089999999999996
target: 7
demand: false
severity: 1
severityDesc: Нормальное состояние.
- id: 107
type: room_temperature
name: 1-й этаж
value: 22.25
target: 22
demand: false
severity: 1
severityDesc: Нормальное состояние.
engs:
- id: 136
type: two_way_valve
name: Кран 2-го этажа
turnedOn: false
mode: -1
severity: 1
severityDesc: Дана команда на закрытие.
- id: 115
type: two_way_valve
name: Кран тёплого пола
turnedOn: false
mode: -1
severity: 1
severityDesc: Дана команда на закрытие.
- id: 114
type: two_way_valve
name: Кран 3-го этажа
turnedOn: false
mode: -1
severity: 1
severityDesc: Дана команда на закрытие.
- id: 113
type: two_way_valve
name: Кран 1-го этажа
turnedOn: false
mode: -1
severity: 1
severityDesc: Дана команда на закрытие.
alarms: []
dataActual: true
severity: 1
severityDesc: Система работает нормально.
weatherTemp: '8.830000000000041'
city: Простоквашино
После обновления HA до версии 2024.2.0 интеграция полностью перестала работать. Все ранее имевшиеся объекты стали недоступными. При попытке заново настроить интеграцию выдается ошибка логина-пароля (вернее, не пароля, а API-ключа)
Не отображается иконка интеграции.
GET https://brands.home-assistant.io/myheat/icon.png 404
И наверное логичней будет использовать такую: mdi:water-boiler
Версия 0.2.0
Обнаружилось, что все термостаты (зоны) из интеграции MyHeat имеют диапазон установки целевой температуры от 7 до 35 градусов Цельсия.
Это касается абсолютно всех термостатов - как связанных с температурой воздуха в помещениях, так и прочих.
Например, у меня есть зона "Бойлер" - это бойлер косвенного нагрева, отапливаемый газовым котлом. Там (через настройки облака Myheat) выставлена целевая температура 52 градуса.
И на карточке Home Assistant также (если ничего не трогать) показана целевая температура 52 градуса:
Однако при попытке изменить целевую температуру упираемся в верхнее ограничение 35 градусов.
Кстати, тут еще параметр "target_temp_step" задан в 1 градус, хотя панель управления MyHeat позволяет задавать температуру с точностью до 0.1 градуса.
И еще один неприятный момент: если в HA изменить целевую температуру любой зоны, то полностью останавливается расписание, заданное в панели управления MyHeat.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.