Что имеем.
Умный дом, построенный на базе IoT устройств производителя Sonoff, переключатели, лампы, выключатели, «сервер» локального управления iHost, NSPanel, мобильное приложение eWelink. Фоторамка-панель управления Google Home и умные колонки Google, мобильное приложение. В общем и целом, более 30 IoT устройств. И, естественно, компьютер и роутер.
Почему.
Решил отказаться
«Сервер» локального управления iHost – не оправдал надежд от слова совсем, не использую уже более полугода. Основные причины: не очень большие возможности локального управления, нет гибкости написания сценариев, большой трафик в локальный сети (могу ошибаться, конечно, но других вариантов нет) – открываю браузер, обращаюсь к какому-нибудь сайту, - «от вас идёт слишком много обращений» (спам?). Как монитор – панель Гугла, очень часто показывает оповещение «Нет интернета». Отключил iHost, ошибки исчезли.
NSPanel – самая главная причина – если нет интернета или недоступны облачные сервисы, начинает сигналить «благим матом», и проблема в том, что в настройках нет опции отключения, нет физической кнопки выключения. Особенно «радует» это по ночам.
Всё работает, пока есть интернет, и доступны облачные сервисы. Но, как только что-то недоступно, сценарии, сделанные в приложениях, не работают, управление голосом не работает, и некорректная работа (или не работа) умных устройств. Это, конечно, естественно, но это стало случаться уже на постоянной основе, какие-нибудь девайсы отваливаются.
Другие системы локального управления тоже рассматривались, но не прельстило. У всех есть свои плюсы и минусы, но, на мой взгляд, мои проблемы с локальной работой умных устройств в полной мере не решают.
1С 8.5
- Новый дизайн, современные тренды и удобство работы (мне лично понравилось);
- Новая оконная система. Привычный вариант «в закладках» и новый вариант «в диалоговых окнах» (тоже хорошо);
- Варианты светлой или темной тем, использование выбранной цветовой палитры для автоматического преобразования цветов в зависимости от выбранной темы и места использования цвета (замечательно, но пока не пробовал, но обязательно попробую);
- Адаптируется под любой экран (пока не пробовал, надеюсь действительно так);
- Сокращение использования двойных кликов, то есть теперь во многих местах действие, ранее доступное по двойному клику, доступно и по одинарному (работает);
- По сугубо личным ощущениям, работает шустрее чем 8.3.
В общем и целом, всё нравится.
Зачем.
Увлекаюсь умным домом около 7 лет, нравится. Хочу независящее не от чего управление своими устройствами, чтоб работали так, как мне надо и когда надо. Чтобы соблюдался, так сказать, принцип локальности, «Сервер» управления, роутер и IoT устройства.
Вышла новая платформа 1С 8.5, посмотрел, «пощупал». Остались предыдущие наработки по управлению устройствами в режиме DIY. Попробовал переделать на новую платформу – понравилось.



Немного теории.
Краткий обзор Tasmota
Источник: сайт Tasmota. Прошивка с открытым исходным кодом для устройств ESP~

Полный локальный контроль с быстрой настройкой и обновлением. Управление с помощью MQTT, веб-интерфейса, HTTP или последовательного порта. Автоматизация с помощью таймеров, правил или скриптов. Интеграция с решениями для домашней автоматизации. Невероятно расширяемый и гибкий.
Основные особенности Tasmota:
- Открытый исходный код позволяет любому разработчику вносить изменения и улучшения в программу.
- Поддержка множества устройств: Tasmota поддерживает большое количество различных моделей устройств от разных производителей, включая Sonoff, Shelly, Tuya и многие другие.
- Удалённое управление через Wi-Fi: устройства с Tasmota могут управляться через локальную сеть или удалённо через Интернет (с оговорками).
- Интеграция с системами автоматизации: Tasmota легко интегрируется с популярными платформами домашней автоматизации, такими как Home Assistant, OpenHAB и другими.
Для меня самое ценное то, что подавляющее большинство имеющихся устройств можно перепрошить на Tasmota и управлять по HTTP.
Простота запроса управления и ответа устройства
Формат запроса API устройства
curl -i -X POST \
-H "Authorization:Basic YWRtaХХХХХХХХХХХХ==" \
'http://192.168.0.140/cm?cmnd=Power%20On
Посылаем устройству POST запрос с командой на включение.
Ответ устройства
Пример ответа RESTful API устройства. Работает с кодом ответа HTTP 200 OK и телом ответа в формате JSON.
{"POWER": "ON"}
Как результат выполнения команды на скриншоте 4 видим, что «розетка 1» включена, а «розетка 2» выключена.
Чем будем управлять
На текущий момент специально были приобретены две розетки с энергомониторингом под брендом IoTorero, изначально прошитые Tasmota (см. скриншот 3).
Под капотом 1С.
Общие модули.
-
СерверОбщегоНазначения – Общего назначения (сервер), для всякого рода конвертаций, поиска и т.д.
-
КлиентСерверHTTPСервисы - HTTP сервисы, процедуры и функции, связанные с управлением устройством посредством запросов.
-
пара модулей из БСП, некоторые используются, чтобы не изобретать велосипед, и на перспективу.
Общие формы
-
ОсновнаяПанель – Панель быстрого управления рабочего стола, где отображаются IoT устройства, с возможностью выполнения базовых команд, например, «включить/выключить»

Справочники
-
БазовыеКоманды – Базовые команд, предопределенные элементы. Здесь хранятся описание и таблица шаблонов поддерживаемых команд, которые показались наиболее значимыми и нужными на текущий момент.

- МоиУмныеУстройства - Мои умные устройства, здесь хранятся реальные устройства, которыми нужно управлять, в таблице хранятся команды, которые оно поддерживает. Тут же, в карточке устройства можно проверить работоспособность команды. Команды заполняются по шаблонам и сразу адаптированы под конкретное устройство.

На данном этапе это пока всё, что надо для базового управления.
Локальность системы.
Имеем: компьютер (в идеале мини пк), роутер, устройства. Так как всё «завязано» на локальную сеть и обращения во внешний мир отсутствуют по определению, система будет работать локально. Устройства работают в локальном контуре, ничто не влияет на их работоспособность.
Перспективы.
Следующим этапом планирую перепрошить на Tasmota имеющиеся устройства, купить пару-тройку девайсов IoTorero.
Перспективы, как таковые, следующие:
- Голосовое управление. У 1С уже есть готовые системы распознавания голоса, в том числе локальные (и даже как расширение конфигурации, буду пробовать именно этот вариант). Смотрел, тестировал демо приложение, работает. Принцип локальности не нарушается.
- Доработка для работы через браузер (естественно с публикацией на web-сервере). Адаптация под планшет, как панель быстрого управления. Принцип локальности не нарушается.
- Регламентные задания и скрипты по управлению без участия человека. Можно управлять светом – уехали в отпуск, запрограммировал эмуляцию нахождения дома. Принцип локальности не нарушается.
- Интеграция с ИИ и мессенджерами, как альтернатива «облачному» управлению.
Маленькие под итоги про 1С и Умный дом.
В принципе, на базе подобных устройств и программы по управлению на базе 1С, можно и нужно собрать свой умный дом, который не будет зависеть от интернета, приложений, облачных и иных систем. Особенно в свете того, о чем писал выше. Ситуация, видимо, лучше не станет.
Финансовый аспект тоже не большой, персональный компьютер/ноутбук/планшет наверняка есть, сами IoT устройства не так уж дороги.
А если купить «белый» IP и/или связать с ИИ или "телеграм" (например), и пожалуйста, можно управлять и мониторить из любой точки мира. Как в фирменных приложениях, только никакие конфиденциальные данные «на лево» не уходят.
По сравнению в предыдущими разработками сама структура конфигурации значительно уменьшилась, код сократился кратно и более оптимизирован. Конфигурация прилагается, код открыт.
На этом пока всё, если вам понравилась статья, в следующей планирую рассказать, как перепрошивал девайсы, про их практическое использование и эксперименты с работой по HTTP. Скачивайте конфигурацию, пишите комментарии, ставьте лайки, очень интересно ваше мнение.
Краткие инструкции:
1. Настройки программы
1.1. Базовые команды


Заполните базовые команды по умолчанию.
1.2. Настройки - Константы

Заполните по умолчанию и введите единый пароль для доступа к управлению устройством.
2. Добавление новых устройств.

Нажмите "+ Создать"
2.1. Заполните обязательные поля "Псевдоним" и "IP адрес"

Добавьте команды управления в правой части.

Выберите нужную. Повторите при необходимости для добавления нескольких команд.
Нажмите кнопку "Записать".
2.2. Для проверки работоспособности команды нажмите кнопку проверки:

2.3. Чтобы устройство попало на "Панель быстрого управления" выберите "управляющую" команду и нажмите кнопку "Установить выбранную команду быстрой командой".
Приятных экспериментов.
Разрабатывалось и тестировалось: 1С:Предприятие 8.5 (8.5.1.774)

Disclaimer
Материалы, предоставленные для скачивания (далее по тексту – «материалы») разрешено использовать исключительно в ознакомительных целях.
Любое коммерческое использование предоставленных «материалов» без письменного разрешения автора запрещено.
«Материалы» предоставляются на условиях "As Is" ("как есть"), что означает, что автор не несет ответственности за какие-либо физические и программные повреждения оборудования, потери данных, потери прибыли или любые другие виды потерь, связанные с использованием (правильным или неправильным) этой программы. Вы используете данный программный продукт на свой страх и риск.
Вступайте в нашу телеграмм-группу Инфостарт
