ioBroker.mspa
Тесты:
Адаптер MSpa для ioBroker
Управляет гидромассажными ваннами MSpa через API MSpa Cloud.
Поддерживает управление нагревом, фильтрацией, УФ-излучением, пузырьковым и струйным режимами с полной автоматизацией через временные окна, избыток солнечной энергии и защиту от замерзания.
Функции
Управление устройством
- 🌡️ Считывание/установка температуры воды и целевой температуры ( 20–42 °C , шаг 0,5 °C) – значения, выходящие за пределы этого диапазона, отклоняются с предупреждением в журнале.
- 🔘 Включите/выключите нагреватель, фильтр, пузырьковый режим, режим струйной подачи воздуха, озонатор и УФ-стерилизацию.
- 🔗 Автоматическое управление зависимостями:
- Включение нагревателя → автоматически запускает фильтрующий насос в первую очередь (требование устройства).
- Включение УФ-лампы → автоматически запускает сначала фильтрующий насос (требование устройства).
- Отключение фильтра → автоматическое отключение нагревателя, УФ-лампы и пузырькового обогревателя (требование API)
- 📊 Автоматический расчет скорости обогрева и охлаждения (°C/ч, скользящее среднее EMA)
→ требуетheat_state = 2 or 3илиheater = onи как минимум 3-минутный интервал измерения. - ⏱️ Ориентировочная дата прибытия :
hh:mmдо достижения целевой температуры (status.heat_target_temp_reached)
→ рассчитано на основеcomputed.heat_rate_per_hourи разница между целевой температурой воды и температурой воды; ограничение составляет 48 часов.00:00когда не нагревается - ⚡ Обнаружение сбоев питания с возможностью восстановления состояния (опционально)
- 🌍 3 серверных региона: Европа (остальной мир) , США , Китай
- 🔒 Ограничитель скорости (макс. 2,5 запроса в секунду)
- 🚀 Быстрый опрос после выполнения команд (интервал 1 секунда в течение 15 секунд) – таймер опроса немедленно отменяется, поэтому подтверждение приходит примерно через 2 секунды.
Управление временным окном
- ⏰ Неограниченное количество настраиваемых временных интервалов (выбор дня недели, время начала/окончания, поддерживаются ночные диапазоны)
- 📋 Управление отоплением (с заданной температурой), фильтрующим насосом и УФ-стерилизатором для каждого окна.
- 🔗 Ультрафиолетовое излучение активируется только при работе фильтрующего насоса.
- 🕐 Настраиваемое время работы насоса после окончания временного окна (насос продолжает работать N минут)
- Окно ALL OFF: установить
action_filter = falseИaction_heating = false→ Адаптер автоматически отключает обогреватель, УФ-лампу и фильтр при включении окна.
→ Используйте это, чтобы принудительно отключить все в определенное время (например, с 22:00 до 06:00) - Оконные рамы для солнечных батарей активируются только тогда, когда текущее время и день недели совпадают с настроенной рамкой.
Контроль избытка фотоэлектрической энергии
- ☀️ Автоматическое включение при превышении избытка солнечной энергии заданного порогового значения (Вт)
- 🌥️ Настраиваемая задержка срабатывания облачной защиты перед отключением (в минутах)
- 📉 Гистерезис для предотвращения быстрого включения/выключения
- 📋 Не зависит от управления временным окном – может быть объединено.
computed.pv_active–trueтолько когда открыто временное окно с поддержкой солнечных фотоэлектрических систем (правильный день и время) И избыток превышает пороговое значение.
→ автоматически устанавливается наfalseКогда заканчивается временной интервал или ночью (ручная перезагрузка не требуется)computed.pv_deactivate_remaining– Осталось минут задержки облачной защиты (обратный отсчет в реальном времени)- Поэтапное отключение – при снижении избытка система отключается поэтапно:
- Нагреватель выключается (немедленно) – если прошивка уже достигла целевой температуры (
heat_state=4), вызов API пропускается - UVC отключается (после настраиваемой задержки) – но только при достижении минимального суточного времени работы UVC; в противном случае UVC продолжает работать до достижения минимального значения.
- Фильтр отключен (после дополнительной задержки) – но только если прошивка не нагревается активно (
heat_state 2/3)
- Нагреватель выключается (немедленно) – если прошивка уже достигла целевой температуры (
- Если избыток солнечной энергии восстановится во время поэтапного отключения , все таймеры будут отменены, а ранее выключенные устройства будут повторно включены.
Сезонный контроль
- 📅 Задайте временной интервал (ДД.ММ – ДД.ММ) в настройках адаптера.
- Включение/выключение режима сезона можно осуществить во время выполнения программы .
control.season_enabled(например, от VIS) – сохраняется после перезагрузки адаптера. - Вне сезона: опросы продолжаются, вся автоматизация приостановлена (временные окна, PV).
- Когда
season_enabled = falseРазрешается использовать только режим защиты от замерзания (зимний режим).
Зимний режим (защита от замерзания)
- ❄️ Защищает гидромассажную ванну от замерзания, если она остается на открытом воздухе зимой.
- Автоматически включает нагреватель и фильтр, когда температура воды опускается до заданного порогового значения для образования инея (°C) или ниже.
- Функция деактивируется при повышении температуры на 3 °C выше порогового значения (гистерезис).
- Включено/выключено через
control.winter_mode(например, от VIS) – сохраняется после перезагрузки адаптера. - Порог замерзания настраивается в параметрах адаптера (Администрирование → вкладка «Управление временем»).
- Отправляет уведомление в Telegram при включении или выключении защиты от заморозков.
- Работает независимо от
season_enabled– Защита от заморозков работает даже при отключенной функции защиты от замерзания.
season_enabledпротив.winter_mode- разница:
season_enabledwinter_modeРезультат truefalseВременные окна + активная солнечная батарея, защита от замерзания отсутствует truetrueВременные окна + фотоэлектрические панели + защита от замерзания falsefalseВсё замерло falsetrueТолько защита от заморозков – все остальные автоматизированные процессы приостановлены. Эти два флага независимы друг от друга.
winter_modeНЕ отключаетseason_enabled.
Ручное управление
- 🛑 Приостанавливает все автоматические процессы (временные окна, избыток солнечной энергии, защита от замерзания) одним нажатием кнопки.
- набор
control.manual_override = trueДля паузы адаптер больше не будет отправлять команды устройству. - Дополнительное автоматическое возобновление: установить
control.manual_override_duration(минут) до включения – адаптер автоматически возобновит работу по истечении заданного времени (0( = неопределенный) - Если функция переопределения отключена, все автоматизированные процессы немедленно переоцениваются с использованием последних данных об устройстве.
control.manual_overrideвсегда сбрасывается наfalseпри перезагрузке адаптера- Типичный сценарий использования: временное управление устройством через приложение MSpa без помех со стороны адаптера.
Срок службы УФ-лампы
- 🔦 В настройках адаптера укажите дату установки и номинальный срок службы (количество часов работы).
- Реальное время работы учитывается только тогда, когда УФ-излучение фактически включено.
- Накопленные часы сохраняются после перезагрузки адаптера.
status.uvc_hours_used– Общее накопленное время работы УФ-лампы ( можно записать – установить вручную для корректировки после потери данных или замены лампы)status.uvc_today_hours– Время работы UVC-устройств сегодня (перезагрузка в полночь)status.uvc_hours_remaining– Осталось часов до достижения расчетного времени работы (обновляется при каждом опросе, пока UVC включен).- Предупреждает об исчерпании срока действия.
Ручная коррекция
status.uvc_hours_used:
Если значение показывает0после потери данных:
- Остановите адаптер
- Установите правильное значение в административной панели ioBroker (например)
120(в течение 5 дней × 24 часа непрерывной работы)- Запустите адаптер — он считывает сохраненное значение и производит пересчет.
uvc_hours_remainingнемедленно
Ежедневное использование УФ-С излучения
- ⏱️ Обеспечивает работу UVC-системы минимальное количество часов в день (настраивается)
- Если суточный минимум еще не достигнут, адаптер автоматически запускает УФ-стерилизатор (и фильтрующий насос) в заданное время обеспечения.
control.uvc_ensure_skip_today– пропустить ежедневную проверку на сегодня (например, при ручной уборке) → автоматически сбрасывается в полночь
Фильтрация отслеживания времени выполнения
- ⏳
control.filter_running– накопленное количество часов работы фильтрующего насоса (сохраняющееся после перезапусков) control.filter_reset– Кратковременный триггер: сбрасывает счетчик выполнения фильтра до нуля.0(например, после замены фильтрующего картриджа)
Отслеживание потребления
- 📈 Ежедневное отслеживание потребления кВт·ч с помощью данных внешнего счетчика электроэнергии
- Автоматический сброс в полночь.
- Независимо от сезона и временного окна
Уведомления (Телеграм)
- 📨 Отправляйте уведомления через Telegram по адресу:
- ☀️ Избыток солнечной энергии активирован/деактивирован
- ⏰ Начало/конец временного окна
- 📅 Начало/конец сезона
- 🔦 Предупреждение о сроке годности УФ-лампы
- ❄️ Защита от замерзания активирована/деактивирована
- 🛑 Ручное управление включено/выключено (с указанием продолжительности, если задано)
- Поддерживается отправка нескольких получателей (имена пользователей, разделенные запятыми).
Changelog
0.4.2 (2026-08-22)
- (arteck) add offline message
- (arteck) fix app override
- (arteck) fix pv
- (arteck) online - offline detection
0.4.1 (2026-06-16)
- (arteck) refactoring
- (arteck) fix offline status
0.4.0 (2026-06-03)
- (arteck) new logic for heater
0.3.9 (2026-05-27)
- (arteck) fix heater start
0.3.8 (2026-05-23)
- (copilot) Adapter requires node.js >= 22 now
- (arteck) optimization, automatic detection
- (arteck) fix uvc start
License
MIT License
Copyright (c) 2026 Arthur Rupp arteck@outlook.com,
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.