Taula de continguts:

NIU el seu antic termòstat: 4 passos (amb imatges)
NIU el seu antic termòstat: 4 passos (amb imatges)

Vídeo: NIU el seu antic termòstat: 4 passos (amb imatges)

Vídeo: NIU el seu antic termòstat: 4 passos (amb imatges)
Vídeo: Я никогда не ел такой вкусной курицы в соусе!!! Рецепт за 10 минут! 2024, Desembre
Anonim
Image
Image
Com funciona un termòstat
Com funciona un termòstat

El sistema de calefacció de casa meva és probablement tan antic com la mateixa casa. Té uns 30 anys, cosa que està molt bé pel que fa als anys de casa, però pràcticament atrapat a l’era glacial pel que fa a la tecnologia. Hi ha dos problemes principals amb les solucions comercials:

  • preus prohibitius
  • producte com a servei

Tots recordem el que li va passar a Revolv i no tinc gaire ganes que això em passi a mi en ple hivern. Amb això en ment, us presento un controlador NEST-Alike d’aspecte increïble, però funcional, per al vostre termòstat antic. No us preocupeu, estic pensant en afegir un recinte molt millor aviat.

Característiques:

  • capacitat d'utilitzar un termòstat existent (en cas que la dona es queixi)
  • accés remot
  • Mode FORA
  • indicador de temperatura òptima
  • Funciona amb Alexa

Aviat (consulteu aquí si hi ha actualitzacions)

  • Google Home
  • Google Calendar
  • Sensors múltiples
  • Comandaments del radiador
  • Integracions IFTT
  • Suport de tasques
  • Sol·licituds
  • Un recinte molt millor

Pas 1: Com funciona un termòstat

Com funciona un termòstat
Com funciona un termòstat
Com funciona un termòstat
Com funciona un termòstat

És probable que el termòstat estigui connectat a l’ALTA TENSIÓ. No intenteu fer res a menys que us assegureu que el circuit està apagat. Podeu fer-vos mal i provocar danys a l’equip connectat. Penseu en la possibilitat de consultar un electricista qualificat per garantir la vostra seguretat

El termòstat Honeywell és una unitat de paret, alimentat per la xarxa elèctrica (els fonaments bàsics de Sonoff necessiten un mínim de 90 V, el meu circuit té 230 V). La caixa està connectada a la unitat de control principal (que és una caixa més avançada) i envia el senyal quan la temperatura baixa per sota del nivell objectiu. Tot i que la vostra unitat pot ser diferent, és probable que el principi sigui el mateix. Si teniu 3 cables i no teniu cap connexió de ràdio entre la unitat de paret, aquest és el vostre tutorial.

Sé com funcionen els termòstats de 3 fils en principi, cosa que no em va impedir fer saltar un fusible en curtcircuitar 2 cables per accident. Tinc 3 cables connectats a la unitat (el quart és la terra). El meu termòstat Honeywell no és sense fil, de manera que per canviar el senyal puc utilitzar Sonoff Basic. És hora de desmuntar-lo i veure com s’envia el senyal a la unitat. Després d’una inspecció més detallada, el terminal es connecta de la següent manera:

  1. (blau) - Terra
  2. (groc): senyal, quan es posa alt, la calefacció està activada
  3. no s’utilitza
  4. (vermell): el fil conductor utilitzat per elevar el senyal

Per assolir el meu objectiu, he de curtcircuitar el fil conductor amb el fil de senyal quan vull que s’encengui la calefacció. Si teniu un termòstat connectat de manera similar, esteu de sort, ja que Sonoff Basic n’hi haurà prou per fer el truc.

Pas 2: Preparació de Sonoff Basic

Preparant Sonoff Basic
Preparant Sonoff Basic
Preparant Sonoff Basic
Preparant Sonoff Basic
Preparant Sonoff Basic
Preparant Sonoff Basic

Abans de començar a connectar els cables, hem d’afegir un sensor de temperatura (DHT11) a la barreja. Assegureu-vos que teniu el firmware de Tasmota llampat al dispositiu Sonoff (tinc una excel·lent guia de parpelleig aquí) i que el vostre Sonoff compatible amb Tasmota està configurat correctament (també jo ja estic cobert). Ara només us queda connectar el sensor DHT11 al Sonoff i configurar-lo per informar de la temperatura.

DHT11 ve amb 3 pins cablejats: Signal - GPIO14Vcc - 3.3VGND - GND

Vaig fer un forat, no em molesta la forma en què es veu ara, tot el que necessito és la prova del concepte i la validació. Faré un recinte agradable i brillant un cop arribi la meva impressora 3D. Vaig prestar una atenció especial a la manera de connectar el Sonoff, ja que he d’assegurar-me que el cable actiu es connecti al cable de senyal de l’altre extrem del dispositiu Sonoff. La unitat Honeywell té la resistència de càrrega (R) construïda a l'interior que limita el corrent. Tot i que el circuit està protegit pel fusible 3A, és intel·ligent que coincideixi amb la mateixa resistència per obtenir una protecció addicional. Quan ja tenia els cables preparats, era el moment d’apagar l’alimentació principal i tornar a connectar el Sonoff.

Sonoff Tasmota: termòstat Honeywell

INPUT Live - 4t terminal Live

INPUT GND - 1r terminal GND

Senyal OUTPUT: 2n senyal de terminal

Abans ho he esmentat per ara, que no m’estressaré sobre la seva aparença. La dona està convençuda i puc centrar-me en la funcionalitat i eliminar tots els errors que passin. El millor és que el termòstat original encara funciona. Si ho faig servir, substituirà la basada en Sonoff Tasmota. Aquesta hauria de ser una gran còpia de seguretat per a esdeveniments inesperats.

Pas 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Tingueu en compte que el vídeo pot contenir referències antigues de NodeRed. Estic treballant constantment per millorar el disseny. Es tracta de petits canvis i els fitxers d’articles es mantenen actualitzats

Em vaig trobar amb aquest disseny en línia. Sembla fantàstic, però, després d'una inspecció detallada, el widget no és adequat per a NodeRED. Cal configurar 5 càrregues útils, cosa que no és com funciona el disseny de nodes per igual. Vaig trigar una mica a esbrinar la millor manera de passar tota aquesta informació per actualitzar el widget i mantenir-lo funcional. Estic segur que amb el temps dedicaré més temps al disseny per poder introduir totes les actualitzacions necessàries amb un sol objecte msg. De moment, és el que és.

Corrent de temperatura

DHT11 torna cada X segons al servidor NodeRED. He augmentat aquesta freqüència a través de la consola de Tasmota. Només cal que executeu l'ordre per establir la freqüència en segons:

TelePeriod Estableix el període de telemetria entre 10 i 3600 segons

Això es fa sobretot per a proves, ja que no vull esperar uns minuts per veure si les meves solucions d’errors funcionaven. Si mantingueu una freqüència elevada, la calefacció es dispararà amb més freqüència durant períodes de temps més curts, així que abstingueu-la de configurar-la a 10 segons per altres motius que no siguin proves. El node MQTT extreu les dades de:

sonoff / tele / SENSOR

i conserva les dades més útils en els objectes següents:

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

Per limitar els errors, he afegit el node suau per fer una mitjana dels resultats i he actualitzat la variable de flux: NodeRED:

Node de funció: actualitzeu el "TempAmbient"

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

Actualització de widgets

Vaig decidir que 5 segons és una bona freqüència d’actualització, per tant, estic pressionant tots els valors necessaris amb aquesta freqüència. L'única excepció és el control lliscant, que per una raó òbvia respon a l'instant.

Cada node corresponent envia la càrrega útil amb el tema assignat al widget niu.

  • color (calefacció | refrigeració * | apagat i estat_hvac)
  • fulla (veritable | fals i has_leaf)
  • fora (veritable | fals i fora)
  • Temperatura ambient (nombre i temperatura_ambient)
  • Temp objectiu (número i temperatura_destinatòria)

* no s'utilitza

NodeRED: Node de funció: actualització de widgets

color

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

si (z = x) {

flow.set ('HeatingState', "off"); flow.set ('HeatingSwitch', "OFF"); } msg.payload = z; msg.topic = "temperatura_ambient"; retorn msg;

full

x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('full', cert); msg.payload = cert; msg.topic = "has_leaf"; retorn msg; } else {flow.set ('full', fals); msg.payload = fals; msg.topic = "has_leaf"; retorn msg; }

Anul·lar el color

x = flow.get ('away'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "desactivat"; retorn msg; }

msg.topic = "estat_hvac";

msg.payload = flow.get ('HeatingState');

retorn msg;

Lluny

x = flow.get ('away'); if (x === true) {flow.set ('HeatingSwitch', "OFF"); flow.set ('HeatingState', "off"); }

msg.topic = "fora";

msg.payload = flow.get ('fora'); retorn msg;

Temp objectiu

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

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

flow.set ('lluny', fals); msg.topic = "temperatura_diana"; flow.set ('TempTarget', msg.payload); }

if (msg.topic === "control lliscant") {

flow.set ('lluny', fals); msg.topic = "temperatura_diana"; flow.set ('TempTarget', msg.payload); }

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

retorn msg;

Com veieu, he optat per les variables de flux per poder recordar el valor en cada moment. Tinc un flux de depuració que bàsicament llegeix tots els valors emmagatzemats.

  • "TempAmbinet": emmagatzema la temperatura actual
  • "TempTarget": manté el valor objectiu temporal
  • "Fulla": mostra la fulla si cal
  • "Fora": mostra l'estat de distància si és necessari
  • "HeatingState": canvia el color de la pantalla
  • ‘HeatingSwitch’: controla l’estat del relé.

El repte consistia a assegurar-se que la informació s'actualitza en "actualitzar" i quan se sol·licita per altres mitjans (Alexa, etc.). És per això que veureu diferents condicions al JavaScript. Cada vegada que s’actualitzen els valors, s’envien a la variable de flux i s’actualitza el giny.

Control lliscant

Les proves van revelar que es necessita una actualització addicional del control lliscant (el control lliscant empeny la temperatura objectiu). El control lliscant envia la càrrega útil (número) amb el tema associat "control lliscant" quan es mou. A més, vull que el control lliscant arribi a la posició correcta si hi ha diverses interfícies web. Per fer-ho, cada 5 segons simplement actualitzo la posició del control lliscant a una temperatura objectiu actual.

NodeRED: Function Node: control lliscant d'actualització '

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

Control de relés

El controlador de relé és senzill, necessita (per ara) dues entrades. Alexa | true | false i la interacció que segueix una actualització de la variable de flux "interruptor de calefacció". No cal fer cap acció instantània, de manera que, per la seva simplicitat, funciona amb la mateixa freqüència d’actualització de 5 segons que la resta del flux.

El relé es connecta mitjançant MQTT. El node publica comandes ON | OFF al tema:

sonoff / cmnd / POWER1

El node de la funció accepta el vertader | fals d’Alexa i també canvia l’estat de l’entrada segons la variable de flux ‘heatingSwitch’.

NodeRED: node de funció: relé de control '

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

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

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

Integració amb Alexa

Aquest és el primer dispositiu que he tingut per desactivar el "reconeixement automàtic". En lloc d'assumir automàticament una resposta, n'he generat una, ja que vull la possibilitat de consultar la temperatura establerta. En principi, msg.payload = true | false indica si la sol·licitud ha estat satisfactòria, i les plantilles que es troben aquí fan la resta. Si no coneixeu Alexa i NodeRed, no oblideu llegir-ho.

Vaig decidir passar els agraïments per separat (sé que aquesta no és la millor manera) per poder controlar-ho una mica millor. S’ha de donar correctament cada resposta al final de la cadena d’ordres. El meu corre el risc de no tornar errors en cas que es produeixin. Tingueu en compte que, per ser coherent, només actualitzo les variables, mentre que el bucle d’actualització empeny els nous valors al widget.

NodeRED: Node de funció: processa les respostes d'Alexa

// Quina és la temperatura objectiu del termòstat si (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "applianceResponseTimestamp": new Date (). toISOString ()}; msg.payload = cert; retorn msg; } // Estableix la temperatura a (no inferior a 10 ni superior a 30) si (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = fals; msg.extra = rang; } else {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = cert; } return msg; } // Activa-ho si (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ("lluny", fals); flow.set ('TempTarget', 21); retorn msg; } // Desactiveu-lo si (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('lluny', cert); retorn msg;

Pas 4: Conclusió

Conclusió
Conclusió

Si exposeu el tauler de control NodeRED a WAN, es pot controlar tot el sistema de calefacció de forma remota. Us recomanaria que llegiu els articles següents per posar-vos al dia amb la seguretat NodeRED i NodeRED.

  • NodeRED per a principiants
  • Seguretat NodeRED

A més, si voleu obtenir informació sobre les actualitzacions d’aquest projecte, penseu a seguir-me a la plataforma que trieu:

  • Facebo bé
  • Twi tter
  • Instagram
  • Tu ho seràs

I si teniu ganes de comprar-me un cafè o de donar-me suport d’una manera més continuada:

  • Paypal
  • Patreó

Espero que us hagi agradat el projecte!

Recomanat: