Pour ceux qui veulent profiter de ce que j’ai fais.
Contexte
RPI 4 plus Fan PWM
GeeekPi Ultra Thin Ice Tower Cooler for Raspberry Pi 4 Model B 1GB 2GB 4GB 8GB
https://www.amazon.fr/gp/product/B0B9R7WWCG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
Connexion du ventilateur sur GPIO 12
Installation intégration Raspberry Pi GPIO PWM pour déclarer les device sur GPIO
Besoins
Échelonner la vitesse du ventilateur suivant la température du CPU suivant 5 niveaux
Explications :
Déclencheurs :
- Ajout de déclencheurs supplémentaires pour les seuils de température 30, 40, 50, et 60 degrés.
- Déclencheurs pour les seuils inférieurs correspondants (below 30, 40, 50, et 60).
Actions :
- L’action principale vérifie la température actuelle et ajuste la vitesse du ventilateur en conséquence.
- Utilisation de structures conditionnelles (
if
,else
) pour ajuster la vitesse du ventilateur en fonction de la plage de température actuelle.
Pourcentage de Vitesse :
- < 30 degrés : 20%
- 30-40 degrés : 40%
- 40-50 degrés : 60%
- 50-60 degrés : 80%
- 60 degrés : 100%
Cette configuration permet une régulation plus fine de la vitesse du ventilateur en fonction des variations de la température du processeur, garantissant une meilleure gestion de la chaleur.
la vitesse de ventilation au démarrage du système est réglée à 50%.
Automation
alias: Raspberry CPU Fan PWM 5 States
description: >-
Règle la vitesse du ventilateur du Raspberry en fonction de la température du
CPU
trigger:
- platform: homeassistant
event: start
id: HomeAssistant_Start
- platform: numeric_state
entity_id: sensor.processor_temperature
above: 30
id: above_30
- platform: numeric_state
entity_id: sensor.processor_temperature
above: 40
id: above_40
- platform: numeric_state
entity_id: sensor.processor_temperature
above: 50
id: above_50
- platform: numeric_state
entity_id: sensor.processor_temperature
above: 60
id: above_60
- platform: numeric_state
entity_id: sensor.processor_temperature
below: 30
id: below_30
- platform: numeric_state
entity_id: sensor.processor_temperature
below: 40
id: below_40
- platform: numeric_state
entity_id: sensor.processor_temperature
below: 50
id: below_50
- platform: numeric_state
entity_id: sensor.processor_temperature
below: 60
id: below_60
condition: []
action:
- alias: Régler la vitesse du ventilateur de l'unité centrale au démarrage
if:
- condition: trigger
id: HomeAssistant_Start
then:
- service: fan.turn_on
data:
percentage: 50
target:
entity_id: fan.fan_rpi_cooling
- alias: Régler la vitesse du ventilateur en fonction de la température
if:
- condition: numeric_state
entity_id: sensor.processor_temperature
below: 30
then:
- service: fan.set_percentage
data:
percentage: 20
target:
entity_id: fan.fan_rpi_cooling
else:
- if:
- condition: numeric_state
entity_id: sensor.processor_temperature
below: 40
then:
- service: fan.set_percentage
data:
percentage: 40
target:
entity_id: fan.fan_rpi_cooling
else:
- if:
- condition: numeric_state
entity_id: sensor.processor_temperature
below: 50
then:
- service: fan.set_percentage
data:
percentage: 60
target:
entity_id: fan.fan_rpi_cooling
else:
- if:
- condition: numeric_state
entity_id: sensor.processor_temperature
below: 60
then:
- service: fan.set_percentage
data:
percentage: 80
target:
entity_id: fan.fan_rpi_cooling
else:
- service: fan.set_percentage
data:
percentage: 100
target:
entity_id: fan.fan_rpi_cooling
mode: single
Et pour le Fun, j’ai ajouté une Gauge avec des couleurs suivant température CPU
Explication :
type: gauge
: Spécifie que nous utilisons un type de carte « jauge ».entity: sensor.processor_temperature
: Entité de capteur de température du processeur.min: 0
etmax: 100
: Définissent les valeurs minimale et maximale de la jauge.severity
: Définition des couleurs pour différentes plages de température :green: 30
: Vert pour les températures inférieures à 30°C.yellow: 40
: Jaune pour les températures entre 30°C et 40°C.orange: 50
: Orange pour les températures entre 40°C et 50°C.red: 60
: Rouge pour les températures entre 50°C et 60°C.crimson: 100
: Rouge foncé (ou autre couleur de votre choix) pour les températures supérieures à 60°C.
Cette configuration permet de visualiser les niveaux de température avec des couleurs qui correspondent aux plages définies dans l’automatisation du ventilateur. Vous pouvez ajuster les couleurs et les plages de température selon vos préférences.
type: gauge
entity: sensor.processor_temperature
min: 0
max: 100
severity:
green: 30 # Température inférieure à 30°C
yellow: 40 # Température entre 30°C et 40°C
orange: 50 # Température entre 40°C et 50°C
red: 60 # Température entre 50°C et 60°C
crimson: 100 # Température supérieure à 60°C
Explication des couleurs :
- Vert (< 30°C)** : Température basse, le ventilateur fonctionne à 20%.
- Jaune (30°C - 40°C)** : Température modérée, le ventilateur fonctionne à 40%.
- Orange (40°C - 50°C)** : Température moyenne, le ventilateur fonctionne à 60%.
- Rouge (50°C - 60°C)** : Température élevée, le ventilateur fonctionne à 80%.
- Rouge foncé (> 60°C)** : Température très élevée, le ventilateur fonctionne à 100%.
Si cela permet d’aider aux débutants pour comprendre le mécanisme.
Résultat: