Maison > développement back-end > Tutoriel Python > Création d'un contrôleur de chauffage intelligent avec Python, Docker et Bluetooth #1

Création d'un contrôleur de chauffage intelligent avec Python, Docker et Bluetooth #1

Patricia Arquette
Libérer: 2024-12-31 15:06:18
original
820 Les gens l'ont consulté

Building a Smart Heater Controller with Python, Docker, and 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 :

  1. Configuration du Raspberry Pi avec Docker.
  2. Écrit un script Python en utilisant BLE pour se connecter au radiateur.
  3. Encodage et décodage des données de température et des modes de chauffage.
  4. Emballage de l'application dans Docker pour un déploiement facile.
  5. 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é :

  1. OS Flash Raspberry Pi : Téléchargez et installez la dernière image du système d’exploitation Raspberry Pi.
  2. 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.
  3. 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
Copier après la connexion
  1. Test de l'installation de Docker :
docker --version
docker run hello-world
Copier après la connexion

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 :

  1. Générer une paire de clés SSH :
ssh-keygen -t ed25519 -C "your_email@example.com"
Copier après la connexion
  1. Ajoutez la clé publique à GitHub.
  2. Clonez le dépôt :
git clone git@github.com:<username>/<repo>.git
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal