HowTo: Node Red: controle el termostato del radiador FritzBox desde Node Red

Por curiosidad, recientemente pedí uno de los termostatos de radiador DECT para el FritzBox.

Como es habitual con los productos Fritz, la instalación y la puesta en marcha fueron muy sencillas. Se tarda menos de diez minutos en instalarlo y configurarlo.

A continuación, se pueden configurar todo tipo de opciones en la aplicación y en la interfaz de FritzBox. Entre otras cosas, tiempos fijos en los que se debe encender el radiador. Desafortunadamente, esta opción no es muy práctica para mí. Con lo que siempre he tenido buena suerte en el pasado es con encender la calefacción cuando hace frío afuera (menos de 15°C por ejemplo) y el televisor en la sala de estar está encendido (como una especie de detección de presencia).

Me gustaría volver a tener este comportamiento de cambio "dinámico". En el pasado, hice esto con algunos nodos en NodeRed. Gracias a Dios, también hay un nodo adecuado para controlar los termostatos de calefacción Fritz. Entonces solo tiene que configurarlos en consecuencia.

Puede encontrar un flujo de ejemplo para controlar un termostato de radiador Fritz DECT en este 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

Artículos útiles:
Para que pueda instalar nuevos nodos, por supuesto, NodeRed ya debería estar instalado.
En los siguientes artículos se describe cómo preparar una RaspberryPi y luego instalar NodeRed en ella.

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

NodeRed: instalación de NodeRed en RaspberryPi
NodeRed - código de nodo de importación y exportación

Herramienta requerida:
-No-

Material requerido:

En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.


Inicie sesión en la interfaz de configuración de NodeRed

Antes de que pueda editar su configuración de NodeRed, debe, si está activado, primero iniciar sesión en la interfaz de configuración de NodeRed.

Vista del cuadro de diálogo de inicio de sesión. Aquí debe ingresar los datos de inicio de sesión que especificó durante la configuración del inicio de sesión. Puedes encontrar información al respecto en el artículo NodeRed: configurar el inicio de sesión del usuario.

Instale el nodo FritzBox apropiado

Para que NodeRed pueda comunicarse con los termostatos de radiador conectados, debe instalar el nodo "node-red-contrib-fritzapi". Cómo se instala su nodo en el artículo NodeRed – Instalar nuevos nodos descrito.


NodeCode para controlar un termostato de radiador Fritz DECT

El estado actual del código del nodo es mi primer borrador de un control. Definitivamente continuaré trabajando en ello. Por lo tanto, no dude en solicitar actualizaciones si esta publicación no se ha actualizado durante mucho tiempo.

En la versión actual, puede mostrar la temperatura medida en el radiador y la temperatura objetivo o objetivo. Además, por supuesto, se puede ajustar la temperatura deseada.

Por último, pero no menos importante, también se muestra el estado de carga de las baterías en el termostato del radiador. Supongo que esto se muestra como un porcentaje. Sin embargo, dado que el estado de carga está actualmente en 100 y está cayendo muy lentamente, todavía tengo que observar cómo se desarrolla este valor a medida que cae.

Lo que ya instalé pero no pude activar es la función de impulso. Esta función se puede activar en el propio termostato presionando el botón de menú durante dos segundos. Esto calienta completamente el radiador por un corto período de tiempo. Por supuesto, sería práctico si también pudieras activarlos desde NodeRed para calentar una habitación de forma rápida y automática.

A continuación se muestran algunas vistas de la configuración y el NodeCode real.

Vista del flujo en la vista de configuración de NodeRed.

Vista de los controles en la vista del tablero.

Cómo puede importar el código de nodo a continuación se encuentra en el artículo NodeRed - código de nodo de importación y exportación descrito.

Como siempre, puede encontrar el NodeCode en el repositorio Nerdiy Git en el siguiente enlace:


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é. 🙂

Cómprame un café en ko-fi.com       

20s comentarios

  1. Hola, puede abordar la función de impulso de esta manera.

    [{"id":"1faf9813.1db958","tipo":"fritzbox-in","z":"c47fd6d2.77c058","dispositivo":"fae20a49.af3108","nombre":""," " servicio":"urna:dslforum-org:servicio:DeviceConfig:1","acción":"X_AVM-DE_CreateUrlSID","argumentos":"{}","x":490,"y":2440," cables ":[["b31af515.e51bd8"]]},{"id":"f8af624a.17eda","type":"inject","z":"c47fd6d2.77c058″,"name":"boost" , "accesorios":[{"p":"carga útil"},{"p":"tema","vt":"str"}],"repetir":"","crontab":""," once ":falso,"onceDelay":"3","tema":"impulsar","carga útil":"","tipo de carga útil":"fecha","x":130,"y":2480,"cables " :[["64d9a853.09dca8"]]},{"id":"864f66c3.198ed8","tipo":"depuración","z":"c47fd6d2.77c058","nombre":""," active ":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x": 1250 ,"y":2660,"cables":[]},{"id":"e82c0e1.b773af","tipo":"plantilla","z":"c47fd6d2.77c058","nombre":" gettemp ","field":"payload","fieldType":"msg","format":"handlebars","syntax":"bigote","template":"/webservices/homeautoswitch.lua?ain={ { ain}}&switchcmd=gettemperature&sid={{pa yload.NewX_AVM-DE_UrlSID}}","salida":"str","x":800,"y":2580,"cables":[["4abfff85.997b8"]]},{"id":" 4abfff85.997b8″,"tipo":"solicitud http","z":"c47fd6d2.77c058″,"nombre":"","método":"OBTENER","ret":"txt","paytoqs" :"ignorar","url":"https://fritz.box:443{{{payload}}}","tls":"402169f3.8da818″,"persist":false,"proxy":"" ,"authType":"","x":1050,"y":2660,"wires":[["864f66c3.198ed8"]]},{"id":"75765e63.210fb","tipo": "cambiar","z":"c47fd6d2.77c058″,"nombre":"establecer una","reglas":[{"t":"establecer","p":"ain","pt":" msg","to":"099950642052″,"tot":"str"}],"action":"","property":"","from":"","to":""," reg":falso,"x":850,"y":2440,"cables":[["4ca0ace7.858544"]]},{"id":"4ca0ace7.858544","tipo":"función" ,"z":"c47fd6d2.77c058","name":"now() + 5min","func":"//node.warn(Date.now());\nmsg.endtime = rounding(Date. now() / 1000 + 60 * 5, 0)\nreturn msg;\n\nfunction rounding(num, decimalPlaces = 0) {\n num = Math.round(num + \"e\" + decimalPlaces);\n devuelve Número(num + \"e\" + -decimalPlaces);\n}","outputs":1,"noerr":0,"initialize":"","" finalizar":"","x":450,"y":2680,"cables":[["2e6db71e.28fe78"]]},{"id":"b31af515.e51bd8","tipo":"cambiar ","z":"c47fd6d2.77c058","name":"limpiar SID","reglas":[{"t":"cambiar","p":"payload.NewX_AVM-DE_UrlSID","pt" :"msg","from":"sid="","fromt":"str","to":"","tot":"str"}],"action":"","property" : "","de":"","a":"","reg":falso,"x":700,"y":2440,"cables":[["75765e63.210fb"]]} , {"id":"34097198.32a5ae","type":"template","z":"c47fd6d2.77c058","name":"Impulsar un","field":"payload","fieldType": " msg","format":"handlebars","syntax":"bigote","template":"/webservices/homeautoswitch.lua?ain={{ain}}&switchcmd=sethkrboost&sid={{payload.NewX_AVM-DE_UrlSID } }&endtimestamp={{endtime}}","output":"str","x":800,"y":2620,"wires":[["4abfff85.997b8"]]},{"id" : "a0bfa44f.b806e8″,"type":"template","z":"c47fd6d2.77c058″,"name":"Boost off","field":"payload","fieldType":"msg", " format":"handlebars","syntax":"bigote","template":"/webservices/homeautoswitch.lua?ain={{ain}}&switchcmd=sethkrboost&sid={{payload.NewX_AVM-DE_UrlSID}}&end marca de tiempo = 0 ″, "salida": "str", "x": 800, "y": 2660, "cables": [["4abfff85.997b8"]]}, {"id": "2e6db71e.28fe78" ,"tipo":"cambiar","z":"c47fd6d2.77c058″,"nombre":"","propiedad":"tema","tipo de propiedad":"mensaje","reglas":[{"t ":"eq","v":"temp","vt":"str"},{"t":"eq","v":"boost","vt":"str"},{ "t":"eq","v":"noboost","vt":"str"},{"t":"eq","v":"ventana","vt":"str"} ,{"t":"eq","v":"nowindow","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x ":610,"y":2680,"cables":[["e82c0e1.b773af"],["34097198.32a5ae"],["a0bfa44f.b806e8"],["7d4888cf.55f988"],["4c9b3c7b. 984124"]]},{"id":"27537213.66face","type":"inject","z":"c47fd6d2.77c058","name":"noboost","props":[{"p ":"carga útil"},{"p":"tema","vt":"str"}],"repetir":"","crontab":"","once":false,"onceDelay": "3″,"tema":"noboost","carga útil":"","tipo de carga útil":"fecha","x":140,"y":2520,"cables":[["e0f67d6.2def88" ]]},{"id":"56ba18bf.b2f828","tipo":"inyectar","z":"c47fd6d2.77c058","nombre":"obtener temperatura","accesorios":[{"p ":"carga útil"},{"p":"tema","vt":"str"}],"repetir":"","crontab":"","una vez":falso,"onc eDelay":"3","tema":"temp","carga útil":"","tipo de carga útil":"fecha","x":140,"y":2440,"cables":[["7e0e1632 .c31dd8"]]},{"id":"4c9b3c7b.984124″,"tipo":"plantilla","z":"c47fd6d2.77c058","nombre":"ventana a","campo":" payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"/webservices/homeautoswitch.lua?ain={{ain}}&switchcmd=sethkrwindowopen&sid= {{payload.NewX_AVM-DE_UrlSID}}&endtimestamp=0″,"salida":"str","x":810,"y":2740,"cables":[["4abfff85.997b8"]]},{ "id":"7d4888cf.55f988","tipo":"plantilla","z":"c47fd6d2.77c058","nombre":"ventana abierta","campo":"carga útil","fieldType":" msg","format":"handlebars","syntax":"bigote","template":"/webservices/homeautoswitch.lua?ain={{ain}}&switchcmd=sethkrwindowopen&sid={{payload.NewX_AVM-DE_UrlSID} }&endtimestamp={{endtime}}","output":"str","x":810,"y":2700,"wires":[["4abfff85.997b8"]]},{"id": "5560a2ca.10bc6c","type":"inject","z":"c47fd6d2.77c058″,"name":"window","props":[{"p":"payload"},{"p ":"tema","vt":"str"}],"repetir":"","crontab":"","una vez":fa lse,"onceDelay":"3","topic":"window","payload":"","payloadType":"date","x":130,"y":2560,"wires":[ ["cda59701.f28878"]]},{"id":"18250461.024fbc","tipo":"inyectar","z":"c47fd6d2.77c058″,"nombre":"ventana a","accesorios" :[{"p":"carga útil"},{"p":"tema","vt":"str"}],"repetir":"","crontab":"","una vez":falso ,"onceDelay":"3″,"topic":"nowindow","payload":"","payloadType":"date","x":140,"y":2600,"wires":[[ "804b42ac.172b3"]]},{"id":"cda59701.f28878","tipo":"ui_button","z":"c47fd6d2.77c058","nombre":"","grupo":" 5a2c927c.ba1edc","order":5,"width":0,"height":0,"passthru":true,"label":"window open","tooltip":"","color":" ","bgcolor":"","icon":"","carga útil":"","tipo de carga útil":"fecha","tema":"ventana","tipo de tema":"str","x" :320,"y":2560,"wires":[["1faf9813.1db958"]]},{"id":"804b42ac.172b3","type":"ui_button","z":"c47fd6d2. 77c058″,"name":"","group":"5a2c927c.ba1edc","order":6,"width":0,"height":0,"passthru":true,"label":"window cerrado","información sobre herramientas":"","color":"","bgcolor":"","icono":"","carga útil":"","tipo de carga útil":"fecha","tema": "nowindow","topicType":"str","x":320,"y":2600,"wires":[["1faf9813.1db958"]]},{"id":"64d9a853.09dca8″, "tipo":"ui_button","z":"c47fd6d2.77c058″,"nombre":"","grupo":"5a2c927c.ba1edc","orden":2,"ancho":0,"alto" :0,"passthru":true,"label":"boost 5m","tooltip":"","color":"","bgcolor":"","icon":"","payload": "","payloadType":"date","topic":"boost","topicType":"str","x":300,"y":2480,"wires":[["1faf9813.1db958" ]]},{"id":"e0f67d6.2def88","tipo":"ui_button","z":"c47fd6d2.77c058","nombre":"","grupo":"5a2c927c.ba1edc", "orden": 3, "ancho": 0, "alto": 0, "paso a través": verdadero, "etiqueta": "impulsar", "información sobre herramientas": ""," color": ""," bgcolor" :"","icono":"","carga útil":"","tipo de carga útil":"fecha","tema":"noboost","topicType":"str","x":300,"y ":2520,"cables":[["1faf9813.1db958"]]},{"id":"7e0e1632.c31dd8","tipo":"ui_button","z":"c47fd6d2.77c058","nombre ":"","group":"5a2c927c.ba1edc","order":2,"width":0,"height":0,"passthru":true,"label":"get temp","tooltip ":"","color":"","bgcolor":"","icono":"","carga útil":"","tipo de carga útil":"fecha","tema":"temp ","topicType":"str","x":300,"y":2440,"wires":[["1faf9813.1db958"]]},{"id":"fae20a49.af3108","tipo ":"fritzbox-config","name":"fritz","host":"fritz.box","port":"49443″,"ssl":true,"user":"user"},{ "id":"402169f3.8da818","tipo":"tls-config","nombre":"","cert":"","clave":"","ca":"","certname ":"","keyname":"","caname":"","servername":"","verifyservercert":false},{"id":"5a2c927c.ba1edc","type":"ui_group ","name":"test","tab":"42b914b0.66a0ac","order":null,"disp":true,"width":"6″,"collapse":false},{"id ":"42b914b0.66a0ac","tipo":"ui_tab","nombre":"Principal","icono":"panel","orden":1,"deshabilitado":falso,"oculto":falso} ]

  2. Hola, gran ejemplo! He podido hacer mucho con mis dispositivos Fritz. Pero no puedo hacer funcionar la lámpara Fritz Dect 500. Puede leer el estado, pero no cambiar ni cambiar de color. Ya busqué todo pero no encontré ejemplos de FritzDect500. ¿Tiene un flujo de ejemplo como el uso del nodo de activación/desactivación simple?

    Saludos, Mathias

    1. Hola Mathias,
      lamentablemente aún no he probado el DECT500. Pero lo acabo de pedir y le echaré un vistazo. En realidad, eso también debería ser posible. 🙂
      Atentamente
      Fabian

  3. Hola Fab,
    Gracias por tus grandes ejemplos.
    Probé tu ejemplo para la válvula del radiador Fritz conmigo. Funciona hasta ahora que puedo ver las temperaturas reales y objetivo en el tablero. Solo cuando selecciono una nueva temperatura objetivo en el tablero, la pantalla vuelve muy rápidamente a la temperatura original establecida en el Fritzbox. La escritura de la temperatura de consigna no parece funcionar.
    ¿Tienes un consejo para mí? Desafortunadamente, todavía soy un principiante con Nodered.
    Gracias y un saludo
    Jaoquim

    1. Hola Joachim,
      hmm, para ser honesto, no puedo explicarlo. Acabo de probarlo en el mío y parece funcionar allí.
      ¿Puede estimar aproximadamente después de cuánto tiempo se restablecerá el valor del punto de referencia? ¿Podría eso equivaler a unos 5 segundos?
      Atentamente
      Fabian

  4. hola fabián
    Estoy muy entusiasmado con sus proyectos y explicaciones.....
    Desafortunadamente, soy un principiante absoluto en este campo y estoy buscando una manera de obtener la humedad y las señales de 4 botones en Node Red del Fritz Dect 440.

    Cordón de fabricación

    1. hola cable,
      lamentablemente no tengo el DECT 440 disponible, por lo que aún no he podido intentar crear el código para él. Tan pronto como lo tenga en mis manos, lo publicaré aquí también. 🙂
      Atentamente
      Fabian

  5. Hola,

    También tengo mis problemas con el uso de los "nodos Fritz" y tal vez pueda obtener un consejo aquí. La ayuda z. Por ejemplo, el nodo "termostato" es bastante pobre en sí mismo. Entonces ella dice, p. Por ejemplo, no en lo que se siente como 20 opciones en el campo desplegable de acción. Por lo tanto, no está del todo claro cómo, por ejemplo, se controla la detección de ventanas abiertas. ¿Qué espera este nodo en la entrada? En este caso especial de detección de ventana, ¿un "verdadero"/"falso", "VERDADERO"/"FALSO", "encendido"/"apagado", "ENCENDIDO"/"APAGADO" o incluso simplemente "1"/"0"? En el caso de la detección de ventanas, la documentación suena como si incluso pudiera especificar el tiempo de espera como un segundo parámetro. En ese caso. ¿Como funciona?
    Tendría aún más preguntas sobre la configuración de la temperatura en sí, pero dado que esta configuración a través de FritzBox y DECT es obviamente extremadamente lenta, tiendo a automatizar solo la detección de ventana para mis termostatos Fritz existentes (a través del contacto de ventana Zigbee externo).
    No necesito necesariamente una novela larga aquí sobre cómo funciona algo. Un enlace a una documentación de trabajo actual sería útil. O soy demasiado estúpido para encontrarlo o simplemente no existe.

    Saludos, franco

  6. Ok, no me dio paz.
    Si elige la acción 'Establecer el modo "Ventana abierta" para la cantidad de minutos dada', debe proporcionar un número para el tiempo de espera del termostato como carga útil. Por ejemplo, "5" por 5 minutos.
    Que ayude a aquellos que no entienden la descripción del nodo de inmediato y luego encuentren lo que buscan aquí. 🙂

    Saludos, franco

    1. hola franco,
      gracias por la pista. Conozco el sentimiento (que no hay descanso). 😀
      Y también encuentro que la transferencia de la configuración usando el FritzBox es un poco lenta. Una de las razones por las que cambié a Zigbee. Pero también puedo imaginarme volviendo a FritzBox. Tengo curiosidad acerca de su implementación Matter. 🙂
      Gracias de nuevo y un saludo
      Fabian

  7. Hola,

    Una pregunta rápida sobre la "ventana abierta": ¿la nueva temperatura se transfiere inmediatamente al termostato o se retrasa? Hasta ahora, los valores siempre se han transmitido al termostato con retraso.

    Atentamente

    el pequeño

    1. Hola Mateo,
      Desafortunadamente, creo que hay un ligero retraso por razones técnicas. Hasta donde yo sé, el FritzBox solo puede enviar datos a través del sistema DECT durante una cierta cantidad de tiempo por ventana de tiempo. Según la cantidad de tráfico de datos que se esté produciendo actualmente, los mensajes pueden llegar con un ligero retraso.
      (Pero eso también es un poco de conocimiento a medias peligroso. :/) Tendría que leer allí de nuevo.
      Estos retrasos (y los precios de los actuadores Fritz) también fueron una de las razones por las que cambié al sistema Zigbee para los demás termostatos. 🙂
      Atentamente
      Fabian

      1. Buenos días Fabián,

        ¿A qué termostatos con Zigbee te cambiaste?
        ¿Entonces también los controla a través de NodeRed?
        Los precios que encontré actualmente no son asequibles 🙁

        ¡Estaría muy interesado en eso y lo convertiría gradualmente si el precio fuera correcto!

        Atentamente

        matias

        1. Hola Mathias,
          Sí, eso es cierto, también lo noté recientemente. Ya me había cambiado a estos termostatos a principios del año pasado: https://www.zigbee2mqtt.io/devices/SPZB0001.html#eurotronic-spzb0001
          En ese momento costaban unos 20 euros por termostato. Gracias a Zigbee2mqtt, los termostatos se pueden configurar y controlar a través de MQTT. Los nuevos valores se adoptan entonces directamente. Realmente me gusta todo el sistema Zigbee ahora porque simplemente funciona. Tampoco tengo problemas de alcance, porque los participantes Zigbee alimentados permanentemente actúan automáticamente como repetidores.
          Atentamente
          Fabian

  8. El control funciona hasta el momento. Las temperaturas solo se toman con retraso debido a Fritz, pero eso se sabía y también ocurre cuando se controla a través de la interfaz de Fritz.
    Lamentablemente, la función de impulso genera un error. ¿Alguna idea de qué podría ser eso?

    Salida en impulso:
    {"error":null, "response":{"statusCode":500, "body":"", "headers":{"cache-control": "no-cache", "connection": "close", "content-length": "0″, "content-type": "text/plain; charset=utf-8″, "expires":"-1″, "pragma":"no-cache", "x-frame-options": "SAMEORIGIN", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "content-security-policy": "default-src 'none'; connect-src 'self'; font-src 'self'; frame-src". https://service.avm.de https://fritzhelp.avm.de/help/ https://help.avm.de https://www.avm.de https://avm.de https://assets.avm.de https://clickonce.avm.de http://clickonce.avm.de http://download.avm.de https://download.avm.de 'self'; img-src 'self' https://tv.avm.de https://help.avm.de/images/ http://help.avm.de/images/ data:; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; frame-ancestors 'self'; media-src 'self'"}, "request":{"uri":{"protocol": "http:", "slashes":true, "auth":null, "host": "192.168.178.1″,“port“:80,“hostname“:“192.168.178.1″,“hash“:null,“search“:“?0=0&si…

  9. Hola,
    ¿Alguien sabe por qué node-red-contrib-fritzapi no puede dirigirse al termostato dect 302?
    Siempre aparece un mensaje de error: dispositivo desconocido: xxxxxxxxxxxxxxx
    {"Dispositivos válidos":{"Termostato cocina": "xxxxxxxxxxxxxxx"}}
    Saludos Friedrich

  10. Ja, das hst si h gelöst, ich weiß allerdings nicht mehr, was es war, ich glaube, ich habe s zurückgesetzt und neu agemeldet. Derzeit betreibe ich 4 Stck und habe keine Probleme, allerdings kann eine Reaktion mal ein paar Minuten auf sich warten lassen.

Kommentar hinterlassen

Tu dirección de correo electrónico no será publicada. Erforderliche Felder sind mit * markiert

Este sitio utiliza Akismet para reducir el spam. Conozca cómo se procesan los datos de sus comentarios.