VMC Domeo 210 Modbus

Amis aéroliciens,

je vous partage ma configuration pour une ventilation double-flux UNELVENT Domeo 210 avec pilotage MODBUS.

En plus de voir les états, ça permet de forcer le boost, bypass, modifier les températures de déclenchement, mettre en surpression (pour faciliter un feu de cheminée…)

Passerelle MODBUS:
La passerelle modbus est un Elfin EW11 http://www.hi-flying.com/elfin-iot/elfin-ew1x-rs232-rs485-to-wi-fi
Toujours bien maintenu côté firmware http://www.hi-flying.com/download-center-1/firmware-1/download-item-pw11-pw10-ew10-ew11-hf2211s-firmware
12€ en Chine, une version ethernet existe aussi (EW10)

On la connecte à son WiFi en mode STA après avoir pris la main dessus la première fois via son hotspot.
Port série:


Socket:

On oubliera pas de fixer l’IP soit manuellement en dehors de la plage DHCP, soit en figeant le bail sur son routeur.

# VMC Domeo 210

# ModBus
modbus:
  name: VMCmodbus
  type: tcp
  host: l'IP de la passerelle
  port: 8888

# Modbus thermo by-pass
  climates:
    - name: VMC Température Extérieure By-pass
      slave: 1
      data_type: uint
      data_count: 1
      max_temp: 20
      min_temp: 11
      temp_step: 1
      target_temp_register: 22
      current_temp_register: 22
      scan_interval: 900


    - name: VMC Témpérature Intérieure By-pass
      slave: 1
      data_type: uint
      data_count: 1
      max_temp: 30
      min_temp: 21
      temp_step: 1
      target_temp_register: 23
      current_temp_register: 23
      scan_interval: 900


    - name: VMC durée filtre
      slave: 1
      data_type: uint
      data_count: 1
      max_temp: 24
      min_temp: 1
      temp_step: 1
      target_temp_register: 31
      current_temp_register: 31
      temperature_unit: mois
      scan_interval: 900


    - name: VMC durée By-pass
      slave: 1
      data_type: uint
      data_count: 1
      max_temp: 24
      min_temp: 1
      temp_step: 1
      target_temp_register: 24
      current_temp_register: 24
      temperature_unit: h
      scan_interval: 900


    - name: VMC Surpression
      slave: 1
      data_type: int
      data_count: 1
      max_temp: 15
      min_temp: 0
      temp_step: 1
      target_temp_register: 8
      current_temp_register: 8
      scan_interval: 900


sensor:
  - platform: modbus
    scan_interval: 180
    registers:

      - name: VMC état By-pass
        hub: VMCmodbus
        register: 25
        register_type: input

      - name: VMC état Boost
        hub: VMCmodbus 
        register: 15

      - name: VMC état Déphasage
        hub: VMCmodbus
        unit_of_measurement: "%"
        register: 8

      - name: VMC débit
        hub: VMCmodbus
        unit_of_measurement: m3/h
        register: 16
        register_type: input

      - name: VMC RPM Entrant
        hub: VMCmodbus
        register: 20
        register_type: input

      - name: VMC RPM Sortant
        hub: VMCmodbus
        register: 19
        register_type: input

      - name: VMC Aspiration
        hub: VMCmodbus
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
        register: 21
        register_type: input

      - name: VMC Extraction
        hub: VMCmodbus
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
        register: 22
        register_type: input

      - name: VMC Extérieur
        hub: VMCmodbus
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
        register: 23
        register_type: input

      - name: VMC Insufflation
        hub: VMCmodbus
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
        register: 24
        register_type: input


# VMC switch
switch:
- platform: modbus
  scan_interval: 180
  coils:
    - name: VMC By-pass Auto
      hub: VMCmodbus
      slave: 1
      coil: 8

    - name: VMC By-pass Manuel
      hub: VMCmodbus
      slave: 1
      coil: 9
# default holding, definir type pour input
  registers:
    - name: VMC Boost
      hub: VMCmodbus
      slave: 1
      register: 15
      command_on: 1
      command_off: 0
      #verify_register: 15
      #register_type: holding

    - name: VMC Boost Off
      hub: VMCmodbus
      slave: 1
      register: 15
      command_on: 0
      command_off: 0
  

Si vous voulez les mêmes icônes que moi, voilà la customization

sensor.vmc_debit:
  icon: mdi:air-filter
sensor.vmc_etat_boost:
  icon: mdi:fan
sensor.vmc_etat_by_pass:
  icon: mdi:thermometer-alert
sensor.vmc_rpm_sortant:
  icon: mdi:pinwheel
sensor.vmc_rpm_entrant:
  icon: mdi:pinwheel-outline
sensor.vmc_etat_dephasage:
  icon: mdi:contrast-circle

sensor.vmc_exterieur:
  icon: mdi:tree
sensor.vmc_insufflation:
  icon: mdi:bed-empty
sensor.vmc_aspiration:
  icon: mdi:shower
sensor.vmc_extraction:
  icon: mdi:home-roof

switch.vmc_by_pass_auto:
  icon: mdi:home-thermometer-outline
switch.vmc_by_pass_manuel:
  icon: mdi:home-thermometer
switch.vmc_boost:
  icon: mdi:speedometer
switch.vmc_boost_off:
  icon: mdi:speedometer-slow

