Mục lục:

NEST Máy điều nhiệt cũ của bạn: 4 bước (có hình ảnh)
NEST Máy điều nhiệt cũ của bạn: 4 bước (có hình ảnh)

Video: NEST Máy điều nhiệt cũ của bạn: 4 bước (có hình ảnh)

Video: NEST Máy điều nhiệt cũ của bạn: 4 bước (có hình ảnh)
Video: TUYỆT CHIÊU XÂY DỰNG FANPAGE CHẤT LƯỢNG RA ĐƠN 2024, Tháng mười một
Anonim
Image
Image
Cách hoạt động của máy điều nhiệt
Cách hoạt động của máy điều nhiệt

Hệ thống sưởi trong nhà tôi có lẽ cũng cũ như chính ngôi nhà đó. Nó khoảng 30 tuổi, tính theo năm nhà thì vẫn ổn, nhưng bị mắc kẹt khá nhiều trong kỷ băng hà theo như liên quan đến công nghệ. Có 2 vấn đề chính đối với các giải pháp thương mại:

  • định giá cấm
  • sản phẩm như dịch vụ

Tất cả chúng tôi đều nhớ những gì đã xảy ra với Revolv và tôi không quá quan tâm đến việc điều này xảy ra với tôi vào giữa mùa đông. Với ý nghĩ đó, tôi giới thiệu cho bạn bộ điều khiển NEST-Alike trông cực kỳ đáng ngờ nhưng đầy chức năng cho bộ điều nhiệt cũ của bạn. Đừng lo lắng, tôi đang lên kế hoạch về một loại bao vây tốt hơn nhiều sẽ sớm được bổ sung!

Đặc trưng:

  • khả năng sử dụng bộ điều nhiệt hiện có (trong trường hợp vợ rên rỉ về nó)
  • Truy cập từ xa
  • Chế độ AWAY
  • chỉ báo nhiệt độ tối ưu
  • Hoạt động với Alexa

Sớm (kiểm tra ở đây để cập nhật)

  • Trang chủ Google
  • lịch Google
  • Nhiều cảm biến
  • Điều khiển bộ tản nhiệt
  • Tích hợp IFTT
  • Hỗ trợ tác vụ
  • Yêu cầu
  • Một bao vây đẹp hơn nhiều

Bước 1: Cách hoạt động của máy điều nhiệt

Cách hoạt động của máy điều nhiệt
Cách hoạt động của máy điều nhiệt
Cách hoạt động của máy điều nhiệt
Cách hoạt động của máy điều nhiệt

Bộ điều nhiệt có thể được kết nối với ĐIỆN ÁP CAO! Đừng cố gắng làm bất cứ điều gì trừ khi bạn chắc chắn rằng mạch đã tắt. Bạn có thể gây hại cho chính mình và làm hỏng thiết bị được kết nối. Cân nhắc tham khảo ý kiến của một thợ điện có trình độ chuyên môn để đảm bảo an toàn cho bạn

Bộ điều nhiệt Honeywell là thiết bị treo tường, được cấp điện bằng nguồn điện (Sonoff cơ bản cần tối thiểu 90V, mạch của tôi có 230V). Hộp được kết nối với bộ điều khiển chính (là hộp cao cấp hơn) và nó sẽ gửi tín hiệu khi nhiệt độ giảm xuống dưới mức mục tiêu. Mặc dù đơn vị của bạn có thể khác, nhưng nguyên tắc rất có thể giống nhau. Nếu bạn có 3 dây và không có kết nối radio giữa thiết bị treo tường - thì đây là hướng dẫn dành cho bạn.

Tôi biết bộ điều nhiệt 3 dây hoạt động theo nguyên tắc như thế nào, điều này đã không ngăn tôi thổi cầu chì do vô tình làm chập 2 dây! Tôi có 3 dây kết nối với thiết bị (với thứ 4 là trái đất). Bộ điều nhiệt Honeywell của tôi không phải là không dây, vì vậy để chuyển đổi tín hiệu, tôi có thể sử dụng Sonoff Basic. Đã đến lúc tháo nó ra và xem cách tín hiệu được gửi đến thiết bị. Sau khi kiểm tra kỹ hơn, thiết bị đầu cuối được kết nối theo cách sau:

  1. (xanh lam) - Mặt đất
  2. (màu vàng) - tín hiệu, khi kéo lên cao, hệ thống sưởi sẽ bật
  3. không sử dụng
  4. (đỏ) - dây sống dùng để kéo tín hiệu lên cao

Để đạt được mục tiêu của mình, tôi phải làm ngắn dây dẫn điện với dây tín hiệu khi tôi muốn bật hệ thống sưởi của mình. Nếu bạn có một bộ điều nhiệt được kết nối tương tự, bạn thật may mắn vì Sonoff Basic sẽ đủ để thực hiện thủ thuật.

Bước 2: Chuẩn bị Sonoff Basic

Chuẩn bị sẵn sàng Sonoff Basic
Chuẩn bị sẵn sàng Sonoff Basic
Chuẩn bị sẵn sàng Sonoff Basic
Chuẩn bị sẵn sàng Sonoff Basic
Chuẩn bị sẵn sàng Sonoff Basic
Chuẩn bị sẵn sàng Sonoff Basic

Trước khi bắt đầu kết nối dây, chúng ta phải thêm cảm biến nhiệt độ (DHT11) vào hỗn hợp. Đảm bảo rằng bạn đã cài đặt chương trình cơ sở Tasmota vào thiết bị Sonoff của mình (tôi có một hướng dẫn cài đặt tuyệt vời ở đây) và Sonoff hỗ trợ Tasmota của bạn được định cấu hình chính xác (tôi cũng đã đề cập đến). Bây giờ, tất cả những gì bạn còn lại là kết nối cảm biến DHT11 với Sonoff và cấu hình nó để báo cáo nhiệt độ.

DHT11 đi kèm với 3 chân có dây: Signal - GPIO14Vcc - 3.3VGND - GND

Tôi đã chọc thủng một cái lỗ, tôi không bận tâm đến việc nó trông như thế nào bây giờ, tất cả những gì tôi cần là bằng chứng về khái niệm và xác nhận. Tôi sẽ tạo ra một vỏ bọc đẹp và sáng bóng khi máy in 3D của tôi đến. Tôi rất chú ý đến cách nối dây Sonoff, vì tôi phải đảm bảo rằng dây trực tiếp kết nối với dây tín hiệu ở đầu bên kia của thiết bị Sonoff. Thiết bị Honeywell có điện trở tải (R) được tích hợp bên trong để giới hạn dòng điện. Trong khi mạch điện được bảo vệ bằng cầu chì 3A, thật thông minh khi kết hợp cùng một điện trở để bảo vệ thêm. Khi tôi đã có dây sẵn sàng, đã đến lúc tắt nguồn chính và nối lại Sonoff.

Sonoff Tasmota - Máy điều nhiệt Honeywell

INPUT Trực tiếp - Trực tiếp nhà ga thứ 4

INPUT GND - GND đầu cuối

Tín hiệu OUTPUT - Tín hiệu đầu cuối thứ 2

Tôi đã đề cập trước đó về điều đó, bây giờ tôi sẽ không căng thẳng về ngoại hình của điều này. Người vợ đã bị thuyết phục và tôi có thể tập trung vào chức năng và xóa bất kỳ lỗi nào sẽ xảy ra. Điều tốt là bộ điều chỉnh nhiệt ban đầu vẫn hoạt động. Nếu tôi bật nó lên, nó sẽ ghi đè lên cái dựa trên Sonoff Tasmota. Đây sẽ là một dự phòng tuyệt vời cho bất kỳ sự kiện bất ngờ nào.

Bước 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Xin lưu ý rằng video có thể chứa các tham chiếu NodeRed cũ hơn, tôi không ngừng làm việc để cải thiện thiết kế. Đây là những thay đổi nhỏ và các tập tin bài viết được cập nhật

Tôi đã xem qua thiết kế này trực tuyến. Nó trông rất tuyệt, tuy nhiên khi kiểm tra kỹ, tiện ích này không thực sự phù hợp với NodeRED. Nó cần 5 trọng tải để được thiết lập, đó không phải là cách hoạt động của thiết kế nút giống nhau. Tôi đã mất một thời gian để tìm ra cách tốt nhất để chuyển tất cả thông tin đó qua để cập nhật tiện ích và giữ cho nó hoạt động. Tôi chắc chắn rằng cùng với thời gian, tôi sẽ dành nhiều thời gian hơn cho thiết kế để có thể đẩy tất cả các bản cập nhật cần thiết với một đối tượng msg duy nhất. Bây giờ, nó là những gì nó là.

Dòng nhiệt độ

DHT11 báo cáo mỗi X giây trở lại máy chủ NodeRED. Tôi đã tăng tần suất này thông qua bảng điều khiển của Tasmota. Chỉ cần chạy lệnh để đặt tần số trong giây:

TelePeriod Đặt khoảng thời gian đo từ xa từ 10 đến 3600 giây

Điều này được thực hiện chủ yếu cho các bài kiểm tra, vì tôi không muốn đợi vài phút để xem liệu các bản sửa lỗi của tôi có hoạt động hay không. Giữ tần số cao sẽ khiến hệ thống sưởi bắt lửa thường xuyên hơn trong khoảng thời gian ngắn hơn, vì vậy không nên đặt nó thành 10 giây cho các mục đích khác ngoài mục đích thử nghiệm. Nút MQTT lấy dữ liệu từ:

sonoff / tele / SENSOR

và giữ dữ liệu hữu ích nhất trong các đối tượng sau:

msg.payload. DHT11. Nhiệt độ msg.payload. DHT11.

Để hạn chế lỗi, tôi đã thêm nút mịn để tính trung bình kết quả và cập nhật biến luồng: NodeRED:

Nút chức năng - Cập nhật 'TempAmbient'

flow.set ('TempAmbient', msg.payload. DHT11. Tempe Nhiệt độ); return msg;

Cập nhật tiện ích con

Tôi quyết định rằng 5 giây là tốc độ làm mới tốt, do đó tôi đang đẩy tất cả các giá trị cần thiết với tần suất này. Ngoại lệ duy nhất là thanh trượt, vì lý do rõ ràng sẽ phản hồi ngay lập tức.

Mỗi nút tương ứng gửi tải trọng với chủ đề được chỉ định đến tiện ích con giống nhau.

  • màu sắc (sưởi ấm | làm mát * | tắt & hvac_state)
  • lá (true | false & has_leaf)
  • bỏ đi (đúng | sai và bỏ đi)
  • Nhiệt độ môi trường xung quanh (số & nhiệt độ môi trường xung quanh)
  • Nhiệt độ mục tiêu (số & nhiệt độ mục tiêu)

* không sử dụng

NodeRED: Chức năng Node - Cập nhật tiện ích con

màu sắc

x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // môi trường xung quanh

nếu (z = x) {

flow.set ('hotState', "tắt"); flow.set ('HeatSwitch', "OFF"); } msg.payload = z; msg.topic = "nhiệt độ môi trường xung quanh"; trả về tin nhắn;

Lá cây

x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('leaf', true); msg.payload = true; msg.topic = "has_leaf"; trả về tin nhắn; } else {flow.set ('leaf', false); msg.payload = false; msg.topic = "has_leaf"; trả về tin nhắn; }

Ghi đè màu đi

x = flow.get ('đi'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "tắt"; trả về tin nhắn; }

msg.topic = "hvac_state";

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

trả về tin nhắn;

Xa

x = flow.get ('đi'); if (x === true) {flow.set ('HeatSwitch', "OFF"); flow.set ('hotState', "tắt"); }

msg.topic = "xa";

msg.payload = flow.get ('đi'); trả về tin nhắn;

Nhiệt độ mục tiêu

if (msg.topic === "update") {msg.topic = "target_tempether"; msg.payload = flow.get ('TempTarget'); trả về tin nhắn; }

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

flow.set ('đi', sai); msg.topic = "target_tempether"; flow.set ('TempTarget', msg.payload); }

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

flow.set ('đi', sai); msg.topic = "target_tempether"; flow.set ('TempTarget', msg.payload); }

if (msg.command === "GetTempe HeatReadingRequest") {}

trả về tin nhắn;

Như bạn thấy, tôi đã chọn không tham gia các biến luồng, vì vậy tôi có thể nhớ lại giá trị tại bất kỳ thời điểm nào. Tôi có một luồng gỡ lỗi về cơ bản đọc tất cả các giá trị được lưu trữ.

  • ‘TempAmbinet‘- lưu trữ nhiệt độ hiện tại
  • ‘TempTarget‘- giữ giá trị mục tiêu tạm thời
  • ‘Lá‘- hiển thị lá nếu cần
  • ‘Đi’ - hiển thị trạng thái đi nếu cần
  • ‘HeatState‘- thay đổi màu sắc của màn hình
  • ‘HeatSwitch‘- điều khiển trạng thái của rơ le.

Thách thức là thực sự đảm bảo rằng thông tin được cập nhật khi "cập nhật" và khi được yêu cầu thông qua các phương tiện khác (Alexa, v.v.). Đây là lý do tại sao bạn sẽ thấy các điều kiện khác nhau trong JavaScript. Mỗi khi các giá trị được cập nhật, sẽ được gửi đến biến luồng và tiện ích con được làm mới.

Thanh trượt

Thử nghiệm cho thấy rằng cần cập nhật thêm thanh trượt (thanh trượt đẩy nhiệt độ mục tiêu). Slider gửi trọng tải (số) với chủ đề được liên kết “thanh trượt) khi nó được di chuyển. Trên hết, tôi muốn thanh trượt vào đúng vị trí nếu có nhiều giao diện web. Để làm điều này, cứ sau 5 giây, tôi chỉ cần cập nhật vị trí thanh trượt thành nhiệt độ mục tiêu hiện tại.

NodeRED: Chức năng Node - Cập nhật thanh trượt '

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

Điều khiển rơ le

Bộ điều khiển rơ le rất đơn giản, cần (hiện tại) hai đầu vào. Alexa’s true | false và tương tác diễn ra sau bản cập nhật cho biến luồng “Công tắc sưởi ấm”. Không cần hành động tức thì, vì vậy để đơn giản, nó chạy trên cùng tần số cập nhật 5sec như phần còn lại của quy trình.

Rơ le được kết nối qua MQTT. Nút đang đăng các lệnh BẬT | TẮT cho chủ đề:

sonoff / cmnd / POWER1

Nút chức năng chấp nhận giá trị true | false từ Alexa và cũng thay đổi trạng thái của đầu vào theo biến luồng ‘heatSwitch’.

NodeRED: Nút chức năng - Rơ le điều khiển '

if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; trả về tin nhắn; }

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

msg.payload = "BẬT"; flow.set ('TempTarget', 21); trả về tin nhắn; } if (msg.topic === "update") {msg.payload = flow.get ('nongSwitch'); } trả về tin nhắn;

Tích hợp Alexa

Đây là thiết bị đầu tiên tôi phải tắt "tự động xác nhận". Thay vì tự động giả định một phản hồi, tôi đã tạo một phản hồi như tôi muốn khả năng truy vấn nhiệt độ đã đặt. Về nguyên tắc, msg.payload = true | false cho biết yêu cầu đã thành công hay chưa và các mẫu được tìm thấy ở đây sẽ thực hiện phần còn lại. Nếu bạn chưa quen với Alexa và NodeRed, hãy nhớ đọc phần này.

Tôi quyết định chuyển các xác nhận riêng biệt (tôi biết đây không phải là cách tốt nhất) để có thể kiểm soát tất cả tốt hơn một chút. Mỗi phản hồi phải được đưa ra ở cuối chuỗi lệnh. Của tôi có nguy cơ không trả lại lỗi nếu những điều này xảy ra. Lưu ý rằng để nhất quán, tôi chỉ cập nhật các biến, trong khi vòng lặp làm mới, đẩy các giá trị mới sang tiện ích con.

NodeRED: Nút chức năng - Xử lý phản hồi của Alexa '

// Nhiệt độ mục tiêu của bộ điều nhiệt là bao nhiêuif (msg.command === "GetTempe HeatReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"heatReading": {"value": x}, "Dụng cụResponseTimestamp": new Date (). toISOString ()}; msg.payload = true; trả về tin nhắn; } // Đặt nhiệt độ thành (không thấp hơn 10 hoặc hơn 30) if (msg.command === "SetTargetTempe HeatRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = phạm vi; } else {msg.extra = {targetTempe Heat: {value: msg.payload}}; msg.payload = true; } trả về tin nhắn; } // Bật nó lên if (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('đi', sai); flow.set ('TempTarget', 21); trả về tin nhắn; } // Tắt nó đi nếu (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('đi', true); trả về tin nhắn;

Bước 4: Kết luận

Phần kết luận
Phần kết luận

Nếu bạn để bảng điều khiển NodeRED tiếp xúc với mạng WAN, toàn bộ hệ thống sưởi có thể được điều khiển từ xa. Tôi khuyên bạn nên đọc các bài viết sau để bắt kịp tốc độ với NodeRED và bảo mật NodeRED.

  • NodeRED cho người mới bắt đầu
  • Bảo mật NodeRED

Ngoài ra, nếu bạn muốn nhận thông tin về các bản cập nhật cho dự án này - hãy xem xét theo dõi tôi trên nền tảng bạn chọn:

  • Twi tter
  • Instagram
  • YouTu là

Và nếu bạn muốn mua cho tôi một ly cà phê hoặc ủng hộ tôi một cách liên tục hơn:

  • Paypal
  • Patreon

Tôi hy vọng bạn đã thích dự án!

Đề xuất: