Table des matières:
- Étape 1: Comment fonctionne un thermostat
- Étape 2: Préparation de Sonoff Basic
- Étape 3: NodeRED
- Étape 4: Conclusion
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Le système de chauffage de ma maison est probablement aussi vieux que la maison elle-même. Il a environ 30 ans, ce qui est bien en termes d'années de maison, mais à peu près coincé dans l'ère glaciaire en ce qui concerne la technologie. Il y a 2 problèmes principaux avec les solutions commerciales:
- prix prohibitifs
- produit en tant que service
Nous nous souvenons tous de ce qui est arrivé à Revolv et je n'ai pas trop envie que cela m'arrive au milieu de l'hiver. Dans cet esprit, je vous présente un contrôleur NEST-Alike incroyablement suspect mais fonctionnel pour votre ancien thermostat. Ne vous inquiétez pas, je prévois d'ajouter bientôt une bien meilleure enceinte !
Caractéristiques:
- possibilité d'utiliser un thermostat existant (au cas où la femme gémirait à ce sujet)
- accès à distance
- Mode ABSENT
- indicateur de température optimale
- Fonctionne avec Alexa
Bientôt (vérifiez ici pour les mises à jour)
- Google Home
- Google Agenda
- Plusieurs capteurs
- Commandes de radiateur
- Intégrations IFTT
- Assistance aux Taskeurs
- Requêtes
- Un boîtier bien plus beau
Étape 1: Comment fonctionne un thermostat
Le thermostat est probablement connecté à la HAUTE TENSION ! N'essayez pas de faire quoi que ce soit à moins de vous être assuré que le circuit est éteint. Vous pouvez vous blesser et endommager l'équipement connecté. Pensez à consulter un électricien qualifié pour assurer votre sécurité
Le thermostat Honeywell est une unité murale, alimentée par le secteur (les bases Sonoff ont besoin d'au moins 90 V, mon circuit a 230 V). Le boîtier est connecté à l'unité de contrôle principale (qui est un boîtier plus avancé) et il envoie le signal lorsque la température descend en dessous du niveau cible. Bien que votre unité puisse être différente, le principe est probablement le même. Si vous avez 3 fils et aucune connexion radio entre l'unité murale, ce tutoriel est fait pour vous.
Je sais comment fonctionnent les thermostats 3 fils dans un principe, ce qui ne m'a pas empêché de faire sauter un fusible en court-circuitant 2 fils par accident ! J'ai 3 fils connectés à l'unité (le 4ème étant la terre). Mon thermostat Honeywell n'est pas sans fil, donc pour changer le signal, je peux utiliser Sonoff Basic. Il est temps de le démonter et de voir comment le signal est envoyé à l'unité. Après une inspection plus approfondie, le terminal est connecté de la manière suivante:
- (bleu) – Terre
- (jaune) - signal, lorsqu'il est tiré vers le haut, le chauffage est allumé
- hors service
- (rouge) - le fil sous tension utilisé pour tirer le signal haut
Pour atteindre mon objectif, je dois court-circuiter le fil sous tension avec le fil de signal lorsque je veux que mon chauffage soit allumé. Si vous avez un thermostat connecté de la même manière, vous avez de la chance car Sonoff Basic suffira à faire l'affaire.
Étape 2: Préparation de Sonoff Basic
Avant de commencer à connecter les fils, nous devons ajouter un capteur de température (DHT11) au mélange. Assurez-vous que le micrologiciel Tasmota est flashé sur votre appareil Sonoff (j'ai un excellent guide de flash ici) et que votre Sonoff compatible Tasmota est correctement configuré (également déjà couvert par moi). Maintenant, il ne vous reste plus qu'à connecter le capteur DHT11 au Sonoff et à le configurer pour le rapport de température.
Le DHT11 est livré avec 3 broches câblées: Signal - GPIO14Vcc - 3.3VGND - GND
J'ai percé un trou, je ne me soucie pas de ce à quoi cela ressemble maintenant, tout ce dont j'ai besoin est la preuve de concept et la validation. Je ferai un joli boîtier brillant une fois mon imprimante 3D arrivée. J'ai prêté une attention particulière à la façon dont je câble le Sonoff, car je dois m'assurer que le fil sous tension se connecte au fil de signal à l'autre extrémité de l'appareil Sonoff. L'unité Honeywell a la résistance de charge (R) intégrée à l'intérieur qui limite le courant. Alors que le circuit est protégé par le fusible 3A, il est judicieux de faire correspondre la même résistance pour une protection supplémentaire. Une fois les fils prêts, il était temps de couper l'alimentation principale et de rebrancher le Sonoff.
Sonoff Tasmota - Thermostat Honeywell
ENTREE Live - 4ème borne Live
ENTREE GND - 1ère borne GND
SORTIE Signal - 2ème borne Signal
J'ai déjà mentionné cela pour l'instant, je ne vais pas insister sur l'apparence de cela. La femme a été convaincue et je peux me concentrer sur la fonctionnalité et éliminer les bugs qui pourraient survenir. La bonne chose est que le thermostat d'origine fonctionne toujours. Si je l'augmente, il remplacera celui basé sur Sonoff Tasmota. Cela devrait être une excellente sauvegarde pour tout événement inattendu.
Étape 3: NodeRED
Veuillez noter que la vidéo peut contenir des références NodeRed plus anciennes, je travaille constamment à améliorer la conception. Il s'agit de petits changements et les fichiers d'articles sont tenus à jour
Je suis tombé sur cette conception en ligne. Il a fière allure, mais après une inspection minutieuse, le widget n'est pas vraiment adapté à NodeRED. Il a besoin de 5 charges utiles pour être définies, ce qui n'est tout simplement pas le fonctionnement de la conception de nœuds similaires. Il m'a fallu un certain temps pour trouver le meilleur moyen de transmettre toutes ces informations pour mettre à jour le widget et le garder fonctionnel. Je suis sûr qu'avec le temps, je passerai plus de temps sur la conception afin de pouvoir envoyer toutes les mises à jour nécessaires avec un seul objet msg. Pour l'instant, c'est comme ça.
Flux de température
DHT11 rapporte toutes les X secondes au serveur NodeRED. J'ai augmenté cette fréquence via la console du Tasmota. Exécutez simplement la commande pour définir la fréquence en secondes:
TelePeriod Définir la période de télémétrie entre 10 et 3600 secondes
Ceci est fait principalement pour les tests, car je ne veux pas attendre quelques minutes pour voir si mes corrections de bogues ont fonctionné. Maintenir une fréquence élevée entraînera un déclenchement plus fréquent du chauffage pendant des périodes plus courtes, alors évitez de le régler sur 10 secondes à des fins autres que de test. Le nœud MQTT extrait les données de:
sonoff/télé/CAPTEUR
et conserve les données les plus utiles dans les objets suivants:
msg.payload. DHT11. Temperature msg.payload. DHT11. Humidity
Pour limiter les erreurs, j'ai ajouté le nœud smooth pour faire la moyenne des résultats et mis à jour la variable de flux: NodeRED:
Nœud de fonction - Mettre à jour le 'TempAmbient'
flow.set('TempAmbient', msg.payload. DHT11. Temperature); return msg;
Mise à jour des widgets
J'ai décidé que 5 secondes est un bon taux de rafraîchissement, donc je pousse toutes les valeurs nécessaires avec cette fréquence. La seule exception est le curseur, qui, pour une raison évidente, répond instantanément.
Chaque nœud correspondant envoie la charge utile avec le sujet attribué au widget imbriqué.
- couleur (chauffage|refroidissement*|off & hvac_state)
- feuille (true|false & has_leaf)
- loin (vrai|faux & loin)
- Température ambiante (nombre & ambient_temperature)
- Température cible (nombre et température_cible)
*hors service
NodeRED: nœud de fonction - Mise à jour du widget
Couleur
x = flux.get('TempTarget'); //ciblez = flow.get('TempAmbiant'); //ambiant
si (z = x){
flow.set('heatingState', "off"); flow.set('heatingSwitch', "OFF"); } msg.payload = z; msg.topic = "ambient_temperature"; renvoyer le message;
feuille
x = flow.get('TempAmbiant'); if (x > 17 && x < 23){ flow.set('leaf', true); msg.payload = true; msg.topic = "has_leaf"; renvoyer le message; } else{flow.set('leaf', false); msg.payload = false; msg.topic = "has_leaf"; renvoyer le message; }
Ignorer les couleurs
x = flux.get('loin'); if (x === true){ msg.topic = "hvac_state"; msg.payload = "off"; renvoyer le message; }
msg.topic = "hvac_state";
msg.payload = flow.get('heatingState');
renvoyer le message;
Une façon
x = flux.get('loin'); if (x === true){ flow.set('heatingSwitch', "OFF"); flow.set('heatingState', "off"); }
msg.topic = "absent";
msg.payload = flow.get('away'); renvoyer le message;
Température cible
if (msg.topic === "mise à jour"){ msg.topic = "target_temperature"; msg.payload = flow.get('TempTarget'); renvoyer le message; }
if (msg.command === "SetTargetTemperatureRequest") {
flow.set('loin', false); msg.topic = "température_cible"; flow.set('TempTarget', msg.payload); }
if (msg.topic === "curseur") {
flow.set('loin', false); msg.topic = "température_cible"; flow.set('TempTarget', msg.payload); }
if (msg.command === "GetTemperatureReadingRequest"){}
renvoyer le message;
Comme vous le voyez, j'ai opté pour les variables de flux, afin que je puisse rappeler la valeur à tout moment. J'ai un flux de débogage qui lit essentiellement toutes les valeurs stockées.
- 'TempAmbinet' - stocke la température actuelle
- 'TempTarget' - contient la valeur cible temporaire
- « feuille » – affiche la feuille si nécessaire
- « absent » – affiche le statut d'absence si nécessaire
- ‘heatingState‘– change la couleur de l’affichage
- ‘heatingSwitch’ – contrôle l’état du relais.
Le défi était de s'assurer réellement que les informations sont mises à jour sur « mise à jour » et lorsqu'elles sont demandées via d'autres moyens (Alexa, etc.). C'est pourquoi vous verrez différentes conditions dans le JavaScript. Chaque fois que les valeurs sont mises à jour, envoyées à la variable de flux et le widget est actualisé.
Glissière
Les tests ont révélé qu'une mise à jour supplémentaire du curseur (le curseur pousse la température cible) est nécessaire. Slider envoie la charge utile (nombre) avec le sujet associé slider) lorsqu'il est déplacé. En plus de cela, je veux que le curseur se place dans la bonne position si plusieurs interfaces Web sont en place. Pour ce faire, toutes les 5 secondes, je mets simplement à jour la position du curseur sur une température cible actuelle.
NodeRED: Nœud de fonction – Mettre à jour le curseur'
msg.payload = flow.get('TempTarget');return msg;
Contrôle de relais
Le contrôleur de relais est simple, il prend (pour l'instant) deux entrées. Le vrai|faux d'Alexa et l'interaction qui suit une mise à jour de la variable de flux « commutateur de chauffage ». Il n'y a pas besoin d'une action instantanée, donc pour la simplicité, il fonctionne sur la même fréquence de mise à jour de 5 secondes que le reste du flux.
Le relais est connecté via MQTT. Le nœud publie des commandes ON|OFF dans le sujet:
sonoff/cmnd/POWER1
Le nœud de fonction accepte le vrai|faux d'Alexa et modifie également l'état de l'entrée en fonction de la variable de flux « heatingSwitch ».
NodeRED: nœud de fonction - relais de contrôle »
if (msg.command === "TurnOffRequest"){ msg.payload = "OFF"; renvoyer le message; }
if (msg.command === "TurnOnRequest"){
msg.payload = "ON"; flow.set('TempTarget', 21); renvoyer le message; } if (msg.topic === "update"){ msg.payload = flow.get('heatingSwitch'); } renvoie le message;
Intégration Alexa
C'est le premier appareil que j'ai eu à désactiver la "reconnaissance automatique". Au lieu de supposer automatiquement une réponse, j'en ai généré une car je veux pouvoir interroger la température définie. En principe, msg.payload = true|false indique si la requête a abouti, et les modèles trouvés ici font le reste. Si vous êtes nouveau sur Alexa et NodeRed, assurez-vous de lire ceci.
J'ai décidé de passer les accusés de réception séparément (je sais que ce n'est pas le meilleur moyen) pour pouvoir tout contrôler un peu mieux. Correctement, chaque réponse doit être donnée à la fin de la chaîne de commande. Le mien risque de ne pas renvoyer d'erreurs si celles-ci se produisent. Notez que pour être cohérent, je ne mets à jour que les variables, tandis que la boucle de rafraîchissement envoie les nouvelles valeurs au widget.
NodeRED: nœud de fonction - Traiter les réponses Alexa
// Quelle est la température cible du thermostatif (msg.command === "GetTemperatureReadingRequest"){ x =flow.get('TempTarget'); msg.extra = { "temperatureReading": { "value": x}, "applianceResponseTimestamp": new Date().toISOString()}; msg.payload = true; renvoyer le message; } // Réglez la température sur (pas inférieure à 10 ou supérieure à 30) if (msg.command === "SetTargetTemperatureRequest"){ if (msg.payload 30) { var range = { min: 10,0, max: 30,0 } msg.payload = false; msg.extra = plage; } else { msg.extra = { targetTemperature: { value: msg.payload } }; msg.payload = true; } renvoie le message; } // Activez-le if (msg.command === "TurnOnRequest"){ msg.payload = true; flow.set('loin', false); flow.set('TempTarget', 21); renvoyer le message; } // Désactivez-le if (msg.command === "TurnOffRequest"){ msg.payload = true; flow.set('loin', true); renvoyer le message;
Étape 4: Conclusion
Si vous exposez le tableau de bord NodeRED au WAN, l'ensemble du système de chauffage peut être contrôlé à distance. Je vous recommande de lire les articles suivants pour vous familiariser avec NodeRED et la sécurité NodeRED.
- NodeRED pour les débutants
- Sécurité NodeRED
De plus, si vous souhaitez être informé des mises à jour de ce projet, pensez à me suivre sur la plateforme de votre choix:
- Youtube
Et si vous avez envie de m'acheter un café ou de me soutenir de manière plus continue:
- Pay Pal
- Patréon
J'espère que vous avez apprécié le projet!
Conseillé:
Enregistreur de données d'historique de thermostat Nest : 6 étapes (avec photos)
Enregistreur de données d'historique du thermostat Nest : le thermostat Nest enregistre la température, l'humidité et l'utilisation de la chaudière/de la climatisation et les utilisateurs ne peuvent consulter les données historiques que pendant 10 jours. Je voulais collecter des données historiques (> 10 jours) et je suis tombé sur un script de feuilles de calcul google qui imbriquent des pings à chaque fois
Convertissez votre ancien téléphone en commutateur à distance : 7 étapes (avec photos)
Convertissez votre ancien téléphone en commutateur à distance : vous êtes-vous déjà demandé quoi faire avec vos anciens téléphones de base ? L'avènement d'un smartphone au cours de la dernière décennie a rendu tous les téléphones de base obsolètes. Même s'ils ont une bonne autonomie de batterie et un look décent, ils le sont moins par rapport aux gros smartphones qui ont de gros s
Transformez votre ancien écran d'ordinateur CRT en aquarium ! ! ! : 11 étapes (avec photos)
Transformez votre ancien écran d'ordinateur CRT en aquarium ! ! !: Parlez d'un excellent économiseur d'écran ! Cela faisait un moment que je voulais faire ce build. À peu près chaque fois que je vois un vieux moniteur d'ordinateur CRT au bord de la route le jour des ordures, je me dis… cela ferait certainement un aquarium cool. Donc
Contrôlez votre ordinateur avec votre Ipod Touch ou votre Iphone : 4 étapes
Contrôlez votre ordinateur avec votre Ipod Touch ou Iphone : c'est mon premier instructable donc je suis désolé si ce n'est pas le meilleur. Avez-vous déjà eu envie de vous asseoir sur votre canapé ou votre lit et de contrôler vos appareils Mac ou Windows en toute simplicité. Cette instructable vous apprendra comment contrôler complètement votre ordinateur avec votre Ipo
Recycler votre ancien gradateur en tant que contrôle de température variable pour votre fer à souder : 7 étapes
Recyclage de votre ancien gradateur en tant que contrôle de température variable pour votre fer à souder : J'ai vu beaucoup de contrôle de température variable professionnel pour le fer à souder, mais trop cher. J'en fais donc un à partir d'un ancien gradateur, d'une prise, d'une plaque de groupe et d'une prise qui étaient déjà de la camelote et d'un vieux boîtier d'interrupteur en PVC qui l'accompagnait et ainsi