İçindekiler:

NEST Eski Termostatınız: 4 Adım (Resimlerle)
NEST Eski Termostatınız: 4 Adım (Resimlerle)

Video: NEST Eski Termostatınız: 4 Adım (Resimlerle)

Video: NEST Eski Termostatınız: 4 Adım (Resimlerle)
Video: Oda termostatı nasıl bağlanır? Kablosuz oda termostat montajını Kendin yap 2024, Temmuz
Anonim
Image
Image
Termostat Nasıl Çalışır?
Termostat Nasıl Çalışır?

Evimdeki ısıtma sistemi muhtemelen evin kendisi kadar eskidir. Yaklaşık 30 yaşında, bu ev yılları açısından gayet iyi, ancak teknoloji söz konusu olduğunda hemen hemen buzul çağında sıkışmış durumda. Ticari çözümlerle ilgili 2 ana sorun vardır:

  • engelleyici fiyatlandırma
  • hizmet olarak ürün

Hepimiz Revolv'a ne olduğunu hatırlıyoruz ve bunun kışın ortasında başıma gelmesine pek hevesli değilim. Bunu akılda tutarak, size eski termostatınız için inanılmaz derecede şüpheli görünen ama işlevsel NEST-Alike kontrolörünü sunuyorum. Endişelenme, yakında eklenecek çok daha iyi bir kasa planlıyorum!

Özellikleri:

  • mevcut bir termostatı kullanma yeteneği (eşinin bu konuda inlemesi durumunda)
  • uzaktan erişim
  • UZAK modu
  • optimum sıcaklık göstergesi
  • Alexa'da çalışıyor

Yakında (güncellemeler için burayı kontrol edin)

  • Google evi
  • Google Takvim
  • Çoklu Sensörler
  • Radyatör kontrolleri
  • IFTT entegrasyonları
  • Görev yöneticisi desteği
  • HTTP İstekleri
  • Çok daha iyi görünümlü bir muhafaza

Adım 1: Termostat Nasıl Çalışır?

Termostat Nasıl Çalışır?
Termostat Nasıl Çalışır?
Termostat Nasıl Çalışır?
Termostat Nasıl Çalışır?

Termostat muhtemelen YÜKSEK VOLTAJ'a bağlıdır! Devrenin kapalı olduğundan emin olmadıkça hiçbir şey yapmaya çalışmayın. Kendinize zarar verebilir ve bağlı ekipmana zarar verebilirsiniz. Güvenliğinizi sağlamak için kalifiye bir elektrikçiye danışmayı düşünün

Honeywell termostatı, şebekeden güç alan duvara monte bir ünitedir (Sonoff temelleri minimum 90V'a ihtiyaç duyar, devremde 230V vardır). Kutu ana kontrol ünitesine (daha gelişmiş bir kutu) bağlıdır ve sıcaklık hedef seviyenin altına düştüğünde sinyal gönderir. Üniteniz farklı olsa da, prensip büyük olasılıkla aynıdır. Duvara monte ünite arasında 3 kablonuz varsa ve radyo bağlantınız yoksa - bu sizin için öğreticidir.

3 telli termostatların bir prensipte nasıl çalıştığını biliyorum, bu da 2 kabloyu yanlışlıkla kısa devre yaparak sigortayı atmamı engellemedi! Üniteye bağlı 3 kablom var (4'üncü toprak olmak üzere). Honeywell termostatım kablosuz değil, bu yüzden sinyali değiştirmek için Sonoff Basic'i kullanabilirim. Şimdi onu parçalara ayırmanın ve sinyalin üniteye nasıl gönderildiğini görmenin zamanı geldi. Daha yakından bakıldığında, terminal aşağıdaki şekilde bağlanır:

  1. (mavi) – Zemin
  2. (sarı) – sinyal, yükseğe çekildiğinde ısıtma açılır
  3. kullanımda değil
  4. (kırmızı) - sinyali yüksek çekmek için kullanılan canlı tel

Amacıma ulaşmak için, ısıtmamın açılmasını istediğimde canlı kabloyu sinyal kablosuyla kısa devre yapmak zorundayım. Benzer şekilde bağlı bir termostatınız varsa, şanslısınız çünkü Sonoff Basic hile yapmak için yeterli olacaktır.

Adım 2: Sonoff Basic'i Hazırlama

Sonoff Basic'i Hazırlama
Sonoff Basic'i Hazırlama
Sonoff Basic'i Hazırlama
Sonoff Basic'i Hazırlama
Sonoff Basic'i Hazırlama
Sonoff Basic'i Hazırlama

Kabloları bağlamaya başlamadan önce karışıma bir sıcaklık sensörü (DHT11) eklemeliyiz. Sonoff cihazınıza Tasmota belleniminin yüklendiğinden (burada mükemmel bir yanıp sönme kılavuzum var) ve Tasmota etkin Sonoff'unuzun doğru şekilde yapılandırıldığından (zaten benim tarafımdan kapsandığından) emin olun. Şimdi geriye sadece DHT11 sensörünü Sonoff'a bağlamak ve sıcaklık raporlaması için yapılandırmak kalıyor.

DHT11, 3 pin kablolu olarak gelir: Sinyal - GPIO14Vcc - 3.3VGND - GND

Bir delik açtım, şimdi nasıl göründüğü ile ilgilenmiyorum, tek ihtiyacım olan kavram kanıtı ve doğrulama. 3D yazıcım geldiğinde güzel ve parlak bir kasa yapacağım. Canlı kablonun Sonoff cihazının diğer ucundaki sinyal kablosuna bağlandığından emin olmam gerektiğinden, Sonoff'u nasıl kabloladığıma fazladan dikkat ettim. Honeywell ünitesi, içinde akımı sınırlayan yük direncine (R) sahiptir. Devre 3A sigorta ile korunurken, ekstra koruma için aynı direnci eşleştirmek akıllıcadır. Kabloları hazırladıktan sonra, ana gücü kapatıp Sonoff'u geri bağlamanın zamanı gelmişti.

Sonoff Tasmota - Honeywell termostatı

INPUT Live - 4. terminal Canlı

GİRİŞ GND - 1. terminal GND

ÇIKIŞ Sinyali - 2. terminal Sinyali

Şimdilik bundan önce bahsetmiştim, bunun görünüşü hakkında stres yapmayacağım. Karım ikna oldu ve işlevselliğe ve olabilecek hataları temizlemeye odaklanabilirim. İşin iyi yanı, orijinal termostatın hala çalışıyor olmasıdır. Açarsam, Sonoff Tasmota tabanlı olanı geçersiz kılar. Bu, beklenmedik olaylar için harika bir yedek olmalıdır.

Adım 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Videonun daha eski NodeRed referanslarını içerebileceğini lütfen unutmayın, sürekli olarak tasarımı geliştirmek için çalışıyorum. Bunlar küçük değişikliklerdir ve makale dosyaları güncel tutulur

Bu tasarıma internette rastladım. Harika görünüyor, ancak yakından incelendiğinde, widget gerçekten NodeRED için uygun değil. Ayarlanması için 5 yüke ihtiyacı var, bu da düğüm benzeri tasarımın çalışma şekli değil. Widget'ı güncellemek ve çalışır durumda tutmak için tüm bu bilgileri aktarmanın en iyi yolunu bulmam biraz zaman aldı. Zamanla tasarım üzerinde daha fazla zaman harcayacağımdan eminim, böylece gerekli tüm güncellemeleri tek bir msg nesnesi ile gönderebilirim. Şimdilik, neyse o.

Sıcaklık akışı

DHT11, her X saniyede bir NodeRED sunucusuna rapor verir. Bu frekansı Tasmota'nın konsolu üzerinden arttırdım. Frekansı saniye cinsinden ayarlamak için komutu çalıştırmanız yeterlidir:

TelePeriod Telemetri süresini 10 ile 3600 saniye arasında ayarlayın

Bu, çoğunlukla testler için yapılır, çünkü hata düzeltmelerimin işe yarayıp yaramadığını görmek için dakikalarca beklemek istemiyorum. Frekansı yüksek tutmak, ısıtmanın daha kısa sürelerle daha sık yanmasına neden olur, bu nedenle test amaçları dışında 10 saniyeye ayarlamaktan kaçının. MQTT düğümü verileri şuradan çeker:

sonoff/tele/SENSÖR

ve en yararlı verileri aşağıdaki nesnelerde tutar:

msg.payload. DHT11. Sıcaklık msg.payload. DHT11. Nem

Hataları sınırlamak için sonuçların ortalamasını almak için yumuşak düğümü ekledim ve akış değişkenini güncelledim: NodeRED:

İşlev Düğümü - 'TempAmbient'i güncelleyin

flow.set('TempAmbient', msg.payload. DHT11. Temperature);dönüş mesajı;

Widget güncellemesi

5 saniyenin iyi bir yenileme hızı olduğuna karar verdim, bu nedenle gerekli tüm değerleri bu sıklıkta zorluyorum. Tek istisna, bariz bir nedenle anında yanıt veren kaydırıcıdır.

Karşılık gelen her düğüm, atanan konu ile yükü benzer iç içe widget'a gönderir.

  • renk (ısıtma|soğutma*|kapalı ve hvac_state)
  • yaprak (doğru|yanlış ve has_leaf)
  • uzakta (doğru|yanlış ve uzakta)
  • Ortam sıcaklığı (sayı ve ortam sıcaklığı)
  • Hedef sıcaklık (sayı ve hedef sıcaklık)

*kullanımda değil

NodeRED: İşlev Düğümü - Widget Güncellemesi

renk

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

eğer (z = x){

flow.set('heatingState', "kapalı"); flow.set('heatingSwitch', "OFF"); } msg.payload = z; msg.topic = "ambient_temperature"; dönüş mesajı;

Yaprak

x = flow.get('TempAmbient'); if (x > 17 && x < 23){ flow.set('leaf', true); msg.payload = doğru; msg.topic = "has_leaf"; dönüş mesajı; } else{flow.set('yaprak', yanlış); msg.payload = yanlış; msg.topic = "has_leaf"; dönüş mesajı; }

Renkli geçersiz kılma

x = flow.get('uzak'); if (x === true){ msg.topic = "hvac_state"; msg.payload = "kapalı"; dönüş mesajı; }

msg.topic = "hvac_state";

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

dönüş mesajı;

Uzak

x = flow.get('uzak'); if (x === true){ flow.set('heatingSwitch', "OFF"); flow.set('heatingState', "kapalı"); }

msg.topic = "uzak";

msg.payload = flow.get('uzak'); dönüş mesajı;

Hedef Sıcaklık

if (msg.topic === "güncelleme"){ msg.topic = "target_temperature"; msg.payload = flow.get('TempTarget'); dönüş mesajı; }

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

flow.set('uzak', yanlış); msg.topic = "target_temperature"; flow.set('TempTarget', msg.payload); }

if (msg.topic === "kaydırıcı") {

flow.set('uzak', yanlış); msg.topic = "target_temperature"; flow.set('TempTarget', msg.payload); }

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

dönüş mesajı;

Gördüğünüz gibi, herhangi bir zamanda değeri hatırlayabilmek için akış değişkenlerini seçtim. Temelde saklanan tüm değerleri okuyan bir hata ayıklama akışım var.

  • 'TempAmbinet' - mevcut sıcaklığı saklar
  • 'TempTarget' – geçici hedef değerini tutar
  • 'yaprak' - gerekirse yaprağı görüntüler
  • 'uzakta' - gerekirse uzakta durumunu görüntüler
  • 'heatingState' - ekranın rengini değiştirir
  • 'heatingSwitch' – rölenin durumunu kontrol eder.

Buradaki zorluk, bilgilerin “güncelleme” sırasında ve başka yollarla (Alexa, vb.) istendiğinde güncellendiğinden emin olmaktı. Bu nedenle JavaScript'te farklı koşullar göreceksiniz. Değerler her güncellendiğinde, akış değişkenine gönderilir ve pencere öğesi yenilenir.

kaydırıcı

Testler, ek bir kaydırıcı güncellemesinin (kaydırıcı hedef sıcaklığı iter) gerekli olduğunu ortaya çıkardı. Kaydırıcı, taşındığında yükü (sayı) ilişkili konu “kaydırıcı” ile gönderir. Bunun da ötesinde, birden fazla web arabirimi yerindeyse kaydırıcının doğru konuma gelmesini istiyorum. Bunu yapmak için, her 5 saniyede bir kaydırıcı konumunu mevcut bir hedef sıcaklığa güncellerim.

NodeRED: İşlev Düğümü - Kaydırıcıyı güncelle'

msg.payload = flow.get('TempTarget');dönüş msj;

röle kontrolü

Röle kontrolörü basittir, (şimdilik) iki giriş alır. Alexa'nın true|false ve "ısıtma Anahtarı" akış değişkeninde bir güncellemeyi takip eden etkileşim. Anında eyleme gerek yoktur, bu nedenle basitlik için akışın geri kalanıyla aynı 5 saniyelik güncelleme frekansında çalışır.

Röle MQTT aracılığıyla bağlanır. Düğüm konuya ON|OFF komutları gönderiyor:

sonoff/cmnd/POWER1

İşlev düğümü Alexa'dan true|false değerini kabul eder ve ayrıca girişin durumunu "heatingSwitch" akış değişkenine göre değiştirir.

NodeRED: İşlev Düğümü - Kontrol Rölesi'

if (msg.command === "TurnOffRequest"){ msg.payload = "OFF"; dönüş mesajı; }

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

msg.payload = "AÇIK"; flow.set('TempTarget', 21); dönüş mesajı; } if (msg.topic === "güncelleme"){ msg.payload = flow.get('heatingSwitch'); } mesaj gönder;

Alexa entegrasyonu

Bu, “otomatik onay” özelliğini kapatmak zorunda kaldığım ilk cihazdı. Otomatik olarak bir yanıt varsaymak yerine, ayarlanan sıcaklığı sorgulayabilmeyi istediğim için bir yanıt oluşturdum. Prensipte, msg.payload = true|false, isteğin başarılı olup olmadığını gösterir ve burada bulunan şablonlar gerisini halleder. Alexa ve NodeRed'de yeniyseniz, bunu okuduğunuzdan emin olun.

Her şeyi biraz daha iyi kontrol edebilmek için teşekkürleri ayrı olarak iletmeye karar verdim (bunun en iyi yol olmadığını biliyorum). Uygun şekilde her yanıt, komut zincirinin sonunda verilmelidir. Mine, bunların olması durumunda hataları döndürmeme riskini taşıyor. Tutarlı olmak için, yenileme döngüsü yeni değerleri pencere aracına aktarırken yalnızca değişkenleri güncellediğimi unutmayın.

NodeRED: İşlev Düğümü - Alexa Yanıtlarını İşle'

// Termostatın hedef sıcaklığı nedir (msg.command === "GetTemperatureReadingRequest"){ x =flow.get('TempTarget'); msg.extra = { "temperatureReading": { "değer": x}, "applianceResponseTimestamp": new Date().toISOString()}; msg.payload = doğru; dönüş mesajı; } // Sıcaklığı (msg.command === "SetTargetTemperatureRequest"){ if (msg.payload 30) { var range = { min: 10.0, maks: 30.0 } olarak ayarlayın (10'dan düşük veya 30'dan fazla değil) msg.payload = yanlış; msg.ekstra = aralık; } else { msg.extra = { targetSıcaklık: { değer: msg.payload } }; msg.payload = doğru; } mesaj gönder; } // Açın if (msg.command === "TurnOnRequest"){ msg.payload = true; flow.set('uzak', yanlış); flow.set('TempTarget', 21); dönüş mesajı; } // Kapatın if (msg.command === "TurnOffRequest"){ msg.payload = true; flow.set('uzak', doğru); dönüş mesajı;

4. Adım: Sonuç

Çözüm
Çözüm

NodeRED panosunu WAN'a maruz bırakırsanız, tüm ısıtma sistemi uzaktan kontrol edilebilir. NodeRED ve NodeRED güvenliğine ayak uydurmak için aşağıdaki makaleleri okumanızı tavsiye ederim.

  • Yeni başlayanlar için NodeRED
  • NodeRED güvenliği

Ayrıca, bu projedeki güncellemelerden haberdar olmak istiyorsanız - beni seçtiğiniz platformdan takip etmeyi düşünün:

  • Twi ter
  • Instagram
  • Youtube

Ve bana bir kahve ısmarlamak veya daha sürekli bir şekilde beni desteklemek isterseniz:

  • paypal
  • patreon

Umarım projeden hoşlanmışsınızdır!

Önerilen: