Πίνακας περιεχομένων:

NEST Your Old Thermostat: 4 βήματα (με εικόνες)
NEST Your Old Thermostat: 4 βήματα (με εικόνες)

Βίντεο: NEST Your Old Thermostat: 4 βήματα (με εικόνες)

Βίντεο: NEST Your Old Thermostat: 4 βήματα (με εικόνες)
Βίντεο: Διάσημοι που ΥΠΟΣΤΗΡΙΖΟΥΝ Το 🏳️‍🌈 (Part 2) 2024, Ιούνιος
Anonim
Image
Image
Πώς λειτουργεί ένας θερμοστάτης
Πώς λειτουργεί ένας θερμοστάτης

Το σύστημα θέρμανσης στο σπίτι μου είναι πιθανώς τόσο παλιό όσο το ίδιο το σπίτι. Είναι περίπου 30 ετών, το οποίο είναι καλό από την άποψη του χρόνου κατοικίας, αλλά έχει κολλήσει στην εποχή των παγετώνων όσον αφορά την τεχνολογία. Υπάρχουν 2 βασικά προβλήματα με τις εμπορικές λύσεις:

  • απαγορευτική τιμολόγηση
  • προϊόν ως υπηρεσία

Όλοι θυμόμαστε τι συνέβη με τον Revolv και δεν είμαι πολύ πρόθυμος να μου συμβεί αυτό στα μέσα του χειμώνα. Με αυτό κατά νου, σας παρουσιάζω έναν απίστευτα ύποπτο αλλά λειτουργικό ελεγκτή NEST-Alike για τον παλιό σας θερμοστάτη. Μην ανησυχείτε, σχεδιάζω ένα πολύ καλύτερο περίβλημα που θα προστεθεί σύντομα!

Χαρακτηριστικά:

  • δυνατότητα χρήσης υπάρχοντος θερμοστάτη (σε περίπτωση που η σύζυγος γκρινιάζει γι 'αυτό)
  • απομακρυσμένη πρόσβαση
  • Λειτουργία AWAY
  • βέλτιστη ένδειξη θερμοκρασίας
  • Λειτουργεί με την Alexa

Σύντομα (ελέγξτε εδώ για ενημερώσεις)

  • Google Home
  • Ημερολόγιο Google
  • Πολλαπλοί αισθητήρες
  • Χειριστήρια ψυγείου
  • Ενσωματώσεις IFTT
  • Υποστήριξη Tasker
  • Αιτήματα
  • Ένα περίβλημα με πολύ καλύτερη εμφάνιση

Βήμα 1: Πώς λειτουργεί ένας θερμοστάτης

Πώς λειτουργεί ένας θερμοστάτης
Πώς λειτουργεί ένας θερμοστάτης
Πώς λειτουργεί ένας θερμοστάτης
Πώς λειτουργεί ένας θερμοστάτης

Ο θερμοστάτης είναι πιθανότατα συνδεδεμένος στην Υ HIGHΗΛΗ ΤΑΣΗ! Μην επιχειρήσετε να κάνετε τίποτα εκτός εάν βεβαιωθείτε ότι το κύκλωμα είναι απενεργοποιημένο. Μπορείτε να βλάψετε τον εαυτό σας και να προκαλέσετε ζημιά στον συνδεδεμένο εξοπλισμό. Εξετάστε το ενδεχόμενο να συμβουλευτείτε έναν εξειδικευμένο ηλεκτρολόγο για να διασφαλίσετε την ασφάλειά σας

Ο θερμοστάτης Honeywell είναι μια επιτοίχια μονάδα, που τροφοδοτείται από το δίκτυο (τα βασικά Sonoff χρειάζονται ελάχιστο 90V, το κύκλωμά μου έχει 230V). Το κιβώτιο συνδέεται με την κύρια μονάδα ελέγχου (που είναι ένα πιο προηγμένο κουτί) και στέλνει το σήμα όταν η θερμοκρασία πέσει κάτω από το επίπεδο -στόχο. Ενώ η μονάδα σας μπορεί να είναι διαφορετική, η αρχή είναι πιθανότατα η ίδια. Εάν έχετε 3 καλώδια και δεν έχετε ραδιοφωνική σύνδεση μεταξύ της επιτοίχιας μονάδας-αυτό είναι το σεμινάριο για εσάς.

Ξέρω πώς λειτουργούν οι θερμοστάτες με 3 σύρματα κατά βάση, κάτι που δεν με εμπόδισε να φυσήξω μια ασφάλεια βραχυκυκλώνοντας 2 σύρματα κατά λάθος! Έχω 3 καλώδια συνδεδεμένα στη μονάδα (με το 4ο να είναι η γη). Ο θερμοστάτης Honeywell δεν είναι ασύρματος, οπότε για να αλλάξω το σήμα, μπορώ να χρησιμοποιήσω το Sonoff Basic. It’sρθε η ώρα να το χωρίσετε και να δείτε πώς αποστέλλεται το σήμα στη μονάδα. Με πιο προσεκτική επιθεώρηση, το τερματικό συνδέεται με τον ακόλουθο τρόπο:

  1. (μπλε) - έδαφος
  2. (κίτρινο) - σήμα, όταν τραβηχτεί ψηλά, η θέρμανση είναι ενεργοποιημένη
  3. δε χρησιμοποιείται
  4. (κόκκινο) - το ζωντανό καλώδιο που χρησιμοποιείται για να τραβήξει το σήμα ψηλά

Για να επιτύχω τον στόχο μου, πρέπει να κλείσω το καλώδιο με το καλώδιο σήματος όταν θέλω να ενεργοποιηθεί η θέρμανσή μου. Εάν έχετε παρόμοια συνδεδεμένο θερμοστάτη, είστε τυχεροί καθώς το Sonoff Basic θα είναι αρκετό για να κάνει το κόλπο.

Βήμα 2: Προετοιμασία του Sonoff Basic

Προετοιμασία Sonoff Basic
Προετοιμασία Sonoff Basic
Προετοιμασία Sonoff Basic
Προετοιμασία Sonoff Basic
Προετοιμασία Sonoff Basic
Προετοιμασία Sonoff Basic

Πριν ξεκινήσουμε τη σύνδεση των καλωδίων, πρέπει να προσθέσουμε έναν αισθητήρα θερμοκρασίας (DHT11) στο μείγμα. Βεβαιωθείτε ότι έχετε αναβοσβήνει το υλικολογισμικό Tasmota στη συσκευή Sonoff (έχω έναν εξαιρετικό οδηγό αναβοσβήνει εδώ) και ότι το Sonoff με δυνατότητα Tasmota έχει διαμορφωθεί σωστά (επίσης καλύπτεται ήδη από εμένα). Τώρα, το μόνο που απομένει είναι να συνδέσετε τον αισθητήρα DHT11 στο Sonoff και να τον διαμορφώσετε για αναφορά θερμοκρασίας.

Το DHT11 έρχεται με 3 ακίδες ενσύρματες: Σήμα - GPIO14Vcc - 3.3VGND - GND

Έκανα μια τρύπα, δεν με ενοχλεί πώς είναι τώρα, το μόνο που χρειάζομαι είναι η απόδειξη της ιδέας και η επικύρωση. Θα φτιάξω ένα ωραίο και λαμπερό περίβλημα μόλις φτάσει ο τρισδιάστατος εκτυπωτής μου. Έδωσα ιδιαίτερη προσοχή στο πώς συνδέω το Sonoff, καθώς πρέπει να βεβαιωθώ ότι το ζωντανό καλώδιο συνδέεται με το καλώδιο σήματος στο άλλο άκρο της συσκευής Sonoff. Η μονάδα Honeywell έχει εσωτερική αντίσταση φορτίου (R), η οποία περιορίζει το ρεύμα. Ενώ το κύκλωμα προστατεύεται από την ασφάλεια 3Α, είναι έξυπνο να ταιριάζει με την ίδια αντίσταση για επιπλέον προστασία. Μόλις είχα έτοιμα τα καλώδια, ήταν καιρός να απενεργοποιήσω την κύρια τροφοδοσία και να επιστρέψω το Sonoff πίσω.

Sonoff Tasmota - θερμοστάτης Honeywell

INPUT Live - 4ος τερματικός σταθμός Live

ΕΙΣΟΔΟΣ GND - 1ος τερματικός GND

Σήμα OUTPUT - 2ο τερματικό σήμα

Το ανέφερα προηγουμένως, προς το παρόν, δεν θα αγχωθώ για την εμφάνιση αυτού. Η σύζυγος έχει πειστεί και μπορώ να επικεντρωθώ στη λειτουργικότητα και να καθαρίσω τυχόν σφάλματα που θα συμβούν. Το καλό είναι ότι ο αρχικός θερμοστάτης εξακολουθεί να λειτουργεί. Αν το ανοίξω, θα παρακάμψει αυτό που βασίζεται στο Sonoff Tasmota. Αυτό θα πρέπει να είναι ένα εξαιρετικό αντίγραφο ασφαλείας για τυχόν απροσδόκητα γεγονότα.

Βήμα 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Λάβετε υπόψη ότι το βίντεο μπορεί να περιέχει παλαιότερες αναφορές NodeRed, εργάζομαι συνεχώς για τη βελτίωση του σχεδιασμού. Αυτές είναι μικρές αλλαγές και τα αρχεία των άρθρων διατηρούνται ενημερωμένα

Συνάντησα αυτό το σχέδιο στο διαδίκτυο. Φαίνεται υπέροχο, ωστόσο μετά από στενή επιθεώρηση, το γραφικό στοιχείο δεν είναι πραγματικά κατάλληλο για το NodeRED. Χρειάζεται 5 ωφέλιμα φορτία για να ρυθμιστεί, κάτι που δεν είναι ακριβώς το πώς λειτουργεί ο ίδιος ο κόμβος. Μου πήρε λίγο χρόνο για να καταλάβω τον καλύτερο τρόπο να μεταφέρω όλες αυτές τις πληροφορίες για να ενημερώσω το widget και να το διατηρήσω λειτουργικό. Είμαι βέβαιος ότι με τον καιρό θα αφιερώσω περισσότερο χρόνο στο σχεδιασμό, ώστε να μπορώ να προωθήσω όλες τις απαραίτητες ενημερώσεις με ένα μόνο αντικείμενο msg. Προς το παρόν, είναι αυτό που είναι.

Ροή θερμοκρασίας

Η DHT11 αναφέρει κάθε Χ δευτερόλεπτα πίσω στο διακομιστή NodeRED. Αυξήσα αυτήν τη συχνότητα μέσω της κονσόλας του Tasmota. Απλώς εκτελέστε την εντολή για να ρυθμίσετε τη συχνότητα σε δευτερόλεπτα:

TelePeriod Ρυθμίστε την περίοδο τηλεμετρίας μεταξύ 10 και 3600 δευτερολέπτων

Αυτό γίνεται κυρίως για δοκιμές, καθώς δεν θέλω να περιμένω λεπτά για να δω αν οι διορθώσεις σφαλμάτων λειτούργησαν. Η διατήρηση της συχνότητας σε υψηλά επίπεδα θα προκαλέσει πυρκαγιά της θέρμανσης συχνότερα για μικρότερα χρονικά διαστήματα, οπότε αποφύγετε να την ρυθμίσετε στα 10 δευτερόλεπτα για άλλους σκοπούς δοκιμών. Ο κόμβος MQTT αντλεί τα δεδομένα από:

sonoff/tele/SENSOR

και διατηρεί τα πιο χρήσιμα δεδομένα στα ακόλουθα αντικείμενα:

msg.payload. DHT11. Temperature msg.payload. DHT11. Humidity

Για να περιορίσω τα σφάλματα, πρόσθεσα τον ομαλό κόμβο στο μέσο όρο των αποτελεσμάτων και ενημέρωσα τη μεταβλητή ροής: NodeRED:

Function Node - Ενημερώστε το 'TempAmbient'

flow.set ('TempAmbient', msg.payload. DHT11. Temperature); επιστροφή msg.

Ενημέρωση widget

Αποφάσισα ότι τα 5 δευτερόλεπτα είναι ένας καλός ρυθμός ανανέωσης, επομένως πιέζω όλες τις απαραίτητες τιμές με αυτήν τη συχνότητα. Η μόνη εξαίρεση είναι το ρυθμιστικό, το οποίο για προφανή λόγο ανταποκρίνεται άμεσα.

Κάθε αντίστοιχος κόμβος στέλνει το ωφέλιμο φορτίο με το εκχωρημένο θέμα στο widget που μοιάζει με φωλιά.

  • χρώμα (θέρμανση | ψύξη*| off & hvac_state)
  • φύλλο (true | false & has_leaf)
  • μακριά (αλήθεια | ψεύτικο & μακριά)
  • Θερμοκρασία περιβάλλοντος (αριθμός & θερμοκρασία_περιβάλλοντος)
  • Θερμοκρασία στόχου (αριθμός & στόχος_θερμοκρασία)

*δε χρησιμοποιείται

NodeRED: Function Node - Widget Update

χρώμα

x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); //περιβάλλων

αν (z = x) {

flow.set ("heatState", "off"); flow.set ("heatSwitch", "OFF"); } msg.payload = z; msg.topic = "θερμοκρασία_περιβάλλοντος"; επιστροφή msg.

φύλλο

x = flow.get ('TempAmbient'); εάν (x> 17 && x <23) {flow.set ("φύλλο", αληθινό); msg.payload = true; msg.topic = "has_leaf"; επιστροφή msg. } else {flow.set ("φύλλο", ψευδές); msg.payload = false; msg.topic = "has_leaf"; επιστροφή msg. }

Παράκαμψη χρώματος

x = flow.get ('μακριά'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "off"; επιστροφή msg. }

msg.topic = "hvac_state";

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

επιστροφή msg.

Μακριά

x = flow.get ('μακριά'); if (x === true) {flow.set ('heatSwitch', "OFF"); flow.set ("heatState", "off"); }

msg.topic = "μακριά";

msg.payload = flow.get ('μακριά'); επιστροφή msg.

Temp Temp

εάν (msg.topic === "ενημέρωση") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); επιστροφή msg. }

εάν (msg.command === "SetTargetTemperatureRequest") {

flow.set («μακριά», false); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

εάν (msg.topic === "ρυθμιστικό") {

flow.set («μακριά», false); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

εάν (msg.command === "GetTemperatureReadingRequest") {}

επιστροφή msg.

Όπως βλέπετε, επέλεξα τις μεταβλητές ροής, ώστε να μπορώ να ανακαλέσω την τιμή ανά πάσα στιγμή. Έχω μια ροή εντοπισμού σφαλμάτων που διαβάζει βασικά όλες τις αποθηκευμένες τιμές.

  • «TempAmbinet» - αποθηκεύει την τρέχουσα θερμοκρασία
  • "TempTarget" - διατηρεί την τιμή στόχου temp
  • «Φύλλο» - εμφανίζει φύλλο εάν χρειάζεται
  • "Μακριά" - εμφανίζει την κατάσταση μακριά εάν χρειάζεται
  • «HeatState» - αλλάζει χρώμα στην οθόνη
  • «HeatSwitch» - ελέγχει την κατάσταση του ρελέ.

Η πρόκληση ήταν να βεβαιωθείτε ότι οι πληροφορίες ενημερώνονται κατά την "ενημέρωση" και όταν ζητούνται με άλλα μέσα (Alexa, κλπ). Αυτός είναι ο λόγος για τον οποίο θα δείτε διαφορετικές συνθήκες στο JavaScript. Κάθε φορά που οι τιμές ενημερώνονται, αποστέλλονται στη μεταβλητή ροής και το widget ανανεώνεται.

Ολισθητής

Οι δοκιμές αποκάλυψαν ότι απαιτείται μια πρόσθετη ενημέρωση ρυθμιστικού (το ρυθμιστικό ωθεί τη θερμοκρασία -στόχο). Το ρυθμιστικό στέλνει το ωφέλιμο φορτίο (αριθμός) με το σχετικό θέμα "ρυθμιστικό" όταν μετακινείται. Επιπλέον, θέλω το ρυθμιστικό να μπει στη σωστή θέση εάν υπάρχουν πολλές διεπαφές ιστού. Για να γίνει αυτό, κάθε 5 δευτερόλεπτα απλώς ενημερώνω τη θέση του ρυθμιστικού σε μια τρέχουσα θερμοκρασία -στόχο.

NodeRED: Function Node - Update slider '

msg.payload = flow.get ('TempTarget'); επιστροφή msg.

Έλεγχος ρελέ

Ο ελεγκτής ρελέ είναι απλός, απαιτεί (προς το παρόν) δύο εισόδους. Το αληθές | λάθος της Alexa και η αλληλεπίδραση που ακολουθεί μια ενημέρωση στη μεταβλητή ροής "Διακόπτης θέρμανσης". Δεν υπάρχει ανάγκη για άμεση ενέργεια, οπότε για λόγους απλότητας, λειτουργεί με την ίδια συχνότητα ενημέρωσης 5 δευτερολέπτων με την υπόλοιπη ροή.

Το ρελέ συνδέεται μέσω MQTT. Ο κόμβος δημοσιεύει εντολές ON | OFF στο θέμα:

sonoff/cmnd/POWER1

Ο κόμβος συνάρτησης δέχεται το true | false από την Alexa και επίσης αλλάζει την κατάσταση της εισόδου σύμφωνα με τη μεταβλητή ροής «heatSwitch».

NodeRED: Function Node - Control Relay '

if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; επιστροφή msg. }

εάν (msg.command === "TurnOnRequest") {

msg.payload = "ON"; flow.set ("TempTarget", 21); επιστροφή msg. } if (msg.topic === "update") {msg.payload = flow.get ('heatSwitch'); } επιστροφή msg;

Ενσωμάτωση Alexa

Αυτή είναι η πρώτη συσκευή που χρειάστηκε για να απενεργοποιήσω την "αυτόματη αναγνώριση". Αντί να υποθέσω αυτόματα μια απάντηση, δημιούργησα μια, καθώς θέλω τη δυνατότητα να ερωτήσω τη ρυθμισμένη θερμοκρασία. Κατ 'αρχήν, το msg.payload = true | false υποδεικνύει εάν το αίτημα ήταν επιτυχές και τα πρότυπα που βρέθηκαν εδώ κάνουν τα υπόλοιπα. Εάν είστε νέοι στο Alexa και στο NodeRed, φροντίστε να το διαβάσετε.

Αποφάσισα να περάσω τις αναγνωρίσεις ξεχωριστά (ξέρω ότι αυτός δεν είναι ο καλύτερος τρόπος) για να μπορέσω να τα ελέγξω όλα λίγο καλύτερα. Κάθε απάντηση πρέπει να δίνεται σωστά στο τέλος της αλυσίδας εντολών. Το δικό μου κινδυνεύει να μην επιστρέψει σφάλματα εάν συμβούν αυτά. Σημειώστε ότι για να είναι συνεπής, ενημερώνω μόνο τις μεταβλητές, ενώ ο βρόχος ανανέωσης μεταφέρει τις νέες τιμές στο γραφικό στοιχείο.

NodeRED: Function Node - Process Alexa Responses '

// Ποια είναι η θερμοκρασία -στόχος του θερμοστάτηif (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "applianceResponseTimestamp": new Date (). toISOString ()}; msg.payload = true; επιστροφή msg. } // Ρυθμίστε τη θερμοκρασία (όχι χαμηλότερη από 10 ή μεγαλύτερη από 30) εάν (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = εύρος; } else {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } επιστροφή msg; } // Ενεργοποιήστε το εάν (msg.command === "TurnOnRequest") {msg.payload = true; flow.set («μακριά», false); flow.set ("TempTarget", 21); επιστροφή msg. } // Απενεργοποιήστε το εάν (msg.command === "TurnOffRequest") {msg.payload = true; flow.set («μακριά», true); επιστροφή msg.

Βήμα 4: Συμπέρασμα

συμπέρασμα
συμπέρασμα

Εάν εκθέσετε τον πίνακα ελέγχου NodeRED σε WAN, ολόκληρο το σύστημα θέρμανσης μπορεί να ελεγχθεί από απόσταση. Θα σας συνιστούσα να διαβάσετε τα ακόλουθα άρθρα για να αποκτήσετε ταχύτητα με την ασφάλεια NodeRED και NodeRED.

  • NodeRED για αρχάριους
  • Ασφάλεια NodeRED

Επιπλέον, εάν θέλετε να ενημερωθείτε για τις ενημερώσεις σε αυτό το έργο - σκεφτείτε να με ακολουθήσετε στην πλατφόρμα της επιλογής σας:

  • Twi tter
  • Ίνσταγκραμ
  • YouTu να είσαι

Και αν θέλετε να μου αγοράσετε έναν καφέ ή να με στηρίξετε με έναν πιο συνεχή τρόπο:

  • Paypal
  • Πατρέων

Ελπίζω να σας άρεσε το έργο!

Συνιστάται: