Tabla de contenido:

NEST su antiguo termostato: 4 pasos (con imágenes)
NEST su antiguo termostato: 4 pasos (con imágenes)

Video: NEST su antiguo termostato: 4 pasos (con imágenes)

Video: NEST su antiguo termostato: 4 pasos (con imágenes)
Video: Cómo instalar y configurar tu Nest Thermostat 2024, Mes de julio
Anonim
Image
Image
Cómo funciona un termostato
Cómo funciona un termostato

El sistema de calefacción de mi casa probablemente sea tan antiguo como la propia casa. Tiene alrededor de 30 años, lo cual está bien en términos de años de casa, pero está bastante atrapado en la era del hielo en lo que respecta a la tecnología. Hay 2 problemas principales con las soluciones comerciales:

  • precios prohibitivos
  • producto como servicio

Todos recordamos lo que le sucedió a Revolv y no estoy muy interesado en que esto me suceda en medio del invierno. Con eso en mente, le presento un controlador similar a NEST de aspecto increíblemente sospechoso pero funcional para su antiguo termostato. ¡No se preocupe, estoy planeando agregar pronto un recinto mucho mejor!

Características:

  • capacidad de usar un termostato existente (en caso de que la esposa se queje por ello)
  • acceso remoto
  • Modo AUSENTE
  • indicador de temperatura óptima
  • Funciona con Alexa

Pronto (consulte aquí para actualizaciones)

  • Página principal de Google
  • calendario de Google
  • Varios sensores
  • Controles del radiador
  • Integraciones IFTT
  • Soporte Tasker
  • Solicitudes
  • Un recinto mucho más atractivo

Paso 1: cómo funciona un termostato

Cómo funciona un termostato
Cómo funciona un termostato
Cómo funciona un termostato
Cómo funciona un termostato

¡Es probable que el termostato esté conectado a ALTO VOLTAJE! No intente hacer nada a menos que se haya asegurado de que el circuito esté apagado. Puede hacerse daño a sí mismo y dañar el equipo conectado. Considere consultar a un electricista calificado para garantizar su seguridad

El termostato Honeywell es una unidad montada en la pared, alimentada por la red eléctrica (los elementos básicos de Sonoff necesitan un mínimo de 90 V, mi circuito tiene 230 V). La caja está conectada a la unidad de control principal (que es una caja más avanzada) y envía la señal cuando la temperatura cae por debajo del nivel objetivo. Si bien su unidad puede ser diferente, lo más probable es que el principio sea el mismo. Si tiene 3 cables y no hay conexión de radio entre la unidad montada en la pared, este es el tutorial para usted.

Sé cómo funcionan los termostatos de 3 cables en un principio, lo que no me impidió quemar un fusible al cortocircuitar 2 cables por accidente. Tengo 3 cables conectados a la unidad (el cuarto es la tierra). Mi termostato Honeywell no es inalámbrico, así que para cambiar la señal, puedo usar Sonoff Basic. Es hora de desarmarlo y ver cómo se envía la señal a la unidad. Tras una inspección más cercana, el terminal se conecta de la siguiente manera:

  1. (azul) - Tierra
  2. (amarillo) - señal, cuando se tira hacia arriba, la calefacción está encendida
  3. no esta en uso
  4. (rojo): el cable vivo que se usa para elevar la señal

Para lograr mi objetivo, tengo que cortar el cable vivo con el cable de señal cuando quiero que mi calefacción esté encendida. Si tiene un termostato conectado de manera similar, tiene suerte, ya que Sonoff Basic será suficiente para hacer el truco.

Paso 2: Preparar Sonoff Basic

Preparando Sonoff Basic
Preparando Sonoff Basic
Preparando Sonoff Basic
Preparando Sonoff Basic
Preparando Sonoff Basic
Preparando Sonoff Basic

Antes de comenzar a conectar los cables, tenemos que agregar un sensor de temperatura (DHT11) a la mezcla. Asegúrese de tener el firmware de Tasmota en su dispositivo Sonoff (tengo una excelente guía de flasheo aquí) y su Sonoff habilitado para Tasmota está configurado correctamente (también ya cubierto por mí). Ahora, todo lo que le queda es conectar el sensor DHT11 al Sonoff y configurarlo para informes de temperatura.

DHT11 viene con 3 pines cableados: Señal - GPIO14Vcc - 3.3VGND - GND

Hice un agujero, no me molesta cómo se ve ahora, todo lo que necesito es la prueba de concepto y la validación. Haré una carcasa bonita y brillante una vez que llegue mi impresora 3D. Presté especial atención a cómo conecto el Sonoff, ya que tengo que asegurarme de que el cable vivo se conecte al cable de señal en el otro extremo del dispositivo Sonoff. La unidad Honeywell tiene la resistencia de carga (R) incorporada en su interior que limita la corriente. Si bien el circuito está protegido por el fusible de 3 A, es inteligente combinar la misma resistencia para una protección adicional. Una vez que tuve los cables listos, llegó el momento de apagar la alimentación principal y volver a conectar el Sonoff.

Sonoff Tasmota - termostato Honeywell

INPUT Live - 4th terminal Live

ENTRADA GND - 1er terminal GND

Señal de SALIDA - Señal del segundo terminal

Mencioné antes que por ahora, no voy a estresarme por el aspecto de esto. La esposa se ha convencido y puedo concentrarme en la funcionalidad y eliminar cualquier error que suceda. Lo bueno es que el termostato original sigue funcionando. Si lo subo, anulará el basado en Sonoff Tasmota. Esta debería ser una excelente copia de seguridad para cualquier evento inesperado.

Paso 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Tenga en cuenta que el video puede contener referencias antiguas de NodeRed, estoy trabajando constantemente para mejorar el diseño. Estos son pequeños cambios y los archivos de los artículos se mantienen actualizados

Encontré este diseño en línea. Se ve muy bien, sin embargo, tras una inspección de cerca, el widget no es realmente adecuado para NodeRED. Necesita configurar 5 cargas útiles, que no es así como funciona el diseño de nodos similares. Me tomó un tiempo descubrir la mejor manera de pasar toda esa información para actualizar el widget y mantenerlo funcional. Estoy seguro de que, con el tiempo, dedicaré más tiempo al diseño para poder enviar todas las actualizaciones necesarias con un solo objeto de mensaje. Por ahora, es lo que es.

Flujo de temperatura

DHT11 informa cada X segundos al servidor NodeRED. Aumenté esta frecuencia a través de la consola de Tasmota. Simplemente ejecute el comando para establecer la frecuencia en segundos:

TelePeriod Establece el período de telemetría entre 10 y 3600 segundos

Esto se hace principalmente para pruebas, ya que no quiero esperar minutos para ver si las correcciones de errores funcionaron. Mantener la frecuencia alta hará que la calefacción se encienda con más frecuencia durante períodos de tiempo más cortos, así que evite configurarla en 10 segundos para otros fines que no sean de prueba. El nodo MQTT extrae los datos de:

sonoff / tele / SENSOR

y mantiene los datos más útiles en los siguientes objetos:

msg.payload. DHT11. Temperature msg.payload. DHT11. Humidity

Para limitar los errores, agregué el nodo suave para promediar los resultados y actualicé la variable de flujo: NodeRED:

Nodo de función: actualice el 'TempAmbient'

flow.set ('TempAmbient', msg.payload. DHT11. Temperature); return msg;

Actualización de widget

Decidí que 5 segundos es una buena frecuencia de actualización, por lo tanto, estoy presionando todos los valores necesarios con esta frecuencia. La única excepción es el control deslizante, que por razones obvias responde instantáneamente.

Cada nodo correspondiente envía la carga útil con el tema asignado al widget de tipo nido.

  • color (calefacción | refrigeración * | apagado y estado_hvac)
  • hoja (verdadero | falso y tiene_hoja)
  • lejos (verdadero | falso y lejos)
  • Temperatura ambiente (número y temperatura ambiente)
  • Temperatura objetivo (número y temperatura_objetivo)

*no esta en uso

NodeRED: Nodo de función - Actualización de widget

color

x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); //ambiente

si (z = x) {

flow.set ('estado de calefacción', "apagado"); flow.set ('HeatingSwitch', "OFF"); } msg.payload = z; msg.topic = "temperatura_ambiente"; return msg;

hoja

x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('hoja', verdadero); msg.payload = true; msg.topic = "has_leaf"; return msg; } else {flow.set ('hoja', falso); msg.payload = false; msg.topic = "has_leaf"; return msg; }

Anulación de color ausente

x = flow.get ('lejos'); if (x === verdadero) {msg.topic = "hvac_state"; msg.payload = "apagado"; return msg; }

msg.topic = "hvac_state";

msg.payload = flow.get ('estado de calefacción');

return msg;

Lejos

x = flow.get ('lejos'); if (x === verdadero) {flow.set ('HeatingSwitch', "OFF"); flow.set ('estado de calefacción', "apagado"); }

msg.topic = "lejos";

msg.payload = flow.get ('lejos'); return msg;

Temperatura objetivo

if (msg.topic === "actualizar") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); return msg; }

if (msg.command === "SetTargetTemperatureRequest") {

flow.set ('lejos', falso); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

if (msg.topic === "slider") {

flow.set ('lejos', falso); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

if (msg.command === "GetTemperatureReadingRequest") {}

return msg;

Como puede ver, opté por excluirme de las variables de flujo para poder recordar el valor en cualquier momento. Tengo un flujo de depuración que básicamente lee todos los valores almacenados.

  • "TempAmbinet": almacena la temperatura actual
  • "TempTarget": mantiene el valor objetivo de temperatura
  • "Hoja": muestra la hoja si es necesario
  • "Ausente": muestra el estado ausente si es necesario
  • "HeatingState": cambia el color de la pantalla
  • "HeatingSwitch": controla el estado del relé.

El desafío consistía en asegurarse de que la información se actualizara en la "actualización" y cuando se solicite a través de otros medios (Alexa, etc.). Es por eso que verá diferentes condiciones en JavaScript. Cada vez que se actualizan los valores, se envían a la variable de flujo y se actualiza el widget.

Deslizador

Las pruebas revelaron que se necesita una actualización adicional del control deslizante (el control deslizante empuja la temperatura objetivo). Slider envía la carga útil (número) con el tema asociado slider) cuando se mueve. Además de esto, quiero que el control deslizante se coloque en la posición correcta si hay varias interfaces web en su lugar. Para hacer esto, cada 5 segundos simplemente actualizo la posición del control deslizante a una temperatura objetivo actual.

NodeRED: Nodo de función - Control deslizante de actualización '

msg.payload = flow.get ('TempTarget'); return msg;

Control de relés

El controlador de relé es simple, toma (por ahora) dos entradas. El verdadero | falso de Alexa y la interacción que sigue a una actualización de la variable de flujo del "interruptor de calefacción". No hay necesidad de una acción instantánea, por lo que, por simplicidad, se ejecuta en la misma frecuencia de actualización de 5 segundos que el resto del flujo.

El relé está conectado a través de MQTT. El nodo está publicando comandos ON | OFF en el tema:

sonoff / cmnd / POWER1

El nodo de función acepta el verdadero | falso de Alexa y también cambia el estado de la entrada de acuerdo con la variable de flujo "HeatingSwitch".

NodeRED: Nodo de función - Relé de control '

if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; return msg; }

if (msg.command === "TurnOnRequest") {

msg.payload = "ENCENDIDO"; flow.set ('TempTarget', 21); return msg; } if (msg.topic === "actualizar") {msg.payload = flow.get ('HeatingSwitch'); } return msg;

Integración de Alexa

Este es el primer dispositivo que tuve que apagar el "reconocimiento automático". En lugar de asumir automáticamente una respuesta, he generado una, ya que quiero tener la capacidad de consultar la temperatura establecida. En principio, msg.payload = true | false indica si la solicitud se ha realizado correctamente y las plantillas que se encuentran aquí hacen el resto. Si es nuevo en Alexa y NodeRed, asegúrese de leer esto.

Decidí pasar los reconocimientos por separado (sé que esta no es la mejor manera) para poder controlarlo todo un poco mejor. De forma adecuada, cada respuesta debe darse al final de la cadena de mando. El mío es arriesgarme a no devolver errores en caso de que ocurran. Tenga en cuenta que, para ser coherente, solo actualizo las variables, mientras que el ciclo de actualización envía los nuevos valores al widget.

NodeRED: Nodo de función - Procesar respuestas de Alexa '

// ¿Cuál es la temperatura objetivo del termostato si (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "applianceResponseTimestamp": nueva fecha (). toISOString ()}; msg.payload = true; return msg; } // Establezca la temperatura en (no inferior a 10 ni superior a 30) if (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = rango; } else {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } return msg; } // Actívelo if (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('lejos', falso); flow.set ('TempTarget', 21); return msg; } // Apágalo if (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('lejos', verdadero); return msg;

Paso 4: Conclusión

Conclusión
Conclusión

Si expone el tablero de NodeRED a WAN, todo el sistema de calefacción se puede controlar de forma remota. Le recomiendo que lea los siguientes artículos para ponerse al día con la seguridad de NodeRED y NodeRED.

  • NodeRED para principiantes
  • Seguridad NodeRED

Además, si desea estar informado sobre las actualizaciones de este proyecto, considere seguirme en la plataforma que elija:

  • Twi tter
  • Instagram
  • YouTube

Y si te apetece invitarme a un café o apoyarme de forma más continua:

  • Paypal
  • Patreon

¡Espero que hayas disfrutado del proyecto!

Recomendado: