ГидроТерм - автоматика систем отопления 
Автоматика
Контроллеры
Приводы
Модели
Конструктор
Интерфейс E8
Микроавтоматика
Каталог
Примеры схем
ГидроЛОГО!
Подбор коллекторов
Видео
Инструкции PDF
Контакты
Форум

Добро пожаловать! » Войти » Зарегистрироваться

SmatrWebX - MobBusTCP - IntraHouse

SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
Взаимодействие с контроллером SmartWeb по протоколу ModBus из сервера умного дома «IntraHouse».

Сервер умного дома «IntraHouse» - коммерческое программное обеспечение, имеющее бесплатно распространяемую версию, поддерживающее значительный список оборудования и протоколов взаимодействия, в том числе протокола ModBus-TCP, по которому возможно взаимодействие с контроллерами SmartWebX. Сайт IntraHouse - [ih-systems.com]

Описывать установку сервера и его первичную настройку не буду, это хорошо сделано на форуме MajorDoMo. Начнем сразу с настройки взаимодействия IntraHouse – SWX.

Для этого необходимо
1. Создать описание проекта
2. Создать устройства
3. Установить плагин ModBusTCP
4. Настроить каналы ModBus для взаимодействия с SWX
5. Настроить интерфейсы отображения.
Приступаем. Я буду от подробного описания всех действий переходить к сжатому, предполагая, что описывать одинаковые действия нет необходимости.

Установка системы описана на сайте IH, и сложностей не вызывает.
Система устанавливается вместе с демонстрационным проектом, внутри которого имеются иконки, используемые для визуализации. Наборы картинок и иконок в системе привязаны именно к проекту, поэтому, если у вас нет своего набора иконок, который вы планируете использовать, не удаляйте демонстрационный проект, а сделайте его копию.
Все администрироваание сервера происходит в веб-интерфейсе, по адресу [IPservera]


1. Нажимаем на гаечный ключ с отверткой в левом нижнем углу
2. Открываем «проекты»
3. Выделяем демонстрационный прокт
4. Нажимаем кнопку копировать
5. Переименовываем папку проекта
6. Перееименовываем проект
7. Сохраняем.



Затем, выделяем свой проект, нажимаем кнопку свойства», и в боковом меню ставим галочку «сделать проект активным», система перезагружается, и ваш проект становится «активным», после чего с ним можно начать работу.


Нажимаем в верхнем левом углу кнопку «Структура проекта» и в разделах «Объекты», «Уровни» «Зоны» «Подсистемы» удаляем лишнее, создаем нужное.
В тестовом проекте
Объект – Берлога73, Уровень – 1 этаж, Зоны – Комната, Кухня, Санузел, Подсистемы – Отопление.

Переходим на вкладку «устройства». Небольшое отступление.
Настройка мной проводилась в феврале 2019 года, когда плагин Модбас в IH существовал еще в бета-версии, и лучше всего он взаимодействовал с типом устройств «Аналоговый актуатор», который отлично подошел для решения задач взаимодействия с контроллером SWX.
В релизе плагина ситуация будет уже другой, но по большому счету разные типы устройств отличаются лишь названием, встроенными свойствами и ограничениями.
Свойства иногда были лишними, в ограничения я не уперся, а названия типа устройств в настроенном интерфейсе умного дома не видны.
Поэтому я создаю в этом проекте для взаимодействия с SWX «аналоговые актуаторы».

Начнем с комнаты.
Нам нужно читать
- Температуру воздуха
- Температуру пола
- Температуру радиаторов отопления
- Требуемую температуру воздуха
- Статус теплого пола (состояние клапана или насоса)
- Статус радиаторного отопления (состояние клапана или насоса)
- Требуемая температура воздуха.
Читать и писать:
- Уставку комфортной температуры
- Уставку экономичной температурв
- Уставку температуры отсутствия
- Уставку минимальной температуры теплого пола
- Уставку максимальной температуры теплого пола

Начало всегда одинаковое




Исправлений: 1. Последний раз редактировал hydrologic в 05.02.2019, 18:06.
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
В меню «устройства» (1) нажимаем кнопку «+» (2) и в открывшемся правом меню выбираем «Актуатор универсальный аналоговый» (3)



На вкладке «Устройство»
ID устройства я оставлял без изменений.
Наименование делал понятным, чтобы всегда было ясно, о каком устройстве в каком помещении речь.
Уровень, зону, подсистему заполняем в соответствии с фактическим расположением и назначением. В примере везде 1 этаж, Комната, Отопление.
Единицу измерения нужно указать, если нужно, чтобы показания отображались с единицей измерения.
Цифр после запятой – указываем, сколько нужно. Я для отображения температуры ставил 1, чтобы отображались десятые градуса. В остальных случаях оставлял 0.
«Есть уставка (дефолтное значение» - эта галочка заставляет интерфейс отображать дефолтное значение, даже если устройство «виртуальное» и ни к чему не присоединено.
«Устанавливать дефолтное значение по текущему» - это свойство позволяет серверу сохранить значение, которое последним было у отображаемого устройства в интерфейса визуализации при последнем закрытии.
Если устройство виртуальное, и значения ему присваиваются выполняемыми сценариями, или оно не виртуальное, но обновляется не ежесекундно, эти две последние настройки позволяют добиться того, что при открытии интерфейса у нас не будет пустых значений. До их обновления будут отображаться сохраненные на момент закрытия.



Минимальное и максимальное значение – ограничивает пределы установки значения в правом меню (открывается при долгом нажатии на изображение устройства в интерфейсе визуализации).
При установке значений согласуйте их с границами параметров SWX.
Шаг шкалы – на сколько будет значение уменьшаться/увеличиваться при каждом клике в правом меню устройства).

«Не принимать значения вне диапазона» - если установить галочку, отображение будет ограничено настроенным выше диапазоном.
«Устанавливать ошибку при выходе из диапазона» - У иконки, отображающей устройство в интерфейсе виртуализации есть символ ошибки, который будет появляться в этом случае, если установить галочку.
«установить ошибку, если нет данных в течении (сек)» - очень полезное поле, если установить для устройств, считывающих значение с SWX, например, в 120 сек, то при отсутствии связи с контроллером в интерфейсе на иконках устройств появятся символы ошибок.
На вкладке «Дополнительно»
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
Метод определения состояния
Варианты «стандартный», «аналоговые значения – интервалы», и «вычисляется сценарием»
Запомните, где устанавливается, смысл раскроется ниже.
«Скрыть команды (on-off) в боковом меню в пользовательском интерфейсе» - «Актуатор» устройство достаточно универсальное, и предназначено оно в том числе и для управления диммерами. Для них можно в меню отобразить кнопки включить/выключить, и ползунок плавной регулировки яркости. Установка галочки позволяет отключить кнопки включить/выключить. Для отображения и установки параметров SWX эти кнопки не нужны, поэтому я на всех актуаторах поставил эти галочки.
После создания и сохранения актуатора при всех закрытых боковых меню нажимаем кнопку открытия нижнего меню, и видим окно с состояниями актуатора (или выбираем отображение состояний в меню 1).


Выделяем и дважды кликаем (или нажимаем кнопку свойства справа в шапке нижнего меню) название состояния (2), открывается правое боковое меню.
На нем можно:
изменить название состояния (4),
установить верхнюю границу состояния (5) (отображение актуатора на экране может быть разным для разных состояний, и отображения принимают соответствующий вид при нахождении значения актуатора в границах, указанных в описании состояний в этом меню. При переключении состояний в интерфейсе с использованием актуатора, он будет принимать эти значения сам и передавать эти значения на на SWX).
Изменить иконку отображения состояния (6)
И цвет иконки (7)

При нажатии копки «копировать» (3) можно создать еще одно состояние актуатора, и настроить его необходимым образом.
Удалить состояния по-умолчанию (включено и выключено) нельзя. Это как раз то лишнее свойство, которое будет на термометрах, но не будет использоваться. Его можно использовать, например, менять цвет иконки, или цифр отображения температуры в соответствии с температурой. Настроить нужное количество состояний, например с шагом 5 градусов от +5 до +30 будет 5 состояний с 5-ю разными цветами, и в зависимости от температуры индикатор будет менять цвет. Но я эту возможность в данном примере не использовал.
После создания своих состояний нужно в свойствах актуатора (правое меню) на вкладке «дополнительно» «метод определения состояния» устанавливаем в «Аналоговое значение – интервалы».


Начинаем создавать актуаторы(ниже описываю только отличительные особенности настройки).
1. Режим отопления в комнате. Цифр после запятой – 0, минимальное значение – 0, максимальное значение – 3, шаг – 1 (в SWX это поле может иметь значения 0,1,2,3 при режимах комфорт, эконом, расписание и отсутствие соответственно). Создаем 4 состояния – комфорт, эконом, расписание и выключено с соответствующими границами, цветом и иконками. В свойствах актуатора (правое меню) на вкладке «дополнительно» «метод определения состояния» устанавливаем в «Аналоговое значение – интервалы»


2. Температура комнаты (температура датчика комнаты). Цифр после запятой – 1, единица измерения - °C. Значения от 0 до +45. Точно такими же создаем актуаторы для:
-датчика температуры теплого пола,
-датчика температуры радиаторов отопления (этому актуатору в SWX я сопоставил температуру потока контура радиаторов отопления),
-требуемой температуры комнаты.
3. Актуаторы для уставок температур. Отличаются от актуаторов отображения из п.2 только количеством цифр после запятой – 0, и единицами измерения. Единицы измерения я поменял для информативности, чтобы не загромождать экран лишними надписями.
По этому шаблону созданы (в скобках единица измерения, диапазон значений):
-Т уставки комнаты для режима комфорт (°Cmf, 0-45)
-Т уставки комнаты для режима эконом (°Eco, 0-45)
-Т уставки комнаты для режима выключено (°Off, 0-45)
-Уставка минимальной Т теплого пола (°min, 5-30)
-Уставка максимальной Т теплого пола (°max, 5-30)
4. Актуаторы состояния теплого пола и радиаторного отопления (включено/выключено). Минимальное значение – 0, максимальное – 255 (в SWX такие значение по модбас передаются), метод определения состояния – «аналоговое значение-интервалы», состояния корректируем в соответстии с картинкой

Таких сделано 2 актуатора – для теплого пола и для радиаторов отопления (у последнего я использовал состояние насоса контура РО в SWX). Для радиаторов отопления картинку отображения состояний используем иконку радиатора (climate210.svg)
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
Переходим к установке и настройке плагина ModBus.

Скачиваем плагин (архив .zip) по ссылке [github.com] (на момент настроек плагин был в состоянии бета-тестирования, и в разделе «продукты» на сайте системы представлен не был, со временем его опубликуют, и скачивать нужно будет там).


Для установки плагина в левом меню нажимаем кнопку «Плагины» (1), строку «Плагины» (2), кнопку управления плагинами (3), и выбираем «загрузить из .zip файла». Указываем путь до архива скаченного плагина, плагин установлен.


После установки выделяем плагин (1), дважды кликаем мшкой


В правом меню переходим на вкладку «Параметры» (2) и настраиваем IP адрес (3) контроллера SWX, с которым нужно взаимодействовать. Остальные параметры можно оставить по-умолчанию.
Сохраняем настройки, закрываем боковое меню.
нажимаем кнопку открытия нижнего меню (2).
Видим список каналов (1). Сначала он пустой.



Нажимаем «добавить» (2), открывается правое меню. В нем:
Указываем название канала (3). Я использовал сокращение, по которому понятно функциональное свойство канала.
Тип устройства (4) – в примере всегда указано «AO-Analog Output». Этот тип устройство в плагине хорошо работает с актуаторами.
Адрес регистра (5) – указываем номер регистра SWX из [IP]вашегоSWX/~sm/modbussw.html за минусом 40001
Тип переменной (6) в примере всегда «INT 16 2 байта»
Функции (7) – в примере всегда «FC3 – read, FC6 – write»
«Группировать при чтении» (8) – галочку обязательно снимаем. В рекомендациях SWX указано, что регистры нужно считывать по-одному, а данная галочка как раз группирует их для считывания пачкой. Снимаем галочку обязательно, иначе регистры читаются с ошибками.
Сохраняем канал (9)
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
После сохранения. Дважды кликаем мышью по созданному каналу (1)


В открывшемся правом меню указываем устройство (7) с которым нужно связать созданный канал. Связывать нужно внимательно, чтобы нужные данные попадали по намеченному назначению. Чтобы нужное нам свойство программы «комната» в SWX через регистр модбас соединилось с созданным именно для этого свойства актуатором IH.

Сохраняем, открываем вкладку «Обработка» (1) свойств канала.



В SWX температура хранится целым числом в 10 раз большим, чем значение температуры в градусах. Если температура, например, 25 градусов, то в SWX хранится 250.
Поэтому, для каналов, работающих с температурой, при чтении нужно полученное значение разделить на 10, а при записи имеющееся на сервере значение умножить на 10.
Для каналов, только читающих значения со SWXd в поле «Формула расчета входного значения» указываем формулу value/10.
Для каналов, и читающих и записывающих указхываем и это, и следующее – в поле «Формула расчета выходного значения» указываем формулу value*10.
Для каналов режима отопления или статусов включения клапанов/насосов контуров ТП/РО эти поля заполнять не нужно.

Настраиваем все необходимые для работы каналы SWX, и запускаем плагин.
Для этого, закрываем нижнее меню,


Выделяем плагин (1), нажимаем кнопку (2).
В открывшемся правом меню выбираем «Запустить плагин». Если все хорошо, система сообщает, что команда выполнена успешно, и красный значок «стоп» слева от названия плагина меняется на зеленую галочку.

Все работает, осталось настроить пользовательский интерфейс для визуализации продуктов вышеописанной жизнедеятельности.

Для этого



В структуре проектов (1) открываем «список экранов», и создаем экраны. В примере их 2, один для ПК, второй для телефона. На обоих будет отображено состояние отопления комнаты.
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
После этого открываем список виджетов (3)



И создаем 2 виджета для тех же целей.

Переходим к их редактированию.



В левом меню нажимаем «Виджеты» (1), выбираем нужный виджет (2).
Создаем фон.
Нажимаем «Добавить» (3), в правом меню переходим на вкладку «примитивы» (4), и выбираем «изображение» (5), перетаскивая его в поле виджета мышью.



Сохраняем (1), дважды кликаем по пиктограмме картинки (2) в открывшемся правом меню выбираем вкладку «элемент (3) и устанавливаем нужное нам изображение (4).
Выбор изображения происходит из имеющихся в библиотеке проекты, для добавления туда картинок переходим в структуру проекта (1)


И в разделе «изображения» (2) добавляем (3) картинку, указав ее на диске (4), и обозначив ей тип (иконка или изображение) и группу. После этого ваша картинка доступна для использования в системе.
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
Возвращаемся к виджету.
Добавляем свою картинку,



Затем мышью, или значениями на вкладке «координаты» (1) изменяем ее размер и положение на экране. Сохраняем.

Добавляем (1) переключатель режимов отопления (ранее созданный актуатор «Режим отопления в комнате» (3) с вкладки «устройства» (2) правого меню.



Перетаскиваем его мышью в поле виджета, сохраняем, открываем свойства пиктограммы актуатора (двойной клик мышью).



Здесь на вкладке «контейнер» (1) для каждого состояния актуатора (2) (выбираем по очереди), устанавливаем «цвет фона» (4) черным.


На вкладке «параметры» (1)



«Шаблон представления» ставим «Переключатель состояния» (2)
«Действие при нажании» - «none» (3)
И ставим галочку «запретить боковое меню устройства…» (4)
СОХРАНЯЕМСЯ!!!! (5) Обязательно сохраняемся, после сделанных настройек изменится содержание вкладки «Элемент».
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
СОХРАНЯЕМСЯ!!!! (5) Обязательно сохраняемся, после сделанных настройек изменится содержание вкладки «Элемент».
Снова открываем свойства пиктограммы, открываем вкладку «Элемент» (1)



Поочередно для всех состояний (2)
П»позицию изображения» (3) ставим «Center»
«Пропорции» (4) - 0
«Цвет фона кнопки»(5) – черный.
Ниже на той же вкладке



«Цвет текста» (6) – прозрачный
«Размер текста» - 0.

Переходим на вкладку «Координаты». Ставим ширину 30, высоту – 120. Располагаем мышью или параметрами на этой вкладке актуатор в нужной части экрана.
Сохраняем.

Получаем следующий вид переключателя режима отопления комнаты.




Добавляем актуатор для отображения текущей температуры комнаты.
Действия те же, отличия настроек следующие:
На вкладке «Контейнер» скругление углов 100%
На вкладке «Параметры» «Шаблон представления» - «Значение в виде текста (вкл ед. изм)». СОХРАНЯЕМ!!!! После этого.
«Координаты» - ширина и высота по 50
На вкладке «Элемент» Цвет текста – белый, размер текста – 19, выравнивание по вертикали и горизонтали – Center
Индикаторы 1,2,3 – на 0, Индикатор ошибки – по-умолчанию. Получаем черный круглый индикатор температуры.

Создаем второй актуатор «Режима отопления»,
В отличии от первого «шаблон представления» - «иконка с дополнительными элементами», все индикаторы –на 0, цвет фона, рамка, - прозрачные. Размер – 30х30.
Размещаем актуатор в границах индикатора температуры, получается индикатор температуры и индикатор режима в одной иконке сложной формы.



Для индикации других уставок создаем прямоугольные индикаторы



Для отображения состояния теплого пола и радиаторов (включено,выключено) – индикаторы без рамки на прозрачном фоне «иконка с доп элементами».



Для ввода уставок – индикаторы без рамок, с прозрачным фоном, «Значение в виде текста (вкл ед. изм)», с разрешенным боковым меню.
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
Добавляем картинки для пояснений отображаемых значений (где нет актуаторов состояния), распереляем по виджету, повторяем весь объем работы для других помещений, и получаем результат.




Виджет готов.
Переходим в «Экраны».
Открываем для редактирования нужный экран, задаем ему цвет фона, и располагаем на нем созданный виджет.

Объявляем этот экран как основной экран пользователю Admin (доступ – учетные записи – админ)
И нажимаем кнопку вверху экрана.


Вот наш пользовательский интерфейс.




При долгом нажатии на отображения уставок, которые можно править (отмеченные овалами) открывается такое боковое меню, в котором сожно устанавливать значения для последующей передаче его на SWX.



Обратите внимание!!! Мы получили полностью работающий пользовательский интерфейс совершенно без навыков программирования!!!

Но в системе есть и развитый механизм скриптов. С его помощью можно создавать сложные зависимости поведения устройств и из отображений.

Примеры есть в файле проекта на примере экрана для телефона.



Файл проекта SW_IH.zip, (логин/пароль - admin/admin)
[yadi.sk]

На этом пример закончен.
Всего хорошего.
Эрик Утяшев.
Re: SmatrWebX - MobBusTCP - IntraHouse
05 February 2019 17:05
Работа связки сервер IH - SWX никаких нареканий не вызывает.
Все работает надежно, строго в рамках одного TCP соединения.
Re: SmatrWebX - MobBusTCP - IntraHouse
15 February 2019 09:09
ребята сделали версию сервера умного дома для Андроида.
[frm.intrahouse.ru]

Можно реализовать умный дом на старом телефоне. :)
Re: SmatrWebX - MobBusTCP - IntraHouse
20 February 2019 23:11
Крутая тема! Спасибо!
С нашей точки зрения сейчас лидер систем для умного дома - iRidium. Сходили на обучение и теперь пишем драйвер для нее. Через Modbus TCP конечно работает, но есть возможность напрямую через CAN-UDP работать, так чуть проворнее будет.
Через iRidium связались с Google Home и также написали скрипт для Яндекс-Алисы, работает довольно неплохо!
Один минус - эта штука платная. Если кому-то понадобится лицензия со скидкой - обращайтесь.
Re: SmatrWebX - MobBusTCP - IntraHouse
21 February 2019 07:07
Этот?
[iridi.com]

Когда появитесь в списке?
[iridi.com]



Исправлений: 1. Последний раз редактировал Erik в 21.02.2019, 07:07.
Re: SmatrWebX - MobBusTCP - IntraHouse
21 February 2019 11:11
Этот. Сейчас идёт написание драйвера для i3 pro, через пару недель вероятно они начнут писать драйвер для i3 lite
К сожалению, только зарегистрированные пользователи могут писать в этом форуме.

Авторизоваться на форуме