Indholdsfortegnelse:
- Trin 1: Sådan fungerer en termostat
- Trin 2: Gør Sonoff Basic klar
- Trin 3: NodeRED
- Trin 4: Konklusion
Video: NEST Din gamle termostat: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
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:
- (blå) - Jord
- (gul) - signal, når den trækkes højt, er varmen tændt
- ikke i brug
- (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
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
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
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
- 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:
Nest -termostat, belægningssporing: 12 trin
Nest -termostat, belægningssporing: Min huskøle -automatisering ved hjælp af min Nest -termostat var indtil for nylig blevet kørt af IFTTT ved hjælp af Life360's " først til at ankomme til hjemmet " og " sidste til at forlade hjemmet " udløser. Dette var fantastisk, fordi jeg kunne tilføje familiemedlemmer til min Li
Gendannelse af gamle pc -strømforsyninger: 12 trin (med billeder)
Gendannelse af gamle pc -strømforsyninger: Siden 1990'erne er verden blevet invaderet af pc'er. Situationen fortsætter den dag i dag. Ældre computere, indtil 2014 … 2015, er stort set ude af brug. Da hver pc har en strømforsyning, er der et stort antal af dem opgivet i form af affald. De
Konverter din gamle telefon til en fjernbetjening: 7 trin (med billeder)
Konverter din gamle telefon til en fjernbetjening: Har du nogensinde spekuleret på, hvad du skal gøre med dine gamle basistelefoner? Fremkomsten af en smartphone i det sidste årti gjorde alle de grundlæggende telefoner forældede. Selvom de havde en god batterilevetid og et anstændigt udseende, er de mindre sammenlignet med store smartphones, der har store
Gamle tv -omgivende LED -lys med Kodi: 7 trin (med billeder)
Gammelt tv -omgivende LED -lys med Kodi: Det er en instruerbar om lavt budget omgivende lys. Jeg bruger Banana pi til Kodi, fordi det er hurtigere, men du kan simpelthen installere det på Raspberry pi
Gør din gamle CRT -computerskærm til en fisketank! ! !: 11 trin (med billeder)
Gør din gamle CRT -computerskærm til en fisketank! ! !: Tal om en fantastisk pauseskærm! Jeg har længe ønsket at lave denne konstruktion. Næsten hver gang jeg ser og en gammel CRT -computerskærm ved siden af vejen på skraldedag, tænker jeg ved mig selv … det ville helt sikkert gøre en sej fisketank. Så