İçindekiler:
Video: NEST Eski Termostatınız: 4 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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 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:
- (mavi) – Zemin
- (sarı) – sinyal, yükseğe çekildiğinde ısıtma açılır
- kullanımda değil
- (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
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
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ç
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
- 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:
Bluetooth Boombox'a Eski Hoparlör Dönüşümü: 8 Adım (Resimlerle)
Bluetooth Boombox'a Eski Hoparlör Dönüşümü: Herkese merhaba! Bu yapıda benimle birlikte çalıştığınız için çok teşekkür ederim! Ayrıntılara atlamadan önce, lütfen en alttaki yarışmada bu Eğitilebilir Yazıya oy vermeyi düşünün. Destek çok takdir ediliyor! Başladığımdan bu yana birkaç yıl geçti
Nest Hello - Entegre Trafolu Kapı Zili Zil İngiltere (220-240V AC - 16V AC): 7 Adım (Resimlerle)
Nest Hello - Entegre Transformatörlü Kapı Zili Zil İngiltere (220-240V AC - 16V AC): Evde bir Nest Hello kapı zili kurmak istedim, 16V-24V AC ile çalışan bir cihaz (NOT: 2019'daki bir yazılım güncellemesi Avrupa'yı değiştirdi sürüm aralığı 12V-24V AC'ye kadar). Standart kapı zili, İngiltere'de şu anda mevcut olan entegre transformatörlere sahip
Eski Bir Telefonu ve Eski Hoparlörleri STEREO Olarak Yeniden Kullanın: 4 Adım
Eski Bir Telefonu ve Eski Hoparlörleri STEREO Olarak Yeniden Kullanın: Bir çift eski hoparlörü ve eski bir akıllı telefonu radyo, mp3 çalma podcast'leri ve internet radyosu ile toplamda 5 Euro'dan daha az maliyetli birkaç ortak bileşen kullanarak bir stereo kuruluma dönüştürün! Yani 5-10 yıllık smartp koleksiyonumuz var
Nest Thermostat Geçmiş Veri Kaydedici: 6 Adım (Resimlerle)
Nest Termostat Geçmiş Veri Kaydedici: Nest termostat, sıcaklığı, nemi ve fırın/AC kullanımını takip eder ve kullanıcılar yalnızca 10 gün boyunca geçmiş verileri görebilir. Geçmiş verileri (>10 gün) toplamak istedim ve her sette iç içe ping atan google elektronik tablo komut dosyasına rastladım
Eski Ekipmanlar için Eski Voltaj: 12 Adım (Resimlerle)
Eski Ekipman için Eski Voltaj: Birçok eski tüp/valf gitar amfisi üzerinde çalışıyorum ve daha eskileri 115-117 VAC aralığında bir yerde şebeke voltajı bekliyor. Modern Kuzey Amerika şebekesi, bu günlerde genellikle 124-126 volt aralığında, genellikle önemli ölçüde daha yüksektir. Daha yüksek tha kullanarak