Tabla de contenido:
- Paso 1: cómo funciona un termostato
- Paso 2: Preparar Sonoff Basic
- Paso 3: NodeRED
- Paso 4: Conclusión
Video: NEST su antiguo termostato: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
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
¡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:
- (azul) - Tierra
- (amarillo) - señal, cuando se tira hacia arriba, la calefacción está encendida
- no esta en uso
- (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
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
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
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
- 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:
Termostato Nest, seguimiento de ocupación: 12 pasos
Termostato Nest, seguimiento de ocupación: la automatización de la refrigeración de mi hogar con mi termostato Nest había sido administrada, hasta hace poco, por IFTTT con Life360's " primero en llegar a casa " y " último en salir de casa " desencadenantes. Esto fue genial porque pude agregar miembros de la familia a mi Li
Proporcione energía con un cable USB antiguo: 4 pasos (con imágenes)
Proporcione energía con un cable USB viejo: Dificultad: e a s y .. Corte y empalme de cables Si tiene cables USB viejos por ahí, ¿por qué no hacer algo útil con ellos? Necesitaba una forma de proporcionar energía a mi placa Arduino sin usar el cable USB provisto porque era demasiado l
Alimentador automático de mascotas con un reloj digital antiguo: 10 pasos (con imágenes)
Alimentador automático de mascotas con un reloj digital antiguo: Hola, en este instructivo le mostraré cómo hice un alimentador automático de mascotas con un reloj digital antiguo. También incluí un video sobre cómo hice este alimentador. Este instructivo se inscribirá en el concurso de PCB y, como un favor, ap
Registrador de datos del historial del termostato Nest: 6 pasos (con imágenes)
Registrador de datos del historial del termostato Nest: el termostato Nest rastrea la temperatura, la humedad y el uso de la calefacción / aire acondicionado y los usuarios pueden ver los datos históricos solo durante 10 días. Quería recopilar datos históricos (> 10 días) y encontré la secuencia de comandos de hojas de cálculo de Google que anidan los pings cada tiempo establecido
JUEGA Y RECARGA EL IPOD CON EL ANTIGUO BOOMBOX - Sugerencias y consejos: 5 pasos (con imágenes)
REPRODUCIR Y RECARGAR EL IPOD CON EL ANTIGUO BOOMBOX - Sugerencias y consejos: Considere esto como un apéndice de otras modificaciones del iPod boombox. Admito que tomé prestado de otros Instructables. Para no quitarle a esos Instructables, aquí hay un " grito " a los que me inspiraron a sumergirme en mi propio mod. Gracias. Instructable