VMC Aldes EasyHOME PureAIR Premium -> Passerelle MQTT

Alors pour cette trame : Échec il ne se passe rien
Je vais débrancher la aldesbox, fais un clear de l’historique, la rebrancher et je viens éditer le message :wink:

EDIT:

Voilà :

00:00:47 FF 4A 94 3B
00:00:47 FF 00 00 FF FF FF 6B
00:00:47 4B 02 02 00 00 43 6B
00:00:47 FD 87 11 3B
00:00:37 94 1B
00:00:37 00 FF FF FF FF 4A 6B
00:00:37 02 00 00 43 FF 00 6B
00:00:37 FD 87 11 4B 02 5B
00:00:17 E0 1B
00:00:17 E0 FF 2B

Au passage un échantillon des dernières trames SANS action :

Heure Trame Taille
00:06:52 4A 08 2B
00:06:52 C6 01 17 00 90 01 6B
00:06:52 58 21 64 20 5D 1F 6B
00:06:52 00 00 00 3B
00:06:51 00 01 90 01 43 5B
00:06:51 00 1B 4B 03 01 5B
00:06:51 87 1B
00:06:51 4A 94 2B
00:06:51 00 00 FF FF FF FF 6B
00:06:51 02 02 00 00 43 FF 6B
00:06:51 FD 87 11 4B 4B
00:06:42 08 1B
00:06:42 00 90 01 4A 4B
00:06:42 C6 01 17 3B
00:06:41 58 21 64 20 5D 1F 6B
00:06:41 90 01 43 00 00 00 6B
00:06:41 03 01 00 01 4B
00:06:41 00 1B 4B 3B
00:06:41 87 1B
00:06:41 4A 94 2B

EDIT : En ayant renvoyé la trame puis refresh direct derrière :

4A 94 00 00 FF FF FF FF 02 02 00 00 43 FF FD 87 11 4B

j’ai une trame de 15B dans le tas :

00:15:16 FF FF 4A 94 4B
00:15:16 43 FF 00 00 FF FF 6B
00:15:16 11 4B 02 02 00 00 6B
00:15:16 FD 87 2B
00:15:07 01 4A 15 3B
00:15:07 43 00 00 00 58 21 64 20 5D 1F B9 01 17 00 90 15B

Voilà un autre échantillon post-boot :

# Date/Heure Trame Taille Type
13 05/01/2026 17:58:21.018 02 00 00 43 FF 00 6B RX
12 05/01/2026 17:58:21.957 FD 87 11 4B 02 5B RX
11 05/01/2026 17:58:11.979 FF FF FF FF 4A 94 6B RX
10 05/01/2026 17:58:11.927 00 00 43 FF 00 00 6B RX
9 05/01/2026 17:58:10.866 FD 87 11 4B 02 02 6B RX
8 05/01/2026 17:58:01.930 94 1B RX
7 05/01/2026 17:58:01.877 00 FF FF FF FF 4A 6B RX
6 05/01/2026 17:58:00.817 02 00 00 43 FF 00 6B RX
5 05/01/2026 17:58:00.756 FD 87 11 4B 02 5B RX
4 05/01/2026 17:57:50.850 4A 94 2B RX
3 05/01/2026 17:57:50.798 00 00 FF FF FF FF 6B RX
2 05/01/2026 17:57:50.738 02 02 00 00 43 FF 6B RX
1 05/01/2026 17:57:50.678 FD 87 11 4B 4B RX

J’avoue que je nage un peu là, j’ai beau essayer de suivre essayer de retrouver une séquence en alternant entre BOOST et NORMAL, mais rien n’y fait. Impossible de retrouver deux fois la même séquence pour ensuite faire un essai en émulant :sweat_smile:

Hello tous les 2.

J’ai commencé à commander les pièces pour me faire un sniffer. @yanoooou difficile de me procurer des 1N914A en petit conditionnement. Est ce que tu sais si je peux utiliser des 1N914 ou des 1N914B ?

Petite question sur les trame de @Quentin57520 . J’ai l’impression que la taille n’est pas toujours cohérente. Est-ce qu’il n’y aurait pas des octets perdus ou est ce que le programme découpe bien entre 2 trames ?

Si on regarde les trames 1, 5, 9 et 12, elles sont très proches. Pour la 1, le 02 de fin est passé en début de trame 2. Pour la 9, il y a au contraire un 02 de plus qui pourrait appartenir à la trame 10. C’est pour ça que je m’interroge sur le fait que le programme découpe correctement les trames.

Si on regarde la spec de l ebus, on doit avoir des trames d identifications.

Identifiant sur 5 octets.

Dans l’appli android tu trouveras le numéro de série et l’adresse mac qui sont bien échangé avec l aldes connect puisque je les retrouve sur le json échangé avec le cloud.

Par contre le numéro de serie est sur 8 caractères numériques et l’ adresse mac sur 12 caractères hexa. Peut-être une différence de taille entre ebus et ibus ???

En tout cas je suis sur que cela est échangé entre box et vmc. Peut-être bien que tu regardes les tiens voir si ils apparaissent dans les trames.

@Frederic_Duloum Pour la diode prends plutôt une 1N914B.

Sinon, je suis d’accord avec toi il y a un problème de lecture des trames.

Par contre, je pense que le numéro de série et l’adresse mac sont ceux de la passerelle aldes. Peux-tu me donner toutes les informations qui remonte sur le cloud Aldes?

@Frederic_Duloum, @Quentin57520 Sinon avez-vous un oscilloscope à tout hasard pour regarder les trames?

Salut, non malheureusement je ne suis pas équipé d’oscilloscope et je n’ai aucune connaissance qui pourrait m’en prêter un le temps des essais :confused:

Pas d’oscilloscope non plus.

Pour les info qui remontent vers le cloud, tu as les éléments dans le fichier excel qui reprend le Json que j’ai organisé / commenté.

Aldesjson.xlsx

Désolé mais je n’arrive pas à ouvrir ton fichier.

Salut,

Pour l’instant je ne peux plus faire de lecture de trames, le BC547 à lâcher. J’explique, quand mon sniffer était branché en parallèle de la AdlesConnect → IBUS à 4V avec AldesConnect en OFF. J’enlevais le sniffer → IBUS 21V avec AldesConnect en ON. Du coup en testant les différents composant, c’est lui le coupable. Le sniffer ne fait plus chuter le bus à 4V mais j’ai pas de BC547 de rechange :frowning:

En gros c’était ça : BC547 démonté du sniffer avec multimètre en mode diode : B->C 0.07V avec bip et B->E 0.06V avec bip

le transistor met presque directement le + du bus sur le -, ce qui fait tomber la tension à 4 V. Même sans le Pico, le courant “pompe” à travers ce transistor HS.

Commande lancée, en espérant que ça aille vite !

Tu peux toujours sniffer les trames sans le bc547. il sert à envoyer les trames!

Voilà quelques trames :

# Date/Heure Trame Taille Type
150 06/01/2026 18:13:21.003 4A FC 2B RX
149 06/01/2026 18:13:21.942 DA 02 17 00 90 01 6B RX
148 06/01/2026 18:13:21.880 00 57 21 5E 20 5B 1F 7B RX
147 06/01/2026 18:13:21.812 01 90 01 43 00 00 6B RX
146 06/01/2026 18:13:21.751 00 1B 4B 03 01 00 6B RX
145 06/01/2026 18:13:21.691 87 1B RX
144 06/01/2026 18:13:21.480 FF 4A 94 3B RX
143 06/01/2026 18:13:21.419 FF 00 00 FF FF FF 6B RX
142 06/01/2026 18:13:21.358 4B 02 02 00 00 43 6B RX
141 06/01/2026 18:13:21.298 FD 87 11 3B RX
140 06/01/2026 18:13:11.862 00 90 01 4A FC 5B RX
139 06/01/2026 18:13:11.800 5E 20 5B 1F DA 02 17 7B RX
138 06/01/2026 18:13:11.732 43 00 00 00 57 21 6B RX
137 06/01/2026 18:13:11.670 4B 03 01 00 01 90 01 7B RX
136 06/01/2026 18:13:11.602 87 00 1B 3B RX
135 06/01/2026 18:13:11.391 4A 94 2B RX
134 06/01/2026 18:13:11.330 00 00 FF FF FF FF 6B RX
133 06/01/2026 18:13:11.269 02 02 00 00 43 FF 6B RX
132 06/01/2026 18:13:11.208 FD 87 11 4B 4B RX
131 06/01/2026 18:13:01.832 FB 1B RX
130 06/01/2026 18:13:01.772 90 01 4A 3B RX
129 06/01/2026 18:13:01.710 20 5B 1F DA 02 17 00 7B RX
128 06/01/2026 18:13:01.642 00 00 00 58 21 5E 6B RX
127 06/01/2026 18:13:01.581 01 00 01 90 01 43 6B RX
126 06/01/2026 18:13:01.520 87 00 1B 4B 03 5B RX
125 06/01/2026 18:13:01.251 FF FF FF FF 4A 94 6B RX
124 06/01/2026 18:13:01.190 00 00 43 FF 00 00 6B RX
123 06/01/2026 18:13:00.128 FD 87 11 4B 02 02 6B RX
122 06/01/2026 18:12:51.757 FB 1B RX
121 06/01/2026 18:12:51.696 02 17 00 90 01 4A 6B RX
120 06/01/2026 18:12:51.635 21 5E 20 5B 1F DA 6B RX
119 06/01/2026 18:12:51.574 00 00 58 3B RX
118 06/01/2026 18:12:51.513 90 01 43 00 4B RX
117 06/01/2026 18:12:51.452 1B 4B 03 01 00 01 6B RX
116 06/01/2026 18:12:51.392 87 00 2B RX
115 06/01/2026 18:12:51.181 FF 4A 94 3B RX
114 06/01/2026 18:12:50.119 FF 00 00 FF FF FF 6B RX
113 06/01/2026 18:12:50.058 4B 02 02 00 00 43 6B RX
112 06/01/2026 18:12:50.997 FD 87 11 3B RX
111 06/01/2026 18:12:41.718 4A FB 2B RX
110 06/01/2026 18:12:41.658 90 01 2B RX
109 06/01/2026 18:12:41.547 1F DA 02 17 00 5B RX
108 06/01/2026 18:12:41.485 00 00 58 21 5E 20 5B 7B RX
107 06/01/2026 18:12:41.417 00 01 90 01 43 00 6B RX
106 06/01/2026 18:12:41.355 87 00 1B 4B 03 01 6B RX
105 06/01/2026 18:12:40.089 4A 94 2B RX
104 06/01/2026 18:12:40.028 00 00 FF FF FF FF 6B RX
103 06/01/2026 18:12:40.967 02 02 00 00 43 FF 6B RX
102 06/01/2026 18:12:40.907 FD 87 11 4B 4B RX
101 06/01/2026 18:12:31.579 90 01 4A FB 4B RX
100 06/01/2026 18:12:31.509 DA 02 17 00 4B RX
99 06/01/2026 18:12:31.393 5E 20 5B 1F 4B RX
98 06/01/2026 18:12:31.332 43 00 00 00 58 21 6B RX
97 06/01/2026 18:12:31.271 03 01 00 01 90 01 6B RX
96 06/01/2026 18:12:31.210 87 00 1B 4B 4B RX
95 06/01/2026 18:12:30.998 94 1B RX
94 06/01/2026 18:12:30.937 00 00 FF FF FF FF 4A 7B RX
93 06/01/2026 18:12:30.869 02 02 00 00 43 FF 6B RX
92 06/01/2026 18:12:30.809 FD 87 11 4B 4B RX
91 06/01/2026 18:12:20.879 FF 4A 94 3B RX
90 06/01/2026 18:12:20.818 FF 00 00 FF FF FF 6B RX
89 06/01/2026 18:12:20.757 4B 02 02 00 00 43 6B RX
88 06/01/2026 18:12:20.697 FD 87 11 3B RX
87 06/01/2026 18:12:11.373 90 01 4A FC 4B RX
86 06/01/2026 18:12:11.312 5B 1F DA 02 17 00 6B RX
85 06/01/2026 18:12:11.251 5E 20 2B RX
84 06/01/2026 18:12:11.187 21 1B RX
83 06/01/2026 18:12:10.125 01 43 00 00 00 57 6B RX
82 06/01/2026 18:12:10.063 4B 03 01 00 01 90 6B RX
81 06/01/2026 18:12:10.999 87 00 1B 3B RX
80 06/01/2026 18:12:10.780 FF 4A 94 3B RX
79 06/01/2026 18:12:10.719 FF 00 00 FF FF FF 6B RX
78 06/01/2026 18:12:10.658 4B 02 02 00 00 43 6B RX
77 06/01/2026 18:12:10.597 FD 87 11 3B RX
76 06/01/2026 18:12:01.264 90 01 4A FC 4B RX
75 06/01/2026 18:12:01.203 5B 1F DA 02 17 00 6B RX
74 06/01/2026 18:12:01.142 00 00 57 21 5E 20 6B RX
73 06/01/2026 18:12:00.082 43 00 2B RX
72 06/01/2026 18:12:00.021 01 1B RX
71 06/01/2026 18:12:00.960 4B 03 01 00 01 90 6B RX
70 06/01/2026 18:12:00.899 87 00 1B 3B RX
69 06/01/2026 18:12:00.688 4A 94 2B RX
68 06/01/2026 18:12:00.627 00 00 FF FF FF FF 6B RX
67 06/01/2026 18:12:00.566 02 02 00 00 43 FF 6B RX
66 06/01/2026 18:12:00.506 FD 87 11 4B 4B RX
65 06/01/2026 18:11:51.225 01 4A FC 3B RX
64 06/01/2026 18:11:51.164 1F DA 02 17 00 90 6B RX
63 06/01/2026 18:11:50.104 57 21 5E 20 5B 5B RX
62 06/01/2026 18:11:50.044 00 00 2B RX
61 06/01/2026 18:11:50.983 00 01 90 01 43 00 6B RX
60 06/01/2026 18:11:50.922 4B 03 01 3B RX
59 06/01/2026 18:11:50.811 87 00 1B 3B RX
58 06/01/2026 18:11:50.599 94 1B RX
57 06/01/2026 18:11:50.538 00 FF FF FF FF 4A 6B RX
56 06/01/2026 18:11:50.477 02 00 00 43 FF 00 6B RX
55 06/01/2026 18:11:50.416 FD 87 11 4B 02 5B RX
54 06/01/2026 18:11:40.095 4A FC 2B RX
53 06/01/2026 18:11:40.033 1F DA 02 17 00 90 01 7B RX
52 06/01/2026 18:11:40.965 00 57 21 5E 20 5B 6B RX
51 06/01/2026 18:11:40.903 00 01 90 01 43 00 00 7B RX

Un dernier échantillon avant d’arrêter :

# Date/Heure Trame Taille Type
22 06/01/2026 22:29:14.464 94 1B RX
21 06/01/2026 22:29:14.444 FF 4A 2B RX
20 06/01/2026 22:29:14.425 FF FF 2B RX
19 06/01/2026 22:29:14.405 00 FF 2B RX
18 06/01/2026 22:29:14.386 00 1B RX
17 06/01/2026 22:29:14.367 43 FF 2B RX
16 06/01/2026 22:29:14.347 02 00 00 3B RX
15 06/01/2026 22:29:14.326 02 1B RX
14 06/01/2026 22:29:14.307 11 4B 2B RX
13 06/01/2026 22:29:14.287 FD 87 2B RX
12 06/01/2026 22:29:04.354 4A 94 2B RX
11 06/01/2026 22:29:04.335 FF FF 2B RX
10 06/01/2026 22:29:04.316 FF FF 2B RX
9 06/01/2026 22:29:04.296 00 00 2B RX
8 06/01/2026 22:29:04.276 FF 1B RX
7 06/01/2026 22:29:04.257 00 43 2B RX
6 06/01/2026 22:29:04.237 02 00 2B RX
5 06/01/2026 22:29:04.218 4B 02 2B RX
4 06/01/2026 22:29:04.198 87 11 2B RX
3 06/01/2026 22:29:04.178 FD 1B RX
2 06/01/2026 22:28:54.044 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 58 23 6F 2C 60 24 63 03 17 11 90 01 4A 37 46B RX
1 06/01/2026 22:28:48.152 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 18B RX

On voit que la première trame est complète et on la retrouve fragmenter plus tard. Je n’arrive pas à modifier le sniffer pour qu’il attende la fin de la trame afin d’éviter les morceaux. En tout cas, je pense que la je capture tout. En revanche celle de 46B je ne sais pas d’où elle sort lol

Ça avance quand même:

Suivant tes données, nous avons deux trames:

data = [0xFD, 0x87, 0x11, 0x4B, 0x02, 0x02, 0x00, 0x00, 0x43, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x4A, 0x94]

data2 = [0x87, 0x00, 0x1B, 0x4B, 0x03, 0x01, 0x00, 0x01, 0x90, 0x01, 0x43, 0x00, 0x00, 0x00, 0x58, 0x23, 0x6F, 0x2C, 0x60, 0x24, 0x63, 0x03, 0x17, 0x11, 0x90, 0x01, 0x4A, 0x37]

J’ai testé avec le cheksum du “Tflow” et ça fonctionne sur ces deux trames:

checksum = -sum(data[:-1]) & 0xFF

Donc le dernier byte est le checksum.

Je pense que le premier byte est la destination et le deuxième la source.

Voici la structure des trames envoyés à mon chauffe eau:

[0xFD, 0xA0, 0x09, 0xA0, temp_byte, cmd_byte, param1, param2, 0x9F, checksum]

On remarque que le premier byte est 0xFD comme dans la trame data, donc cette trame pourrait être une commande envoyée par la passerelle Aldes. Et la trame data2 serait les valeurs renvoyées par la vmc.

@Quentin57520 Il faudrait essayer de changer de mode et sniffer plusieurs trames.

Hello.

@yanoooou screenshots du fichier excel :

@Quentin57520 les tokens sont a nouveau générés par le cloud et donc l’add-on HA fonctionne à nouveau. Je t’invite à installer mon fork pour avoir tous les sensors de la VMC.

En regardant le travail fait sur une autre VMC aldes, ils ont découvert le codage des modes suivants :

        {% if val == "0" %} Vacances {% endif %}
        {% if val == "1" %} Normal {% endif %}
        {% if val == "2" %} Boost {% endif %}
        {% if val == "3" %} Invités {% endif %}

J’ai recupéré dans le fil de discussion toutes les trames qui semblent des réponses de la VMC aux requêtes envoyées.

Checksum
Octets 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 58 23 6F 2C 60 24 63 03 17 11 90 01 4A 37
87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 21 5E 20 5B 1F DA 02 17 00 90 01 4A FC
87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 58 21 5E 20 5B 1F DA 02 17 00 90 01 4A FB
87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 58 21 64 20 5D 1F C6 01 17 00 90 01 4A 08
87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 58 21 63 20 5D 20 C7 01 17 00 90 01 4A 07

On trouve des changements sur les octets 15 à 24. J’imagine que se sont les valeurs des capteurs qui bougent à la marge. Conersion ASCII KO. A voir pour une conversion en décimal format little endian sur 2 octets je pense. Je vais creuser voir si on trouve des conversions cohérrentes pour la température ou l’humidité.

Pour revenir sur le mode. Si les codes sont les mêmes sur les différentes VMC aldes, alors il faudrait essayer de changer de valeur et voir quel octet change en conséquence.

1 « J'aime »

@yanoooou tu peux me dire quel modèle de pico 2 w tu as acheté pour le sniffer ?

j’ai toujours l’erreur :

Aldes 2 MQTT
[FATAL tini (7)] exec docker-entrypoint.sh failed: Exec format error

Et je ne suis pas à l’aise avec le docker pour faire ma propre image :confused:

Du neuf, j’ai réussi à stabiliser qqchose … voilà les données :

# Date/Heure Trame Taille Type
18 08/01/2026 10:03:44.952 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 18B RX
17 08/01/2026 10:03:34.852 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 22 5E 22 5C 1F 8F 02 17 01 90 01 4A 42 46B RX
16 08/01/2026 10:03:24.748 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 22 5E 22 5C 1F 8F 02 17 01 90 01 4A 42 46B RX
15 08/01/2026 10:03:14.652 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 22 5E 22 5C 1F 8F 02 17 01 90 01 4A 42 46B RX
14 08/01/2026 10:03:04.553 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 18B RX

EDIT :

# Date/Heure Trame Taille Type
31 08/01/2026 10:30:10.511 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 21 5D 22 5B 1F 5D 02 17 00 90 01 4A 78 46B RX
30 08/01/2026 10:30:00.414 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 21 5D 22 5B 1F 5D 02 17 00 90 01 4A 78 46B RX
29 08/01/2026 10:29:50.315 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 21 5D 22 5B 1F 5D 02 17 00 90 01 4A 78 46B RX
28 08/01/2026 10:29:40.212 FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 21 5D 22 5B 1F 5D 02 17 00 90 01 4A 78 46B RX

EDIT 2 : j’ai l’impression que la trames de 46 bytes sont deux trames collées :

FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 21 5D 22 5B 1F 5D 02 17 00 90 01 4A 78

Trame 1 : FD 87 11 4B 02 02 00 00 43 FF 00 00 FF FF FF FF 4A 94 (18B)
Trame 2 : 87 00 1B 4B 03 01 00 01 90 01 43 00 00 00 57 21 5D 22 5B 1F 5D 02 17 00 90 01 4A 78 (28B)

Mais il me choppe pas le FD donc il colle les deux trames pour n’en faire qu’une seule, vous en pensez quoi ?

Oui c’est sûr, car si tu prends le dernier octet des 2 trames coupées il correspond bien au checksum.

Donc on a bien 2 trames de collées en une seule ici.