Indholdsfortegnelse:

NEST Din gamle termostat: 4 trin (med billeder)
NEST Din gamle termostat: 4 trin (med billeder)

Video: NEST Din gamle termostat: 4 trin (med billeder)

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

Varmesystemet i mit hus er sandsynligvis lige så gammelt som selve huset. Det er omkring 30 år gammelt, hvilket er fint med hensyn til husår, men stort set fast i istiden, hvad teknologien angår. Der er to hovedproblemer med kommercielle løsninger:

  • uoverkommelige priser
  • produkt som service

Vi husker alle, hvad der skete med Revolv, og jeg er ikke så opsat på, at det skulle ske for mig midt i vinteren. Med det i tankerne præsenterer jeg dig for en utrolig mistænksom, men funktionel NEST-Alike controller til din gamle termostat. Bare rolig, jeg planlægger at tilføje et meget bedre kabinet snart!

Funktioner:

  • evnen til at bruge en eksisterende termostat (hvis konen stønner over det)
  • fjernadgang
  • BORT tilstand
  • optimal temperaturindikator
  • Arbejder med Alexa

Snart (tjek her for opdateringer)

  • Google Home
  • Google Kalender
  • Flere sensorer
  • Radiator kontrol
  • IFTT -integrationer
  • Tasker support
  • HTTP -anmodninger
  • Et meget flot kabinet

Trin 1: Sådan fungerer en termostat

Sådan fungerer en termostat
Sådan fungerer en termostat
Sådan fungerer en termostat
Sådan fungerer en termostat

Termostaten er sandsynligvis tilsluttet HIGH VOLTAGE! Forsøg ikke at gøre noget, medmindre du har kontrolleret, at kredsløbet er slukket. Du kan skade dig selv og forårsage skade på det tilsluttede udstyr. Overvej at kontakte en kvalificeret elektriker for at sikre din sikkerhed

Honeywell -termostaten er en vægmonteret enhed, der drives af lysnettet (grundlæggende Sonoff har brug for min 90V, mit kredsløb har 230V). Boksen er forbundet til den vigtigste styreenhed (som er en mere avanceret boks), og den sender signalet, når temperaturen falder til under målniveauet. Selvom din enhed kan være anderledes, er princippet sandsynligvis det samme. Hvis du har 3 ledninger og ingen radioforbindelse mellem den vægmonterede enhed-er dette selvstudiet for dig.

Jeg ved, hvordan 3-tråds termostater fungerer i princippet, hvilket ikke forhindrede mig i at sprænge en sikring ved at kortslutte 2 ledninger ved et uheld! Jeg har 3 ledninger tilsluttet enheden (hvor fjerde er jorden). Min Honeywell -termostat er ikke trådløs, så for at skifte signal kan jeg bruge Sonoff Basic. Det er tid til at skille det ad og se, hvordan signalet sendes til enheden. Ved nærmere eftersyn er terminalen forbundet på følgende måde:

  1. (blå) - Jord
  2. (gul) - signal, når den trækkes højt, er varmen tændt
  3. ikke i brug
  4. (rød) - den levende ledning, der bruges til at trække signalet højt

For at nå mit mål skal jeg kortslutte den spændingsførende ledning med signalkablet, når jeg vil have min opvarmning tændt. Hvis du har en lignende tilsluttet termostat, har du held og lykke, da Sonoff Basic er nok til at gøre tricket.

Trin 2: Gør Sonoff Basic klar

Gør Sonoff Basic klar
Gør Sonoff Basic klar
Gør Sonoff Basic klar
Gør Sonoff Basic klar
Gør Sonoff Basic klar
Gør Sonoff Basic klar

Inden vi begynder at forbinde ledningerne, skal vi tilføje en temperatursensor (DHT11) til blandingen. Sørg for, at Tasmota-firmware er flashet til din Sonoff-enhed (jeg har en glimrende blinkende vejledning her), og din Tasmota-aktiverede Sonoff er konfigureret korrekt (også allerede dækket af mig). Det eneste du har tilbage er at tilslutte DHT11 -sensoren til Sonoff og konfigurere den til temperaturrapportering.

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

Jeg stak et hul igennem, jeg er ikke generet af, hvordan det ser ud nu, alt hvad jeg behøver er beviset på konceptet og valideringen. Jeg vil lave et flot og skinnende kabinet, når min 3D -printer kommer. Jeg var ekstra opmærksom på, hvordan jeg tilsluttede Sonoff, da jeg skal sørge for, at den levende ledning tilsluttes signalkablet i den anden ende af Sonoff -enheden. Honeywell -enheden har belastningsmodstanden (R) indbygget, hvilket begrænser strømmen. Selvom kredsløbet er beskyttet af 3A -sikringen, er det smart at matche den samme modstand for ekstra beskyttelse. Når jeg havde ledningerne klar, var det tid til at slukke for hovedstrømmen og koble Sonoff tilbage.

Sonoff Tasmota - Honeywell termostat

INPUT Live - 4. terminal Live

INPUT GND - 1. terminal GND

OUTPUT Signal - 2. terminal signal

Jeg nævnte før, at for nu vil jeg ikke stresse over udseendet af dette. Konen er blevet overbevist, og jeg kan fokusere på funktionaliteten og rydde eventuelle fejl, der vil ske. Det gode er, at den originale termostat stadig fungerer. Hvis jeg slår det op, vil det tilsidesætte den Sonoff Tasmota -baserede. Dette bør være en god sikkerhedskopi for uventede begivenheder.

Trin 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Bemærk, at videoen kan indeholde ældre NodeRed -referencer, jeg arbejder konstant på at forbedre designet. Det er små ændringer, og artikelfilerne holdes opdaterede

Jeg stødte på dette design online. Det ser godt ud, men ved tæt inspektion er widgeten ikke rigtig velegnet til NodeRED. Det har brug for 5 nyttelast, der skal indstilles, hvilket bare ikke er, hvordan node ens design fungerer. Det tog mig noget tid at finde ud af den bedste måde at videregive alle disse oplysninger til for at opdatere widgeten og holde den funktionel. Jeg er sikker på, at jeg med tiden vil bruge mere tid på designet, så jeg kunne skubbe alle de nødvendige opdateringer med et enkelt msg -objekt. For nu er det, hvad det er.

Temperaturstrøm

DHT11 rapporterer hvert X sekund tilbage til NodeRED -serveren. Jeg øgede denne frekvens gennem Tasmotas konsol. Bare kør kommandoen for at indstille frekvensen i sek:

TelePeriod Indstil telemetri mellem 10 og 3600 sekunder

Dette udføres hovedsageligt til test, da jeg ikke vil vente i minutter for at se, om mine fejlrettelser fungerede. Hvis frekvensen holdes høj, vil opvarmningen blive brændt oftere i kortere perioder, så afstå fra at indstille den til 10 sekunder til andre end testformål. MQTT -noden trækker dataene fra:

sonoff/tele/SENSOR

og gemmer de mest nyttige data i følgende objekter:

msg.payload. DHT11. Temperatur msg.payload. DHT11. Fugtighed

For at begrænse fejlene tilføjede jeg den jævne knude til gennemsnittet af resultaterne og opdaterede flowvariablen: NodeRED:

Funktionsknude - Opdater 'TempAmbient'

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

Widget opdatering

Jeg besluttede, at 5 sekunder er en god opdateringshastighed, derfor skubber jeg alle nødvendige værdier med denne frekvens. Den eneste undtagelse er skyderen, som af indlysende årsager reagerer øjeblikkeligt.

Hver tilsvarende knude sender nyttelasten med det tildelte emne til nest-lignende widget.

  • farve (opvarmning | køling*| slukket & hvac_state)
  • leaf (true | false & has_leaf)
  • væk (sandt | falsk og væk)
  • Omgivelsestemperatur (antal og omgivelsestemperatur)
  • Måltemp (antal og måltemperatur)

*ikke i brug

NodeRED: Funktionsknude - Widget -opdatering

farve

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

hvis (z = x) {

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

blad

x = flow.get ('TempAmbient'); hvis (x> 17 && x <23) {flow.set ('blad', sandt); msg.payload = sand; msg.topic = "has_leaf"; return msg; } ellers {flow.set ('blad', falsk); msg.payload = falsk; msg.topic = "has_leaf"; return msg; }

Farve væk tilsidesættelse

x = flow.get ('væk'); hvis (x === true) {msg.topic = "hvac_state"; msg.payload = "slukket"; return msg; }

msg.topic = "hvac_state";

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

return msg;

Væk

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

msg.topic = "væk";

msg.payload = flow.get ('væk'); return msg;

Måltemp

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

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

flow.set ('væk', falsk); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

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

flow.set ('væk', falsk); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

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

return msg;

Som du ser, fravalgte jeg flowvariablerne, så jeg til enhver tid kunne huske værdien. Jeg har et fejlfindingsflow, der stort set læser alle lagrede værdier.

  • 'TempAmbinet' - gemmer den aktuelle temp
  • 'TempTarget' - holder den midlertidige målværdi
  • ‘Blad’ - viser blad, hvis det er nødvendigt
  • 'Væk' - viser væk -status, hvis det er nødvendigt
  • 'HeatingState' - skifter farve på displayet
  • 'HeatingSwitch' - styrer relæets tilstand.

Udfordringen var faktisk at sikre, at oplysningerne opdateres ved "opdatering" og når der anmodes om dem på andre måder (Alexa osv.). Det er derfor, du vil se forskellige betingelser i JavaScript. Hver gang værdierne opdateres, sendes de til flowvariablen, og widgeten opdateres.

Skyder

Test viste, at en ekstra skyderopdatering (skyderen skubber måltemperaturen) er nødvendig. Slider sender nyttelasten (nummeret) med det tilhørende emne "skyderen", når den flyttes. Oven i dette vil jeg have skyderen til at komme i den korrekte position, hvis flere webgrænseflader er på plads. For at gøre dette opdaterer jeg hvert 5. sek. Skyderpositionen til en aktuel måltemperatur.

NodeRED: Funktionsknude - Opdater skyderen '

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

Relæstyring

Relæstyringen er enkel, den tager (for nu) to indgange. Alexa er sand | falsk og interaktionen, der følger efter en opdatering af flowvariablen "opvarmningsafbryder". Der er ikke behov for en øjeblikkelig handling, så for enkeltheden kører den på den samme 5sek opdateringsfrekvens som resten af strømmen.

Relæet er forbundet via MQTT. Node sender kommandoer ON | OFF til emnet:

sonoff/cmnd/POWER1

Funktionsknudepunktet accepterer det sande | falske fra Alexa og ændrer også inputtilstanden i henhold til 'heatSwitch' flowvariablen.

NodeRED: Funktionsknude - kontrolrelæ '

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

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

msg.payload = "TIL"; flow.set ('TempTarget', 21); return msg; } hvis (msg.topic === "opdatering") {msg.payload = flow.get ('heatingSwitch'); } returnér msg;

Alexa integration

Dette er den første enhed, jeg havde til at slukke for "automatisk bekræftelse". I stedet for automatisk at antage et svar, har jeg genereret et, da jeg vil have mulighed for at forespørge om den indstillede temperatur. I princippet angiver msg.payload = true | false, om anmodningen har været vellykket, og de skabeloner, der findes her, gør resten. Hvis du er ny inden for Alexa og NodeRed, skal du læse dette.

Jeg besluttede at videregive anerkendelserne separat (jeg ved, at dette ikke er den bedste måde) for at kunne kontrollere det hele lidt bedre. Hvert svar skal gives korrekt i slutningen af kommandokæden. Min risikerer ikke at returnere fejl, hvis disse skulle ske. Bemærk, at for at være konsekvent opdaterer jeg kun variablerne, mens opdateringssløjfen skubber de nye værdier over til widgeten.

NodeRED: Function Node - Process Alexa Responses '

// Hvad er termostatens måltemperatur if (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "deviceResponseTimestamp": ny dato (). toISOString ()}; msg.payload = sand; return msg; } // Indstil temperaturen til (ikke lavere end 10 eller mere end 30) hvis (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = falsk; msg.extra = område; } ellers {msg.extra = {targetTemperature: {værdi: msg.payload}}; msg.payload = sand; } returnér msg; } // Tænd det, hvis (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('væk', falsk); flow.set ('TempTarget', 21); return msg; } // Slå den fra, hvis (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('væk', sandt); return msg;

Trin 4: Konklusion

Konklusion
Konklusion

Hvis du udsætter NodeRED -instrumentbrættet for WAN, kan hele varmesystemet fjernstyres. Jeg vil anbefale dig at læse følgende artikler for at komme i gang med NodeRED og NodeRED sikkerhed.

  • NodeRED for begyndere
  • NodeRED sikkerhed

Hvis du desuden vil blive informeret om opdateringerne til dette projekt - overvej at følge mig på den platform, du ønsker:

  • Facebo ok
  • To gange
  • Instagram
  • Youtube

Og hvis du har lyst til at købe mig en kaffe eller støtte mig på en mere kontinuerlig måde:

  • Paypal
  • Patreon

Jeg håber du har nydt projektet!

Anbefalede: