INHOUDSOPGAWE:

NEST Jou Ou Termostaat: 4 Stappe (met Prente)
NEST Jou Ou Termostaat: 4 Stappe (met Prente)

Video: NEST Jou Ou Termostaat: 4 Stappe (met Prente)

Video: NEST Jou Ou Termostaat: 4 Stappe (met Prente)
Video: Такие секреты уже все забыли, но их стоит знать! Полезные советы на все случаи жизни! 2024, November
Anonim
Image
Image
Hoe 'n termostaat werk
Hoe 'n termostaat werk

Die verwarmingstelsel in my huis is waarskynlik so oud soos die huis self. Dit is ongeveer 30 jaar oud, wat goed is in terme van huisjare, maar wat die tegnologie betref, nogal vas in die ystydperk. Daar is twee hoofprobleme met kommersiële oplossings:

  • onbetaalbare pryse
  • produk as diens

Ons onthou almal wat met Revolv gebeur het, en ek wil nie so graag in die middel van die winter met my gebeur nie. Met dit in gedagte, bied ek u 'n ongelooflik verdagte, maar funksionele NEST-Alike-beheerder aan vir u ou termostaat. Moenie bekommerd wees nie, ek beplan om 'n baie beter omhulsel binnekort by te voeg!

Kenmerke:

  • die vermoë om 'n bestaande termostaat te gebruik (ingeval die vrou daaroor kreun)
  • afstand toegang
  • WEG -modus
  • optimale temperatuuraanwyser
  • Werk saam met Alexa

Binnekort (kyk hier vir opdaterings)

  • Google Home
  • Google Kalender
  • Verskeie sensors
  • Radiator kontroles
  • IFTT integrasies
  • Tasker -ondersteuning
  • HTTP -versoeke
  • 'N Omhulsel wat baie beter lyk

Stap 1: Hoe werk 'n termostaat

Hoe 'n termostaat werk
Hoe 'n termostaat werk
Hoe 'n termostaat werk
Hoe 'n termostaat werk

Die termostaat is waarskynlik aan die HOOGSPANNING gekoppel! Moenie probeer om iets te doen nie, tensy u seker gemaak het dat die stroombaan af is. U kan uself benadeel en die gekoppelde toerusting beskadig. Raadpleeg 'n gekwalifiseerde elektrisiën om u veiligheid te verseker

Die Honeywell -termostaat is 'n muur gemonteerde eenheid, aangedryf deur die net (Sonoff basics benodig min 90V, my kring het 230V). Die boks is gekoppel aan die hoofbeheereenheid (wat 'n meer gevorderde boks is) en dit stuur die sein wanneer die temperatuur onder die teikenvlak daal. Alhoewel u eenheid anders kan wees, is die beginsel waarskynlik dieselfde. As u drie drade het en geen radioverbinding tussen die muur-eenheid het nie-dit is die handleiding vir u.

Ek weet hoe die 3-draads termostate in 'n beginsel werk, wat my nie verhinder het om 'n lont te blaas deur 2 drade per ongeluk te kortsluit nie! Ek het 3 drade aan die eenheid gekoppel (met die vierde as die aarde). My Honeywell -termostaat is nie draadloos nie, so ek kan Sonoff Basic gebruik om die sein te skakel. Dit is tyd om dit uitmekaar te haal en te sien hoe die sein na die eenheid gestuur word. By nadere ondersoek word die terminaal op die volgende manier verbind:

  1. (blou) - Grond
  2. (geel) - sein, as die verhitting hoog is, is die verwarming aan
  3. nie in gebruik nie
  4. (rooi) - die lewendige draad wat gebruik word om die sein hoog te trek

Om my doel te bereik, moet ek die lewendige draad met die seindraad kortmaak as ek wil hê dat my verwarming aangeskakel moet word. As u 'n termostaat op dieselfde manier gekoppel het, het u geluk, want Sonoff Basic is genoeg om die truuk te doen.

Stap 2: Maak Sonoff Basic gereed

Maak Sonoff Basic gereed
Maak Sonoff Basic gereed
Maak Sonoff Basic gereed
Maak Sonoff Basic gereed
Maak Sonoff Basic gereed
Maak Sonoff Basic gereed

Voordat ons die drade begin verbind, moet ons 'n temperatuursensor (DHT11) by die mengsel voeg. Maak seker dat u Tasmota-firmware op u Sonoff-toestel laat flits (ek het 'n uitstekende flitsgids hier) en dat u Tasmota-geaktiveerde Sonoff korrek gekonfigureer is (ook reeds deur my gedek). Al wat u oor het, is om die DHT11 -sensor aan te sluit op die Sonoff en dit in te stel vir temperatuurverslaggewing.

DHT11 word met 3 penne bedraad: sein - GPIO14Vcc - 3.3VGND - GND

Ek het 'n gat deurgesteek, ek is nie gepla oor hoe dit nou lyk nie; al wat ek nodig het, is die bewys van die konsep en die bevestiging. Ek sal 'n mooi en blink omhulsel maak sodra my 3D -drukker kom. Ek het ekstra aandag gegee aan hoe ek die Sonoff bedraad, aangesien ek moet seker maak dat die lewendige draad aansluit by die seindraad aan die ander kant van die Sonoff -toestel. Die Honeywell -eenheid het 'n lasweerstand (R) wat binne -in gebou is, wat die stroom beperk. Alhoewel die stroombaan deur die 3A -lont beskerm word, is dit slim om dieselfde weerstand te pas vir ekstra beskerming. Toe ek die drade gereed gehad het, was dit tyd om die hoofkrag af te skakel en die Sonoff terug te dra.

Sonoff Tasmota - Honeywell -termostaat

INPUT Live - 4de terminale Live

INVOER GND - 1ste terminale GND

OUTPUT Signal - 2de terminale sein

Ek het dit voorheen genoem, maar ek gaan nie stres oor die voorkoms hiervan nie. Die vrou is oortuig en ek kan fokus op die funksionaliteit en die verwydering van foute wat sal gebeur. Die goeie ding is dat die oorspronklike termostaat nog steeds werk. As ek dit wys, sal dit die Sonoff Tasmota -gebaseerde een ignoreer. Dit behoort 'n goeie rugsteun te wees vir onverwagte gebeurtenisse.

Stap 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Let daarop dat die video ouer NodeRed -verwysings kan bevat; ek werk voortdurend daaraan om die ontwerp te verbeter. Dit is klein veranderinge en die artikellêers word op datum gehou

Ek het hierdie ontwerp aanlyn teëgekom. Dit lyk pragtig, maar by noukeurige ondersoek is die widget nie regtig geskik vir NodeRED nie. Daar moet 5 loonvragte ingestel word, en dit is net nie hoe die ontwerp van 'n knooppunt werk nie. Dit het my 'n geruime tyd geneem om uit te vind wat die beste manier is om al die inligting deur te gee om die widget by te werk en funksioneel te hou. Ek is seker mettertyd sal ek meer tyd spandeer aan die ontwerp, sodat ek al die nodige opdaterings met 'n enkele boodskap -voorwerp kan stoot. Vir eers is dit wat dit is.

Temperatuurstroom

DHT11 rapporteer elke X sekondes terug na die NodeRED -bediener. Ek het hierdie frekwensie verhoog deur die Tasmota -konsole. Voer die opdrag uit om die frekwensie in sekondes in te stel:

TelePeriod Stel die telemetrie tussen 10 en 3600 sekondes in

Dit word meestal vir toetse gedoen, aangesien ek nie 'n paar minute wil wag om te sien of my foutoplossings gewerk het nie. Deur die frekwensie hoog te hou, sal die verhitting vir korter tydperke meer gereeld brand, dus moenie dit vir 10 sekondes anders stel as vir toetsdoeleindes nie. Die MQTT -knoop haal die data uit:

sonoff/tele/SENSOR

en bewaar die nuttigste data in die volgende voorwerpe:

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

Om die foute te beperk, het ek die gladde knoop bygevoeg om die resultate te gemiddelde en die vloei veranderlike opgedateer: NodeRED:

Funksie Node - Werk die 'TempAmbient' op

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

Widget -opdatering

Ek het besluit dat 5 sekondes 'n goeie verversingsfrekwensie is, daarom stoot ek al die nodige waardes met hierdie frekwensie. Die enigste uitsondering is die skuifbalk, wat om ooglopende redes onmiddellik reageer.

Elke ooreenstemmende knoop stuur die vrag met die toegewysde onderwerp na die nes-ewe widget.

  • kleur (verwarming | afkoeling*| af en hvac_staat)
  • blaar (waar | vals & het_blaar)
  • weg (waar | vals en weg)
  • Omgewingstemperatuur (nommer en omgewingstemperatuur)
  • Doeltemperatuur (nommer en teikentemperatuur)

*nie in gebruik nie

NodeRED: Funksie Node - widget -opdatering

kleur

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

as (z = x) {

flow.set ('verwarmingsstaat', 'af'); flow.set ('heatingSwitch', "OFF"); } msg.payload = z; msg.topic = "omgewingstemperatuur"; terugkeer msg;

blaar

x = flow.get ('TempAmbient'); as (x> 17 && x <23) {flow.set ('blad', waar); msg.payload = waar; msg.topic = "has_leaf"; terugkeer msg; } anders {flow.set ('blad', vals); msg.payload = vals; msg.topic = "has_leaf"; terugkeer msg; }

Kleur weg oorheersing

x = flow.get ('weg'); as (x === waar) {msg.topic = "hvac_state"; msg.payload = "af"; terugkeer msg; }

msg.topic = "hvac_state";

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

terugkeer msg;

Weg

x = flow.get ('weg'); as (x === waar) {flow.set ('heatingSwitch', "OFF"); flow.set ('verwarmingsstaat', 'af'); }

msg.topic = "weg";

msg.payload = flow.get ('weg'); terugkeer msg;

Doeltemperatuur

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

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

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

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

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

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

terugkeer msg;

Soos u sien, het ek gekies vir die vloei veranderlikes, sodat ek die waarde op 'n gegewe tydstip kon herroep. Ek het 'n ontfoutingsvloei wat basies alle gestoorde waardes lees.

  • 'TempAmbinet' - stoor die huidige temperatuur
  • 'TempTarget' - hou die temp -teikenwaarde
  • 'Blaar' - vertoon blaar indien nodig
  • 'Weg' - wys wegstatus indien nodig
  • 'HeatingState' - verander die kleur van die skerm
  • 'Verwarmingskakelaar' - beheer die toestand van die aflos.

Die uitdaging was om seker te maak dat die inligting opgedateer word met 'opdatering' en op ander maniere (Alexa, ens.). Dit is waarom u verskillende toestande in die JavaScript sal sien. Elke keer as die waardes opgedateer word, word dit na die vloei veranderlike gestuur en die widget word verfris.

Slider

Uit die toets is geblyk dat 'n bykomende opdatering van die skuifbalk (skuifbalk die teikentemperatuur stoot) nodig is. Slider stuur die vrag (nommer) met die gepaardgaande onderwerp "slider" wanneer dit verskuif word. Boonop wil ek hê dat die skuifbalk in die regte posisie moet kom as daar meer webkoppelvlakke is. Om dit te doen, werk ek elke 5 sekondes eenvoudig die skuifposisie op na die huidige teikentemperatuur.

NodeRED: Funksie Node - Werk skuifbalk '

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

Relay beheer

Die aflosbeheerder is eenvoudig, dit benodig (vir eers) twee insette. Alexa is waar | onwaar en die interaksie wat volg op 'n opdatering van die vloei veranderlike "verwarmingskakelaar". Daar is geen onmiddellike aksie nodig nie, dus vir die eenvoud loop dit op dieselfde opdateringsfrekwensie van 5 sekondes as die res van die stroom.

Die aflos is verbind via MQTT. Node plaas AAN | UIT -opdragte vir die onderwerp:

sonoff/cmnd/POWER1

Die funksie -knooppunt aanvaar die ware | onwaar van Alexa en verander ook die toestand van die invoer volgens die 'heatSwitch' -vloei veranderlike.

NodeRED: Funksie Node - Control Relay '

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

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

msg.payload = "AAN"; flow.set ('TempTarget', 21); terugkeer msg; } if (msg.topic === "update") {msg.payload = flow.get ('heatingSwitch'); } boodskap terug;

Alexa integrasie

Dit is die eerste toestel wat ek die "outomatiese erkenning" moes uitskakel. In plaas daarvan om outomaties 'n antwoord te aanvaar, het ek 'n antwoord gegenereer omdat ek die ingestelde temperatuur wil navraag doen. In beginsel dui msg.payload = true | false aan of die versoek suksesvol was en die sjablone wat hier gevind word, die res doen. As u nog nie Alexa en NodeRed is nie, moet u dit lees.

Ek het besluit om die erkennings afsonderlik deur te gee (ek weet dit is nie die beste manier nie) om dit alles 'n bietjie beter te kan beheer. Elke antwoord moet behoorlik aan die einde van die opdragketting gegee word. Myne loop die risiko om nie foute terug te gee as dit sou gebeur nie. Let op: om konsekwent te wees, werk ek slegs die veranderlikes op, terwyl die verversingslus die nuwe waardes na die widget stoot.

NodeRED: Funksie Node - verwerk Alexa -antwoorde

// Wat is die teiken temperatuur van die termostaat as (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "deviceResponseTimestamp": nuwe Datum (). toISOString ()}; msg.payload = waar; terugkeer msg; } // Stel die temperatuur op (nie laer as 10 of meer as 30) as (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = vals; msg.extra = reeks; } anders {msg.extra = {targetTemperature: {waarde: msg.payload}}; msg.payload = waar; } boodskap terug; } // Skakel dit aan as (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('weg', vals); flow.set ('TempTarget', 21); terugkeer msg; } // Skakel dit af as (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('weg', waar); terugkeer msg;

Stap 4: Gevolgtrekking

Afsluiting
Afsluiting

As u die NodeRED -paneelbord aan WAN blootstel, kan die hele verwarmingstelsel op afstand beheer word. Ek beveel u aan om die volgende artikels te lees om NodeRED- en NodeRED -sekuriteit op hoogte te bring.

  • NodeRED vir beginners
  • NodeRED sekuriteit

As u ook op die hoogte wil bly van die opdaterings van hierdie projek, oorweeg dit om my te volg op die platform van u keuse:

  • Facebo ok
  • Twi tter
  • Instagram
  • YouTu wees

En as u lus is om vir my 'n koffie te koop of my op 'n meer deurlopende manier te ondersteun:

  • Paypal
  • Patreon

Ek hoop jy het die projek geniet!

Aanbeveel: