


Création d'un contrôleur de chauffage intelligent avec Python, Docker et Bluetooth #1
Chapitre 1 : Mise en route
Pourquoi construire un contrôleur de chauffage intelligent ?
J'ai récemment décidé de créer un contrôleur de chauffage intelligent pour mes radiateurs Terma MOA Blue en utilisant Python, Docker et Bluetooth basse énergie (BLE).
Le problème
Il n'existe actuellement aucun moyen natif de communiquer entre Home Assistant (HA) et mes radiateurs.
Le but
J'avais besoin d'un contrôle précis des chauffages de mon propriété en location saisonnière pour :
- Optimisez la consommation d'énergie—Empêchez les clients de régler des températures trop élevées ou de laisser les radiateurs allumés lors de leur départ.
- Gérez les paramètres à distance—Évitez les factures de chauffage coûteuses sans visiter physiquement la propriété.
- Activer l'automatisation : intégrez la haute disponibilité à l'avenir pour une meilleure planification et une meilleure surveillance.
Cet article est le premier chapitre d'une série dans laquelle je vais vous guider tout au long du processus, de la configuration du Raspberry Pi et de Docker à l'écriture de scripts Python pour un contrôle Bluetooth direct.
À propos des radiateurs Terma MOA Blue
Le Terma MOA Blue est un élément chauffant compatible Bluetooth conçu pour les radiateurs électriques et les sèche-serviettes.
Principales fonctionnalités :
-
Modes multiples :
- Manuel (Température ambiante)
- Manuel (température de l'élément chauffant)
- Horaires et minuteries
-
Contrôle de la température :
- Prend en charge les réglages de précision avec pas de 0,1°C.
-
Bluetooth basse consommation (BLE) :
- Permet le contrôle à distance via des applications mobiles ou des intégrations personnalisées.
Bien que ces radiateurs fonctionnent parfaitement avec l'application mobile du fabricant, je souhaitais plus de flexibilité en les intégrant directement dans une configuration Python/Docker personnalisée.
Un merci spécial à la communauté Home Assistant
Je tiens à remercier chaleureusement la communauté Home Assistant pour avoir jeté les bases et partagé des informations sur la connexion à ces radiateurs à l'aide de BLE.
Leurs discussions ont permis de clarifier la manière dont les caractéristiques Bluetooth sont structurées et ont inspiré de nombreuses techniques mises en œuvre dans ce projet.
Aperçu du projet
Nous couvrirons :
- Configuration du Raspberry Pi avec Docker.
- Écrit un script Python en utilisant BLE pour se connecter au radiateur.
- Encodage et décodage des données de température et des modes de chauffage.
- Emballage de l'application dans Docker pour un déploiement facile.
- Planification de fonctionnalités futures telles que support de chauffage multiple et automatisation.
Configuration du Raspberry Pi
J'ai décidé d'utiliser un Raspberry Pi comme contrôleur central pour ce projet. Voici comment je l'ai configuré :
- OS Flash Raspberry Pi : Téléchargez et installez la dernière image du système d’exploitation Raspberry Pi.
- Activer SSH et Wi-Fi : Configurez l'accès SSH et les informations d'identification Wi-Fi pendant le flashage pour permettre le développement à distance.
- Installer Docker : Docker facilite le déploiement et les tests.
Commandes :
sudo apt update sudo apt install -y docker.io sudo usermod -aG docker $USER
- Test de l'installation de Docker :
docker --version docker run hello-world
Cela vérifie que Docker est installé et fonctionne correctement.
Configuration de Git et de l'accès à distance
Pour simplifier les mises à jour du code, j'ai mis en place des clés SSH et Git pour un accès à distance depuis mon PC.
Étapes clés :
- Générer une paire de clés SSH :
ssh-keygen -t ed25519 -C "your_email@example.com"
- Ajoutez la clé publique à GitHub.
- Clonez le dépôt :
git clone git@github.com:<username>/<repo>.git </repo></username>
Lien vers le référentiel
Vous pouvez consulter le code source complet dans mon dépôt GitHub :
? GitHub - ha-hudsonread-heater-control
N'hésitez pas à le partager, à suggérer des améliorations ou à signaler tout problème !
Contrôler le chauffage avec Bluetooth
Le radiateur Terma MOA Blue communique via Bluetooth Low Energy (BLE), j'ai donc utilisé la Bibliothèque Bleak en Python pour gérer la connexion.
Principales fonctionnalités mises en œuvre jusqu'à présent :
- Températures de lecture et d'écriture : Utilisation des caractéristiques basées sur l'UUID.
- Contrôle du mode : Commutation entre Arrêt, Manuel (température de la pièce) et Manuel (température de l'élément chauffant).
- Mises à jour dynamiques : Contrôlez les températures sans affecter les modes.
État actuel et prochaines étapes
À l'heure actuelle, le contrôleur peut :
- Connectez-vous au chauffage.
- Lisez la température actuelle et la température cible.
- Changez de mode et ajustez les températures indépendamment.
Prochaines étapes :
- Ajouter la prise en charge de plusieurs radiateurs.
- Activez l'automatisation via l'intégration avec Home Assistant ou des plateformes similaires.
Suivez-nous
Restez à l'écoute du Chapitre 2, où je vais plonger dans le Code Python, expliquer comment fonctionnent l'encodage et le décodage BLE et partager des informations sur le débogage des connexions Bluetooth.
Nous aborderons également les commandes manuelles d'appairage et de connexion à l'aide de bluetoothctl pour toute personne intéressée par un examen plus approfondi du débogage BLE.
N'oubliez pas de ⭐️ le dépôt GitHub et faites-moi savoir dans les commentaires quelles fonctionnalités vous aimeriez voir ajoutées ensuite !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

SlitingyPapyThonListIsDoneUsingTheSyntaxList [Démarrage: arrêt: étape] .He'showitworks: 1) startisheindexofthefirStelementoinclude.2) stopisTheIndexoftheFirstelementsoexclude.3) StepistheincrementBetweenselans.it'susefulfactingPortationSoListShsandCanusegeg

NumpyAllowsForvariousOperations ONARRAYS: 1) BasicarithmeticLikeaddition, Soustraction, Multiplication, anddivision; 2) AdvancedOperationSuchasmatrixMultiplication; 3) Element-Wiseoperations withoutExplicitloop

ArraySinpython, en particulier ThroughNumpyandPandas, aressentialfordataanalysis, offingspeeedAfficiency.1) numpyarrayablefficienthandlingoflargedatasetsandComplexOperationsLikEMoVingAverages.2)

ListsandNumpyArraysInpythonHaveDidifferentMemoryfootprints: listsaRemoreFlexibles Butlessmemory économe, tandis que la liste de résensés est-ce qui

ToenSurepythonscriptsBeHavecorrectlyAcrossDevelopment, mise en scène et production, catégories de type: 1) EnvironmentVariblesForsImplesettings, 2) ConfigurationFilesForComplexsetups et3) dynamicloadingforadaptability.eachMethodoffersNebeneFitsAndreCeresca

La syntaxe de base pour le découpage de la liste Python est la liste [Démarrage: arrêt: étape]. 1.Start est le premier index d'élément inclus, 2.STOP est le premier indice d'élément exclu et 3.StEP détermine la taille de l'étape entre les éléments. Les tranches sont non seulement utilisées pour extraire les données, mais aussi pour modifier et inverser les listes.

ListesoutPerformarRaySin: 1) dynamicingizingandfrequentinSertions / Deletions, 2) StoringheteroGeneousData, and3) MemoryEfficiencyForsparsedata, butmayhaveslightperformanceCostSincertorations.

Toconvertapythonarraytoalist, usethelist () Constructororageneratorexpression.1) ImportTheArrayModuleandCreateArray.2) Uselist (Arr) ou [Xforxinarr] à Convertittoalist, considérant la performance et le domaine de l'émie-efficacité pour les étages.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft
