Tutoriel/retour expérience intégration bus P1P2 Pompe à chaleur Daikin

Les différentes passerelles, pour ce protocole, existant sur le marchés sont vendues à un prix exorbitant (facilement plus de 100€). Je cherchais donc une autre solution.

La méthode indiquée utilise un arduino uno et le projet suivant : GitHub - Arnold-n/P1P2Serial: Monitor and control Daikin/Rotex (hybrid/Altherma) heat pumps via the 2-wire P1/P2 thermostat interface with an ATmega328P, ESP8266, and electronics. The P1P2Serial library and P1P2Monitor program perform low-level bus operation, the P1P2-bridge-esp8266 program interprets data from/to MQTT supporting Home Assistant MQTT discovery. P1P2Serial may also be used for other Japanese Home Bus System based standards: DIII-NET (F1/F2) bus, Mitsubishi M-Net bus, Toshiba TCC-Link, Hitachi H-link, Panasonic/Sanyo SIII-Net, Haier, York, and others.
Le développeur m’a vendu la carte servant d’interface à un prix de 37€, frais de ports inclus, ce qui me revient à environ 50€ au total. Il en assure la vente.
La carte se présente comme ceci :


Les deux fils de bus se connectent sur les broches situées en haut à gauche, la carte s’enfiche sur les broches 0 / +5V et entrées 8 et 9 de l’arduino. Il y a aussi deux broches sur lesquels on peut mettre un cavalier pour rajouter une résistance de terminaison de ligne, en cas de problème pour lire les données.
Pour la connexion du bus, c’est simple, il faut se connecter en parallèle de l’IHM Daikin ; Sur le schéma de raccordement de ma PAC, cela équivaut à l’interface utilisateur P1P2 en option :
Screenshot_20200213_212323
La polarité n’a pas d’importance.

Il faut ensuite modifier le sketch arduino P1P2Monitor.ino du répertoire P1P2Serial/example/P1P2Monitor/ :

  • commenter (//) la ligne #define MONITORSERIAL décommenter la ligne //#define JSON du fichier P1P2Config.h ;
  • supprimer le caractère J et l’espace de la ligne 282 (Serial.print(F(« J {" »)); ) du fichier P1P2Monitor.ino ;
  • Pour pouvoir compiler l’ensemble, il faut aussi rajouter la librairie P1P2Serial.h à l’IDE Arduino.
    Téléverser le sketch sur l’arduino.

Pour intégrer à Jeedom les valeur lues sur le bus, le plugin JMQTT et la commande mosquitto_pub sont utilisés :
cat /dev/ttyACM0 | /usr/bin/mosquitto_pub -h localhost -t P1P2 --stdin-line
Je fais tourner cette commande en démon, via systemd.

L’arduino est connecté sur le bus USB de mon PC Jeedom, mais il semble possible d’utiliser une liaison wifi.

Le résultat est assez intéressant, je lis les valeurs suivantes :

  • Température de départ ;
  • Température de retour ;
  • Température de l’ECS ;
  • Débit du circulateur ;
  • Etat compresseur ;
  • Etat circulateur ;
  • Température extérieure …

Par contre, je n’ai pas encore compris comment envoyer des commandes vers la pompe à chaleur, et notamment si la commande mosquitto_pub pouvait être utilisée.

4 « J'aime »

Bonjour

Merci pour ce retour d’expérience très intéressant.
Est-ce que tu as pu avancer sur le fait d’envoyer des commandes? Je suis intéressé par le même module mais je voudrais au moins pouvoir allumer/éteindre mon chauffage/clim.

Merci

Bonjour,

Désolé pour le délai de réponse, j’étais en vacances.
Je n’ai pas eu le temps ni les compétences pour trouver le moyen d’envoyer des commandes vers la pompe à chaleur. Je pense qu’il est possible de faire ce que tu souhaite, je ne sais juste pas comment (mosquitto_sub est peut-être à creuser ?).

D’après ce que je lis ici, il est visiblement possible d’utiliser MQTT pour écrire sur le bus.

Je peux peut-être tenter ma chance en écrivant un courriel au développeur, sans certitude d’obtenir une réponse.

Merci pour ta réponse. Si tu obtiens plus d’informations, je suis interessé!

Je viens de revoir les exemples du projet. Si un réseau wifi fonctionnant en permanence est disponible, il semble possible d’utiliser directement l’exemple avec l’ esp8266. Auquel cas, il est possible d’écrire sur le bus Dailin avec des messages MQTT du type P1P2/W/…
Dans mon cas, je me complique la vie à tirer des câbles entre ma PAC et mon PC jeedom et à utiliser l’USB…

Bonjour tu as l’air d’être calé en branchement.
J’ai une PAC daikin atherma 3 avec un boîtier thermostat madoka. Seulement 2 fils sont à branchés P1P2.
Je pensais que c’était dans le bornier a2p interface utilisateur mais rien ne s’affiche sur le madoka.
Pense tu qu’il y aurait une autre manipulation à faire ?
Merci
Je peux éventuellement mettre des photos du matériel.

Bonjour,

C’est normal de n’avoir que deux fils sur P1/P2, ça doit correspondre à l’interface utilisateur (A2P interface) - le câble fait la liaison entre cet élément et le carte électronique principale.
Comme c’est du bus non polarisé, on peut y brancher n’importe quoi capable de lire ou d’écrire dessus, en parallèle. D’ailleurs, brancher l’arduino afin de lire les messages du madoka serait probablement intéressant.

Les photos m’intéressent afin de confirmer tout ça.

Merci pour ton retour

J’ai compris pourquoi rien ne s’affichait sur la madoka car celle-ci a cramé.
L’installateur ne l’a pas branché au bonne endroit et a dû lui envoyé un coup de 220v .

Du coup il m’en ramène une autre dans la semaine. Par contre , il m’a proposé de la remplacer par un netatmo. En faisant quelques recherches j’ai cru comprendre que le netatmo était en contact sec (on/off), je perdrais donc l’intérêt du madoka qui lui étant connecté au bus et doit logiquement traiter plus de données ( éventuellement pour une meilleure modulation de la PAC )

Je confirme que si l’installateur a branché le thermostat sur les bornes X2M, c’est bien du 230V~ qui a été injecté dessus.

Il y a effectivement beaucoup moins d’intérêt pour le thermostat netatmo qui fonctionne en TOR (bornes X2M, donc).
Ce qui est bien mon problème, vu que matériellement, je ne peux commander ma PAC qu’avec cette entrée (d’où l’intérêt pour le hack du bus via Arduino qui pourrait remplacer un thermostat)