0. Описание
Секция статьи "0. Описание"
Программируемый логический контроллер настенного монтажа Z031 предназначен для работы в составе управляющей системы климатическими приборами.
Благодаря поддержке протокола связи Modbus RTU, контроллер Z031 является великолепным инструментом для создания недорогой распределенной системы управления. WiFi порт контроллера служит для организации локального и удаленного управления (через internet).
Z031 совместим со всеми контроллерами Zentec, а так же с контроллерами других производителей.
Контроллер может использоваться как полноценный ПЛК. Программы для Z031 создаются в пакете zWorkbench.
Контроллер имеет встроенные энергонезависимые часы реального времени, синхронизируемые по internet, программируемый таймер на 20 шагов и несколько одновременных действий.
Постороен контроллер на чипе ESP32.
1. Оглавление
Секция статьи "1. Оглавление"
Для удобства, вы можете быстро переместиться в необходимый раздел
- Описание
- Пример работы вентиляции в умном доме
- Официальная документация
- Список вентиляционных установок с которыми интегрируется данный плк
- Органы управления и индикации Z031
- Схема интеграции вентиляции в умный дом через SprutHub
- Подключение Z031 к Wi-Fi сети
- Интеграция в Wirenboard
- Установка теплейта (Шаблона) для Wirenboard
- Настройка wb-mqtt-serial.conf
- Как это выглядит в Wirenboard UI
- Интеграция в SprutHub
- Как это выглядит в HomeKit
- Как это выглядит в SprutHub
- Как это выглядит в Яндекс Умный дом
- Ссылки на все документы статьи
2. Пример работы вентиляции с умным домом
Секция статьи "2. Пример работы"Управление вентиляцией. Панель Z031 и интерфейс Wirenboard.
Управление вентиляцией. Панель Z031 и интерфейс SprutHub.
Управление вентиляцией. Панель Z031 и Яндекс Умный Дом.
3. Официальная документация
Секция статьи "3. Официальная документация"4. Список вентиляционных установок с которыми интегрируется данный плк
Секция статьи "4. Список вентиляционных установок с которыми интегрируется данный плк"
Полное название модели вентиляционной установки: Node4-125/E2
Изображение
загружается

Внешний вид вентиляционной установки Naveka Node4
Изображение
загружается

Вентиляционная установка Naveka Node4 в открытом виде
Изображение
загружается

Фото автоматики Zentec N131
Изображение
загружается

Клеммы подключения к RS485, автоматики Zentec N131
5. Органы управления и индикации Z031
Секция статьи "5. Органы управления и индикации"
Изображение
загружается

№ | Назначение | Описание |
1 | Индикатор работы вентилятора: | |
Выбранная скорость вентилятора | Горит постоянно в рабочем режиме. Отображает установленную скорость или автоматический режим работы (если предусмотрено программой) | |
Индикатор прогрева/завершения работы. (˜˜˜) | Мигает в рабочем или дежурном режиме — подготовка к работе / завершение ра- боты / прогрев (в зависимости от типа вентиляционной установки) | |
2 | Индикатор загрязненного фильтра и аварийных сооб- щений. | Индикатор «Фильтр» включается, когда необходимо сменить фильтрующий эле- мент вентиляционной установки. |
Индикатор «Авария» включается, когда возникла серьезная аварийная ситуация и дальнейшее продолжение работы невозможно без контроля со стороны человека. | ||
3 | Индикатор дополнительного режима (работает совместно с главным и вспомогательным индикатором): | |
Управление режимом увлажнения | Если в вентиляционной установке предусмотрен увлажнитель, то при выборе этого режима отображается текущая влажность и уставка. | |
Управление режимом осушения | Если в вентиляционной установке предусмотрен осушитель, то при выборе этого режима отображается текущая влажность и уставка. | |
Управление режимом поддержания качества воздуха | Если модель настенного контроллера Z031-3C0, то при выборе этого режима отображается текущее загрязнение воздуха и уставка. | |
4 | Индикатор физических параметров (работает совместно с главным индика- тором): | |
Индикатор температуры от встроенного в контроллер датчика | На главном дисплее отображается температура воздуха, измеренная в непосредственной близости от контроллера. | |
Индикатор температуры от датчика в канале воздуховода | На главном дисплее отображается температура воздуха, измеренная в канале воздуховода вентиляционной установки. | |
Индикатор температуры от датчика наружного воздуха | Если предусмотрено конструкцией венти- ляционной установки, то на главном дис- плее отображается температура воздуха, измеренная на улице. | |
Индикатор температуры от датчика воздуха в контролируемом помещении | Если предусмотрено конструкцией венти- ляционной установки, то на главном дис- плее отображается температура воздуха, измеренная в контролируемом помеще- нии. Обычно, датчик устанавливается в вытяжной воздуховод. | |
Индикатор температуры отработанного теплоносителя | В вентиляционных установках с жидкост- ным теплообменником на главном дис- плее отображается температура отрабо- танного теплоносителя. | |
Индикатор общей мощности нагревателя (в процентах) | На главном дисплее отображается теку- щая мощность нагревателя. | |
5 | Индикатор текущего дня недели | |
6
|
Индикатор главного режима обработки воздуха: | |
Индикатор автоматического выбора режима работы. |
Этот индикатор включен, если в конструкции вентиляционной установки предусмотрен датчик температуры наружного воздуха и настроен режим авто- матического выбора режима работы. | |
Индикатор режима «вентиляция» | Этот индикатор включен, когда вентиляционная установка работает без тепловой обработки воздуха. | |
Индикатор режима «охлаждение» | Этот индикатор включен, когда вентиляционная установка работает с охладителем воздуха. | |
Индикатор режима «нагревание» | Этот индикатор включен, когда вентиля- ционная установка работает с нагревателем воздуха. | |
7 | Вспомогательный индикатор: | |
Индикатор уставки температуры | Этот индикатор появляется для режима «нагревание». При активном индикаторе можно задать желаемую температуру. | |
Индикатор уставки влажности или качества воздуха | Этот индикатор появляется для режима «увлажнение», «осушение» и «качество воздуха». При активном индикаторе можно задать желаемое значение. | |
Индикатор группы и номера параметра | Этот индикатор является сервисным и обозначает, что контроллер находится в режиме параметризации. | |
8 | Главный индикатор: | |
Индикация времени | ||
Индикация кода ошибки | ||
Индикация температуры | ||
Индикация влажности или качества воздуха | ||
9 | Индикатор таймера: | |
Индикатор таймера | Этот индикатор включен, если выполня- ется программа управления установки по расписанию. | |
10 | Мультифункциональный блок сенсорных кнопок: | |
Кнопка 10.1 «Питание» | Кнопка управления. Переводит установку между режимами работы «Основной» и «Дежурный». | |
Кнопка 10.2 «Таймер/Режим» | Многофункциональная кнопка, с помо- щью которой осуществляется настройка времени, даты, смена режимов работы, вход в дополнительные меню. | |
Кнопка 10.3 «Вентилятор» | Многофункциональная кнопка, с помо- щью которой осуществляется изменение уставки скорости вращения вентилятора, вход в дополнительные меню. | |
Кнопка 10.4 «Стрелка вверх» | Многофункциональная кнопка, с помо- щью которой осуществляется изменение уставок и параметров, вход в дополни- тельные меню. | |
Кнопка 10.5 «Стрелка вниз» |
6. Схема интеграции вентиляции в умный дом через SprutHub
Секция статьи "6. Схема интеграции вентиляции в умный дом через SprutHub"
Изображение
загружается

Как мы можем видеть на схеме выше, RS485 в данном ПЛК исползуется лишь для связи с Автоматикой ПВУ. Где пульт выступает в роли мастера.
Поэтому для его интеграции будем использовать Modbus TCP. Благо у Z031 есть на борту Wi-Fi.
7. Подключение Z031 к Wi-Fi сети
Секция статьи "7. Подключение Z031 к Wi-Fi сети"К сожалению ввести название (SSDI) и пароль (PASS) от вашей Wi-Fi сети, на самой панели нельзя. Для этого проделаем следующие шаги.
7.1 Шаг 1: Активируем Wi-Fi модуль
Секция статьи "7.1 Шаг 1: Активируем Wi-Fi модуль"
• Перезапускаем пульт и автоматику
• На этапе загрузки, дожидаемся появления надписи SYS и таймера обратного отсчета
• Пока таймер ведет отсчет, нажимаем одновременно на кнопку включения и вентилятора и удерживаем их. До момента пока не увидим: PAS
• С помощью кнопок “Стрелка вниз” и “Стрелка вверх”, доходим до параметра “nEn”
Изображение
загружается

• Нажимаем и удерживаем кнопку “Таймер/Режим”, в течении 3 секунд. На экране отображается "0", что сигнализирует о том что Wi-Fi выключен
• Стрелками, выбираем цифру "1"
• Нажимаем на кнопку “Включения/Выключения”
Должна появиться новая точка доступа с названием “Zentec Z031 *************”
Изображение
загружается

7.2 Шаг 2: Подключаемся к Wi-Fi сети Z031
Секция статьи "7.2 Шаг 2: Подключаемся к Wi-Fi сети Z031"
• Находим Wi-Fi сеть созданную ПЛК
• Подключаемся к ней и вводим пароль
• Пароль: 12345678
7.3 Шаг 3: Подключаемся к WEB интерфейсу
Секция статьи "7.3 Шаг 3: Подключаемся к WEB интерфейсу"
• Открываем браузер (Safari/Chrome)
• В поисковой строке вводим: 192.168.1.1/pairing
• На дисплее загорится четырех значный код, например: 2689
Изображение
загружается

• В поисковой строке вводим: 192.168.1.1
• Откроется форма, с просьбой ввести логин и пароль
Изображение
загружается

• Вводим логин: admin
• Вводим пароль: наш четырех значный код, например: 2689
Если все прошло удачно, мы увидим интерфейс ПЛК.
7.4 Шаг 4: Подключаем z031 к нашей Wi-Fi сети
Секция статьи "7.4 Шаг 4: Подключаем z031 к нашей Wi-Fi сети"
• Заходим на вкладку конфигурирования сетевых интерфейсов
• В поле “Wi-Fi сеть”, вводим название (SSDI) нашей Wi-Fi сети
• В поле пароль, вводим пароль.
Должно появиться новое устройство в программе для сканирования IP адресов.
8. Интеграция в Wirenboard
Секция статьи "8. Интеграция в Wirenboard"
Как мы ранее уже разбирали, порт RS485, в данном дисплее используется для управления автоматикой ПВУ
Остается Wi-Fi, на котором реализованы поротоколы MQTT и Modbus TCP
Как включается MQTT, информацию мы не нашли, ни в настройках дисплея, ни в ее веб интерфейсе, ничего хотя бы намекающего, на наличие MQTT в данном ПЛК.
Остается вариант с Modbus TCP.
9. Установка теплейта (шаблона) для Wirenboard
Секция статьи "9. Установка теплейта (Шаблона) для Wirenboard"Заходим в cd /etc/wb-mqtt-serial-conf.d/templates/ и устанавливаем шаблон в папку
10. Настройка wb-mqtt-serial.conf
Секция статьи "10. Настройка wb-mqtt-serial.conf"
Изображение
загружается

• Добавляем новый порт
Изображение
загружается

• В Типе порта выбираем “Передача пакетов через TCP”
• Указываем IP адрес панели Z031
• Указываем номер TCP порта: 502
Изображение
загружается

• Нажимаем “+ Устройство”
Изображение
загружается

• Выбираем тип устройства “Панели управления”
• Выбираем Zentec Z031 Программируемый пользовательский терминал
Изображение
загружается

• Вводим адрес устройтсва 0 (Как правило это либо 0 либо 128)
• Нажимаем кнопку записать
11. Как это выглядит в Wirenboard UI
Секция статьи "11. Как это выглядит в Wirenboard UI"Видео демонстрация интерфейса WirenBoard UI
11.1 Создание виртуального устройтсва для интеграции в SprutHub
Секция статьи "11.1 Создание виртуального устройтсва для интеграции в SprutHub"
• Устанавливаем LogicCL
• Создаем новое правило со следующим наполнением:
const log = new Logger("zentecRule");
function createZentec(params) {
const id = params.id
const oldName = "Zentec_Z031_{}".format(id)
const newName = "Zentec_Z031_sh_{}".format(id)
const enTitleName = "Zentec ventilation {}".format(id)
const ruTitleName = "Вентиляционная установка Zentec {}".format(id)
defineVirtualDevice(newName, {
title: {
en: enTitleName,
ru: ruTitleName
},
cells: {
"TargetHeatingCoolingState": {
type: "range",
min: -1,
max: 1,
title: { //Указываем переводы
en: "TargetHeatingCoolingState",
ru: "Целевой режим термостата"
}
},
"TargetTemperature": {
type: "range",
value: 20,
min: 15,
max: 30,
title: { //Указываем переводы
en: "TargetTemperature",
ru: "Целевая температура"
}
},
"CurrentHeatingCoolingState": { //Указываем имя для контрола в который будем передавать текущий статус работы
type: "range", //Указываем тип контрола.
min: 0,
max: 1,
readonly: true,
value: 0, //Указываем значение по умолчанию.
title: { //Указываем переводы
en: "CurrentHeatingCoolingState",
ru: "Текущий режим термостата"
}
},
"CurrentTemperature": {
type: "value",
units: "deg C",
value: 10,
title: { //Указываем переводы
en: "CurrentTemperature",
ru: "Текущая температура"
}
},
"C_FunSpeed": { //Указываем имя для контрола в который будем передавать текущий статус работы
type: "range", //Указываем тип контрола.
min: 2,
max: 4,
value: 2, //Указываем значение по умолчанию.
title: { //Указываем переводы
en: "C_FunSpeed",
ru: "Скорость вентилятора"
}
}
}
});
// Целевой режим термостата RW + Текущий режим термостата RO
defineRule("{}/TargetHeatingCoolingState changed".format(newName), {
whenChanged: "{}/TargetHeatingCoolingState".format(newName),
then: function (newValue) {
switch (newValue) {
case 0:
dev[oldName]["State"] = false
break
case -1:
dev[oldName]["Mode"] = 0
dev[oldName]["State"] = true
break
case 1:
dev[oldName]["Mode"] = 1
dev[oldName]["State"] = true
break
}
}
});
defineRule("{}/State || {}/Mode changed".format(oldName, oldName), {
whenChanged: ["{}/State".format(oldName), "{}/Mode".format(oldName),],
then: function () {
if (dev[oldName]["State"]){
devStatus[newName]["TargetHeatingCoolingState"] = dev[oldName]["Mode"] == 1 ? 1 : -1
devStatus[newName]["CurrentHeatingCoolingState"] = dev[oldName]["Mode"]
} else {
devStatus[newName]["TargetHeatingCoolingState"] = 0
devStatus[newName]["CurrentHeatingCoolingState"] = 0
}
}
});
// Целевая температура RW
defineRule("{}/TargetTemperature changed".format(newName), {
whenChanged: "{}/TargetTemperature".format(newName),
then: function (newValue) {
dev[oldName]["TargetTemperature"] = newValue
}
});
defineRule("{}/TargetTemperature changed".format(oldName), {
whenChanged: "{}/TargetTemperature".format(oldName),
then: function (newValue) {
devStatus[newName]["TargetTemperature"] = newValue
}
});
// Текущая температура RO (Берем температуру в канале)
defineRule("{}/ChannelCurrentTemperature changed".format(oldName), {
whenChanged: "{}/ChannelCurrentTemperature".format(oldName),
then: function (newValue) {
devStatus[newName]["CurrentTemperature"] = newValue
}
});
// Скорость вентилятора" RW
defineRule("{}/C_FunSpeed changed".format(newName), {
whenChanged: "{}/C_FunSpeed".format(newName),
then: function (newValue) {
dev[oldName]["RotationSpeed"] = newValue - 1
}
});
defineRule("{}/RotationSpeed changed".format(oldName), {
whenChanged: "{}/RotationSpeed".format(oldName),
then: function (newValue) {
devStatus[newName]["C_FunSpeed"] = newValue + 1
}
});
}
createZentec({
id: 0 //Указываем Modbus ID нашего Z031
})
• Сохраняем и перезагружаем LogicCL
Должно появится виртуальное устройство, которое будем интегрировать в SprutHub.
12. Интеграция в SprutHub
Секция статьи "12. Интеграция в SprutHub"
Скачайте эти шаблоны и закиньте в папку: /mnt /data /makesimple /.SprutHub /data /Templates /MQTT /Custom
После этого перезагружаем SprutHub и у нас должно появиться устройство Zentec Z031.
13. Как это выглядит в HomeKit
Секция статьи "13. Как это выглядит в HomeKit"


Пример интерфейса вентиляции Naveka в приложении Apple Home
14. Как это выглядит в SprutHub и Sprut.home
Секция статьи "13. Как это выглядит в SprutHub и Sprut.home"Z031 и SprutHub


Пример интерфейса вентиляции Naveka в приложении Sprut Home
15. Как это выглядит в Яндекс Умный дом
Секция статьи "15. Как это выглядит в Яндекс Умный дом"Z031 и Алиса

Пример интерфейса вентиляции Naveka в приложении Яндекс Умный Дом