Innholdsfortegnelse:

NEST Din gamle termostat: 4 trinn (med bilder)
NEST Din gamle termostat: 4 trinn (med bilder)

Video: NEST Din gamle termostat: 4 trinn (med bilder)

Video: NEST Din gamle termostat: 4 trinn (med bilder)
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Juli
Anonim
Image
Image
Slik fungerer en termostat
Slik fungerer en termostat

Varmeanlegget i huset mitt er sannsynligvis like gammelt som selve huset. Den er omtrent 30 år gammel, noe som er bra når det gjelder husår, men stort sett fast i istiden når det gjelder teknologien. Det er to hovedproblemer med kommersielle løsninger:

  • uoverkommelig pris
  • produkt som service

Vi husker alle hva som skjedde med Revolv, og jeg er ikke så opptatt av at dette skal skje med meg midt på vinteren. Med dette i tankene presenterer jeg deg for en utrolig mistenkelig, men funksjonell NEST-LIKE kontroller for din gamle termostat. Ikke bekymre deg, jeg planlegger å legge til et mye bedre kabinett snart!

Funksjoner:

  • muligheten til å bruke en eksisterende termostat (i tilfelle kona stønner om det)
  • fjerntilgang
  • BORTE -modus
  • optimal temperaturindikator
  • Jobber med Alexa

Snart (sjekk her for oppdateringer)

  • Google Home
  • Google Kalender
  • Flere sensorer
  • Radiator kontroller
  • IFTT -integrasjoner
  • Tasker -støtte
  • HTTP -forespørsler
  • Et mye bedre utseende

Trinn 1: Hvordan en termostat fungerer

Slik fungerer en termostat
Slik fungerer en termostat
Slik fungerer en termostat
Slik fungerer en termostat

Termostaten er sannsynligvis koblet til HIGH VOLTAGE! Ikke prøv å gjøre noe med mindre du har sørget for at kretsen er slått av. Du kan skade deg selv og forårsake skade på det tilkoblede utstyret. Vurder å konsultere en kvalifisert elektriker for å sikre din sikkerhet

Honeywell -termostaten er en veggmontert enhet, drevet av strømnettet (grunnleggende Sonoff trenger min 90V, kretsen min har 230V). Boksen er koblet til hovedkontrollenheten (som er en mer avansert boks) og den sender signalet når temperaturen synker under målnivået. Selv om enheten din kan være annerledes, er prinsippet mest sannsynlig det samme. Hvis du har 3 ledninger og ingen radioforbindelse mellom den veggmonterte enheten-er dette opplæringen for deg.

Jeg vet hvordan 3-leders termostater fungerer i prinsippet, som ikke hindret meg i å blåse en sikring ved å koble 2 ledninger ved et uhell! Jeg har 3 ledninger koblet til enheten (hvor fjerde er jorden). Min Honeywell -termostat er ikke trådløs, så for å bytte signal kan jeg bruke Sonoff Basic. Det er på tide å ta det fra hverandre og se hvordan signalet sendes til enheten. Ved nærmere inspeksjon er terminalen koblet til på følgende måte:

  1. (blå) - Bakken
  2. (gul) - signal, når opptaket er høyt, er varmen på
  3. ikke i bruk
  4. (rød) - strømledningen som brukes til å trekke signalet høyt

For å nå målet mitt, må jeg kortere strømledningen med signalkabelen når jeg vil at varmen min skal slås på. Hvis du har en lignende tilkoblet termostat, har du flaks, ettersom Sonoff Basic vil være nok til å gjøre susen.

Trinn 2: Gjør Sonoff Basic klar

Gjør Sonoff Basic klar
Gjør Sonoff Basic klar
Gjør Sonoff Basic klar
Gjør Sonoff Basic klar
Gjør Sonoff Basic klar
Gjør Sonoff Basic klar

Før vi begynner å koble ledningene, må vi legge til en temperatursensor (DHT11) i blandingen. Sørg for at Tasmota-fastvaren er blinket til Sonoff-enheten din (jeg har en glimrende blinkende guide her) og at Tasmota-aktiverte Sonoff er konfigurert riktig (også allerede dekket av meg). Nå gjenstår det bare å koble DHT11 -sensoren til Sonoff og konfigurere den for temperaturrapportering.

DHT11 leveres med 3 pinner kablet: Signal - GPIO14Vcc - 3.3VGND - GND

Jeg stakk hull gjennom, jeg er ikke plaget med hvordan det ser ut nå, alt jeg trenger er bevis på konseptet og validering. Jeg skal lage et fint og skinnende kabinett når 3D -skriveren min kommer. Jeg var ekstra oppmerksom på hvordan jeg koblet Sonoff, da jeg må sørge for at den strømførende ledningen kobles til signalkabelen i den andre enden av Sonoff -enheten. Honeywell -enheten har lastmotstanden (R) innebygd som begrenser strømmen. Selv om kretsen er beskyttet av 3A -sikringen, er det smart å matche den samme motstanden for ekstra beskyttelse. Når jeg hadde ledningene klare, var det på tide å slå av strømmen og koble Sonoff tilbake.

Sonoff Tasmota - Honeywell termostat

INPUT Live - fjerde terminal Live

INNGANG GND - 1. terminal GND

OUTPUT Signal - 2. terminal signal

Jeg nevnte før at jeg foreløpig ikke kommer til å stresse med utseendet på dette. Kona har blitt overbevist, og jeg kan fokusere på funksjonaliteten og fjerne eventuelle feil som vil skje. Det gode er at den originale termostaten fortsatt fungerer. Hvis jeg slår den opp, vil den overstyre den Sonoff Tasmota -baserte. Dette bør være en flott sikkerhetskopi for uventede hendelser.

Trinn 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Vær oppmerksom på at videoen kan inneholde eldre NodeRed -referanser, jeg jobber hele tiden med å forbedre designet. Dette er små endringer og artikkelfilene holdes oppdatert

Jeg kom over dette designet på nettet. Det ser bra ut, men ved nøye inspeksjon er widgeten egentlig ikke egnet for NodeRED. Det må 5 nyttelaster til for å bli angitt, noe som ikke er akkurat slik node design fungerer. Det tok litt tid å finne ut den beste måten å overføre all informasjon til for å oppdatere widgeten og holde den funksjonell. Jeg er sikker på at jeg med tiden vil bruke mer tid på designet, slik at jeg kan skyve alle nødvendige oppdateringer med et enkelt meldingsobjekt. For nå er det hva det er.

Temperaturstrøm

DHT11 rapporterer hvert X sekund tilbake til NodeRED -serveren. Jeg økte denne frekvensen gjennom Tasmotas konsoll. Bare kjør kommandoen for å angi frekvensen i sekunder:

TelePeriod Angi telemetri mellom 10 og 3600 sekunder

Dette gjøres hovedsakelig for tester, ettersom jeg ikke vil vente i minutter for å se om feilrettingene mine fungerte. Hvis frekvensen holdes høy vil det føre til at oppvarmingen brenner oftere i kortere perioder, så avstå fra å stille den til 10 sekunder for andre formål enn test. MQTT -noden henter dataene fra:

sonoff/tele/SENSOR

og beholder de mest nyttige dataene i følgende objekter:

msg.payload. DHT11. Temperatur msg.payload. DHT11. Fuktighet

For å begrense feilene la jeg til den jevne noden for å gjennomsnittet resultatene og oppdaterte strømningsvariabelen: NodeRED:

Funksjonsnode - Oppdater 'TempAmbient'

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

Widgetoppdatering

Jeg bestemte meg for at 5 sekunder er en god oppdateringshastighet, derfor presser jeg alle nødvendige verdier med denne frekvensen. Det eneste unntaket er glidebryteren, som av åpenbar grunn reagerer umiddelbart.

Hver tilsvarende node sender nyttelasten med det tildelte emnet til nest-like widgeten.

  • farge (oppvarming | kjøling*| av og hvac_state)
  • leaf (true | false & has_leaf)
  • borte (sant | usant og borte)
  • Omgivelsestemperatur (antall og omgivelsestemperatur)
  • Måltemp (antall og måltemperatur)

*ikke i bruk

NodeRED: Funksjonsnode - Widgetoppdatering

farge

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

hvis (z = x) {

flow.set ('heatingState', "off"); flow.set ('heatingSwitch', "OFF"); } msg.payload = z; msg.topic = "omgivelsestemperatur"; returmelding;

blad

x = flow.get ('TempAmbient'); hvis (x> 17 && x <23) {flow.set ('leaf', true); msg.payload = true; msg.topic = "has_leaf"; returmelding; } annet {flow.set ('leaf', false); msg.payload = false; msg.topic = "has_leaf"; returmelding; }

Farge bort overstyring

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

msg.topic = "hvac_state";

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

returmelding;

Borte

x = flow.get ('away'); hvis (x === true) {flow.set ('heatingSwitch', "OFF"); flow.set ('heatingState', "off"); }

msg.topic = "borte";

msg.payload = flow.get ('away'); returmelding;

Måltemp

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

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

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

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

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

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

returmelding;

Som du ser, valgte jeg bort strømningsvariablene, så jeg kunne huske verdien til enhver tid. Jeg har en feilsøkingsflyt som i utgangspunktet leser alle lagrede verdier.

  • ‘TempAmbinet’ - lagrer gjeldende temperatur
  • 'TempTarget' - holder temp -målverdien
  • ‘Blad’ - viser blad om nødvendig
  • "Borte" - viser bortestatus om nødvendig
  • 'HeatingState' - endrer farge på displayet
  • 'HeatingSwitch' - styrer reléets tilstand.

Utfordringen var å faktisk sørge for at informasjonen oppdateres ved "oppdatering" og når det blir forespurt på andre måter (Alexa, osv.). Dette er grunnen til at du vil se forskjellige forhold i JavaScript. Hver gang verdiene oppdateres, sendes de til strømningsvariabelen og modulen oppdateres.

Glidebryter

Testing viste at en ekstra glidebryteroppdatering (glidebryteren skyver måltemperaturen) er nødvendig. Glidebryteren sender nyttelasten (nummeret) med det tilhørende emnet "glidebryteren" når den flyttes. På toppen av dette vil jeg at glidebryteren skal komme i riktig posisjon hvis flere webgrensesnitt er på plass. For å gjøre dette, oppdaterer jeg glidebryterposisjonen hvert 5. sekund til en gjeldende måltemperatur.

NodeRED: Funksjon Node - oppdateringsglidebryter '

msg.payload = flow.get ('TempTarget'); returner meldingen;

Relékontroll

Relékontrolleren er enkel, det tar (foreløpig) to innganger. Alexa er sant | usant og samspillet som følger etter en oppdatering av strømningsvariabelen "varmebryter". Det er ikke behov for en umiddelbar handling, så for enkelhets skyld kjører den på samme 5sek oppdateringsfrekvens som resten av flyten.

Reléet er koblet til via MQTT. Node legger ut ON | OFF -kommandoer til emnet:

sonoff/cmnd/POWER1

Funksjonsnoden godtar true | false fra Alexa og endrer også inngangstilstanden i henhold til strømningsvariabelen ‘heatingSwitch’.

NodeRED: Funksjonsnode - Kontrollrelé '

if (msg.command === "TurnOffRequest") {msg.payload = "AV"; returmelding; }

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

msg.payload = "PÅ"; flow.set ('TempTarget', 21); returmelding; } if (msg.topic === "oppdatering") {msg.payload = flow.get ('heatingSwitch'); } returmelding;

Alexa integrasjon

Dette er den første enheten jeg måtte slå av "automatisk bekreftelse". I stedet for å automatisk anta et svar, har jeg generert et, ettersom jeg vil ha muligheten til å spørre innstilt temperatur. I prinsippet angir msg.payload = true | false om forespørselen har lykkes, og malene som finnes her gjør resten. Hvis du er ny på Alexa og NodeRed, må du lese dette.

Jeg bestemte meg for å sende bekreftelsene separat (jeg vet at dette ikke er den beste måten) for å kunne kontrollere det hele litt bedre. Hvert svar bør gis på slutten av kommandokjeden. Min risikerer ikke å returnere feil hvis dette skulle skje. Vær oppmerksom på at for å være konsekvent, oppdaterer jeg bare variablene, mens oppdateringssløyfen skyver de nye verdiene over til widgeten.

NodeRED: Function Node - Process Alexa Responses '

// Hva er termostatens måltemperatur if (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "deviceResponseTimestamp": ny dato (). toISOString ()}; msg.payload = true; returmelding; } // Still temperaturen til (ikke lavere enn 10 eller mer enn 30) hvis (msg.command === "SetTargetTemperatureRequest") {if (msg. payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = område; } annet {msg.extra = {targetTemperature: {verdi: msg.payload}}; msg.payload = true; } returmelding; } // Slå den på hvis (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('away', false); flow.set ('TempTarget', 21); returmelding; } // Slå den av hvis (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('away', true); returmelding;

Trinn 4: Konklusjon

Konklusjon
Konklusjon

Hvis du utsetter NodeRED -dashbordet for WAN, kan hele varmesystemet fjernstyres. Jeg vil anbefale deg å lese følgende artikler for å komme i gang med NodeRED og NodeRED sikkerhet.

  • NodeRED for nybegynnere
  • NodeRED sikkerhet

I tillegg, hvis du vil bli informert om oppdateringene til dette prosjektet - kan du vurdere å følge meg på den valgte plattformen:

  • Facebo ok
  • To ganger
  • Instagram
  • YouTu være

Og hvis du har lyst til å kjøpe meg en kaffe eller støtte meg på en mer kontinuerlig måte:

  • Paypal
  • Patreon

Jeg håper du likte prosjektet!

Anbefalt: