Inhaltsverzeichnis:

NEST Ihren alten Thermostat - Gunook
NEST Ihren alten Thermostat - Gunook

Video: NEST Ihren alten Thermostat - Gunook

Video: NEST Ihren alten Thermostat - Gunook
Video: Google Nest Learning Thermostat | Unboxing & Installing 2024, Juli
Anonim
Image
Image
So funktioniert ein Thermostat
So funktioniert ein Thermostat

Die Heizung in meinem Haus ist wahrscheinlich so alt wie das Haus selbst. Es ist ungefähr 30 Jahre alt, was in Bezug auf die Hausjahre in Ordnung ist, aber technisch ziemlich in der Eiszeit stecken geblieben. Bei kommerziellen Lösungen gibt es 2 Hauptprobleme:

  • unerschwingliche Preise
  • Produkt als Dienstleistung

Wir erinnern uns alle daran, was mit Revolv passiert ist, und ich bin nicht so scharf darauf, dass mir das mitten im Winter passiert. In diesem Sinne präsentiere ich Ihnen einen unglaublich verdächtig aussehenden, aber funktionalen NEST-Alike-Controller für Ihren alten Thermostat. Keine Sorge, ich plane, bald ein viel besseres Gehäuse hinzuzufügen!

Merkmale:

  • Möglichkeit, ein vorhandenes Thermostat zu verwenden (falls Frau darüber stöhnt)
  • Fernzugriff
  • AWAY-Modus
  • optimale Temperaturanzeige
  • Funktioniert mit Alexa

Bald (überprüfen Sie hier für Updates)

  • Google Home
  • Google Kalender
  • Mehrere Sensoren
  • Kühlersteuerung
  • IFTT-Integrationen
  • Tasker-Unterstützung
  • HTTP-Anfragen
  • Ein viel besser aussehendes Gehäuse

Schritt 1: So funktioniert ein Thermostat

So funktioniert ein Thermostat
So funktioniert ein Thermostat
So funktioniert ein Thermostat
So funktioniert ein Thermostat

Der Thermostat ist wahrscheinlich an die HOCHSPANNUNG angeschlossen! Versuchen Sie nicht, etwas zu tun, es sei denn, Sie haben sichergestellt, dass der Stromkreis ausgeschaltet ist. Sie können sich selbst verletzen und die angeschlossenen Geräte beschädigen. Ziehen Sie in Betracht, einen qualifizierten Elektriker zu konsultieren, um Ihre Sicherheit zu gewährleisten

Der Honeywell-Thermostat ist ein an der Wand montiertes Gerät, das über das Stromnetz betrieben wird (Sonoff-Grundlagen benötigen mindestens 90 V, mein Stromkreis hat 230 V). Die Box ist an die Hauptsteuereinheit (die eine fortschrittlichere Box ist) angeschlossen und sendet das Signal, wenn die Temperatur unter den Zielwert fällt. Auch wenn Ihr Gerät anders sein kann, ist das Prinzip höchstwahrscheinlich das gleiche. Wenn Sie 3 Drähte und keine Funkverbindung zwischen dem Wandgerät haben – dies ist das Tutorial für Sie.

Ich weiß, wie die 3-Draht-Thermostate im Prinzip funktionieren, was mich nicht davon abhielt, eine Sicherung durch versehentliches Kurzschließen von 2 Drähten durchzubrennen! Ich habe 3 Drähte an das Gerät angeschlossen (wobei der vierte die Erde ist). Mein Honeywell-Thermostat ist nicht drahtlos, daher kann ich zum Umschalten des Signals Sonoff Basic verwenden. Es ist an der Zeit, es auseinanderzunehmen und zu sehen, wie das Signal an das Gerät gesendet wird. Bei näherer Betrachtung wird das Terminal wie folgt angeschlossen:

  1. (blau) – Masse
  2. (gelb) – Signal, wenn hoch gezogen ist die Heizung an
  3. Nicht in Gebrauch
  4. (rot) – das stromführende Kabel, das verwendet wird, um das Signal hoch zu ziehen

Um mein Ziel zu erreichen, muss ich das stromführende Kabel mit dem Signalkabel kurzschließen, wenn ich möchte, dass meine Heizung eingeschaltet wird. Wenn Sie einen ähnlich angeschlossenen Thermostat haben, haben Sie Glück, denn Sonoff Basic reicht aus, um den Trick zu erledigen.

Schritt 2: Sonoff Basic vorbereiten

Vorbereitungen für Sonoff Basic
Vorbereitungen für Sonoff Basic
Vorbereitungen für Sonoff Basic
Vorbereitungen für Sonoff Basic
Vorbereitungen für Sonoff Basic
Vorbereitungen für Sonoff Basic

Bevor wir mit dem Anschließen der Drähte beginnen, müssen wir der Mischung einen Temperatursensor (DHT11) hinzufügen. Stellen Sie sicher, dass Sie die Tasmota-Firmware auf Ihr Sonoff-Gerät geflasht haben (ich habe hier eine ausgezeichnete Flashing-Anleitung) und Ihr Tasmota-fähiges Sonoff richtig konfiguriert ist (auch von mir bereits behandelt). Jetzt müssen Sie nur noch den DHT11-Sensor mit dem Sonoff verbinden und ihn für die Temperaturberichterstattung konfigurieren.

DHT11 wird mit 3 verdrahteten Pins geliefert: Signal - GPIO14Vcc - 3.3VGND - GND

Ich habe ein Loch gestochen, es interessiert mich nicht, wie es jetzt aussieht, ich brauche nur den Proof of Concept und die Validierung. Ich werde ein schönes und glänzendes Gehäuse machen, sobald mein 3D-Drucker ankommt. Ich habe besonders darauf geachtet, wie ich den Sonoff verdrahte, da ich sicherstellen muss, dass das stromführende Kabel mit dem Signalkabel am anderen Ende des Sonoff-Geräts verbunden ist. Das Honeywell-Gerät verfügt über einen eingebauten Lastwiderstand (R), der den Strom begrenzt. Während der Stromkreis durch die 3A-Sicherung geschützt ist, ist es klug, den gleichen Widerstand für zusätzlichen Schutz anzupassen. Sobald ich die Drähte fertig hatte, war es an der Zeit, den Hauptstrom auszuschalten und den Sonoff wieder zu verdrahten.

Sonoff Tasmota - Honeywell Thermostat

INPUT Live - 4. Anschluss Live

INPUT GND - 1. Klemme GND

OUTPUT Signal - 2. Anschluss Signal

Ich habe das vorerst erwähnt, ich werde mich nicht um das Aussehen kümmern. Die Frau ist überzeugt und ich kann mich auf die Funktionalität konzentrieren und eventuell auftretende Fehler beseitigen. Das Gute ist, dass der Originalthermostat noch funktioniert. Wenn ich es aufdrehe, überschreibt es das auf Sonoff Tasmota basierende. Dies sollte eine großartige Sicherung für alle unerwarteten Ereignisse sein.

Schritt 3: NodeRED

KnotenRED
KnotenRED
KnotenRED
KnotenRED
KnotenRED
KnotenRED

Bitte beachte, dass das Video ältere NodeRed-Referenzen enthalten kann, ich arbeite ständig daran, das Design zu verbessern. Dies sind kleine Änderungen und die Artikeldateien werden auf dem neuesten Stand gehalten

Ich bin im Internet auf dieses Design gestoßen. Es sieht gut aus, aber bei genauerem Hinsehen ist das Widget nicht wirklich für NodeRED geeignet. Es müssen 5 Payloads festgelegt werden, was nicht so funktioniert, wie Node-ähnliches Design funktioniert. Ich habe einige Zeit gebraucht, um herauszufinden, wie ich all diese Informationen am besten weitergeben kann, um das Widget zu aktualisieren und funktionsfähig zu halten. Ich bin mir sicher, dass ich mit der Zeit mehr Zeit für das Design aufwenden werde, damit ich alle erforderlichen Updates mit einem einzigen msg-Objekt durchführen kann. Im Moment ist es das, was es ist.

Temperaturstrom

DHT11 meldet sich alle X Sekunden zurück an den NodeRED-Server. Ich habe diese Frequenz über die Konsole des Tasmota erhöht. Führen Sie einfach den Befehl aus, um die Frequenz in Sekunden einzustellen:

TelePeriod Telemetriezeitraum zwischen 10 und 3600 Sekunden einstellen

Dies geschieht hauptsächlich für Tests, da ich nicht minutenlang warten möchte, um zu sehen, ob meine Fehlerbehebungen funktioniert haben. Eine hohe Frequenz führt dazu, dass die Heizung für kürzere Zeiträume häufiger zündet. Stellen Sie sie daher nicht zu Testzwecken auf 10 Sekunden ein. Der MQTT-Knoten ruft die Daten ab von:

sonoff/tele/SENSOR

und speichert die nützlichsten Daten in den folgenden Objekten:

msg.payload. DHT11. Temperatur msg.payload. DHT11. Feuchtigkeit

Um die Fehler zu begrenzen, habe ich den glatten Knoten hinzugefügt, um die Ergebnisse zu mitteln und die Flussvariable aktualisiert: NodeRED:

Funktionsknoten - Aktualisieren Sie die 'TempAmbient'

flow.set('TempAmbient', msg.payload. DHT11. Temperature);Return msg;

Widget-Update

Ich habe entschieden, dass 5 Sekunden eine gute Bildwiederholfrequenz sind, daher drücke ich alle benötigten Werte mit dieser Frequenz. Die einzige Ausnahme ist der Schieberegler, der aus offensichtlichen Gründen sofort reagiert.

Jeder entsprechende Knoten sendet die Nutzlast mit dem zugewiesenen Thema an das nestähnliche Widget.

  • Farbe (Heizen|Kühlen*|Aus & HVAC_State)
  • Blatt (true|false & has_leaf)
  • weg (wahr|falsch & weg)
  • Umgebungstemperatur (Zahl & Umgebungstemperatur)
  • Zieltemperatur (Zahl & Zieltemperatur)

*Nicht in Gebrauch

NodeRED: Funktionsknoten - Widget-Update

Farbe

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

wenn (z = x) {

flow.set('heatingState', "off"); flow.set('heatingSwitch', "OFF"); } msg.payload = z; msg.topic = "Umgebungstemperatur"; Nachricht zurück;

Blatt

x = flow.get('TempAmbient'); if (x > 17 && x < 23) {flow.set('leaf', true); msg.payload = true; msg.topic = "has_leaf"; Nachricht zurück; } Else{flow.set ('Blatt', false); msg.payload = false; msg.topic = "has_leaf"; Nachricht zurück; }

Farbe weg überschreiben

x = flow.get('weg'); if (x === true){ msg.topic = "hvac_state"; msg.payload = "aus"; Nachricht zurück; }

msg.topic = "hvac_state";

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

Nachricht zurück;

Ein Weg

x = flow.get('weg'); if (x === true){flow.set('heatingSwitch', "OFF"); flow.set('heatingState', "off"); }

msg.topic = "weg";

msg.payload = flow.get('weg'); Nachricht zurück;

Zieltemperatur

if (msg.topic === "update"){ msg.topic = "target_temperature"; msg.payload = flow.get('TempTarget'); Nachricht zurück; }

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

flow.set('weg', false); msg.topic = "target_temperature"; flow.set('TempTarget', msg.payload); }

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

flow.set('weg', false); msg.topic = "target_temperature"; flow.set('TempTarget', msg.payload); }

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

Nachricht zurück;

Wie Sie sehen, habe ich mich für die Flow-Variablen entschieden, damit ich mich jederzeit an den Wert erinnern kann. Ich habe einen Debug-Flow, der im Grunde alle gespeicherten Werte liest.

  • ‘TempAmbinet‘– speichert die aktuelle Temperatur
  • ‘TempTarget‘– hält den Temperatursollwert
  • ‘leaf‘– zeigt bei Bedarf ein Blatt an
  • ‚abwesend‘– zeigt bei Bedarf den Abwesenheitsstatus an
  • ‘heatingState‘– ändert die Farbe des Displays
  • ‘heatingSwitch‘– steuert den Zustand des Relais.

Die Herausforderung bestand darin, tatsächlich sicherzustellen, dass die Informationen beim „Aktualisieren“und auf andere Weise (Alexa usw.) aktualisiert werden. Aus diesem Grund sehen Sie im JavaScript unterschiedliche Bedingungen. Jedes Mal, wenn die Werte aktualisiert werden, werden sie an die Flow-Variable gesendet und das Widget wird aktualisiert.

Schieberegler

Tests haben ergeben, dass ein zusätzliches Slider-Update (Slider verschiebt die Zieltemperatur) erforderlich ist. Slider sendet beim Verschieben die Payload (Zahl) mit dem dazugehörigen Thema „Slider“. Darüber hinaus möchte ich, dass der Schieberegler in die richtige Position kommt, wenn mehrere Weboberflächen vorhanden sind. Dazu aktualisiere ich einfach alle 5 Sekunden die Schiebereglerposition auf eine aktuelle Solltemperatur.

NodeRED: Funktionsknoten - Schieberegler aktualisieren'

msg.payload = flow.get('TempTarget');Nachricht zurückgeben;

Relaissteuerung

Der Relaiscontroller ist einfach, er benötigt (vorerst) zwei Eingänge. Alexas true|false und die Interaktion, die einer Aktualisierung der Durchflussvariablen „Heizungsschalter“folgt. Es ist keine sofortige Aktion erforderlich, daher wird es der Einfachheit halber mit der gleichen 5-Sekunden-Aktualisierungsfrequenz wie der Rest des Flows ausgeführt.

Das Relais wird über MQTT angeschlossen. Node postet ON|OFF-Befehle zum Thema:

sonoff/cmnd/POWER1

Der Funktionsknoten akzeptiert true|false von Alexa und ändert auch den Zustand des Eingangs entsprechend der Durchflussvariablen ‚heatingSwitch‘.

NodeRED: Funktionsknoten - Steuerrelais'

if (msg.command === "TurnOffRequest"){ msg.payload = "OFF"; Nachricht zurück; }

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

msg.payload = "EIN"; flow.set('TempTarget', 21); Nachricht zurück; } if (msg.topic === "update") { msg.payload = flow.get('heatingSwitch'); } Nachricht zurückgeben;

Alexa-Integration

Dies ist das erste Gerät, bei dem ich die "automatische Bestätigung" ausschalten musste. Anstatt automatisch eine Antwort anzunehmen, habe ich eine generiert, da ich die Möglichkeit haben möchte, die eingestellte Temperatur abzufragen. Im Prinzip zeigt msg.payload = true|false an, ob die Anfrage erfolgreich war, den Rest erledigen die hier gefundenen Templates. Wenn Sie neu bei Alexa und NodeRed sind, lesen Sie dies unbedingt.

Ich beschloss, die Anerkennungen separat zu übergeben (ich weiß, dass dies nicht der beste Weg ist), um alles ein bisschen besser kontrollieren zu können. Jede Antwort sollte richtigerweise am Ende der Befehlskette stehen. Meins riskiert, Fehler nicht zurückzugeben, sollten diese passieren. Beachten Sie, dass ich aus Konsistenzgründen nur die Variablen aktualisiere, während die Refresh-Schleife die neuen Werte an das Widget überträgt.

NodeRED: Funktionsknoten - Alexa-Antworten verarbeiten

// Was ist die Zieltemperatur des Thermostatsif (msg.command === "GetTemperatureReadingRequest"){ x =flow.get('TempTarget'); msg.extra = { "temperatureReading": { "value": x}, "applianceResponseTimestamp": new Date().toISOString()}; msg.payload = true; Nachricht zurück; } // Setze die Temperatur auf (nicht niedriger als 10 oder mehr als 30) if (msg.command === "SetTargetTemperatureRequest"){ if (msg.payload 30) { var range = { min: 10.0, max: 30.0 } msg.payload = false; msg.extra = Bereich; } else { msg.extra = { targetTemperature: { value: msg.payload } }; msg.payload = true; } Nachricht zurückgeben; } // Einschalten if (msg.command === "TurnOnRequest"){ msg.payload = true; flow.set('weg', false); flow.set('TempTarget', 21); Nachricht zurück; } // Ausschalten if (msg.command === "TurnOffRequest"){ msg.payload = true; flow.set('weg', wahr); Nachricht zurück;

Schritt 4: Fazit

Abschluss
Abschluss

Wenn Sie das NodeRED-Dashboard dem WAN aussetzen, kann das gesamte Heizsystem aus der Ferne gesteuert werden. Ich empfehle Ihnen, die folgenden Artikel zu lesen, um sich mit NodeRED und der NodeRED-Sicherheit vertraut zu machen.

  • NodeRED für Anfänger
  • NodeRED-Sicherheit

Wenn Sie außerdem über die Aktualisierungen dieses Projekts informiert werden möchten, sollten Sie mir auf der Plattform Ihrer Wahl folgen:

  • Instagram
  • Youtube

Und wenn Sie Lust haben, mir einen Kaffee zu kaufen oder mich kontinuierlich zu unterstützen:

  • Paypal
  • Patreon

Ich hoffe, Ihnen hat das Projekt gefallen!

Empfohlen: