Aller au contenu

Desc59

Membres
  • Inscription

  • Dernière visite

  1. Dans ce tutoriel, nous allons créer un tableau de bord interactif pour gérer une piscine dans Home Assistant. Ce tableau de bord permet de surveiller la qualité de l’eau (pH, chlore, température), planifier le pompage, suivre la filtration, et afficher des recommandations d’entretien. Voici comment j’ai construit ce tableau de bord, étape par étape, en utilisant YAML, des capteurs, des entrées numériques, et des cartes personnalisées. PrérequisUne instance de Home Assistant installée et configurée. Connaissance de base du format YAML et de l’interface Home Assistant. Accès à l’éditeur de configuration (via l’interface ou un éditeur comme VS Code). Modules recommandés : Frigate (pour la caméra, si utilisée). Logbook (pour l’historique des actions). Calendar (pour planifier le pompage). Capteurs physiques ou virtuels pour la température, le volume d’eau, etc. Une piscine avec des équipements connectés (pompe, lumière, etc.) ou des simulations via Home Assistant. Étape 1 : Configurer les entrées numériquesLes entrées numériques (input_number) permettent à l’utilisateur de saisir des valeurs comme le diamètre de la piscine, le pH actuel, ou le chlore souhaité. Ces valeurs sont utilisées dans les calculs et affichages du tableau de bord. 1.1 Accéder à l’éditeur d’entréesAllez dans Configuration > Appareils et services > Entrées. Cliquez sur Créer une entrée et choisissez Nombre. 1.2 Créer les entrées suivantesVoici les entrées que j’ai créées avec leurs paramètres : Nom ID Plage Unité Description Diamètre de la piscine input_number.piscine_diametre 0 à 10 m Diamètre pour calculer le volume Hauteur de la piscine input_number.piscine_hauteur 0 à 2 m Hauteur pour calculer le volume pH actuel input_number.piscine_ph_actuel 0 à 14 - pH mesuré dans l’eau pH souhaité input_number.piscine_ph_souhaite 7 à 8 - Cible pour le pH (7.6 idéal) Chlore actuel input_number.piscine_chlore_actuel 0 à 5 mg/L Taux de chlore mesuré Chlore souhaité input_number.piscine_chlore_souhaite 0 à 3 mg/L Taux de chlore cible (1-2 mg/L) 1.3 Exemple de configuration YAMLSi vous préférez configurer directement dans configuration.yaml, voici un exemple pour une entrée : input_number: piscine_diametre: name: Diamètre de la piscine min: 0 max: 10 step: 0.1 unit_of_measurement: m piscine_hauteur: name: Hauteur de la piscine min: 0 max: 2 step: 0.1 unit_of_measurement: m # Ajoutez les autres entrées de la même manièreConseil : Utilisez l’interface graphique pour éviter les erreurs de syntaxe, puis exportez le YAML si nécessaire. Étape 2 : Configurer l’enregistreur (recorder)L’enregistreur (recorder) stocke l’historique des capteurs et entrées pour afficher des graphiques ou des journaux. J’ai configuré recorder.yaml pour inclure uniquement les entités pertinentes afin d’optimiser la base de données. 2.1 Modifier configuration.yamlAjoutez cette ligne dans configuration.yaml pour inclure le fichier recorder.yaml : recorder: !include recorder.yaml2.2 Créer recorder.yamlCréez un fichier recorder.yaml dans le dossier de configuration de Home Assistant avec le contenu suivant : include: entities: - sensor.volume_eau_piscine - sensor.ph_a_ajouter - sensor.chlore_a_ajouter - sensor.temps_de_pompage_recommande - input_number.piscine_ph_actuel - input_number.piscine_chlore_actuel - sensor.journal_etat_eauExplication : include spécifie les entités à enregistrer. Seules les entités listées auront un historique, ce qui réduit la taille de la base de données. Ajoutez d’autres entités si vous souhaitez suivre leur historique (par exemple, sensor.bermerain_temperature_2). Étape 3 : Créer des capteurs pour les calculsLes capteurs calculent des valeurs comme le volume d’eau, le temps de pompage recommandé, ou la quantité de produits chimiques à ajouter. Ces capteurs sont définis dans configuration.yaml ou via l’interface. 3.1 Exemple de capteursVoici quelques capteurs que j’ai utilisés : Capteur pour le volume d’eauCalcule le volume de la piscine en fonction du diamètre et de la hauteur. sensor: - platform: template sensors: volume_eau_piscine: friendly_name: Volume d'eau de la piscine unit_of_measurement: m³ value_template: > {% set diametre = states('input_number.piscine_diametre') | float %} {% set hauteur = states('input_number.piscine_hauteur') | float %} {{ ((3.14159 * (diametre / 2) ** 2 * hauteur) | round(2)) }}Capteur pour le temps de pompage recommandéCalcule le temps de filtration en fonction de la température (règle : température / 2). sensor: - platform: template sensors: temps_de_pompage_recommande: friendly_name: Temps de pompage recommandé unit_of_measurement: h value_template: > {% set temp = states('sensor.bermerain_temperature_2') | float %} {{ (temp / 2) | round(1) }}Capteur pour le pH à ajouterCalcule la quantité de pH+ ou pH- à ajouter en fonction du pH actuel et du volume. sensor: - platform: template sensors: ph_a_ajouter: friendly_name: pH à ajouter unit_of_measurement: g value_template: > {% set ph = states('input_number.piscine_ph_actuel') | float %} {% set volume = states('sensor.volume_eau_piscine') | float %} {% if ph > 7.7 %} {{ ((ph - 7.7) * volume * 2) | round(0) }} g de pH- {% elif ph < 7.5 %} {{ ((7.5 - ph) * volume * 2) | round(0) }} g de pH+ {% else %} Aucun ajustement requis {% endif %}Conseil : Testez chaque capteur dans l’onglet Développeur > États pour vérifier les valeurs calculées. Étape 4 : Configurer le tableau de bordLe tableau de bord est créé dans l’interface graphique ou via YAML. J’ai utilisé un fichier YAML pour plus de contrôle. Voici comment il est structuré. 4.1 Structure généraleLe tableau de bord utilise une disposition en sections avec un maximum de 3 colonnes. Il inclut des badges, des cartes Markdown, des jauges, des graphiques, et une caméra Frigate. type: sections max_columns: 3 title: Piscine path: piscine icon: phu:rooms-pool theme: transparentblue subview: truetype: sections : Organise les cartes en sections. max_columns: 3 : Limite à 3 colonnes pour une disposition claire. theme: transparentblue : Applique un thème visuel. subview: true : Affiche le tableau comme une sous-vue. 4.2 BadgesLes badges affichent l’état de la pompe et de la lumière de la piscine en haut. badges: - type: entity entity: switch.pompe_piscine show_name: false show_state: true show_icon: true - type: entity entity: switch.lumiere_piscine show_name: false show_state: true show_icon: true4.3 Sections et cartesLe tableau est divisé en 4 sections avec différentes cartes : Section 1 : Informations généralesCalendrier : Affiche les événements de pompage planifiés. Journal du jour : Lien pour télécharger un journal (via sensor.journal_etat_eau). Qualité de l’eau : Conseils sur la température, le pH, le chlore, et l’entretien. Pompage planifié : Détails du prochain événement de pompage (statut, heure, lieu). Caméra Frigate : Flux vidéo de la piscine. Exemple pour la carte Markdown de la qualité de l’eau : - type: markdown title: 🏊‍♂️ Qualité de l’eau de piscine 💧 content: | ### 🌡️ Température - **Idéale :** entre **24°C et 28°C** - 🚫 Trop chaud ? Risque d’algues ### ⚖️ Équilibre du pH - **Parfait :** entre **7.2 et 7.4** - 📉 pH < 7.2 → Eau acide (corrosive) - 📈 pH > 7.4 → Eau basique (moins efficace) # ... (voir code complet) Section 2 : Contrôle qualitéAffiche les paramètres actuels (volume, température, pH, chlore). Calcule la température estimée de l’eau en fonction de la température extérieure. Recommande le temps de pompage et calcule la consommation énergétique. Indique les quantités de pH et de chlore à ajouter. Exemple de calcul pour la température estimée : {% set temp_ext = states('sensor.bermerain_temperature_2') | float %} {% set volume = states('sensor.volume_eau_piscine') | float(1) %} {% set inertie = 1 / volume %} {% set influence = (temp_ext - 15) * inertie * 0.5 %} {% set base_eau = 18 %} {% set temp_eau = (base_eau + influence) | round(1) %} {% if temp_eau > 26 %} L'eau de la piscine est à {{ temp_eau }}°C, c'est idéal ! Profitez-en ! {% else %} L'eau de la piscine est à {{ temp_eau }}°C (estimation). {% endif %}Section 3 : VisualisationsJauges : Pour le pH et le chlore souhaités, avec des seuils colorés (vert, jaune, rouge). Capteurs : Affichent le diamètre, la hauteur, le volume, et le temps de pompage. Graphiques : Tracent l’évolution du pH, du chlore, et de la température. Journal : Affiche l’historique des actions (pompe, automatisations). Exemple de jauge pour le pH : - type: gauge entity: input_number.piscine_ph_souhaite needle: true max: 14 severity: green: 7 yellow: 0 red: 8Section 4 : Nouvelle sectionActuellement, une section vide avec un titre. Vous pouvez y ajouter d’autres cartes (par exemple, des boutons pour activer la pompe manuellement). Étape 5 : Ajouter des automatisationsPour automatiser la pompe, j’ai créé des automatisations (non détaillées dans le code fourni, mais référencées dans le logbook). Voici un exemple d’automatisation pour activer la pompe le matin : Exemple : Activation de la pompe à 7hautomation: - id: activation_piscine_1_heure_matin alias: Activer pompe piscine 1h le matin trigger: platform: time at: "07:00:00" action: service: switch.turn_on entity_id: switch.pompe_piscineConseil : Ajoutez une condition pour vérifier si le calendrier de pompage est actif (calendar.pompage_piscine). Étape 6 : Tester et personnaliserTester le tableau de bord : Accédez à la vue via Tableaux de bord > Piscine. Vérifiez que les capteurs, jauges, et graphiques affichent des données correctes. Testez les entrées numériques en modifiant les valeurs (par exemple, pH actuel). Personnaliser : Ajoutez des icônes personnalisées via customize.yaml. Modifiez le thème ou les couleurs des jauges. Intégrez d’autres capteurs (par exemple, un capteur de turbidité). Conseils et bonnes pratiquesSauvegardez vos fichiers avant de modifier configuration.yaml ou le tableau de bord. Utilisez l’éditeur graphique pour les débutants, puis passez au YAML pour plus de flexibilité. Validez le YAML avec un linter (comme yamllint) pour éviter les erreurs. Optimisez la base de données en limitant les entités enregistrées dans recorder.yaml. Ajoutez des notifications (par exemple, via Telegram ou e-mail) pour alerter si le pH ou le chlore est hors plage. Résultat finalVoici à quoi ressemble le tableau de bord : Badges : État de la pompe et de la lumière en haut. Section 1 : Calendrier, journal, conseils d’entretien, détails du pompage, et caméra. Section 2 : Paramètres actuels (température, pH, chlore) avec recommandations. Section 3 : Jauges, graphiques, et historique des actions. Section 4 : Espace pour des extensions futures. Vous pouvez voir un exemple visuel en accédant au tableau de bord dans Home Assistant ou en consultant une capture d’écran (non fournie ici). Code completPour référence, voici le code YAML complet du tableau de bord (voir le code initial fourni). Ajoutez-le dans un fichier YAML sous Tableaux de bord > Éditer en mode YAML piscine.yaml
  2. Bonjour, Pourriez-vous m'aider à préciser les points suivants concernant votre installation : Croquis de l'installation : Un schéma simple (même à main levée) indiquant les composants principaux (platine de rue, interphone, gâche électrique, etc.), les connexions et les couleurs des câbles utilisés. Veuillez préciser à quoi chaque câble est connecté (ex. : platine de rue, interphone maison, gâche, etc.). Nombre de câbles connectés : Combien de câbles sont reliés à chaque composant ? Par exemple, si le bus utilise 4 câbles pour la platine de rue, merci de confirmer et de détailler leurs fonctions. Tension et marque de la bobine : Quelle est la tension de la bobine (ex. : 24V DC, 230V AC) et quelle est la marque/modèle du composant (bobine, relais, module de bus) ? Test d’impulsion : Pouvez-vous confirmer si un test d’impulsion a été effectué sur la bobine ou le relais ? Si oui, quels sont les résultats ? Bus et modèle : Quel type de bus est utilisé (ex. : KNX, Modbus, autre) ? Pouvez-vous indiquer le modèle du module de bus et le protocole utilisé pour l’intégration avec Home Assistant ? Détails techniques requis : Références ou modèles des composants (bobine, relais, module de bus, etc.). Tension d’alimentation (ex. : 24V DC, 230V AC). Type de bus de communication (ex. : KNX, Modbus, etc.). Si disponible, un plan ou schéma de l’installation serait très utile. Photos demandées : Une vue d’ensemble de la centrale, montrant les câbles connectés (avec leurs couleurs si possible). Des photos des boîtiers ouverts (centrale, platine de rue, interphone, etc.) pour visualiser les connexions internes. Si applicable, une photo de la platine de rue et des câbles associés. Exemple de clarification : Si votre bus utilise 4 câbles pour la platine de rue, précisez leur rôle (ex. : alimentation, signal, commande de gâche). Indiquez également le protocole utilisé dans Home Assistant pour gérer l’interphone (ex. : MQTT, KNX, etc.). Merci d’avance pour ces informations détaillées, elles me permettront de mieux vous accompagner !
  3. Desc59 a commencé à suivre Zatoufly
  4. Desc59 a commencé à suivre Jack
  5. 1. IntroductionHome Assistant est une plateforme puissante pour l'automatisation domestique. Pour maintenir une configuration claire et modulaire, j'organise mon code en plusieurs fichiers YAML inclus dans le fichier principal configuration.yaml. Cette approche améliore la lisibilité, la maintenance et la scalabilité. 2. Structure du Fichier Principal (configuration.yaml)Le fichier configuration.yaml sert de point d'entrée et inclut toutes les configurations nécessaires via des fichiers externes. Voici un aperçu de sa structure : homeassistant: packages: !include_dir_named packages # Charge les intégrations par défaut default_config: # Configuration des panneaux personnalisés pour la barre latérale panel_custom: !include panel_custom.yaml # Automatisations, scripts et scènes automation: !include automations.yaml script: !include scripts.yaml scene: !include scenes.yaml # Intégrations spécifiques freebox_player: !include freebox_player.yaml wake_on_lan: !include wake_on_lan.yaml lovelace: !include lovelace.yaml notify: !include notify.yaml # Entités et capteurs switch: !include switch.yaml climate: !include climate.yaml powercalc: !include powercalc.yaml binary_sensor: !include binary_sensor.yaml sensor: !include sensor.yaml template: !include template.yaml # Configurations avancées ffmpeg: !include ffmpeg.yaml frontend: !include frontend.yaml http: !include http.yamlExplication :packages : Inclut des fichiers de configuration pour des intégrations complexes (par exemple, des intégrations tierces). default_config : Charge les intégrations de base de Home Assistant. Fichiers inclus : Chaque fichier YAML gère une catégorie spécifique (ex. : climate.yaml pour les thermostats, switch.yaml pour les interrupteurs). Organisation : Les fichiers sont séparés par type d’entité ou fonctionnalité, facilitant la recherche et la modification. 3. Exemple de Fichier : climate.yamlLe fichier climate.yaml contient la configuration des entités de type climate, utilisées pour contrôler les thermostats ou climatiseurs. Voici un exemple de structure pour climate.yaml : # climate.yaml climate: - platform: generic_thermostat name: Thermostat Salon heater: switch.salon_heater target_sensor: sensor.salon_temperature min_temp: 15 max_temp: 30 target_temp: 20 ac_mode: false cold_tolerance: 0.3 hot_tolerance: 0.3 initial_hvac_mode: "heat" - platform: generic_thermostat name: Thermostat Chambre heater: switch.chambre_heater target_sensor: sensor.chambre_temperature min_temp: 15 max_temp: 28 target_temp: 19 ac_mode: false cold_tolerance: 0.5 hot_tolerance: 0.5 initial_hvac_mode: "heat"Explication :Plateforme : Utilise generic_thermostat pour créer un thermostat virtuel basé sur un interrupteur (heater) et un capteur de température (target_sensor). Paramètres : name : Nom de l’entité dans Home Assistant. min_temp/max_temp : Plage de température autorisée. target_temp : Température cible par défaut. cold_tolerance/hot_tolerance : Marges de tolérance pour éviter des cycles trop fréquents. initial_hvac_mode : Mode initial (ici, chauffage). 4. Avantages de Cette OrganisationModularité : Chaque fichier gère un aspect spécifique, facilitant les modifications. Clarté : La séparation par type d’entité réduit les erreurs. Réutilisabilité : Les fichiers comme climate.yaml peuvent être facilement adaptés pour de nouveaux appareils. Maintenance : Les mises à jour ou ajouts se font dans des fichiers dédiés, sans toucher au fichier principal. 5. Étapes pour Ajouter une Nouvelle EntitéIdentifier le type d’entité (ex. : climate pour un thermostat). Créer ou modifier le fichier correspondant (ex. : climate.yaml). Ajouter la configuration spécifique (comme ci-dessus pour generic_thermostat). Vérifier la configuration dans Home Assistant (via l’outil de validation). Redémarrer Home Assistant pour appliquer les changements. 6. Exemple d’Intégration dans LovelacePour afficher les entités climate dans l’interface utilisateur, j’utilise une carte dans lovelace.yaml : # lovelace.yaml (extrait) views: - title: Maison cards: - type: thermostat entity: climate.thermostat_salon - type: thermostat entity: climate.thermostat_chambreCela crée une interface utilisateur intuitive pour contrôler les thermostats. 7. ConclusionEn structurant ma configuration Home Assistant avec des fichiers YAML séparés, je maintiens un système clair, évolutif et facile à gérer. Le fichier climate.yaml illustre comment configurer des entités spécifiques, tandis que configuration.yaml centralise toutes les inclusions. Cette méthode est idéale pour les installations complexes avec de nombreuses intégrations.
  6. Desc59 a modifié sa photo de profil
  7. Desc59 a posté un message dans un sujet dans Présentations des Membres
    Bonjour à tous ! Passionné d’informatique depuis plus de 30 ans, j’ai vécu les débuts d’Internet et je n’ai jamais lâché l’affaire ! ✌️ Depuis 4 ans, je suis plongé dans la domotique avec Home Assistant et Jeedom, où j’explore, bidouille et optimise sans relâche. J’intègre des solutions comme Proxmox et Frigate pour des setups toujours plus performants. Sur mon GitHub (https://github.com/XAV59213?tab=repositories), je référence tout ce que je trouve sur la toile : codes, améliorations et astuces diverses. C’est ma façon de contribuer à la communauté et de partager mes découvertes. Super content de rejoindre ce forum ! J’espère y apporter ma pierre à l’édifice et échanger avec d’autres passionnés. À très vite pour des discussions techniques et des projets domotiques ! 🚀