Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Использование контроллера PLCnext в качестве устройства умного дома через Home Assistant

Этот небольшой демонстрационный проект показывает, как легко использовать контроллер PLCnext в качестве устройства для умного дома в программном обеспечении для домашней автоматизации с открытым исходным кодом Home Assistant через REST API и Modbus TCP. С помощью контроллера PLCnext вы можете использовать компоненты Axioline в своей автоматизации, чтобы легко добавлять более мощные выходы, чем контакты GPIO Raspberry Pi, датчики температуры, такие как Pt100, и системы шин, такие как DALI. Все, что вам нужно, это работающая установка Home Assistant и контроллер PLCnext с небольшим, но работоспособным проектом PLCnext.

Предпосылки

Библиотеки:

Услуги домашнего помощника:

Описание функций

Чтобы дать краткий обзор возможностей использования контроллера PLCnext в качестве устройства умного дома, существует проект PLCnext, который может выполнять аппаратную перезагрузку других устройств, контролируя их напряжение питания с помощью реле. Сброс запускается командами, которые отправляются боту Telegram до отправки электронного письма с информацией о том, что перезапуск был инициирован. В этом примере будут показаны два разных способа подключения контроллера PLCnext к среде Home Assistant.

Архитектура

Подключение через Modbus TCP

Начиная с соединения Modbus TCP, сервер Modbus добавляется в проект PLCnext с помощью библиотеки Modbus TCPl. Конфигурация такая же, как в примере с библиотекой. Выбор правильного регистра Modbus зависит от типа данных и того, как они предназначены для использования. В этом случае переменные сопоставляются с регистром катушки.

Пожалуйста, обратите внимание на то, что сервер Modbus не поддерживает более одного соединения одновременно. Таким образом, если соединение не завершено правильно, что, к сожалению, иногда случается при тестировании соединения, сервер переходит в состояние ошибки и его необходимо перезапустить вручную. Во избежание этого рекомендуется запрограммировать автоматический перезапуск сервера Modbus в проекте PLCnext.

Для клиента Modbus в Home Assistant есть две основные возможности, и вы можете выбрать наиболее подходящую. Первый — использовать надстройку Node-RED и одну из доступных там библиотек Modbus. Более интуитивно понятным является настройка объекта в 00. вашей среды Home Assistant (дополнительная информация). Как показано ниже, используется стандартная служба переключения, которая является распространенным способом работы с логическими переменными, поскольку в ней реализованы функции включения/выключения для установки или сброса переменных.

01

Если вы выберете вариант Node-RED, имейте в виду, что он обычно запускает разные соединения для чтения и записи с Modbus TCP, так что сервер Modbus переходит в состояние ошибки, как упоминалось выше. Чтобы избежать этого, вы можете использовать Modbus UDP или два сервера Modbus в своем проекте PLCnext, один для чтения и один для записи.

Подключение через REST API

Второй вариант подключения — интерфейс данных PLCnext REST. Этот интерфейс связан с ЧМИ PLCnext, поэтому необходимо иметь хотя бы одну страницу ЧМИ в вашем проекте PLCnext, даже если она пуста, чтобы сделать API REST доступным. Кроме того, переменные должны быть подписаны флагом HMI. Для получения более подробной информации посетите Информационный центр PLCnext.

В этом случае надстройка Node-RED используется для генерации HTTP-запросов на стороне Home Assistant. Установка дополнения производится по этой и этой инструкции. Прежде чем продолжить, убедитесь, что вы выполнили оба шага.

Если активирована аутентификация пользователя HMI в проекте PLCnext, аутентификация в Node-RED может выглядеть следующим образом:

Поток запускает аутентификацию и сохраняет токен доступа, чтобы использовать его в последующих запросах. Точную структуру HTTP-запросов также можно найти в документации в информационном центре PLCnext.

Чтобы получить доступ к данным вашей среды Home Assistant в Node-RED, есть несколько узлов, поставляемых с надстройкой Node-RED. Короткий поток в нижней части следующего рисунка создает новый объект в Home Assistant, а в потоке выше этот объект проверяется на наличие изменений. Если объект установлен в значение true, переменная в контроллере PLCnext также устанавливается в значение true и запускает сброс. Поскольку переменная перезапуска в проекте PLCnext автоматически устанавливается в значение false после сброса, сущность в Home Assistant также устанавливается в значение false после задержки в 5 секунд.

Телеграмм-бот

Для связи с Home Assistant используется Telegram Bot API. Для использования этого нового бота необходимо зарегистрировать, следуя этой инструкции.

10 

Самый простой способ узнать свой id чата — написать боту сообщение, а затем запустить http запрос:

https://api.telegram.org/botYOUR_API_TOKEN/getUpdates

Полезным примером для бота Telegram может быть то, что он информирует вас каждое утро о сегодняшних погодных условиях, чтобы у вас было указание, что вам следует надеть в этот день. В этом проекте он получает еще одну задачу, чтобы выполнить жесткую перезагрузку ПЛК (нажать кнопку в регистрах Modbus) с помощью команды в Telegram. Команда «/MBrestartPLC» отправляется боту и запускает сценарий автоматизации в Home Assistant, который, наконец, изменяет значение регистра катушки Modbus, а «/RESTrestartPLC» делает то же самое с помощью REST API.

SMTP

В Home Assistant простой протокол передачи почты (SMTP) можно использовать для отправки электронных писем с выбором данных, доступных в вашей домашней автоматизации. Службу можно реализовать, добавив следующий код в 18 :

28

Нажмите здесь, чтобы получить дополнительную информацию о службе SMTP в Home Assistant.

Автоматизация

Если все сервисы и библиотеки реализованы и подготовлены, их нужно объединить. Это делается с помощью автоматики, запрограммированной в 21. среды Home Assistant. Структура автоматизации очень проста, как показано в таблице ниже. Псевдоним — это просто название автоматизации в Home Assistant. Триггер — это условие, которое должно быть истинным для выполнения автоматизации, например, определенная команда телеграммы, используемая в этом случае, а действие — это задача, например, в этом случае установка переменной в значение «истина» и отправка электронного письма.

Modbus TCP REST API
33 40

Заключение

Этот небольшой демонстрационный проект доказывает, что интегрировать контроллер PLCnext в домашнюю автоматизацию довольно просто. Доступность всех данных ПЛК в Home Assistant открывает путь для приложений, которые намного мощнее, чем в этом примере. Подумайте о более сложных программах ПЛК, которыми можно управлять и отслеживать в зависимости от погоды или других данных, доступных в Home Assistant.


Промышленные технологии

  1. Управление устройствами:не отставая от миллионов интеллектуальных счетчиков
  2. Приложения домашней автоматизации
  3. Использование шлюза IIoT с открытым исходным кодом для ускорения интеграции устройств Modbus
  4. Контроллер умного дома 433 МГц с Sensorflare и RaspberryPi
  5. Пробел в навыках умного дома
  6. Преимущества использования VIA в пэдах
  7. Использование доступного станка с ЧПУ для резки металла в домашних условиях
  8. Удаленный gRPC с помощью grpcurl
  9. Управление устройством PLCnext Control через SNMP
  10. Установка менеджера пакетов apt(-get) на PLCnext