Obsah:

NESTAVTE svůj starý termostat: 4 kroky (s obrázky)
NESTAVTE svůj starý termostat: 4 kroky (s obrázky)

Video: NESTAVTE svůj starý termostat: 4 kroky (s obrázky)

Video: NESTAVTE svůj starý termostat: 4 kroky (s obrázky)
Video: Octopus Max EZ v1.0 - Hotend and Automatic Cooling Fans 2024, Listopad
Anonim
Image
Image
Jak funguje termostat
Jak funguje termostat

Topný systém v mém domě je pravděpodobně stejně starý jako samotný dům. Je to asi 30 let, což je v pořádku, pokud jde o domácí roky, ale pokud jde o technologii, do značné míry uvízlo v době ledové. Existují 2 hlavní problémy s komerčními řešeními:

  • nepřiměřené ceny
  • produkt jako služba

Všichni si pamatujeme, co se stalo Revolvovi, a nejsem příliš nadšený, aby se mi to stalo uprostřed zimy. S ohledem na to vám představuji neuvěřitelně podezřele vypadající, ale funkční ovladač podobný NEST pro váš starý termostat. Nebojte se, plánuji brzy přidat mnohem lepší kryt!

Funkce:

  • schopnost používat stávající termostat (pro případ, že by kvůli tomu manželka sténala)
  • vzdálený přístup
  • Režim AWAY
  • ukazatel optimální teploty
  • Pracuje s Alexou

Brzy (zde najdete aktualizace)

  • Google Home
  • Kalendář Google
  • Více senzorů
  • Ovládání chladiče
  • Integrace IFTT
  • Podpora Tasker
  • HTTP požadavky
  • Mnohem lépe vypadající výběh

Krok 1: Jak funguje termostat

Jak funguje termostat
Jak funguje termostat
Jak funguje termostat
Jak funguje termostat

Termostat je pravděpodobně připojen k VYSOKÉMU NAPĚTÍ! Nepokoušejte se nic dělat, pokud jste nezajistili, že je obvod vypnutý. Můžete si ublížit a poškodit připojené zařízení. Pro zajištění vaší bezpečnosti zvažte konzultaci s kvalifikovaným elektrikářem

Termostat Honeywell je nástěnná jednotka napájená ze sítě (základna Sonoff potřebuje minimálně 90 V, můj obvod má 230 V). Box je připojen k hlavní řídicí jednotce (což je pokročilejší box) a vysílá signál, když teplota klesne pod cílovou úroveň. I když se vaše jednotka může lišit, princip je s největší pravděpodobností stejný. Pokud máte 3 vodiče a žádné rádiové spojení mezi nástěnnou jednotkou-toto je návod pro vás.

Vím, jak principiálně fungují 3vodičové termostaty, což mi nezabránilo vypálit pojistku náhodným zkratováním 2 vodičů! K jednotce jsou připojeny 3 vodiče (přičemž čtvrtý je uzemnění). Můj termostat Honeywell není bezdrátový, takže pro přepnutí signálu mohu použít Sonoff Basic. Je čas to rozebrat a zjistit, jak je signál odeslán do jednotky. Po bližším prozkoumání je terminál připojen následujícím způsobem:

  1. (modrá) - Země
  2. (žlutá) - signál, při vytažení je topení zapnuté
  3. nepoužívané
  4. (červená) - živý vodič použitý k vytažení signálu vysoko

Abych dosáhl svého cíle, musím zkrátit živý vodič signálním vodičem, když chci zapnout topení. Pokud máte podobně připojený termostat, máte štěstí, protože Sonoff Basic bude stačit na to.

Krok 2: Příprava Sonoff Basic

Příprava Sonoff Basic
Příprava Sonoff Basic
Příprava Sonoff Basic
Příprava Sonoff Basic
Příprava Sonoff Basic
Příprava Sonoff Basic

Než začneme připojovat vodiče, musíme do směsi přidat teplotní čidlo (DHT11). Ujistěte se, že máte do svého zařízení Sonoff nahraný firmware Tasmota (zde mám vynikající průvodce blikáním) a váš Sonoff s podporou Tasmota je správně nakonfigurován (také již pokrytý mnou). Nyní vám zbývá jen připojit snímač DHT11 k Sonoff a nakonfigurovat jej pro hlášení teploty.

DHT11 je dodáván se 3 piny připojenými kabelem: Signál - GPIO14Vcc - 3,3VGND - GND

Prokousal jsem se dírou, nebavilo mě, jak to teď vypadá, vše, co potřebuji, je důkaz konceptu a ověření. Jakmile mi dorazí 3D tiskárna, udělám pěkný a lesklý kryt. Zvýšenou pozornost jsem věnoval tomu, jak zapojuji Sonoff, protože musím zajistit, aby se živý vodič připojil k signálnímu vodiči na druhém konci zařízení Sonoff. Jednotka Honeywell má uvnitř zabudovaný zatěžovací odpor (R), který omezuje proud. I když je obvod chráněn pojistkou 3A, je chytré sladit stejný odpor pro extra ochranu. Jakmile jsem měl připravené dráty, bylo na čase vypnout hlavní napájení a zapojit Sonoffa zpět.

Sonoff Tasmota - termostat Honeywell

INPUT Live - 4. terminál živě

INPUT GND - 1. svorka GND

Signál OUTPUT - signál 2. terminálu

Prozatím jsem se o tom zmínil, nebudu se stresovat vzhledem. Manželka byla přesvědčena a já se mohu soustředit na funkčnost a odstraňování všech chyb, ke kterým dojde. Dobré je, že původní termostat stále funguje. Pokud to zapnu, přepíše se to na Sonoff Tasmota. To by měla být skvělá záloha pro všechny neočekávané události.

Krok 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Upozorňujeme, že video může obsahovat starší odkazy na NodeRed, neustále pracuji na vylepšení designu. Jedná se o malé změny a soubory článků jsou aktualizovány

Na tento design jsem narazil online. Vypadá to skvěle, ale po důkladném prozkoumání se widget opravdu nehodí pro NodeRED. K nastavení je potřeba 5 užitečných zatížení, což je způsob, jakým design podobný uzlu nefunguje. Trvalo mi nějaký čas, než jsem našel nejlepší způsob, jak předat všechny tyto informace, abych aktualizoval widget a udržel jej funkční. Jsem si jistý, že časem strávím více času designem, abych mohl odeslat všechny potřebné aktualizace jediným objektem zprávy. Zatím to tak je.

Teplotní proud

DHT11 hlásí každých X sekund zpět na server NodeRED. Tuto frekvenci jsem zvýšil prostřednictvím konzoly Tasmota. Stačí spustit příkaz a nastavit frekvenci v sekundách:

TelePeriod Nastavte období telemetrie mezi 10 a 3600 sekundami

To se provádí hlavně pro testy, protože nechci čekat několik minut, abych zjistil, zda moje opravy chyb fungovaly. Udržování vysoké frekvence způsobí, že se topení bude spouštět častěji po kratší časové období, proto se vyhněte nastavení na 10 sekund pro jiné než testovací účely. Uzel MQTT získává data z:

sonoff/tele/SENZOR

a uchovává nejužitečnější data v následujících objektech:

msg.payload. DHT11. Teplota msg.payload. DHT11. Vlhkost

Aby se omezily chyby, přidal jsem hladký uzel k průměrování výsledků a aktualizoval proměnnou toku: NodeRED:

Funkční uzel - Aktualizujte 'TempAmbient'

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

Aktualizace widgetu

Rozhodl jsem se, že 5 sekund je dobrá obnovovací frekvence, proto s touto frekvencí tlačím všechny potřebné hodnoty. Jedinou výjimkou je posuvník, který ze zřejmého důvodu reaguje okamžitě.

Každý odpovídající uzel odešle užitečné zatížení s přiřazeným tématem do widgetu podobného vnoření.

  • barva (topení | chlazení*| vypnuto & hvac_state)
  • list (true | false & has_leaf)
  • pryč (pravda | nepravda a pryč)
  • Okolní teplota (číslo a teplota okolí)
  • Cílová teplota (číslo a cílová_teplota)

*nepoužívané

NodeRED: Funkční uzel - aktualizace widgetu

barva

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

if (z = x) {

flow.set ('vytápěníState', "vypnuto"); flow.set ('vytápěníSpínač', "VYPNUTO"); } msg.payload = z; msg.topic = "teplota_ okolního prostředí"; vrátit zprávu;

list

x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('leaf', true); msg.payload = true; msg.topic = "has_leaf"; vrátit zprávu; } else {flow.set ('leaf', false); msg.payload = false; msg.topic = "has_leaf"; vrátit zprávu; }

Přepsání barvy pryč

x = flow.get ('away'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "off"; vrátit zprávu; }

msg.topic = "hvac_state";

msg.payload = flow.get ('vytápěníState');

vrátit zprávu;

Pryč

x = flow.get ('away'); if (x === true) {flow.set ('vytápěníSpínač', "VYPNUTO"); flow.set ('vytápěníState', "vypnuto"); }

msg.topic = "pryč";

msg.payload = flow.get ('away'); vrátit zprávu;

Target Temp

if (msg.topic === "update") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); vrátit zprávu; }

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

flow.set ('away', false); msg.topic = "cílová_teplota"; flow.set ('TempTarget', msg.payload); }

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

flow.set ('away', false); msg.topic = "cílová_teplota"; flow.set ('TempTarget', msg.payload); }

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

vrátit zprávu;

Jak vidíte, rozhodl jsem se pro proměnné toku, abych si mohl hodnotu kdykoli vybavit. Mám tok ladění, který v podstatě čte všechny uložené hodnoty.

  • „TempAmbinet“- ukládá aktuální teplotu
  • „TempTarget“- uchovává cílovou hodnotu temp
  • „List“- v případě potřeby zobrazí list
  • „Pryč“- v případě potřeby zobrazí stav pryč
  • „Výhřevný stav“- mění barvu displeje
  • ‘VytápěníSpínač‘- ovládá stav relé.

Úkolem bylo skutečně zajistit, aby byly informace aktualizovány při „aktualizaci“a na vyžádání jinými prostředky (Alexa atd.). Proto v JavaScriptu uvidíte různé podmínky. Při každé aktualizaci hodnot se odešlou do proměnné toku a widget se aktualizuje.

Posuvník

Testování ukázalo, že je nutná další aktualizace posuvníku (posuvník tlačí cílovou teplotu). Posuvník při přesunu odešle užitečné zatížení (číslo) s přidruženým tématem „posuvník“. Kromě toho chci, aby se posuvník dostal do správné polohy, pokud je k dispozici více webových rozhraní. K tomu každých 5 sekund jednoduše aktualizuji polohu posuvníku na aktuální cílovou teplotu.

NodeRED: Funkční uzel - posuvník aktualizace '

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

Ovládání relé

Reléový ovladač je jednoduchý, vyžaduje (prozatím) dva vstupy. Alexa je pravda | nepravda a interakce, která následuje po aktualizaci průtokové proměnné „Topný spínač“. Není potřeba okamžitá akce, takže pro jednoduchost běží na stejné frekvenci aktualizace 5 sekund jako zbytek toku.

Relé je připojeno přes MQTT. Node odesílá příkazy ON | OFF k tématu:

sonoff/cmnd/POWER1

Funkční uzel akceptuje true | false od Alexa a také mění stav vstupu podle proměnné toku ‘vytápěníSpínačem‘.

NodeRED: Function Node - Control Relay '

if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; vrátit zprávu; }

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

msg.payload = "ON"; flow.set ('TempTarget', 21); vrátit zprávu; } if (msg.topic === "update") {msg.payload = flow.get ('coatingSwitch'); } vrátit zprávu;

Integrace Alexa

Toto je první zařízení, které jsem musel vypnout „automatické potvrzení“. Namísto automatického převzetí odpovědi jsem vygeneroval odpověď, protože chci možnost dotazovat se na nastavenou teplotu. V zásadě msg.payload = true | false označuje, zda byl požadavek úspěšný, a zde nalezené šablony provedou zbytek. Pokud jste pro Alexa a NodeRed nováčci, určitě si to přečtěte.

Rozhodl jsem se předat potvrzení samostatně (vím, že to není nejlepší způsob), abych to všechno mohl trochu lépe ovládat. Správně by každá odpověď měla být uvedena na konci řetězce příkazů. Důl riskuje nevrácení chyb, pokud k nim dojde. Všimněte si toho, že abych byl konzistentní, aktualizuji pouze proměnné, zatímco obnovovací smyčka posouvá nové hodnoty do widgetu.

NodeRED: Function Node - Process Alexa Responses '

// Jaká je cílová teplota termostatu (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "equipmentResponseTimestamp": nové datum (). toISOString ()}; msg.payload = true; vrátit zprávu; } // Nastavte teplotu na (ne nižší než 10 nebo více než 30), pokud (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10,0, max: 30,0} msg.payload = false; msg.extra = rozsah; } else {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } vrátit zprávu; } // Zapněte if (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('away', false); flow.set ('TempTarget', 21); vrátit zprávu; } // Vypněte, pokud (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('away', true); vrátit zprávu;

Krok 4: Závěr

Závěr
Závěr

Pokud vystavíte palubní desku NodeRED WAN, lze celý topný systém ovládat dálkově. Doporučuji vám, abyste si přečetli následující články, abyste si s NodeRED a zabezpečením NodeRED zajistili maximální rychlost.

  • NodeRED pro začátečníky
  • Zabezpečení NodeRED

Kromě toho, pokud chcete být informováni o aktualizacích tohoto projektu - zvažte možnost mě sledovat na vámi zvolené platformě:

  • Dvakrát
  • Instagram
  • Youtube

A pokud máte chuť koupit mi kávu nebo mě podpořit souvislejším způsobem:

  • Paypal
  • Patreon

Doufám, že se vám projekt líbil!

Doporučuje: