Inhoudsopgave:

NEST je oude thermostaat: 4 stappen (met afbeeldingen)
NEST je oude thermostaat: 4 stappen (met afbeeldingen)

Video: NEST je oude thermostaat: 4 stappen (met afbeeldingen)

Video: NEST je oude thermostaat: 4 stappen (met afbeeldingen)
Video: Hoe installeer ik de Google Nest Learning Thermostat? 2024, Juli-
Anonim
Image
Image
Hoe een thermostaat werkt
Hoe een thermostaat werkt

Het verwarmingssysteem in mijn huis is waarschijnlijk zo oud als het huis zelf. Het is ongeveer 30 jaar oud, wat prima is in termen van huisjaren, maar qua technologie vrijwel vast in de ijstijd. Er zijn 2 hoofdproblemen met commerciële oplossingen:

  • onbetaalbare prijzen
  • product als service

We herinneren ons allemaal wat er met Revolv is gebeurd en ik ben er niet zo happig op dat mij dit midden in de winter overkomt. Met dat in gedachten presenteer ik je een ongelooflijk verdacht uitziende maar functionele NEST-achtige controller voor je oude thermostaat. Maak je geen zorgen, ik ben van plan om binnenkort een veel betere behuizing toe te voegen!

Functies:

  • mogelijkheid om een bestaande thermostaat te gebruiken (voor het geval de vrouw erover klaagt)
  • toegang op afstand
  • AFWEZIG modus
  • optimale temperatuurindicator
  • Werkt met Alexa

Binnenkort (kijk hier voor updates)

  • Google huis
  • Google kalender
  • Meerdere sensoren
  • Radiatorbedieningen
  • IFTT-integraties
  • Tasker-ondersteuning
  • HTTP-verzoeken
  • Een veel mooiere behuizing

Stap 1: Hoe een thermostaat werkt

Hoe een thermostaat werkt
Hoe een thermostaat werkt
Hoe een thermostaat werkt
Hoe een thermostaat werkt

De thermostaat is waarschijnlijk aangesloten op de HOOGSPANNING! Probeer niets te doen tenzij u zeker weet dat het circuit is uitgeschakeld. U kunt uzelf verwonden en schade toebrengen aan de aangesloten apparatuur. Overweeg om een gekwalificeerde elektricien te raadplegen om uw veiligheid te garanderen

De Honeywell-thermostaat is een aan de muur gemonteerde unit, gevoed door het lichtnet (Sonoff-basics hebben min 90V nodig, mijn circuit heeft 230V). De box is verbonden met de hoofdregeleenheid (wat een meer geavanceerde box is) en stuurt het signaal wanneer de temperatuur onder het streefniveau zakt. Hoewel uw apparaat misschien anders is, is het principe waarschijnlijk hetzelfde. Als je 3 draden hebt en geen radioverbinding tussen de aan de muur gemonteerde unit, dan is dit de tutorial voor jou.

Ik weet hoe de 3-draads thermostaten in een principe werken, wat me er niet van weerhield om een zekering door te blazen door per ongeluk 2 draden kort te sluiten! Ik heb 3 draden aangesloten op de unit (waarvan de 4e de aarde is). Mijn Honeywell-thermostaat is niet draadloos, dus om het signaal te schakelen, kan ik Sonoff Basic gebruiken. Het is tijd om hem uit elkaar te halen en te kijken hoe het signaal naar de unit wordt gestuurd. Bij nadere inspectie is de terminal op de volgende manier aangesloten:

  1. (blauw) – Grond
  2. (geel) – signaal, bij hoog trekken staat de verwarming aan
  3. niet in gebruik
  4. (rood) – de spanningvoerende draad die wordt gebruikt om het signaal hoog te trekken

Om mijn doel te bereiken, moet ik de stroomdraad kortsluiten met de signaaldraad wanneer ik wil dat mijn verwarming wordt ingeschakeld. Als je een soortgelijk aangesloten thermostaat hebt, heb je geluk, want Sonoff Basic is voldoende om de slag te slaan.

Stap 2: Sonoff Basic klaar krijgen

Sonoff Basic klaar maken
Sonoff Basic klaar maken
Sonoff Basic klaar maken
Sonoff Basic klaar maken
Sonoff Basic klaar maken
Sonoff Basic klaar maken

Voordat we beginnen met het aansluiten van de draden, moeten we een temperatuursensor (DHT11) aan de mix toevoegen. Zorg ervoor dat Tasmota-firmware naar uw Sonoff-apparaat is geflitst (ik heb hier een uitstekende flitsgids) en uw Tasmota-compatibele Sonoff correct is geconfigureerd (ook al door mij behandeld). Nu hoeft u alleen nog de DHT11-sensor op de Sonoff aan te sluiten en deze te configureren voor temperatuurrapportage.

DHT11 wordt geleverd met 3 bekabelde pinnen: Signaal - GPIO14Vcc - 3.3VGND - GND

Ik heb er een gaatje door geprikt, het maakt me niet uit hoe het er nu uitziet, ik heb alleen het proof of concept en de validatie nodig. Ik zal een mooie en glanzende behuizing maken zodra mijn 3D-printer arriveert. Ik heb extra aandacht besteed aan hoe ik de Sonoff bedraden, omdat ik ervoor moet zorgen dat de stroomdraad wordt aangesloten op de signaaldraad aan het andere uiteinde van het Sonoff-apparaat. In de Honeywell-unit is de belastingsweerstand (R) ingebouwd die de stroom begrenst. Hoewel het circuit wordt beschermd door de 3A-zekering, is het slim om dezelfde weerstand aan te passen voor extra bescherming. Toen ik de draden klaar had, was het tijd om de hoofdstroom uit te schakelen en de Sonoff terug te bedraden.

Sonoff Tasmota - Honeywell thermostaat

INPUT Live - 4e terminal Live

INPUT GND - 1e klem GND

OUTPUT Signaal - 2e terminal Signaal

Ik noemde dat al eerder, ik ga me niet druk maken over het uiterlijk hiervan. De vrouw is overtuigd en ik kan me concentreren op de functionaliteit en het oplossen van eventuele bugs. Het mooie is dat de originele thermostaat nog werkt. Als ik het hoger zet, zal het de op Sonoff Tasmota gebaseerde overschrijven. Dit zou een geweldige back-up moeten zijn voor onverwachte gebeurtenissen.

Stap 3: KnooppuntRED

KnooppuntRED
KnooppuntRED
KnooppuntRED
KnooppuntRED
KnooppuntRED
KnooppuntRED

Houd er rekening mee dat video oudere NodeRed-referenties kan bevatten, ik ben constant bezig met het verbeteren van het ontwerp. Dit zijn kleine wijzigingen en de artikelbestanden worden up-to-date gehouden

Ik kwam dit ontwerp tegen op internet. Het ziet er geweldig uit, maar bij nader inzien is de widget niet echt geschikt voor NodeRED. Er moeten 5 payloads worden ingesteld, wat gewoon niet is hoe node-achtig ontwerp werkt. Het kostte me wat tijd om erachter te komen wat de beste manier is om al die informatie door te geven om de widget bij te werken en functioneel te houden. Ik weet zeker dat ik in de loop van de tijd meer tijd aan het ontwerp zal besteden, zodat ik alle benodigde updates kan pushen met een enkel berichtobject. Voor nu is het wat het is.

Temperatuurstroom

DHT11 rapporteert elke X seconden terug naar de NodeRED-server. Ik heb deze frequentie verhoogd via de Tasmota-console. Voer gewoon de opdracht uit om de frequentie in seconden in te stellen:

TelePeriod Stel de telemetrieperiode in tussen 10 en 3600 seconden

Dit wordt meestal gedaan voor tests, omdat ik geen minuten wil wachten om te zien of mijn bugfixes hebben gewerkt. Als u de frequentie hoog houdt, zal de verwarming vaker voor kortere tijd aanslaan, dus stel deze niet in op 10 sec voor andere dan testdoeleinden. Het MQTT-knooppunt haalt de gegevens uit:

sonoff/tele/SENSOR

en bewaart de meest bruikbare gegevens in de volgende objecten:

msg.payload. DHT11. Temperatuur msg.payload. DHT11. Vochtigheid

Om de fouten te beperken, heb ik het gladde knooppunt toegevoegd om de resultaten te middelen en de stroomvariabele bijgewerkt: NodeRED:

Functieknooppunt - Update de 'TempAmbient'

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

Widget-update

Ik heb besloten dat 5 seconden een goede verversingssnelheid is, daarom push ik alle benodigde waarden met deze frequentie. De enige uitzondering is de schuifregelaar, die om voor de hand liggende reden onmiddellijk reageert.

Elk corresponderend knooppunt stuurt de payload met het toegewezen onderwerp naar de nest-alike widget.

  • kleur (verwarmen|koelen*|uit & hvac_state)
  • blad (true|false & has_leaf)
  • weg (true|false & weg)
  • Omgevingstemperatuur (aantal & omgevingstemperatuur)
  • Doeltemperatuur (getal & doeltemperatuur)

*niet in gebruik

NodeRED: Functieknooppunt - Widget-update

kleur

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

als (z = x){

flow.set('heatingState', "uit"); flow.set('heatingSwitch', "OFF"); } bericht.payload = z; msg.topic = "omgevingstemperatuur"; bericht terugsturen;

blad

x = flow.get('TempOmgeving'); if (x > 17 && x < 23){ flow.set('blad', true); msg.payload = waar; msg.topic = "heeft_blad"; bericht terugsturen; } else{flow.set('blad', false); msg.payload = onwaar; msg.topic = "heeft_blad"; bericht terugsturen; }

Kleur weg overschrijven

x = stroom.get('weg'); if (x === true){ msg.topic = "hvac_state"; msg.payload = "uit"; bericht terugsturen; }

msg.topic = "hvac_state";

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

bericht terugsturen;

Weg

x = stroom.get('weg'); if (x === true){ flow.set('heatingSwitch', "OFF"); flow.set('heatingState', "uit"); }

msg.topic = "weg";

msg.payload = flow.get('weg'); bericht terugsturen;

Doeltemperatuur

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

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

flow.set('weg', false); msg.topic = "doeltemperatuur"; flow.set('TempTarget', bericht.payload); }

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

flow.set('weg', false); msg.topic = "doeltemperatuur"; flow.set('TempTarget', bericht.payload); }

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

bericht terugsturen;

Zoals je ziet, heb ik me afgemeld voor de stroomvariabelen, zodat ik de waarde op elk moment kon herinneren. Ik heb een debug-stroom die in principe alle opgeslagen waarden leest.

  • ‘TempAmbinet‘– slaat de huidige temp op
  • 'TempTarget' - houdt de tijdelijke doelwaarde vast
  • 'blad' - geeft blad weer als dat nodig is
  • 'Afwezig' – geeft indien nodig de afwezigheidsstatus weer
  • ‘heatingState‘– verandert de kleur van het display
  • 'heatingSwitch' – regelt de status van het relais.

De uitdaging was om er daadwerkelijk voor te zorgen dat de informatie wordt bijgewerkt bij "update" en wanneer daarom wordt gevraagd via andere middelen (Alexa, enz.). Dit is de reden waarom u verschillende voorwaarden in JavaScript zult zien. Elke keer dat de waarden worden bijgewerkt, worden ze naar de stroomvariabele verzonden en wordt de widget vernieuwd.

Schuifregelaar

Uit testen bleek dat een extra slider-update (slider duwt de doeltemperatuur) nodig is. Slider verzendt de payload (nummer) met het bijbehorende onderwerp slider) wanneer deze wordt verplaatst. Bovendien wil ik dat de schuifregelaar in de juiste positie komt als er meerdere webinterfaces zijn. Om dit te doen, update ik elke 5 seconden de schuifregelaarpositie naar een huidige doeltemperatuur.

NodeRED: Functieknooppunt - Schuifregelaar bijwerken'

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

relais controle

De relaiscontroller is eenvoudig, er zijn (voorlopig) twee ingangen voor nodig. Alexa's true|false en de interactie die volgt op een update van de stroomvariabele "heating Switch". Er is geen directe actie nodig, dus voor de eenvoud werkt het op dezelfde updatefrequentie van 5 seconden als de rest van de stroom.

Het relais is aangesloten via MQTT. Node plaatst ON|OFF-commando's in het onderwerp:

sonoff/cmnd/POWER1

Het functieknooppunt accepteert de true|false van Alexa en verandert ook de status van de invoer volgens de stroomvariabele 'heatingSwitch'.

NodeRED: Functieknooppunt - Stuurrelais'

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

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

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

Alexa-integratie

Dit is het eerste apparaat dat ik de "automatische bevestiging" moest uitschakelen. In plaats van automatisch een reactie aan te nemen, heb ik er een gegenereerd omdat ik de mogelijkheid wil hebben om de ingestelde temperatuur op te vragen. In principe geeft msg.payload = true|false aan of het verzoek is gelukt, en de hier gevonden sjablonen doen de rest. Als je nieuw bent bij Alexa en NodeRed, lees dit dan zeker.

Ik besloot de dankbetuigingen apart door te geven (ik weet dat dit niet de beste manier is) om het allemaal een beetje beter te kunnen beheersen. Elk antwoord moet correct aan het einde van de commandoketen worden gegeven. De mijne loopt het risico geen fouten terug te geven als deze zich voordoen. Merk op dat om consistent te zijn, ik alleen de variabelen bijwerk, terwijl de verversingslus de nieuwe waarden naar de widget duwt.

NodeRED: Functieknooppunt - Alexa-antwoorden verwerken'

// Wat is de doeltemperatuur van de thermostaatif (msg.command === "GetTemperatureReadingRequest"){ x =flow.get('TempTarget'); msg.extra = { "temperatureReading": { "value": x}, "applianceResponseTimestamp": new Date().toISOString()}; msg.payload = waar; bericht terugsturen; } // Stel de temperatuur in op (niet lager dan 10 of meer dan 30) if (msg.command === "SetTargetTemperatureRequest"){ if (msg.payload 30) { var range = { min: 10.0, max: 30.0 } msg.payload = onwaar; msg.extra = bereik; } else { msg.extra = { targetTemperature: { value: msg.payload } }; msg.payload = waar; } bericht terugsturen; } // Zet het aan als (msg.command === "TurnOnRequest"){ msg.payload = true; flow.set('weg', false); flow.set('TempTarget', 21); bericht terugsturen; } // Zet het uit if (msg.command === "TurnOffRequest"){ msg.payload = true; flow.set('weg', waar); bericht terugsturen;

Stap 4: Conclusie

Conclusie
Conclusie

Als je het NodeRED-dashboard aan WAN blootstelt, kan het hele verwarmingssysteem op afstand worden bediend. Ik raad je aan de volgende artikelen te lezen om op de hoogte te zijn van NodeRED- en NodeRED-beveiliging.

  • NodeRED voor beginners
  • NodeRED-beveiliging

Als u bovendien op de hoogte wilt blijven van de updates van dit project, overweeg dan om mij te volgen op het platform van uw keuze:

  • Facebo oke
  • Twi tter
  • Instagram
  • YouTu be

En als je zin hebt om een kopje koffie voor me te drinken of me op een meer continue manier wilt steunen:

  • Paypal
  • Patreon

Ik hoop dat je genoten hebt van het project!

Aanbevolen: