Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Uso de un controlador PLCnext como dispositivo doméstico inteligente a través de Home Assistant

Este pequeño proyecto de demostración muestra cómo usar fácilmente un controlador PLCnext como un dispositivo doméstico inteligente en el software de automatización del hogar de código abierto Home Assistant a través de la API REST y Modbus TCP. Con el controlador PLCnext, puede usar los componentes Axioline en su automatización para agregar fácilmente salidas más potentes que los pines GPIO de Raspberry Pi, sensores de temperatura como Pt100 y sistemas de bus como DALI. Todo lo que necesita es una instalación de Home Assistant que funcione y un controlador PLCnext con un proyecto PLCnext pequeño pero ejecutable.

Requisitos

Bibliotecas:

Servicios de asistente en el hogar:

Descripción de la funcionalidad

Para dar una breve descripción de las posibilidades de usar un controlador PLCnext como un dispositivo doméstico inteligente, hay un proyecto PLCnext que puede restablecer otros dispositivos controlando su voltaje de suministro con relés. Los reinicios se activan mediante comandos que se envían a un bot de Telegram, antes de que se envíe un correo electrónico con la información de que se inició un reinicio. Este ejemplo se mostrará con dos formas diferentes de conectar el controlador PLCnext al entorno de Home Assistant.

Arquitectura

Conexión a través de Modbus TCP

Comenzando con la conexión Modbus TCP, se agrega un servidor Modbus al proyecto PLCnext utilizando la biblioteca Modbus TCP. La configuración es la misma que en el ejemplo de la biblioteca. La elección del registro Modbus correcto depende del tipo de datos y de cómo deben utilizarse. En este caso, las variables se asignan al registro de la bobina.

Preste atención al hecho de que el servidor Modbus no admite más de una conexión a la vez. Entonces, si una conexión no finaliza correctamente, lo que desafortunadamente sucede a veces mientras se prueba la conexión, el servidor entrará en un estado de error y deberá reiniciarse manualmente. Para evitar esto, se recomienda programar un reinicio automático del servidor Modbus en el proyecto PLCnext.

Para el cliente Modbus, hay dos posibilidades principales en Home Assistant y depende de usted elegir su favorito. El primero es usar el complemento Node-RED y una de las bibliotecas Modbus que están disponibles allí. La más intuitiva es configurar una entidad en el configuration.yaml de tu entorno Home Assistant (más información). Como se muestra a continuación, se usa el servicio de cambio estándar, que es una forma común de trabajar con variables booleanas, porque ha implementado funcionalidades de activación/desactivación para establecer o restablecer las variables.

modbus: 
    type: tcp           # using Modbus TCP 
    host: YOUR_SERVER_IP    # fill the server ip address  
    port: 502 
    name: hub1          # could be changed  
switch: 
  - platform: modbus 
    coils: 
      - name: restartMB     # could be changed 
        hub: hub1 
        slave: 1 
        coil: 13            # the register position of the variable 

Si elige la posibilidad Node-RED, tenga en cuenta que normalmente inicia diferentes conexiones para leer y escribir con Modbus TCP, por lo que el servidor Modbus entra en un estado de error como se mencionó anteriormente. Para evitar esto, puede utilizar Modbus UDP o dos servidores Modbus en su proyecto PLCnext, uno para lectura y otro para escritura.

Conexión a través de API REST

La segunda posibilidad de conexión es la interfaz de datos PLCnext REST. Esta interfaz está relacionada con PLCnext HMI, por lo que es necesario tener al menos una página HMI en su proyecto PLCnext, incluso si está vacía, para que la API REST esté disponible. Además, las variables deben estar firmadas con la bandera HMI. Para obtener información más detallada, consulte el centro de información de PLCnext.

En este caso, el complemento Node-RED se usa para generar solicitudes HTTP en el lado de Home Assistant. La instalación del complemento se realiza siguiendo estas y estas instrucciones. Asegúrese de haber realizado ambos pasos antes de continuar.

Si la autenticación de usuario HMI en el proyecto PLCnext está activada, la autenticación en Node-RED podría verse así:

El flujo ejecuta la autenticación y almacena el token de acceso para usarlo en las solicitudes posteriores. Para conocer la estructura exacta de las solicitudes HTTP, consulte también la documentación en el centro de información de PLCnext.

Para acceder a los datos de su entorno de Home Assistant en Node-RED, hay varios nodos que vienen con el complemento Node-RED. El breve flujo en la parte inferior de la siguiente figura crea una nueva entidad en Home Assistant y en el flujo de arriba se verifica si hay cambios. Si la entidad se establece en verdadero, una variable en el controlador PLCnext también se establece en verdadero y activa un restablecimiento. Debido a que la variable de reinicio en el proyecto PLCnext se establece automáticamente en falso después del reinicio, la entidad en Home Assistant también se establece en falso después de un retraso de 5 segundos.

Bot de Telegram

Para comunicarse con Home Assistant se utiliza la API de Telegram Bot. Para usar esto, se debe registrar un nuevo bot siguiendo estas instrucciones.

telegram_bot:
  - platform: polling
    api_key: YOUR_API_TOKEN
    allowed_chat_ids:
      - YOUR_CHAT_ID_1
      - YOUR_CHAT_ID_2 

La forma más fácil de encontrar su ID de chat es escribir un mensaje a su bot y luego iniciar la solicitud http:

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

Un ejemplo útil para el Telegram Bot podría ser que te informe cada mañana sobre las condiciones climáticas de hoy, para que tengas una indicación de lo que debes usar ese día. En este proyecto tiene otra tarea, hacer un restablecimiento completo de un PLC (pulsar el botón en los registros de Modbus) mediante un comando en Telegram. El comando "/MBrestartPLC" se envía al bot e inicia un script de automatización en Home Assistant, que finalmente cambia el valor de registro de la bobina Modbus y "/RESTrestartPLC" hace lo mismo usando la API REST.

SMTP

En Home Assistant se puede utilizar el Protocolo Simple de Transferencia de Correo (SMTP) para enviar correos electrónicos con una selección de los datos disponibles en tu domótica. El servicio se puede implementar agregando el siguiente código al configuration.yaml :

notify:
  - name: SMTP_MESSENGER # could be changed
    platform: smtp
    server: SMTP_SERVER # e.g. smtp.gmail.com
    port: 587
    timeout: 15
    sender: YOUR_EMAIL_ADRESS
    encryption: starttls
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    recipient:
      - EMAIL_ADRESS_OF_THE_RECIPIENT
    sender_name: My Home Assistant # could be changed 

Haga clic aquí para obtener más información sobre el servicio SMTP en Home Assistant.

Automatizaciones

Si todos los servicios y bibliotecas están implementados y preparados, deben combinarse. Esto lo hacen las automatizaciones que están programadas en el automations.yaml del entorno de Home Assistant. La estructura de una automatización es muy simple como se muestra en la siguiente tabla. El alias es solo el nombre de la automatización en Home Assistant. El activador es la condición que debe cumplirse para ejecutar la automatización, como cierto comando de Telegram como se usa en este caso, y la acción es la tarea, como en este caso establecer una variable en verdadero y enviar un correo electrónico.

Modbus TCP API REST
- id: '1' alias: 'Trigger a reset of a controller via modbus' trigger: platform: event event_type: telegram_command event_data: command: '/MBrestartPLC' action: - service: switch.turn_on entity_id: switch.restartMB - service: notify.SMTP_MESSENGER data: title: 'PLC message' message: 'PLC restart initiated via modbus!' - id: '2' alias: 'Trigger a reset of a controller via rest api' trigger: platform: event event_type: telegram_command event_data: command: '/RESTrestartPLC' action: - service: switch.turn_on entity_id: switch.restartREST - service: notify.SMTP_MESSENGER data: title: 'PLC message' message: 'PLC restart initiated via rest!'

Conclusión

Este pequeño proyecto de demostración demuestra que es bastante simple integrar un controlador PLCnext en una domótica. La disponibilidad de todos los datos del PLC en Home Assistant allana el camino para aplicaciones que son mucho más potentes que este ejemplo. Piense en programas de PLC más complejos que puedan controlarse y monitorearse en función del clima u otros datos disponibles en Home Assistant.


Tecnología Industrial

  1. Administración de dispositivos:mantenerse al día con millones de medidores inteligentes
  2. Aplicaciones de automatización del hogar
  3. Uso de una puerta de enlace IIoT de código abierto para acelerar la integración de dispositivos Modbus
  4. Puesta en servicio inalámbrica en hogares inteligentes
  5. 433MHz Smart Home Controller con Sensorflare y RaspberryPi
  6. La brecha de habilidades para el hogar inteligente
  7. Ventajas de usar VIA en pads
  8. Uso de una máquina CNC asequible para corte de metal en el hogar
  9. gRPC remoto usando grpcurl
  10. Gestión de un dispositivo PLCnext Control a través de SNMP
  11. Instalación del administrador de paquetes apt(-get) en PLCnext