Innholdsfortegnelse:
- Trinn 1: Hvordan en termostat fungerer
- Trinn 2: Gjør Sonoff Basic klar
- Trinn 3: NodeRED
- Trinn 4: Konklusjon
Video: NEST Din gamle termostat: 4 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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
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:
- (blå) - Bakken
- (gul) - signal, når opptaket er høyt, er varmen på
- ikke i bruk
- (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
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
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
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
- 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:
Steam Punk UPSen din for å få timer med oppetid for din Wi-Fi-ruter: 4 trinn (med bilder)
Steam Punk UPSen din for å få timer med oppetid for din Wi-Fi-ruter: Det er noe grunnleggende ubehagelig med at UPS-en din skal konvertere sin 12V DC-batteristrøm til 220V vekselstrøm, slik at transformatorene som kjører ruteren din og fiber ONT kan konvertere den tilbake til 12V DC! Du er også imot [vanligvis
Legg Bluetooth til din gamle bilstereo: 5 trinn
Legg til Bluetooth i din gamle bilstereo: Hei alle sammen! Dette er første gang jeg deler noen av disse prosjektene, jeg håper du kan få i det minste noen ideer for å gjenopplive din gamle bilstereo. Min innfødte lenguaje er ikke engelsk, så jeg beklager om min ortografi eller grammatikk er ikke riktig
Legg Bluetooth til din gamle bilstereo: 11 trinn
Legg til Bluetooth i din gamle bilstereo: Jeg har et stereoanlegg på bilen min, men den har ikke bluetooth, så jeg skjønner det, hvorfor ikke legge den til?
Konverter din gamle telefon til en fjernkontroll: 7 trinn (med bilder)
Konverter din gamle telefon til en fjernkontroll: Har du noen gang lurt på hva du skal gjøre med de gamle grunntelefonene dine? Fremkomsten av en smarttelefon i det siste tiåret gjorde alle de grunnleggende telefonene foreldet. Selv om de hadde god batterilevetid og anstendig utseende, er de mindre sammenlignet med store smarttelefoner som har store
Gjør din gamle CRT -dataskjerm til en fisketank! ! !: 11 trinn (med bilder)
Gjør din gamle CRT -dataskjerm til en fisketank! ! !: Snakk om en flott skjermsparer! Jeg har hatt lyst til å gjøre dette bygget en stund nå. Omtrent hver gang jeg ser og en gammel CRT -dataskjerm ved siden av veien på søppeldagen, tenker jeg for meg selv … det ville sikkert bli en flott fisketank. Så