Intégration Climatisation gainable Koolnova via le port BMS (RS485)

Ah alors là j’pense être vraiment intéressé par le modbus/TCP parce que dans mon cas j’ai bien un câble entre mon serveur et la clim mais y’a déjà du traffic ethernet dessus et ça alimente le Switch que j’ai dans mes combles.
Également mon home assistant est virtualisé donc lui brancher de l’USB n’est pas impossible maiis je préfère éviter.
Si je comprends bien ce que tu envisages serait un esp physiquement branché en modbus sur la clim, connecté également au réseau IP (ethernet ou wifi) et qui expose un socket sur lequel cette intégration envoie les messages série/modbus.
C’est déjà exactement ce que j’ai pour le ZigBee avec Z2M qui tourne sur mon HA et qui se connecte à un socket que me fournit un petit ESP que j’ai acheté chez tubesZB.
Si/quand tu te lances là dedans je suis partant pour aider si besoin, ma clim devrait continuer de fonctionner en mqtt même si j’ajoute modbus en parallèle, j’ai à dispo quelques ESP que je peux configurer via esphome, et j’ai du réseau wifi et ethernet partout, donc a priori tout ce qu’il faut pour ce type de solution et même la capacité de démarrer un Home Assistant vierge rapidement au besoin (sur mon proxmox)

J’ai également un HA virtualisé sous proxmox et ça marche très bien avec un dongle USB/RS485. :wink:
Je ne veux pas te donner de faux espoirs. Je n’aurai pas le temps de me pencher sur ce sujet (passerelle Modbus RS485/TCP via ESP) avant au moins le début d’année prochaine. Je me suis déjà engagé sur d’autres projets pour cette fin d’année. :upside_down_face:
J’ai discuté avec un mec qui a utilisé un matériel MOXA Nport 5100 pour faire passerelle RS485/TCP (ça peut être une solution de repli. Je n’ai pas testé).
Après si il y a des personnes motivées pour commencer avant. J’ai également des ESP32 pour tester sur mon installation. :stuck_out_tongue_winking_eye:

Y’a rien de pressé, ma clim n’a plus accès à internet je doute qu’elle puisse s’updater et casser mon intégration actuelle, elle va pas bouger de mes combles et Home Assistant n’est pas parti pour se faire doubler ou remplacer d’ici un bon moment :wink:

Néanmoins j’ai rapidement checké ce que fait tubeszb et il a fork un projet existant pour exposer sur un port TCP le port série et ça expose la data brut, j’ai l’impression que ton code se base sur pymodbus et donc que c’est potentiellement pas infaisable de se monter un esp home avec un composant github://tube0013/esphome-stream-server-v2, on lui file les ports sur lesquels on a soudé le port série

uart:
  id: uart_bus
  rx_pin: GPIO5
  tx_pin: GPIO16
  baud_rate: 115200

stream_server:
  uart_id: uart_bus
  id: ss
  port: 6638 # optional, default is 6638

J’ai regardé comment tu initialisé pymodbus il semble que en lui filant comme port tcp://192.168.0.123:6638 directement ça pourrait marcher…

D’un coup ça me fait drôlement envie d’essayer :rofl:
Je vais préparer quelques adaptateurs RJ45 pour amener temporairement le modbus des combles jusqu’à mon serveur et voir si j’arrive à faire marcher sans cette surcouche pour avoir un point de départ qui marche et ensuite voir si le stream-server peut marcher.

Mais pareil, ne sois pas pressé, le temps que je prépare les câbles, que je monte dans les combles, que je trouve quoi brancher sur mon HA… On sera ptêtre déjà début 2025 :wink:

1 « J'aime »

:warning: Après avoir lu ton commentaire, j’attire ton attention sur un point (tu dois probablement le savoir :wink:) : Le RS485 (Modbus série) est très différent du RS232 (port série UART). Il faut que la puce de l’ESP soit en capacité de recevoir et décoder du RS485 (paire différentielle, pas de Rx et Tx) pour l’envoyer sur du TCP.

Effectivement, je me suis appuyé sur pymodbus pour coder l’intégration et communiquer avec mon Koolnova, la librairie étant nativement présente dans HA.

Bonne préparation :yum:

Ah bah je savais pas non… Pour moi t’a « deux câbles » c’est « du série » et basta :rofl: (oui, meme quand t’as 3 ou 4 cables en fait t’as 2 cables :smiley: ma logique est imparable)
Merci d’avoir clarifié.
Je vois néanmoins que avec un peu de hardware (y’a un tuto sur esp32io point com pour esp32-rs485 le forum me laisse pas mettre de lien) on peut transformer le RS482 en un « port serie » avec Rx et Tx, ça semble s’appeler un module « RS485 to TTL », j’imagine brancher ça sur un ESP32, dire à ESPhome quel pins font quoi pour en faire un stream-server, et si j’ai un peu de chance pymodbus acceptera de parler à un socket tcp comme il parle à un tty, et paf ça fait des chocapics…

Bref, je vais commander un de ces bidules RS482-serie, préparer quelques câbles, monter dans mes combles vérifier que j’ai bien un 100-CPNR00 et pas un modèle ressemblant dans ma mémoire mais différent en vrai…

Merci de ton aide déjà !

1 « J'aime »

Bonjour @sinseman44,

Je viens d’installer un gainable koolnova chez moi et je voudrais me lancer dans un peu de dev pour faire un peu de domotique. Je vois dans votre présentation que vous avez une doc décrivant les registres modbus du koolnova. Pourriez vous me la transmettre ? Cela m’aiderait beaucoup pour mon dev.

Merci !

Elle ne vous plaise pas mon intégration ? :stuck_out_tongue_winking_eye:
Tu n’es pas le premier à me la demander. :face_with_raised_eyebrow:

Envoi ton email en MP.

Je n’ai pas la raison du pourquoi ils ne diffusent plus le doc et je ne veux pas devenir leur fournisseur officiel.
Si vous avez des demandes particulières pour améliorer l’intégration, mon GitHub est ouvert. :wink:

Hello, mon installateur me propose du Koolnova à la place de Airzone car il a eu qq soucis avec dernièrement.
Si j’ai bien tout compris, il faudrait que je tire un câble réseau blindé depuis mes combles jusqu’à ma baie de brassage pour le domotiser tout ça. Ça ne devrait pas être trop dur à l’installation, ça se tente.
Merci pour le boulot en tout cas.

Salut, c’est exactement ca.
Tu peux prendre de l’Ethernet blindé, tu n’utiliseras que 3 fils sur les 8 disponibles. N’oublies pas un dongle USB/RS485 (j’ai mis la référence Amazon du mien dans le README du repo github) pour le relier à ton système domotique et le tour est joué. :wink:
N’hésites pas si tu as des questions.

Super, je vais faire comme ça & prendre le même dongle, le système va être installé d’ici 2 semaines donc je vais bientôt pouvoir tester.

1 « J'aime »

Bonjour,
Pour ceux qui ne peuvent pas tirer un câble et donc utiliser l’integration de @sinseman44 (avec qui j’ai échangé au début), il est tout à fait possible d’utiliser un module RS485/TCP wifi (il faut tout de même le connecter au koolnova bien entendu mais au plus proche du boitier de commande) et utiliser l’intégration modbus.
A partir de là, vous pourrez mettre des climate sur votre dashboard.
J’ai personnellement surchargé avec versatile thermostat et scheduler component pour la prog.
N’hésitez pas à demander si besoin d’aide.

ben

1 « J'aime »

Salut, merci de partager cette astuce. :clap:
Peux-tu me donner la référence du module (et/ou un lien vers un site d’achat) que tu utilises (et peut-être un petit schéma de câblage) ?
Du coup, j’ai peur de n’avoir pas tout compris. Tu utilises une intégration modbus générique ? Ou celle que j’ai développé ?
J’utilise également versatile thermostat mais pas encore pour mes entités Clim koolnova ? Tu en est satisfait avec les entités climate ?

Salut @sinseman44,

Voici le lien du boitier EW11 que j’ai commander :

J’ai utiliser un câble de téléphone pour connecter ce boitier au boitier koolnova comme tu l’indique sur la doc de ton intégration.
On commence par configurer le boitier (je vous passe la conf reseau wifi)

Ensuite on utilise l’intégration modbus de Home Assistant, c’est une intégration uniquement yaml.
dans configuration.yaml, on ajoute :
modbus: !include modbus.yaml

On crée ensuite le fichier modbus.yaml dont voici un ex :

- name: "Koolnova"
  type: tcp
  host: 192.168.2.35
  port: 502
  delay : 5
  switches:
    - name: "Mode A/C"
      unique_id: "koolnova.mode"
      slave: 49
      address: 81
      scan_interval: 30
      command_on: 1
      command_off: 2
      write_type: holding
      verify:
        address: 81
        delay: 1
  climates:
    - name: "Salon"
      unique_id: "koolnova.salon"
      slave: 49
      address: 3
      scale: 0.5
      precision: 1
      input_type: holding
      data_type: int16
      scan_interval: 10
      target_temp_register: 2
      temperature_unit: C
      max_temp: 35
      min_temp: 15 
      hvac_mode_register:
        address: 0
        values:
          state_off: 2
          state_heat_cool: 3

Voila voila…
N’hésitez pas à poser des questions si besoin.

Pour versatile, je viens de le mettre en place et je commence mes tests.
Venant de jeedom, je cherchais un « climate » pour gérer l’ouverture des fenêtres notamment et c’est plutôt concluant.
Ce qui est vraiment top c’est scheduler component pour la gestion des plages de chauffe

Super, merci pour ton retour. :metal:
Je me dis qu’il y a peut-être moyen de combiner ton module RS485-Modbus/WIFI avec mon intégration Koolnova pour pouvoir le configurer soit en filaire (Modbus RS485) ou soit en sans-fil (Modbus TCP).
Je sais que la pile de communication pymodbus gère aussi bien le RS485 que le TCP. :thinking:
En théorie, la partie applicative devrait rester identique. Seule la couche transport (gérée par pymodbus) devrait être adaptée. :thinking:

Allez … je commande ce petit module. Je vais voir ce que je peux en tirer.

1 « J'aime »

Bon, j’ai tiré ma koolnova vient d’être installé & j’ai tiré mon câble réseau.
Évidemment, je n’arrive pas à la faire fonctionner. :slight_smile:

Déjà, j’ai COM à la place de GND à côté de D- & D+, ça peut jouer ?

Salut,
Non, c’est bien ca ! Le COM est le GND (erreur de ma part sur le README).
Tu as bien activé l’INT 49 sur ta radiocommande (ou commande filaire) maitre de ton système Koolnova ? (cela permet d’activer le Modbus du contrôleur).

Aaaaaah ! J’avais pas compris, je pensais que c’était par défaut sur 49.
J’ai réussi à passer à l’étape des zones, merci bcp !

1 « J'aime »

Bon, j’y suis presque mais c’est très instable.
image

Je perds tout (toutes mes entités sont indisponibles) & je récupère tout régulièrement (plus rien pendant 15mn & tout revient). Je vais tenter de revérifier les câbles mais il me semble que c’est pas si mal.

Edit : Je vais mettre mes messages d’erreur sur le git.

Je viens de voir ton ticket sur Github. Merci de ton retour. :+1:
Pourrais-tu refaire la configuration de ton intégration Koolnova et augmenter la valeur du timeout (par défaut: 5 secondes) (ne dépasse pas 30 secondes) dans la première page de configuration ?
D’après les traces que tu m’as fourni, j’ai peur que le timeout du client Modbus claque de temps en temps parce que les trames prennent trop de temps à arriver.

1 « J'aime »

Mode débug activé & j’ai mis sur 15 secondes, je vais regarder ce que ça donne dans la matinée.
Merci pour le suivi en tout cas !