Cet article est une suite logique du
sujet précédemment soulevé
des systèmes de surveillance d'une maison de campagne. Pour quelqu'un qui n'a pas lu l'article précédent, certaines réflexions de cet article peuvent sembler étranges. Permettez-moi de vous rappeler: déjà en train de concevoir et de choisir les composants de base, il est devenu clair que la surveillance du travail des systèmes d'une maison de campagne ne s'arrêtera pas et que vous devez faire non seulement de la surveillance, mais la fondation d'une maison intelligente. Voyons maintenant comment les événements se sont développés. Comme auparavant, je ne donnerai pas la liste complète des programmes ou des diagrammes détaillés. Ma tâche est de montrer le cheminement de la pensée et éventuellement d'engager une discussion.

Que voulez-vous d'une maison intelligente?
Vous devez d'abord comprendre, mais ce qui devrait être intelligent dans une maison intelligente. Il ne s'agit pas de définitions canoniques, mais de ce qui vous vient à l'esprit lorsque vous avez entre vos mains un ensemble d'outils aussi puissant que celui décrit dans l'article précédent:
openHAB + Arduino / nFR24L01 +. J'ai obtenu la liste suivante de «liste de souhaits» principale:
- Apprenez à contrôler la puissance de la chaudière électrique en fonction de la température dans la maison et dans la rue, et encore mieux, en tenant compte des prévisions météorologiques. Auparavant, la puissance de la chaudière n'était réglée que par des interrupteurs mécaniques sur la chaudière elle-même et le fonctionnement de la chaudière n'était pas optimal à la fois en termes de charge sur le réseau et en termes d'économies d'énergie dues au soleil ( voir ici ).
- Pour exclure les manipulations manuelles des pompes marche / arrêt (alimentation en eau, recirculation ECS), sèche-serviettes chauffants, thermostats de radiateur, etc. à l'arrivée / au départ. Eh bien et, bien sûr, voyez l'état de ces appareils.
- Apprenez à allumer et éteindre la lumière, la fontaine et d'autres appareils, en fonction de l'heure de la journée et de l'année, de la présence des propriétaires dans la maison et de certains autres facteurs. Dans une formulation plus générale - pour algorithmiser et automatiser le contrôle des appareils dont le contrôle est routinier, pour exclure le clic monotone des commutateurs traditionnels, en particulier dans l'obscurité. Tout doit s'allumer et s'éteindre automatiquement.
- Utilisez des algorithmes qui économisent de l'énergie. Par exemple, le premier étage de la chaudière allumé depuis longtemps permettra de recevoir plus d'énergie du Soleil que 2-3 étages qui sont périodiquement allumés / éteints par la température de la conduite de retour. C'est-à-dire Vous pouvez réaliser des économies d'énergie grâce à une charge plus réfléchie.
- Le système de surveillance et de contrôle qui était né à cette époque était suffisant pour mettre en œuvre seulement une partie de ces exigences. Par exemple, il est déjà possible de contrôler la chaudière par étapes, mais on ne sait pas encore par quels algorithmes, en tenant compte des restrictions sur la consommation d'électricité et en tenant compte de l'équilibre des priorités pour chauffer une maison et préparer de l'eau chaude. De plus, la première version du système ne comprenait pas tous les actionneurs nécessaires, par exemple, il n'y avait pas de dispositifs de commande de pompe, toutes les lumières de la maison n'étaient pas automatisées. Il y avait des demandes spécifiques supplémentaires, par exemple, "pour mettre la photo en surbrillance". De plus, cette demande elle-même a été transformée en "activer et désactiver automatiquement le rétro-éclairage de l'image en fonction de l'heure de la journée, de l'éclairage et d'autres facteurs".
Total: il y a une fondation extensible, il y a des objectifs. Nous analysons les données manquantes. Premièrement, il n'y a pas assez de paramètres électriques, du moins les suivants: la consommation actuelle de la maison, la puissance reçue du Soleil. Deuxièmement, les prévisions météorologiques ne sont pas suffisantes. De plus, il n'y a pas suffisamment d'actionneurs compacts. Je note que les contrôleurs terminaux avec actionneurs (relais) décrits dans l'article précédent étaient tous multifonctionnels et peu compacts. Et en plus fait maison. Certains appareils, par exemple, font des têtes thermostatiques sur les radiateurs de chauffage eux-mêmes, cela n'a aucun sens, vous devez les acheter.
Recevoir les paramètres électriques
Nous commençons donc par les paramètres électriques. La première chose qui me vient à l'esprit est de mettre des capteurs de courant basés sur l'effet Hall, un capteur 220V est déjà là, il reste à mesurer la tension sur les panneaux et les batteries. Tout peut être fait sur des capteurs séparés. Cependant, toutes ces mesures sont déjà effectuées par une centrale électrique basée sur l'onduleur
Xantrex et le
contrôleur MPPT . Comme nous le rappelons, ces appareils sont combinés dans un bus Xanbus propriétaire, qui est un transport pour l'interaction des appareils via le protocole Modbus. Et pour elle, il existe une passerelle TCP-Modbus spéciale
Conext ComBox , qui vous permet de lire et de définir les paramètres système sur un réseau local. C'est exactement ce dont vous avez besoin! À son tour, pour openHAB, il existe une liaison TCP-Modbus spéciale, qui reste à connecter et à configurer. Ainsi, la passerelle a été achetée, la documentation a été étudiée, la liaison à openHAB est connectée et configurée, les éléments sont définis, les règles de base sont écrites. En conséquence, les paramètres suivants ont commencé à arriver à la maison intelligente: tension aux entrées du réseau et du générateur, tension à la sortie de l'onduleur, courant de charge, puissance de charge en W et VA, tension sur les panneaux solaires et les batteries, courants à l'entrée et à la sortie du contrôleur MPPT, courant la charge de la batterie, la puissance reçue par l'énergie solaire fournie, la quantité d'énergie solaire collectée donnée au système, restituée au réseau. Même la température des batteries est lue, une fois que cela a permis d'éviter une surchauffe.
Participation au développement d'openHABLors du débogage, des erreurs ont été détectées dans le fonctionnement de la passerelle TCP-Modbus. À travers le forum, openHAB est allé au développeur, entre autres testeurs. En conséquence, la liaison a été finalisée en plusieurs itérations et fonctionne depuis plus de deux ans.
Passerelle TCP-Modbus pour lire les paramètres des appareils Shneider Electric (Xantrex) connectés au réseau Xanbus.Recevoir les prévisions météo
Ensuite. Vous pouvez obtenir des prévisions météorologiques de différentes manières, par exemple, vous inscrire à un fournisseur.

Cependant, il existe un moyen plus évident: de prendre les données de prévision directement à partir du site météo, par exemple, yandex.ru/pogoda. Pour ce faire, j'ai écrit un utilitaire en C qui, à l'aide de la bibliothèque
curl , enregistre la page HTML dans un fichier. Dans une requête HTTP, l'utilitaire envoie au site les coordonnées de la maison. Le fichier résultant est analysé et extrait de celui-ci avec des dizaines de paramètres: température, heures de lever et de coucher du soleil, prévisions de température de nuit, direction et force du vent. Les algorithmes de la maison intelligente utilisent les prévisions de la température nocturne et du coucher du soleil. Les données restantes sont simplement affichées à titre informatif dans l'interface. Dans openHAB, les données sont transférées par le même utilitaire via l'API REST pratique prise en charge par openHAB. À son tour, l'utilitaire C lui-même est lancé à l'aide des outils habituels d'openHAB toutes les 4 heures. Ainsi, tout est assez simple, et la principale difficulté est le développement d'un algorithme pour analyser une page HTML enregistrée. Mais mon article ne traite pas de cela.
Dans la figure - l'écran d'une maison intelligente avec des données météorologiques obtenues à partir des coordonnées de la maison de yandex.ru/pogodaAutomatisez la gestion de routine des appareils

Tout en travaillant à obtenir des prévisions météorologiques, un ami m'a présenté des relais contrôlés par WiFi et une rallonge électrique complète avec trois relais et trois paires de prises
USR IOT . À ce moment, j'avais déjà un peu maîtrisé openHAB et avec un peu d'enthousiasme, j'ai commencé à développer de nouveaux appareils et à les intégrer dans la maison intelligente. Le relais a été défini pour contrôler la pompe de forage et la rallonge était située dans la grange et utilisée pour contrôler l'éclairage de l'étang, la fontaine et la lumière dans la grange. Pour les appareils USR, IOT a trouvé de la documentation sur le réseau décrivant le protocole de contrôle, mais j'ai quand même dû écouter le trafic réseau à l'aide de
Wireshark . En conséquence, j'ai appris à générer des commandes de contrôle et à analyser les réponses des appareils. Pour contrôler le relais, j'ai écrit un programme en C qui est appelé par une règle d'openHAB, et j'ai connecté la rallonge directement en utilisant la liaison TCP openHAB.
Sur la photo de droite, une rallonge USRIOT avec prises contrôlées par WiFi.Reste à écrire les règles:
- Allumez la pompe de forage. Lors du désarmement de la maison, allumez la pompe; lors de l'armement, éteignez la pompe. C'est simple, car l'état de protection du système a appris à lire depuis l'alarme au stade de la "surveillance". Et ce paramètre est en outre utilisé dans de nombreuses règles. À cette fin, la détection de présence dans la maison est souvent utilisée, par exemple, via des balises Bluetooth, en enregistrant un appareil mobile sur un réseau local, etc. Cependant, ces méthodes ne sont pas très stables et ne sont pas souhaitables pour une utilisation dans des règles sérieuses.
- Allumez la fontaine dans l'étang. J'avais l'habitude d'utiliser des minuteries électroniques, mais elles s'éteignaient régulièrement et ne connaissaient pas la présence du propriétaire dans la maison. Une "nouvelle ère" d'automatisation s'est ouverte. La fontaine s'allume si la maison est désarmée, si la température dans la rue (nous avons appris à mesurer au stade «surveillance») est d'au moins 5 degrés (la fontaine n'est pas nécessaire en hiver) et l'heure est 08h00. La fontaine s'éteint à 23h00, toujours. C'est-à-dire la règle est un peu "asymétrique" et c'est très pratique.
- Rétroéclairage de l'étang allumé. Je dois dire que le rétro-éclairage lui-même est apparu en raison du désir de l'allumer automatiquement. Le rétroéclairage s'allume lorsque la maison est désarmée, lorsque l'éclairage de la rue est inférieur au paramètre spécifié dans les paramètres et lors du mouvement sur le porche de la maison principale ou de la maison d'hôtes. C'est-à-dire ne s'allume pas avant que le propriétaire veuille la voir. Tous les paramètres de contrôle sont apparus au stade de «surveillance». Désactive à 01h00, toujours.
- Allumer la lumière dans la grange. C'est la règle la plus drôle. La lumière s'allume si la maison est désarmée, si le niveau d'éclairage est inférieur à un seuil prédéterminé, si la température de l'air est inférieure à 15 degrés et si un mouvement sur le porche est détecté. Il s'éteint après 5 minutes, avec des mouvements répétés sur le porche, le temps de combustion est prolongé de 5 minutes. Tout n'est implémenté que par les outils openHAB habituels. La question est: pourquoi la température est-elle utilisée dans la règle? Très simple: le bois de chauffage pour la cheminée est stocké dans la grange. Si le soir par temps frais je sortais sur le porche, alors probablement derrière le bois de chauffage :) et il vaut mieux que la lumière brûle dans la grange.
Il reste à noter que dans toutes les règles, les appareils s'allument et s'éteignent automatiquement. Mais en même temps, ils peuvent être contrôlés manuellement via l'interface openHAB. Les appareils USR IOT décrits ont également des boutons de contrôle physiques sur le boîtier, il est donc important d'apprendre à lire l'état des appareils. Une façon de mettre à jour l'état de tous les actionneurs, ainsi que des capteurs, consiste à les interroger depuis openHAB par minuterie, par exemple, toutes les 15 minutes. Pour les appareils faits maison, en outre, il est obligatoire d'envoyer un état lorsque l'état des boutons / interrupteurs de commande change.
Revenons en arrière d'une étape. La tâche initiale était d'apprendre à contrôler le chauffage de manière flexible afin que la maison soit chaude, qu'il y ait toujours de l'eau chaude et que vous n'ayez pas à vous rendre régulièrement à la chaufferie pour régler le fonctionnement de la chaudière. Et dans ce cas, pour minimiser la probabilité que la chaudière s'arrête suite à l'actionnement du relais de limite de charge, qui est installé dans le panneau et limite la consommation de courant en déconnectant les charges non prioritaires, qui incluent à la fois la chaudière et la chaudière. Dans le même temps, au premier étage, le chauffage de la chaudière est éteint pendant 5 minutes, et si cela n'aide pas, la chaudière est également éteinte pendant 10 minutes (deuxième étage). Permettez-moi de vous rappeler que la consommation à domicile est limitée et que tout est électrique dans la maison, il n'y a pas de gaz, il faut donc surveiller la consommation. Et ce serait bien d'utiliser l'énergie du Soleil au maximum. Voici quelques règles résultantes.
Le premier groupe. Maison désarmée:
- Toutes les 20 minutes, vérifiez la température dans la maison et, si elle est inférieure à une valeur prédéterminée (22 degrés), ajoutez un niveau de puissance de la chaudière. Mais faites-le si le seuil du courant de charge n'est pas dépassé, par exemple à 25,6 A. Si la température est supérieure à la valeur définie, éteignez un étage de la chaudière toutes les 20 minutes, ne laissant que le premier. En conséquence, nous obtenons une "accélération" en douceur du système de chauffage et nous nous protégeons de son arrêt complet en raison d'une surcharge. La logique générale est la suivante: si de puissants consommateurs d'électricité travaillent dans la maison, par exemple une cuisinière, une bouilloire, un four à micro-ondes ou même un aspirateur, alors l'énergie qu'ils consomment va finalement dans la chaleur restante de la maison et pourquoi ne pas poursuivre la chaudière pour qu'elle s'allume à pleine capacité. Il est préférable de laisser la chaudière fonctionner dans la première étape, mais de ne pas l'éteindre pendant 10 minutes en raison du relais de limitation de charge.
- Si la température de l'eau chaude dans la chaudière est inférieure à 35 degrés, allumez le premier étage de la chaudière et du chauffe-eau. Si la température de l'eau est supérieure à 35 degrés et que la température de l'air dans la maison est supérieure à celle réglée (23 degrés), éteignez le premier étage de la chaudière. Si la température de l'eau est supérieure à 37 degrés - éteignez le chauffe-eau. De plus, toutes les inclusions ne doivent être effectuées que si le courant de charge n'est pas supérieur à 25,6A. Sinon, le relais de limitation de charge fonctionnera et pendant 10 minutes, rien ne pourra être activé du tout. Effectuez toutes les vérifications lors de la mise à jour des relevés du capteur de température d'eau chaude. Cette règle garantit la disponibilité de l'eau chaude, un chauffage rapide avec une consommation d'énergie minimale.
- Si la température du liquide de refroidissement dans le circuit solaire est supérieure à la température de l'eau chaude, qui à son tour est supérieure à 35 degrés, éteignez le chauffage du chauffage. Ainsi, il est possible d'économiser de l'électricité et de ne pas se retrouver sans eau chaude.
- Si la température dans la maison est supérieure à celle réglée (23 degrés) et que la température de l'eau chaude est supérieure à 35 degrés, éteignez complètement la chaudière. Sinon, il y aura une consommation excessive d'électricité et l'automatisation de la chaudière l'éteindra souvent par température dans la conduite de retour.
- S'il n'y a pas de tension sur l'élément chauffant de la chaudière, bien qu'il soit allumé à partir d'une maison intelligente, le premier étage du relais de charge s'est déclenché. Si vous limitez la puissance de la chaudière, vous pouvez éviter son arrêt. Désactivez les deuxième et troisième étapes. Ensuite, ils se retourneront contre eux-mêmes, selon d'autres règles, si nécessaire. De même, nous vérifions la tension d'alimentation de la chaudière. S'il a disparu, le deuxième étage du relais de charge s'est déclenché, nous ne laissons que le premier étage de la chaudière, nous éteignons tout le reste, y compris le chauffage de la chaudière; Ils seront inclus ultérieurement par d'autres règles. Ceci est fait afin de réduire la probabilité de fonctionnement répété du relais de charge et d'assurer un flux de chaleur maximum et uniforme dans la maison.
Le deuxième groupe. La maison est de garde.
- Si la température extérieure est inférieure à moins 8 degrés, allumez le deuxième étage de la chaudière. (le premier s'allume automatiquement depuis l'installation du contrôleur GSM universel, voir ici, sous la première coupe ). Si la température extérieure est inférieure à -15 degrés, allumez le troisième étage de la chaudière. Cela garantit un fonctionnement optimal du système de chauffage tout en maintenant une température économique donnée dans la maison. Lorsque la température augmente dans la rue, les étapes sont désactivées séquentiellement. Cette règle vous permet de rendre la chaudière plus uniforme et plus efficace.
- En cas de forte luminosité dans la rue, allumez la chaudière à titre préventif, sans attendre que l'équipement automatique maintienne une température économique (8 degrés). Remettez la chaudière en mode automatique si la température atteint la valeur calculée. La valeur calculée est calculée par la formule empirique, qui utilise le minimum de la température nocturne du jour passé et la prévision de la température nocturne. De plus, la chaudière revient en mode automatique si la puissance électrique reçue du Soleil tombe en dessous de 500 watts. Cet indicateur est lissé sur plusieurs passes de la règle exécutées toutes les minutes. Par conséquent, la règle vous permet d'économiser de l'électricité: en raison du chauffage de la maison, la chaudière fonctionnera moins dans l'obscurité et consommera moins d'énergie du réseau.
Une capture d'écran de l'environnement de développement openHAB Designer avec deux règles pour le chauffage et l'eau chaude sanitaire.Résultats préliminaires:
- Les objectifs fixés sont atteints de manière totalement sans poussière. La part du lion de la main-d'œuvre n'était pas associée à l'équipement, mais à la programmation. Et à partir de cette programmation, l'essentiel est venu du développement et du débogage de règles dans openHAB.
- Déjà aux premiers stades du développement d'une maison intelligente, le pari sur une solution «agnostique technologique» était justifié. Les règles décrites ci-dessus utilisent des données reçues de contrôleurs maison sur Arduino, d'une passerelle TCP-Modbus achetée, reçues d'Internet, c'est-à-dire à partir de sources complètement hétérogènes. Ajout de la gestion des périphériques sur TCP / IP. Tout cela est très harmonieusement orchestré depuis openHAB. Mais, bien sûr, avec cet openHAB devient un seul point de défaillance. C'est pourquoi il est correct d'utiliser Linux comme système d'exploitation sous openHAB. Par conséquent, j'ai dû passer au fil du temps de la connexion du serveur au LAN via WiFi à un fil ordinaire. J'ai également dû fournir un onduleur individuel, malgré l'alimentation redondante de toute la maison. Eh bien, en conclusion, j'ai dû mettre la prise contrôlée par WiFi Xiaomi sur l'alimentation du serveur, en la connectant à un réseau WiFi séparé, elle sert de dernier argument lorsque le serveur se fige.
- La prise de conscience est venue que l'Internet des objets et la maison intelligente ouvrent en effet l'horizon pour une nouvelle qualité de vie. Un confort vraiment amélioré. En effet, il y a une économie. Et enfin, l'excitation apparaît, conduisant à la connexion de nouveaux appareils et à l'utilisation de nouvelles technologies d'intégration. Ce qui conduit à nouveau à un confort accru.
Dans le prochain article, je vous dirai à quoi a mené l'excitation et comment la maison intelligente a évolué.