Controme

Подключитесь к локальному мини-серверу Controme, который управляет вашей системой отопления дома

Текущий релиз
0.5.7
Разработчик
MadErstam
Лицензия
MIT

Адаптер ioBroker для мини-сервера Controme

Подключитесь к локальному серверу Controme mini, используя официальный API.

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

Адаптер периодически считывает температуру в помещении с мини-сервера, а также позволяет устанавливать заданные значения температуры на сервере через ioBroker. Для использования этого адаптера необходимо, чтобы Controme активировал API. Адаптер не предназначен для замены пользовательского интерфейса Controme, но предоставляет базовые данные и функциональность для интеграции Controme с другими устройствами и сервисами умного дома.

Адаптер предоставляет следующие данные для каждой комнаты, определенной в пользовательском интерфейсе Controme:

ОбъектТипОписаниечтение/запись
идентификатор комнатыустройствоКаждая комната представлена своим идентификатором Controme и названием комнаты в качестве имени устройства.
roomID.actualTemperatureсостояниеФактическая температура в помещении, имеющая значение level.temperature. Это состояние доступно только для чтения. Если для конкретного помещения не определен датчик температуры, фактическая температура, возвращаемая мини-сервером Controme, будет равна null.читать
roomID.humidityсостояниеВлажность в помещении, с параметром level.humidity. Это состояние доступно только для чтения. Если датчик влажности в помещении не обнаруживает влажность, это состояние имеет значение null.читать
roomID.setpointTemperatureсостояниеЦелевая/заданная температура в помещении, с ролью значения параметра value.temperature.чтение/запись
roomID.setpointTemperaturePermсостояниеПостоянная целевая/заданная температура в помещении, с ролью значения.температуры.чтение/запись
roomID.temperatureOffsetсостояниеСмещение температуры помещения, на которое показания датчика отличаются от фактической температуры в помещении. Значение смещения температуры можно установить вручную в пользовательском интерфейсе Controme, а также оно рассчитывается различными модулями Controme.читать
roomID.modeсостояниеОписывает режим работы помещения, например, «отопление».читать
roomID.is_temporary_modeсостояниеУказывает на то, что в данный момент действуют временные изменения параметра setPointTemperature.читать
roomID.temporary_mode_endсостояниеКогда для комнаты активен временный режим, это состояние указывает, когда этот временный режим заканчивается. Если временный режим не активен, это состояние имеет значение null.читать
roomID.temporary_mode_remainingсостояниеКогда для комнаты активен временный режим, это состояние указывает оставшееся количество секунд, в течение которых этот временный режим активен. Если временный режим не активен, это состояние имеет значение null. Изменения этого состояния будут отражаться в Controme и изменят оставшееся время действия временного режима в соответствии с заданной температурой, определенной в состоянии setpointTemperate.чтение/запись
roomID.offsetsканалИз заданной комнатной температуры добавляются или вычитаются смещения. Этот канал группирует все смещения, относящиеся к соответствующему помещению.
roomID.offsets.[OFFSET-GROUP]каналКаждый источник смещения представлен выделенным каналом в рамках канала смещений той комнаты, к которой относится это смещение.
roomID.offsets.[OFFSET-GROUP].[OFFSET]состояниеОтдельные значения смещения отражают различные корректировки, внесенные мини-сервером Controme.читать
roomID.offsets.apiканалЭта группа смещений является особенной, поскольку в её состояния можно записывать данные и использовать их для управления фактическим смещением помещения.
roomID.offsets.api.apiсостояниеЭто состояние смещения создается адаптером по умолчанию. Вы можете использовать его для управления фактическими смещениями в комнатах. Значения смещения сбрасываются сервером каждые 10 минут.чтение/запись
roomID.sensorsканалДатчики предоставляют фактические измерения, относящиеся к помещению. Этот канал объединяет все датчики, назначенные соответствующему помещению.
roomID.sensors.[SENSOR-ID]устройствоКаждый датчик представлен устройством в канале датчиков того помещения, к которому он привязан.
roomID.sensors.[SENSOR-ID].isRoomTemperatureSensorсостояниеЭто логическое значение указывает, используется ли датчик в качестве датчика комнатной температуры. Для каждой комнаты в качестве датчика комнатной температуры может использоваться только один датчик.читать
roomID.sensors.[SENSOR-ID].actualTemperatureсостояниеЭто состояние отражает фактическую температуру, измеренную датчиком. Состояние доступно для чтения/записи, но предоставленные значения будут приниматься только датчиками 1Wire или виртуальными датчиками. В случае записи значения в реальный датчик, оно будет перезаписано при следующем считывании.чтение/запись
roomID.outputsканалВыходы обычно управляют клапанами, регулирующими отопление помещения. Этот канал объединяет все выходы, назначенные соответствующему помещению.
roomID.outputs.[OUTPUT-ID]состояниеКаждый выход представлен состоянием в выходном канале комнаты, к которой он принадлежит. Идентификационный номер выхода обозначает номер выхода на шлюзе.читать
gatewayMACустройствоКаждый шлюз представлен своим MAC-адресом, а имя шлюза — именем устройства.
gatewayMAC.gatewayTypeсостояниеТип шлюза. В настоящее время существует четыре типа шлюзов Controme: Floor Gateway Smart, Floor Gateway Pro, Universal Gateway Mini, Universal Gateway Pro.читать
gatewayMAC.isUniversalсостояниеУказывает, является ли шлюз одним из универсальных шлюзов. Данные от универсальных шлюзов необходимо получать другим способом.
gatewayMAC.outputsканалВыходы обычно управляют клапанами, регулирующими отопление помещения, для напольных шлюзов или устройств в отопительном помещении (насосы, клапаны). Этот канал объединяет все выходы соответствующего шлюза.читать
gatewayMAC.outputs.[OUTPUT-ID]состояниеКаждый выход представлен состоянием в выходном канале шлюза, к которому он назначен. Идентификационный номер выхода представляет собой номер выхода на шлюзе, заданный в конфигурации.читать

Документацию по API можно найти на веб-сайте Controme.

Для запуска адаптера необходимо указать следующие данные на странице настроек администратора для экземпляра адаптера:

Поле данныхТипОписание
urlтекстURL-адрес мини-сервера Controme. Может быть либо IP-адресом, либо именем.
идентификатор домачислоИдентификатор установки Controme. Согласно документации API, он должен быть либо 1, либо 2.
интервалчислоИнтервал в секундах, с которым данные опрашиваются с сервера. Это значение должно быть в пределах от 15 до 3600 секунд. Слишком низкие значения не имеют смысла, поскольку Controme обновляет показания датчика только каждые 3-5 минут.
forceReInitфлажокЕсли этот флажок установлен, Controme очищает структуру объектов в базе данных ioBroker и перезагружает комнаты с сервера. Эта настройка требуется только в том случае, если структура комнат на сервере Controme изменяется.
warnOnNullфлажокЕсли этот флажок установлен, адаптер будет записывать предупреждения в лог, когда датчик возвращает значение NULL. Возвращение значений NULL является ожидаемым поведением для оконных датчиков, но может указывать на проблему с подключением для датчиков температуры. API не позволяет различить эти ситуации.
имя пользователятекстИмя пользователя, используемое для доступа к API Controme. Обычно это имя пользователя основного пользователя Controme.
парольпарольПароль пользователя, с помощью которого осуществляется доступ к API Controme. Этот пароль зашифрован.
шлюзыстолВсе шлюзы, для которых адаптер должен запрашивать данные, должны быть настроены с тремя значениями:
gateways.gatewayMACнитьMAC-адрес отдельного шлюза.
шлюзы.типнитьТип соответствующего шлюза. Может быть Floor Gateway Smart/Pro, Universal Gateway Mini или Universal Gateway Pro.
gateways.nameнитьНазвание соответствующего шлюза.
gatewayOutputsстолВсе выходы всех шлюзов, для которых адаптер должен запрашивать данные, должны быть настроены с тремя значениями:
gatewayOutputs.gatewayMACнитьMAC-адрес отдельного шлюза. Он должен совпадать с одним из значений gatewayMAC, заданных в таблице шлюзов. Обратите внимание, что в настоящее время адаптер не проверяет, совпадают ли MAC-адреса шлюзов с адресами, заданными в таблице шлюзов. Поэтому убедитесь, что MAC-адреса шлюзов совпадают в обеих таблицах.
gatewayOutputs.outputIDчислоИдентификатор выходного сигнала соответствующего шлюза, который необходимо опрашивать. Для мини-шлюзов это число должно быть от 1 до 8, для других шлюзов — от 1 до 15.
gatewayOutputs.outputNameнитьНазвание соответствующего выхода шлюза.

Что нужно сделать

  1. (в процессе) Тестирование, тестирование, тестирование
  2. После тщательного тестирования адаптер будет переведен в стабильную версию.

Известные ошибки

  1. ...

Changelog

0.5.7 (2025-02-22)

  • (MadErstam) Made adapter safe to handle different versions of API
  • (MadErstam) Switched from got to axios for future compatibility

0.5.6 (2025-02-21)

  • (MadErstam) Bugfixing regarding invalid API responses or invalid sensor values

0.5.5 (2025-02-20)

  • (MadErstam) Bugfixing regarding async and promise

0.5.4 (2025-02-15)

  • (MadErstam) Made sensor names safe
  • (MadErstam) Bugfixing in getOutputs

0.5.3 (2024-11-27)

  • (MadErstam) Various smaller bugfixes and improvements

0.5.2 (2024-11-25)

  • (MadErstam) Make object IDs for offsets safe

0.5.1 (2024-11-06)

  • (MadErstam) Minor bugfixing

0.5.0 (2024-11-05)

  • (MadErstam) Added handling of temporary mode
  • (MadErstam) Conducted code refactoring to improve readability and maintainability
  • (MadErstam) Again moved admin translations to make it compatible with automatic translations

0.4.7 (2024-11-04)

  • (MadErstam) Moved admin translations to separate files

0.4.6 (2024-11-04)

  • (MadErstam) Added translations of admin form to Ukrainian

0.4.5 (2024-11-03)

  • (MadErstam) Fixed remaining warnings of automated adapter checker

0.4.4 (2024-11-03)

  • (MadErstam) Cleaned up warnings of automated adapter checker

0.4.3 (2024-11-03)

  • (MadErstam) Cleaned up errors of automated adapter checker

0.4.2 (2024-11-02)

  • (MadErstam) Preparations for adapter package release

0.4.1 (2024-11-02)

  • (MadErstam) Preparations for adapter package release

0.4.0 (2024-10-31)

  • (MadErstam) Extended api calls to include humidity and temporary mode states
  • (MadErstam) Changed dependencies

0.3.4-alpha.2 (2022-06-01)

  • (MadErstam) Added validation of setTargetTemp, setSetpointTemp, setActualTemp, setOffsetTemp values
  • (MadErstam) Changed dependencies
  • (MadErstam) Cleaning up

0.3.4-alpha.1 (2022-04-25)

  • (MadErstam) Prepare for release

0.3.4-alpha.0 (2022-04-25)

  • (MadErstam) Prepare for release

0.3.3 (2022-04-25)

  • (MadErstam) Updated dependencies

0.3.2 (2022-04-25)

  • (MadErstam) Prepare for release

0.3.1 (2022-04-25)

  • (MadErstam) Cleaning up adapter, bugfixing, extended readme

0.3.0

  • (MadErstam) Extended API polling (outputs, gateways)

0.2.4

  • (MadErstam) Bugfixing

0.2.3

  • (MadErstam) Bugfixing

0.2.2

  • (MadErstam) Bugfixing in offset handling

0.2.1

  • (MadErstam) Improved offset handling

0.2.0

  • (MadErstam) Added sensors and offsets

0.1.2

  • (MadErstam) Preparations for adapter package release

0.1.1

  • (MadErstam) Minor bug fixes

0.1.0

  • (MadErstam) initial release

License

Copyright (c) 2025 MadErstam erstam@gmx.de

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.