Ventilation pour ma cave

Bonjour la commu :hugs:

Alors je viens vers vous pour vous présenter mon tout premier projet, ainsi que le problème que j’ai par manque de connaissance.

Je souhaite améliorer la ventilation de ma cave semi-enterrée, car le taux d’humidité est encore trop variable malgré la ventilation à flux naturel. La température quant à elle, est assez stable à mon goût (15°C même l’été, c’est plaisant quand il y a une canicule :sweat_smile:)
Je me suis donc équipé d’un esp32 et de deux DHT22. Un DHT pour les mesures intérieur et l’autre pour les mesures extérieur. En terme de ventilation j’ai récupérer un ventilo de pc. Et pour l’alim, j’ai une prise électrique à proximité.

Le but est que si l’humidité de la cave augmente trop, alors une ventilation s’active mais uniquement si la température et l’hygrométrie extérieur ne sont pas trop élevées elles aussi. Et c’est là que tout ce corse :see_no_evil:

Je vous vois venir avec un relais ! :face_with_peeking_eye: :sweat_smile:
Alors pour la petite histoire, j’ai essayé comme tout débutant de faire fonctionner une simple LED pour le fun. Un On/Off sur Home Assistance et magie elle s’illumine ou s’éteint :crazy_face: Curieux comme je suis, j’ai brancher le fils + du ventilo sur la Pin 5V de l’Esp32, le fils - sur un GND et le fils data sur une Pin de la Led (enfin à la place de la LED). J’active le bouton On/Off de Home Assistant, et magie le ventilo tourne aussi !!! :partying_face: :laughing: (et pas si mal que ça pour un ventilo 12V branché sur du 5V. En tout cas j’ai pas besoin d’un réacteur d’avion :rofl:).

Alors je fais appel à vous !
Je travail avec EspHome sur un Home assistant sur machine virtuel (via VirtualBox). Je n’ai pas encore de Raspberry, mais home assistant sera un jour sur ce support. Pour l’instant j’apprend et je bidouille.
Pourriez m’indiquer comment programmer mon esp32 pour qu’il actionne la ventilation selon une hygro et une tempé que j’aurai prédéfini, et qu’il s’arrête quand il est dans la bonne plage de mesure. :sweat_smile:

Je vous remercie grandement par avance du temps passé à me lire mais aussi du temps passé pour m’aider :hugs:

Bonjour,
dans la doc de esphome tu peut trouver des exemples pour t’aider.

un exemple pour un DHT

sensor:
  - platform: dht
    humidity:
      name: "Living Room Humidity"
      on_value_range:
        - above: 65.0
          then:
            - switch.turn_on: dehumidifier1
        - below: 50.0
          then:
            - switch.turn_off: dehumidifier1
1 « J'aime »

Hello,

J’ai le même type de cave et je fais avec 1 capteurs de température extérieur en 433, un capteur de temp zigbee et une prise connectée zigbee dans la cave sur laquelle est branché un extracteur d’air.

Avec tout ça et après recherche sur le net, je ne le fais tourner que l’automne et l’hiver et seulement lorsque l’humidité absolue extérieure est inférieure à celle de la cave (plutôt que l’humidité relative).

Ça reste moins fun que l’esp32 avec ESPHome.
Sur ESPHome il y a de quoi calculer l’humidité absolue : Absolute Humidity — ESPHome

Avec ESPHome il est possible de récupérer l’état d’entités de HA. Pour récupérer la saison par exemple ça se fait avec un text sensor: Home Assistant Text Sensor — ESPHome

1 « J'aime »

J’ai essayé les commandes de esphome, mais je dois certainement mal m’y prendre… car j’ai un message d’erreur :sweat_smile:

Voici mon codage :

sensor:
  - platform: dht
    pin: 14
    temperature:
      name: "Cave Température"
      id: tempe
      internal: False
    humidity:
      name: "Cave humidité"
      on_value_range:
        - above: 75
          then:
            - switch.turn_on: light1
        - below: 60
          then:
            - switch.turn_off: light1
      id: Hygro
      internal: False
    model: DHT22
    update_interval: 5s

light:
  - platform: binary
    name: "ventilo"
    output: light1

output:
  - id: light1
    platform: gpio
    pin: GPIO27

Voici le message :

sensor.dht: [source /config/esphome/esphome-web-1061dc.yaml:52]
  platform: dht
  pin: 14
  temperature: 
    name: Cave Température
    id: tempe
    internal: False
  humidity: 
    name: Cave humidité
    on_value_range: 
      - above: 75
        then: 
          - 
            Unable to find action with the name 'switch.turn_on'.
            switch.turn_on: light1
      - below: 60
        then: 
          - switch.turn_off: light1
    id: Hygro
    internal: False
  model: DHT22
  update_interval: 5s

Montre le code de ton id light1

[/quote]

C’est pas ça ? :

light:
  - platform: binary
    name: "ventilo"
    output: light1

output:
  - id: light1
    platform: gpio
    pin: GPIO27

Comme tu le vois… j’apprend vraiment par tâtonnement :sweat_smile:
Si jamais tu as des conseils pour que je progresse mieux (des tutos, des livres) n’hésite pas à me les renseigner. J’ai l’impression d’avancer dans le noir les bras tendus devant moi, et dès que je trouve un objet, je m’y accroche :joy:
Le code light1 je l’ai trouvé sur esphome. Il me permet d’activer une Led depuis home assistant via un bouton On/Off. Du coup, au lieu de la Led, j’y ai brancher mon fameux ventilo. La base fonctionne, mais du moment ou je souhaite y intégrer une consigne, plus rien ne suit.

Ok, c’est un light que tu utilise pas un switch.

Change switch.turn_on par light.turn_on et switch.turn_off par light.turn_off

sensor:
  - platform: dht
    pin: 14
    temperature:
      name: "Cave Température"
      id: tempe
      internal: False
    humidity:
      name: "Cave humidité"
      on_value_range:
        - above: 75
          then:
            - light.turn_on: light1
        - below: 60
          then:
            - light.turn_off: light1
      id: Hygro
      internal: False
    model: DHT22
    update_interval: 5s
1 « J'aime »

Merci de tes réponses,
alors là il est pas content parce que je suis pour mon light binaire sur platform GPIO :

  humidity: 
    name: Cave humidité
    on_value_range: 
      - above: 75.0
        then: 
          - light.turn_on: 
              
              ID 'light1' of type gpio::GPIOBinaryOutput doesn't inherit from light::LightState. Please double check your ID is pointing to the correct value.

Du coup, j’ai bidouillé et ça marche avec ça :

sensor:
  - platform: dht
    pin: 14
    temperature:
      name: "Cave Température"
      id: tempe
      internal: False
    humidity:
      name: "Cave humidité"
      on_value_range:
        - above: 75
          then:
            - switch.turn_on: ventilo
        - below: 60
          then:
            - switch.turn_off: ventilo
      id: Hygro
      internal: False
    model: DHT22
    update_interval: 5s

switch:
  - platform: gpio
    id: ventilo
    pin: 27

Somme toute, rien de compliqué, mais faut juste en trouver et comprendre la logique :grin:

Etape suivante : je sais faire fonctionner deux DHT22 sur un esp32. Je sais dire que si l’une des valeur est atteinte sur un dht de mettre en fonction mon ventilo.
Maintenant comme mettre une condition dans une condition ?

Exemple : dire que si l’hygro cave est à 75% mettre en route le ventilo, si l’hygro extérieur est inférieur à 70% ?

Il faut encore que je regarde :face_with_monocle: le commentaire tout à fait pertinent de Makai qui expliquait une différence entre l’humidité relative et absolue :sweat_smile:
J’ai déjà entendu parler de ça, mais je ne m’en souviens plus :crazy_face:

C’est vrai que j’ai pas fait attention que tu avais pas de id au light. je connais pas ton modèle de esp.

1 « J'aime »