Controle de la vitesse du ventilateur avec GPIO sur RPi4

Merci @WarC0zes pour ce tuto.
Merci @Frosh pour cette modification.
J’ai acheté le boitier [Geekworm NASPi V2] et j’avais perdu espoir de piloter le ventilateur du RPI4 car je débute sur HA.
Après avoir lu les différents tutos j’avoue que le ventilateur soit configuré comme une lumière me tracassait un peu aussi :sweat_smile:
J’ai juste une difference c’est que le ventilateur sur le mien est sur le pin18:
image

Pour le pilotage manuel, c’est ok :+1:
Pour l’automatiser au démarrage c’est ok aussi.

Par contre comment je peux automatiser la vitesse du ventilateur en fonction de la température ?
Si temp > 75 alors vitesse 100
Si temp > 70 alors vitesse 80
Si temp > 60 alors vitesse 70
Si temp > 50 alors vitesse 50
Si temp > 30 alors vitesse 40
Si temp < 30 alors on met le ventilateur en veille

Il y a un script en python, mais je ne sais pas comment l’intégrer a HA:

#!/usr/bin/python
import pigpio
import time

servo = 18

pwm = pigpio.pi()
pwm.set_mode(servo, pigpio.OUTPUT)
pwm.set_PWM_frequency( servo, 25000 )
pwm.set_PWM_range(servo, 100)
while(1):
     #get CPU temp
     file = open("/sys/class/thermal/thermal_zone0/temp")
     temp = float(file.read()) / 1000.00
     temp = float('%.2f' % temp)
     file.close()

     if(temp > 30):
          pwm.set_PWM_dutycycle(servo, 40)

     if(temp > 50):
          pwm.set_PWM_dutycycle(servo, 50)

     if(temp > 60):
          pwm.set_PWM_dutycycle(servo, 70)

     if(temp > 70):
          pwm.set_PWM_dutycycle(servo, 80)

     if(temp > 75):
          pwm.set_PWM_dutycycle(servo, 100)

     if(temp < 30):
          pwm.set_PWM_dutycycle(servo, 0)
     time.sleep(1)

Pour la carte RPI Fan, j’arrive a afficher le ventilateur avec la commande, meme si je ne comprends par encore toutes ces alertes…

Mais au moins je peux controler manuellement le ventilateur :