En el artículo RaspberryPi – Instale el servidor MQTT en RaspberryPi Escribí un poco sobre MQTT y expliqué cómo instalar su propio servidor MQTT en RaspberryPi.
Para que también pueda usar un servidor MQTT de FHEM, todavía tiene que instalar algunos módulos FHEM. He descrito cómo funciona esto y a qué debe prestar atención en el siguiente artículo.
Instrucciones de seguridad
Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/
Enlaces afiliados / enlaces publicitarios
Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂
Requisitos
Antes de comenzar con este artículo, debe haber preparado la RaspberryPi para que pueda accederse a ella a través de la red y controlarse a través de SSH.
Los siguientes tres artículos describen lo que se debe hacer para preparar la RaspberryPi:
RaspberryPi: ¡configuración para nerdiys!
RaspberryPi – ¡La primera configuración!
RaspberryPi: controle el RaspberryPi a través de SSH
Tu propia casa inteligente – instalación e ingreso a FHEM
Mosquitto en Raspberry: instale el servidor MQTT en RaspberryPi
Herramientas necesarias:
-No-
Materiales necesitados:
En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.
Inicie sesión en RaspberryPi a través de SSH
Para comenzar, primero debe iniciar sesión en Rasp Pi con Putty a través de SSH. Cómo hacer esto está en el artículo. RaspberryPi - Controle el RaspberryPi a través de SSH descrito.
Gestión de paquetes de actualización
La gestión de paquetes en Linux es un "lugar central" a través del cual se pueden instalar varios paquetes de software. Para que esto funcione de manera confiable, las listas y fuentes de administración de paquetes deben actualizarse antes de cada instalación de nuevos paquetes.
sudo apt-obtener actualización && sudo apt-obtener actualización
Instalar paquetes Perl MQTT
Para que FHEM pueda comunicarse con el servidor MQTT, se deben instalar dos paquetes de Perl.
sudo apt-get install libmodule-pluggable-perl && sudo cpan install Net::MQTT:Simple && sudo cpan install Net::MQTT:Constantes
La instalación de los dos paquetes me llevó unos cinco minutos. Así que tiempo suficiente para tomar otra taza de café. 🙂
Crear clientes MQTT
Para poder establecer una conexión con un dispositivo MQTT en el siguiente paso, primero se debe crear un cliente MQTT. Esto guarda la información necesaria para conectarse al servidor MQTT más tarde.
definir mqttCliente MQTT 192.168.0.1:1883
El comando para crear un cliente MQTT corresponde al siguiente “definir nombre-de-cliente-mqtt-host-o-ip-de-servidor-mqtt-mqtt:puerto-de-servidor”. Si su servidor MQTT tiene la dirección IP “192.168.0.1”, el puerto 1883, que corresponde al puerto estándar para MQTT), el comando para crear el cliente MQTT es “define mqttClient MQTT 192.168.0.1:1883”. Por supuesto, se puede utilizar cualquier otro nombre para “mqttClient”.
apagar reiniciar
Una vez que el servidor se haya reiniciado, estará listo para crear nuevos puentes y dispositivos MQTT.
Configuración del puente MQTT con un termostato de calefacción MAX!
En este ejemplo, creamos un puente MQTT. Como sugiere el nombre, el puente MQTT conecta algo. En este caso el termostato de calefacción MAX! con el mundo MQTT. En principio, este enlace funciona según el mismo esquema con todos los sensores o actuadores ya instalados. En el caso del MAX! El termostato de calefacción funciona con el siguiente mando.
defineHeatingWorkroomMqtt MQTT_BRIDGE MAX_15504f
Esto crea el módulo “HeatingWorkroomMqtt” de tipo “MQTT_BRIDGE” y lo vincula al módulo ya existente “MAX_15504f”.
También existe el atributo "publishReading_XYZ". Esto hace que el puente MQTT reenvíe automáticamente todas las actualizaciones de la lectura "XYZ" al tema especificado.
attr HeizArbeitszimmerMqtt publicarReading_temperature heizung/Arbeitszimmer/temperatura
Asegúrate de que “publishReading” y “temperature” (la lectura del termostato del radiador (o cualquier otro sensor/actuador)) deben estar conectados con un guión bajo. Esto da como resultado "publishReading_temperature".
Para la lectura "Batería", todo se vería así.
attr HeizArbeitszimmerMqtt publicarLectura_batería heizung/Arbeitszimmer/batería
attr HeizArbeitszimmerMqtt subscribeSet_desiredTemperature heizung/Arbeitszimmer/desiredTemperature
Esto hace que se suscriba el tema "calefacción/estudio/temperatura deseada" y cada valor recibido del mismo se ingresa automáticamente en la lectura "temperatura deseada". De esta manera puede controlar la temperatura deseada del termostato de calefacción a través del mensaje MQTT.
Probando el puente MQTT establecido
Aquí se describe una forma de probar el puente MQTT recién creado.
Para ello creé un mini visor MQTT en NodeRed que te muestra los valores para los temas establecidos “calefacción/estudio/temperatura” y “calefacción/estudio/batería” ser enviado. También tienes la opción de adjuntar al tema “calefacción/estudio/temperatura deseada” para enviar el valor 25. En consecuencia, si todo funciona correctamente, el termostato del radiador vinculado se establece en 25 °C.
… encuentra la “temperatura deseada”. Esta es la lectura que tenemos en la configuración del puente MQTT con el tema MQTT “calefacción/estudio/temperatura deseada” han vinculado. El valor actual de la lectura y la hora de la última actualización también se muestran aquí.
Si ahora hace clic en el nodo de inyección en el visor MQTT autoconstruido, está enviando el valor 25 al tema “calefacción/estudio/temperatura deseada”. Esto ahora también debería actualizar la lectura de su termostato de calefacción al valor 25. Además, la hora de la última actualización se establece en la hora actual.
Para realizar la prueba en sentido contrario, es decir, la publicación de una lectura modificada en un tema MQTT, basta con desplazarse hasta la parte superior de la vista detallada del termostato de calefacción MAX!. Una vez allí, cambie la temperatura deseada de su termostato de calefacción como se muestra.
Crear un dispositivo MQTT usando un sensor de temperatura como ejemplo
Otra posibilidad del módulo MQTT es la creación de dispositivos MQTT. Esto incluye todos los sensores o dispositivos que envían sus valores medidos directamente a través de MQTT. Para registrar estos valores y resumirlos en un sensor virtual, debe crear un dispositivo MQTT.
En este ejemplo, tenemos un sensor de temperatura en nuestra red que envía el valor de temperatura medido a intervalos regulares a través del tema MQTT "datos ambientales/sótano/temperatura". Para registrar esto, primero se crea un dispositivo MQTT usando el siguiente comando.
definir kellerSensor MQTT_DEVICE
Antes de que este MQTT_Device pueda mostrar valores, por supuesto, primero debe estar vinculado al tema MQTT deseado. En este ejemplo, queremos mostrar todos los valores entrantes en el tema MQTT "Datos ambientales/bodega/Temp" en el dispositivo MQTT creado.
Para hacer esto, debe establecer el siguiente atributo:
attr kellerSensor subscribeReading_Temp Datos ambientales/keller/Temp
Esto hace que la lectura "Temp" se cree en el MQTT_Device "kellerSensor" creado y se vincule al tema suscrito "Environmental data/keller/Temp".
Para que la vista sea aún más bonita, puede utilizar el siguiente atributo para especificar que se debe agregar un "°C" al valor de temperatura de lectura.
attr kellerEstado del sensorFormat Temp °C
Más información
https://wiki.fhem.de/wiki/MQTT_Einf%C3%BChrung
Diviértete con el proyecto.
Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂
PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂
hola fabuloso
Muchas gracias por toda la información que ha puesto a su disposición aquí. Pasé muchos años con Home Assistant y nada de tiempo con FHEM, que ahora estoy usando para tratar de tener un mejor control de mis dispositivos de calefacción FHT. Si puedo hacer que FHEM se comunique con un servidor MQTT existente, ese sería mi sueño.
Tengo FHEM ejecutándose en el sistema operativo Raspian dentro de un contenedor docker, la instalación se realizó según su consejo sin errores, pero cuando intento ingresar los comandos a través de la interfaz web de FHEM, aparece No se puede cargar el módulo MQTT_BRIDGE o No se puede cargar el módulo MQTT_CLIENT, lo que me hace ¿Piensa que me equivoqué al no instalar perl/mqtt desde el contenedor docker o que no hice nada dentro de FHEM para invocar la nueva capacidad MQTT?
Atentamente
Mella