Cette configuration est au format pour HA 2021.3. à partir de 2021.4 il sera possible d’intégrer les switchs et sensor sous la section modbus comme c’est déjà le cas pour climate.
Vous pouvez tout coller dans un autre yaml de type package et le déclarer.

à l’heure actuelle HA permet d’envoyer des ordres binaires, et en numérique mais uniquement via le module climate. On a donc une limitation sur les 3 commandes suivantes, qui s’afficheront en °C comme si c’était une température.

  • VMC durée filtre (en mois)
  • durée By-pass (en heures)
  • VMC Surpression (en %) impossible d’envoyer une valeur négative en raison de la limitation, même en jouant avec l’option offset…

Notez que le capteur déphasage aura logiquement la même valeur que ce qui est configuré dans « surpression »

Vous trouverez des PDF avec les commandes à ces adresses

Les valeurs de registre pour les capteurs de température des flux d’air entrant et sortant semblent inversées dans la doc d’après mes relevés. Vous noterez que les miennes sont donc différentes.

La config lovelace

cards:
  - entities:
      - entity: switch.moteur_vmc
      - entity: switch.vmc_boost
      - entity: switch.vmc_boost_off
      - entity: sensor.vmc_etat_boost
      - entity: switch.vmc_by_pass_auto
      - entity: switch.vmc_by_pass_manuel
      - entity: sensor.vmc_etat_by_pass
      - entity: sensor.vmc_exterieur
      - entity: sensor.vmc_insufflation
      - entity: sensor.vmc_aspiration
      - entity: sensor.vmc_extraction
      - entity: sensor.vmc_debit
      - entity: sensor.vmc_rpm_entrant
      - entity: sensor.vmc_rpm_sortant
      - entity: sensor.vmc_etat_dephasage
      - entity: climate.vmc_duree_by_pass
      - entity: climate.vmc_temperature_exterieure_by_pass
      - entity: climate.vmc_temperature_interieure_by_pass
      - entity: climate.vmc_surpression
      - entity: climate.vmc_duree_filtre
    show_header_toggle: false
    type: entities
  - entities:
      - entity: sensor.vmc_exterieur
      - entity: sensor.vmc_insufflation
      - entity: sensor.vmc_aspiration
      - entity: sensor.vmc_extraction
    hours_to_show: 24
    refresh_interval: 0
    type: history-graph
  - inner:
      colors:
        - color: var(--label-badge-green)
      entity: sensor.vmc_rpm_sortant
      label: OUT
    max: 3500
    min: 0
    outer:
      colors:
        - color: var(--label-badge-blue)
      entity: sensor.vmc_rpm_entrant
      label: IN
    title: VMC RPM
    type: 'custom:dual-gauge-card'
title: VMC
type: vertical-stack

La dernière carte est une custom, dual-gauge

Notes:

  • la commande moteur tout en haut de mon panneau est un relai sur la prise de courant, il n’est pas possible de couper le moteur via modbus.
  • Pour activer le modbus il faut déplacer un jumper sur la carte, la commande filaire classique devient alors inutilisable
  • Je n’ai pas mis la surveillance du filtre, je change quand j’y pense

Quelques automatisations:
-Si l’air soufflé dans les chambres est inférieur à 17° la nuit et que le moteur est on, couper le moteur (relais tiers de prise)
-Remettre le déphasage à 0 le matin
-Recevoir une alerte quand le bypass se déclenche

C’était mon 1er post :grin:

2 J'aime

Merci pour le partage :+1:

Bonjour,

Merci pour ton post, je viens d’acheter la même VMC :slight_smile:
Dis moi, tu pourrais également partager comment tu as connecté le EW11 sur la carte Mère ? Je pense que c’est sur les ports A, B & 0 mais relié à quoi ?

Merci

Nicolas

Bonjour Nicolas,
Sur la carte mère il y’a 2 RJ. à côté on trouve le bornier télécommande à 4 bornes et le bornier modbus à 3 bornes D0 D1 COM.

Perso j’ai branché directement sur le bornier, mais il est également possible d’utiliser la prise RJ45 attenante avec la broche 4 = D1, broche 5 = D0 et broche 8 = COM.

Pour désactiver la télécommande et activer le modbus il faut fermer le pont/jumper JP1 de la carte, centrale éteinte.

J’alimente la gateway modbus via les fils rouge (12V) et bleu (GND) de la télécommande.
à ce stade si tu rebranches la VMC le module devrait s’allumer, permettant de configurer le wifi, socket, etc…

Ensuite pour la communication il suffit logiquement de croiser Rx et Tx entre le master (gateway) et le slave (VMC)

VMC D0 - D1 gateway
VMC D1 - D0 gateway

Si tu trompes de sens entre D0 et D1 au début ça n’abimera rien, il suffit d’échanger.
La notation n’est pas très standard, un coup c’est A+/B-, Rx/Tx, D0,D1…

Hello :slight_smile:
J’ai reçu mon module EW11, mais impossible de me connecter au WiFI de mon point d’accès (Un Netgear EX6250), j’ai à peu près tout essayé, tu avais pas galéré ?

Je pense que c’est un souci de compatibilité car j’arrive à le connecter au Wifi de mon poêle, mais bon ça me sert à rien lol

Bonjour,

C’est à connecter à un SSID en 2,4 GHz, vérifie la configuration dual band du netgear.

J’ai réussi en créant un AP sur un autre RPI, tout fonctionne merci à toi :slight_smile: