Spisu treści:
Wideo: NEST Twój stary termostat: 4 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
System ogrzewania w moim domu jest prawdopodobnie tak stary jak sam dom. Ma około 30 lat, co jest w porządku pod względem lat domowych, ale jeśli chodzi o technologię, utknął w epoce lodowcowej. Istnieją 2 główne problemy z rozwiązaniami komercyjnymi:
- zaporowe ceny
- produkt jako usługa
Wszyscy pamiętamy, co stało się z Revolvem i nie jestem zbyt chętny, aby to przydarzyło mi się w środku zimy. Mając to na uwadze, przedstawiam Ci niesamowicie podejrzanie wyglądający, ale funkcjonalny kontroler NEST-Alike do Twojego starego termostatu. Nie martw się, planuję wkrótce dodać znacznie lepszą obudowę!
Cechy:
- możliwość korzystania z istniejącego termostatu (na wypadek, gdyby żona na to narzekała)
- zdalny dostęp
- Tryb AWAY
- optymalny wskaźnik temperatury
- Współpracuje z Alexa
Wkrótce (sprawdź tutaj aktualizacje)
- Strona główna Google
- kalendarz Google
- Wiele czujników
- Sterowanie grzejnikami
- Integracje IFTT
- Wsparcie Taskera
- Żądania
- O wiele lepiej wyglądająca obudowa
Krok 1: Jak działa termostat
Termostat jest prawdopodobnie podłączony do WYSOKIEGO NAPIĘCIA! Nie próbuj nic robić, chyba że upewniłeś się, że obwód jest wyłączony. Możesz zranić się i spowodować uszkodzenie podłączonego sprzętu. Rozważ skonsultowanie się z wykwalifikowanym elektrykiem, aby zapewnić sobie bezpieczeństwo
Termostat Honeywell to urządzenie naścienne, zasilane z sieci (podstawy Sonoffa wymagają min 90V, mój obwód ma 230V). Skrzynka jest podłączona do głównej jednostki sterującej (która jest bardziej zaawansowaną skrzynką) i wysyła sygnał, gdy temperatura spadnie poniżej poziomu docelowego. Chociaż twoja jednostka może być inna, zasada jest najprawdopodobniej taka sama. Jeśli masz 3 przewody i nie masz połączenia radiowego między jednostką naścienną – to jest samouczek dla Ciebie.
Wiem, jak działają termostaty 3-przewodowe w zasadzie, co nie powstrzymało mnie przed przepaleniem bezpiecznika przez przypadkowe zwarcie 2 przewodów! Mam 3 przewody podłączone do urządzenia (czwarty to uziemienie). Mój termostat Honeywell nie jest bezprzewodowy, więc do przełączania sygnału mogę użyć Sonoff Basic. Czas go rozebrać i zobaczyć, jak sygnał jest przesyłany do urządzenia. Po bliższym przyjrzeniu się, terminal jest podłączony w następujący sposób:
- (niebieski) – Uziemienie
- (żółty) – sygnał, gdy zaciągnięty wysoko ogrzewanie jest włączone
- nie w użyciu
- (czerwony) – przewód pod napięciem służący do podciągania sygnału w górę
Aby osiągnąć swój cel, muszę zewrzeć przewód pod napięciem z przewodem sygnałowym, gdy chcę, aby moje ogrzewanie było włączone. Jeśli masz podobnie podłączony termostat, masz szczęście, ponieważ Sonoff Basic wystarczy, aby załatwić sprawę.
Krok 2: Przygotowanie do Sonoff Basic
Zanim zaczniemy podłączać przewody, musimy dodać do miksera czujnik temperatury (DHT11). Upewnij się, że masz oprogramowanie Tasmota sflashowane do urządzenia Sonoff (mam tutaj doskonały przewodnik po flashowaniu), a twój Sonoff z obsługą Tasmota jest poprawnie skonfigurowany (również już przeze mnie). Teraz pozostaje Ci już tylko podłączyć czujnik DHT11 do Sonoffa i skonfigurować go do raportowania temperatury.
DHT11 jest wyposażony w 3 piny przewodowe: Sygnał - GPIO14Vcc - 3.3VGND - GND
Przebiłem dziurę, nie przejmuję się tym, jak to teraz wygląda, wszystko, czego potrzebuję, to dowód koncepcji i walidacja. Wykonam ładną i błyszczącą obudowę po przybyciu mojej drukarki 3D. Zwróciłem szczególną uwagę na sposób podłączenia Sonoffa, ponieważ muszę się upewnić, że przewód pod napięciem łączy się z przewodem sygnałowym na drugim końcu urządzenia Sonoff. Jednostka Honeywell ma wbudowany rezystor obciążenia (R), który ogranicza prąd. Chociaż obwód jest chroniony bezpiecznikiem 3A, mądrze jest dopasować tę samą rezystancję, aby uzyskać dodatkową ochronę. Kiedy już miałem gotowe przewody, nadszedł czas, aby wyłączyć główne zasilanie i podłączyć Sonoff z powrotem.
Sonoff Tasmota - termostat Honeywell
INPUT Live - 4. terminal na żywo
WEJŚCIE GND - 1. zacisk GND
WYJŚCIE Sygnał - 2. zacisk Sygnał
Wspomniałem wcześniej, że na razie nie będę się stresował wyglądem tego. Żona została przekonana i mogę skupić się na funkcjonalności i usuwaniu wszelkich błędów, które się pojawią. Dobrą rzeczą jest to, że oryginalny termostat nadal działa. Jeśli go podkręcę, zastąpi ten oparty na Sonoff Tasmota. Powinno to być świetną kopią zapasową na wszelkie nieoczekiwane zdarzenia.
Krok 3: NodeRED
Pamiętaj, że wideo może zawierać starsze referencje NodeRed, stale pracuję nad poprawą projektu. Są to drobne zmiany, a pliki artykułów są aktualizowane
Natknąłem się na ten projekt w Internecie. Wygląda świetnie, jednak po bliższym przyjrzeniu się, widżet nie jest odpowiedni dla NodeRED. Wymaga ustawienia 5 ładunków, co po prostu nie jest sposobem działania projektu podobnego do węzła. Zajęło mi trochę czasu, zanim wymyśliłem najlepszy sposób przekazania wszystkich tych informacji, aby zaktualizować widżet i zachować jego funkcjonalność. Jestem pewien, że z czasem spędzę więcej czasu nad projektem, abym mógł przesłać wszystkie potrzebne aktualizacje za pomocą jednego obiektu msg. Na razie tak jest.
Strumień temperatury
DHT11 raportuje co X sekund z powrotem do serwera NodeRED. Zwiększyłem tę częstotliwość za pomocą konsoli Tasmoty. Wystarczy uruchomić polecenie, aby ustawić częstotliwość w sekundach:
TelePeriod Ustaw okres telemetrii od 10 do 3600 sekund
Odbywa się to głównie w przypadku testów, ponieważ nie chcę czekać minut, aby sprawdzić, czy moje poprawki błędów zadziałały. Utrzymywanie wysokiej częstotliwości spowoduje, że ogrzewanie będzie uruchamiane częściej przez krótsze okresy czasu, więc nie ustawiaj jej na 10 sekund w celach innych niż testowe. Węzeł MQTT pobiera dane z:
sonoff/tele/czujnik
i przechowuje najbardziej przydatne dane w następujących obiektach:
msg.payload. DHT11. Temperatura msg.payload. DHT11. Wilgotność
Aby ograniczyć błędy, dodałem gładki węzeł do uśredniania wyników i zaktualizowałem zmienną przepływu: NodeRED:
Węzeł funkcji - aktualizacja „TempAmbient”
flow.set('TempAmbient', msg.payload. DHT11. Temperature);wiadomość zwrotna;
Aktualizacja widżetu
Uznałem, że 5 sekund to dobra częstotliwość odświeżania, dlatego wciskam wszystkie potrzebne wartości z tą częstotliwością. Jedynym wyjątkiem jest suwak, który z oczywistych względów reaguje błyskawicznie.
Każdy odpowiadający węzeł wysyła ładunek z przypisanym tematem do widgetu podobnego do gniazda.
- kolor (ogrzewanie|chłodzenie*|wyłączone i hvac_state)
- liść (prawda|fałsz i has_leaf)
- z dala (prawda | fałsz i nieobecność)
- Temperatura otoczenia (liczba i temperatura otoczenia)
- Temperatura docelowa (liczba i temperatura_docelowa)
*nie w użyciu
NodeRED: Węzeł funkcji - Aktualizacja widżetu
kolor
x = flow.get('TempTarget'); //targetz = flow.get('TempAmbient'); //otoczenia
jeśli (z = x){
flow.set('ogrzewanie', "off"); flow.set('heatingSwitch', "OFF"); } msg.payload = z; msg.topic = "temperatura_otoczenia"; wiadomość zwrotna;
liść
x = flow.get('TempAmbient'); if (x > 17 && x < 23){ flow.set('leaf', true); msg.payload = prawda; msg.topic = "ma_liść"; wiadomość zwrotna; } else{flow.set('liść', fałsz); msg.payload = fałsz; msg.topic = "ma_liść"; wiadomość zwrotna; }
Nadpisanie koloru
x = flow.get('away'); if (x === true){ msg.topic = "hvac_state"; msg.payload = "wyłączone"; wiadomość zwrotna; }
msg.topic = "hvac_state";
msg.payload = flow.get('heatingState');
wiadomość zwrotna;
Z dala
x = flow.get('away'); if (x === true){ flow.set('heatingSwitch', "OFF"); flow.set('ogrzewanie', "off"); }
msg.topic = "z dala";
msg.payload = flow.get('away'); wiadomość zwrotna;
Temperatura docelowa
if (msg.topic === "aktualizacja"){ msg.topic = "temperatura_docelowa"; msg.payload = flow.get('TempTarget'); wiadomość zwrotna; }
if (msg.command === "SetTargetTemperatureRequest") {
flow.set('z dala', fałsz); msg.topic = "temperatura_docelowa"; flow.set('TempTarget', msg.payload); }
if (msg.topic === "suwak") {
flow.set('z dala', fałsz); msg.topic = "temperatura_docelowa"; flow.set('TempTarget', msg.payload); }
if (msg.command === "GetTemperatureReadingRequest"){}
wiadomość zwrotna;
Jak widzisz, zrezygnowałem ze zmiennych przepływu, aby móc w dowolnym momencie przywołać wartość. Mam przepływ debugowania, który zasadniczo odczytuje wszystkie zapisane wartości.
- „TempAmbinet” – przechowuje aktualną temperaturę
- „TempTarget” – przechowuje docelową wartość temp
- ‘liść’ – wyświetla liść w razie potrzeby
- „z dala” – wyświetla status nieobecności w razie potrzeby
- ‘heatingState’ – zmienia kolor wyświetlacza
- „heatingSwitch” – kontroluje stan przekaźnika.
Wyzwaniem było upewnienie się, że informacje są aktualizowane podczas „aktualizacji” i na żądanie w inny sposób (Alexa itp.). Dlatego w JavaScript zobaczysz różne warunki. Za każdym razem, gdy wartości są aktualizowane, wysyłane do zmiennej przepływu i odświeżany widżet.
Suwak
Testy wykazały, że potrzebna jest dodatkowa aktualizacja suwaka (suwak przesuwa docelową temperaturę). Suwak wysyła ładunek (liczbę) z powiązanym tematem „suwakiem”, gdy jest przenoszony. Poza tym chcę, aby suwak znalazł się we właściwej pozycji, jeśli istnieje wiele interfejsów internetowych. Aby to zrobić, co 5 sekund po prostu aktualizuję pozycję suwaka do aktualnej temperatury docelowej.
NodeRED: Węzeł funkcyjny - suwak aktualizacji'
msg.payload = flow.get('TempTarget');return msg;
Sterowanie przekaźnikiem
Sterownik przekaźnika jest prosty, zajmuje (na razie) dwa wejścia. True|false Alexy i interakcja następująca po aktualizacji zmiennej przepływu „przełącznik ogrzewania”. Nie ma potrzeby natychmiastowego działania, więc dla uproszczenia działa z taką samą częstotliwością aktualizacji 5 sekund, jak reszta przepływu.
Przekaźnik jest podłączony przez MQTT. Węzeł publikuje komendy ON|OFF w temacie:
sonoff/cmnd/POWER1
Węzeł funkcji akceptuje prawdę|fałsz od Alexy, a także zmienia stan wejścia zgodnie ze zmienną przepływu „heatingSwitch”.
NodeRED: węzeł funkcyjny - przekaźnik sterujący'
if (msg.command === "TurnOffRequest"){ msg.payload = "OFF"; wiadomość zwrotna; }
if (msg.command === "TurnOnRequest"){
msg.payload = "WŁ"; flow.set('TempTarget', 21); wiadomość zwrotna; } if (msg.topic === "update"){ msg.payload = flow.get('heatingSwitch'); } zwróć wiadomość;
Integracja Alexa
To pierwsze urządzenie, w którym musiałem wyłączyć „automatyczne potwierdzanie”. Zamiast automatycznie zakładać odpowiedź, wygenerowałem ją, ponieważ chcę mieć możliwość zapytania o zadaną temperaturę. Zasadniczo msg.payload = true|false wskazuje, czy żądanie powiodło się, a szablony znalezione tutaj zajmują się resztą. Jeśli jesteś nowy w Alexa i NodeRed, koniecznie przeczytaj to.
Postanowiłem przekazać podziękowania osobno (wiem, że to nie jest najlepszy sposób), aby móc trochę lepiej to wszystko kontrolować. Prawidłowo każda odpowiedź powinna być podana na końcu łańcucha poleceń. Mój ryzykuje, że nie zwróci błędów, jeśli tak się stanie. Zauważ, że aby zachować spójność, aktualizuję tylko zmienne, podczas gdy pętla odświeżania wypycha nowe wartości do widżetu.
NodeRED: Węzeł funkcyjny - Przetwarzaj odpowiedzi Alexa
// Jaka jest temperatura docelowa termostatuif (msg.command === "GetTemperatureReadingRequest"){ x =flow.get('TempTarget'); msg.extra = { "temperatureReading": { "value": x}, "applianceResponseTimestamp": new Date().toISOString()}; msg.payload = prawda; wiadomość zwrotna; } // Ustaw temperaturę na (nie niższą niż 10 lub wyższą niż 30) if (msg.command === "SetTargetTemperatureRequest"){ if (msg.payload 30) { var range = { min: 10,0, max: 30,0 } msg.payload = fałsz; msg.extra = zakres; } else { msg.extra = { targetTemperature: { value: msg.payload } }; msg.payload = prawda; } zwróć wiadomość; } // Włącz jeśli (msg.command === "TurnOnRequest"){ msg.payload = true; flow.set('z dala', fałsz); flow.set('TempTarget', 21); wiadomość zwrotna; } // Wyłącz jeśli (msg.command === "TurnOffRequest"){ msg.payload = true; flow.set('z dala', prawda); wiadomość zwrotna;
Krok 4: Wniosek
Jeśli udostępnisz pulpit NodeRED w sieci WAN, cały system ogrzewania może być sterowany zdalnie. Polecam zapoznać się z poniższymi artykułami, aby zapoznać się z bezpieczeństwem NodeRED i NodeRED.
- NodeRED dla początkujących
- Bezpieczeństwo NodeRED
Dodatkowo, jeśli chcesz być informowany o aktualizacjach tego projektu - rozważ śledzenie mnie na wybranej przez siebie platformie:
- Youtube
A jeśli masz ochotę postawić mi kawę lub wspierać mnie w sposób bardziej ciągły:
- Paypal
- Patreon
Mam nadzieję, że podobał Ci się projekt!
Zalecana:
FuseLight: Zmień stary/stopiony Tubelight w Studio/Party Light: 3 kroki (ze zdjęciami)
FuseLight: Turn Old/Fused Tubelight Into Studio/Party Light: Tutaj zmieniłem Fused Tubelight w Studio/Part light za pomocą kilku podstawowych narzędzi, świateł rgb i drukowania 3D. Dzięki zastosowanym taśmom LED RGB możemy mieć wiele kolorów i odcieni
Termostat Nest, śledzenie zajętości: 12 kroków
Nest Thermostat, śledzenie obecności: Moja automatyka chłodzenia domu za pomocą mojego termostatu Nest do niedawna była obsługiwana przez IFTTT przy użyciu rozwiązania Life360 „pierwszy, który dotarł do domu”. i „ostatni wyszedł z domu” wyzwalacze. To było świetne, ponieważ mogłem dodać członków rodziny do mojego Li
Steam Punk Twój UPS, aby uzyskać godziny bezawaryjnej pracy routera Wi-Fi: 4 kroki (ze zdjęciami)
Steam Punk swój UPS, aby uzyskać godziny bezawaryjnej pracy routera Wi-Fi: Jest coś fundamentalnie nieprzyjemnego w tym, że zasilacz UPS przekształca moc akumulatora 12 V DC na zasilanie 220 V AC, aby transformatory obsługujące router i światłowodowe ONT mogły go z powrotem przekształcić w 12V DC! Grasz także przeciwko [zazwyczaj
Twój własny inteligentny samochód i nie tylko HyperDuino+R V3.5R z Funduino/Arduino: 4 kroki
Twój własny inteligentny samochód i nie tylko HyperDuino+R V3.5R z Funduino/Arduino: Jest to bezpośrednia kopia tego zestawu instrukcji TUTAJ. Aby uzyskać więcej informacji, odwiedź HyperDuino.com.Dzięki HyperDuino+R v4.0R możesz rozpocząć ścieżkę eksploracji w wielu różnych kierunkach, od kontrolowania silników po eksplorację elektroniki, od
MOS - IoT: Twój połączony system mgły: 4 kroki
MOS - IoT: Twój Connected Fogponic System: Łagodzenie wstrząsów przez Superflux: Nasza strona internetowa This Instructables jest ciągłością systemu Fogponic. Tutaj będziesz mieć więcej opcji pomiaru danych z komputera szklarniowego i sterowania wieloma operacjami, takimi jak woda