Salut,
Ça me fait penser au message de @AirV qui se demande si c’est pas du protocole ebus, d’après Wikipedia c’est aussi en 2400 bauds… C’est plausible, ça leur éviterait de tout réinventer, surtout que c’est un protocole conçu pour les systèmes de chauffage. Ça simplifierait grandement l’intégration dans Home Assistant car ça existe déjà et des cartes open source existent, si quelqu’un en a une on sait jamais
J’avais pas vu le doigt de gant, c’est clair que c’est le mieux, ça permet d’être autonome.
Je propose d’étudier la commande de la soufflerie, du groupe extérieur et des grilles de ventilation et on peut remplacer la carte complète
Et ça retombe sur mes mesures de départ
https://forum.hacf.fr/t/reverse-engineering-aldes-b200-fan-t-flow-hygro/15188/13
Je ne suis jamais tombé sur ces cartes, c’est cool merci du partage !
Voici quelques trames que j’ai obtenu avec les valeurs relevées sur le CE en mode EXPERT:
Je suis encours pour développer un petit bout de code pour faire l’acquisition de ces trames via un ESP32 ou ESP8266.
Salut @yanoooou le sauveur !
Dans le but de tester ton code, peux-tu faire une photo rapide et détailler les éléments que tu utilises pour relever les trames ?
En fait idéalement si tu peux faire un croquis de ton montage avec l’esp32, ce serait cool, même à main levée
As-tu un dépôt Github ?
Hello,
J’ai donc réalisé un petit montage pour lire les trames IBUS et les afficher sur une page WEB (dans un premier temps).
Pour le montage, j’ai juste fait un pont diviseur avec une résistance de 10k et une autre de 1.2k qui attaque la borne « GPIO9 » d’un NODEMCU 32S.
j’ai programmé rapidement un petit code micro-python pour lire l’UART 1 et l’afficher dans une page WEB.
Voici une petite photo du montage:
Un exemple de la page WEB:
Pas encore, mais j’y pense.
Salut @yanoooou !
Peux-tu poster ton code ici afin de te filer un coup de main pour la partie décodage ?
Merci d’avance en tous cas, je pensais pas qu’un montage aussi simple pouvais le faire, j’ai le matos donc si je peux t’aider pour l’identification des trames, c’est cool.
Voici mon code de test :
from machine import Pin,UART
import network,socket
import time
serial_input = "0x33 " * 10
uart1 = UART(1, baudrate=2400,bits=8, parity=0, stop=1)
ssid = '' # A COMPLETER
password = '' # A COMPLETER
def web_page():
html = """
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>IBUS T-FLOW SERVEUR</title>
<style>
p { font-size: 36px; }
</style>
</head>
<body>
<h1>Valeurs IBUS : </h1>
<p><span>""" + str('[{}]'.format(', '.join(hex(x) for x in serial_input))) + """</span></p>
</body>
</html>
"""
return html
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print(f"Try connect to SSID : {ssid}")
wlan.connect(ssid, password)
while not wlan.isconnected():
print('.', end = " ")
time.sleep_ms(500)
print("\nWi-Fi Config: ", wlan.ifconfig())
socketServeur = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socketServeur.bind(('', 80))
socketServeur.listen(5)
while True:
try:
print("Attente d'une connexion client")
connexionClient, adresse = socketServeur.accept()
connexionClient.settimeout(4.0)
requete = connexionClient.recv(1024) #requête du client
requete = str(requete)
connexionClient.settimeout(None)
input = uart1.read()
if input != None:
serial_input = input
print(serial_input)
connexionClient.send('HTTP/1.1 200 OK\n')
connexionClient.send('Content-Type: text/html\n')
connexionClient.send("Connection: close\n\n")
reponse = web_page()
connexionClient.sendall(reponse)
connexionClient.close()
print("Connexion avec le client fermee")
except:
connexionClient.close()
print("Connexion avec le client fermee, le programme a declenché une erreur")
Salut,
J’ai une question bête : à quoi correspond ton tableau de droite ? Je comprends que celui de gauche c’est ce que tu décodes sur le bus mais à droite je vois pas.
Merci pour ton partage
Salut,
Je tableau de droite correspond aux valeurs que j’ai relevé sur l’écran du chauffe-eau en mode expert.
Pour ceux qui ne le savent pas, le mode expert est accessible en appuyant simultanément sur les touchent « Mode » et « + » puis en validant le code « 0321 ».
Voilà l’accès :
Le code :
Le menu info expert :
OK merci, c’est spécifique au chauffe-eau alors, sur la pompe à chaleur c’est un écran différent
Bonjour,
je vous suis en silence mais j’ai trouvé ca sur le net.
Ca serais pas plus simple?
Bon courage a tous
L’IBUS d’ALDES n’est pas tout à fait identique à l’EBUS… par exemple sur l’IBUS il y a un bit de parité alors qu’il n’y en a pas sur EBUS.
Donc les interfaces et codes EBUS ne sont pas compatibles avec IBUS.
Sinon quelqu’un aurait il une interface ALDES CONNECT à me prêter pour avancer sur le décodage ?
Salut @yanoooou,
Malheureusement je n’en possède pas sinon ce serait sans soucis ! Peut être que @guix77 ou @mgre pourrons te dépanner à ce sujet ?
Salut,
Peux-tu stp expliquer le lien que tu trouves entre les valeurs T_haut et T_bas de tes relevés en mode expert avec les valeurs Hexa des trames ?
Car je comprend pas comment tu passes de 35 à 0x6E ? 6E faisant 110 en décimal je suis perdu.
Salut, pour pouvoir décoder un flottant dans une trame, il faut connaître ses règles d.'encodage en binaire, c’est à dire sa résolution, sa plage et le nombre de bits.
Exemple, supposons qu’on a une trame qui a 8 bits pour le coder, on a donc 256 valeurs possibles, si la valeur min c’est -9 et résolution 0,4.
6E donne 110, 110x0,4=44, on ajoute la valeur min -9 ça donne 35.
69 donne 105, 105x0,4-9=33
La valeur max sera -9 + 255x0,4=93.
Mais ce n’est qu’une supposition en regardant les valeurs
Bonjour à tous,
Voici quelques infos sur les recherches de mon côté.
Après avoir été trop optimiste et trop rapide dans ma première analyse du protocole ibus pensant que c’était du modbus, j’en arrive à la même conclusion que @yanoooou, c’est très proche du ebus mais ce n’est pas vraiment du ebus…
En effet, après avoir réalisé une interface prototype ibus → usb je n’ai jamais vraiment réussi à communiquer avec ma vmc DeeFly en modbus. J’ai alors exploré les protocoles Lin puis ebus basé sur ebusd (merci @AirV ) mais toujours sans succès.
Le travail de @yanoooou redonne un peu d’espoir de réussir et m’a rappelé ma première approche de décodage de la transmission radio entre la télécommande Aldes 11023226 et le module optionnel TI CC110L de la VMC.
A l’époque j’avais identifié que les températures était codées comme expliqué par @djtef avec une résolution de 0.5deg et un offset de -33.
Exemple pour une température de 22°C on obtient 0x6E. (110*0.5-33=22)
Pour les vitesses de la VMC c’était simplement de 0 à 3…
Si cela peut aider…
REQUEST | speed up | |||
---|---|---|---|---|
TEMP in | 18 | |||
TEMP out | 18 | |||
temp remote | 24 | |||
speed_state [0…3] | 0 (holidays) | |||
speed_request | 1 (daily) | |||
temp_type | auto | |||
Filter_state [0…3] | 1 | |||
time | ? | |||
energy [kWh] | ? | |||
1st trame | ||||
RX FIFO (remote TX) | [0x] | [0b] | [0d] | DECODAGE |
0x17 | 00010111 | 23 | ||
0xC4 | 11000100 | 196 | ||
0xA0 | 10100000 | 160 | ||
0x1C | 00011100 | 28 | ||
0x87 | 10000111 | 135 | ||
0x61 | 01100001 | 97 | ||
0xCA | 11001010 | 202 | ||
0x30 | 00110000 | 48 | ||
0x00 | 00000000 | 0 | ||
0x00 | 00000000 | 0 | ||
speed request | 0x01 | 00000001 | 1 | daily |
0x00 | 00000000 | 0 | ||
0x00 | 00000000 | 0 | ||
0x00 | 00000000 | 0 | ||
0x00 | 00000000 | 0 | ||
temp remote | 0x72 | 01110010 | 114 | 24 |
0x40 | 01000000 | 64 | ||
0x09 | 00001001 | 9 | ||
0x0D | 00001101 | 13 | ||
0x03 | 00000011 | 3 | ||
0xC5 | 11000101 | 197 | ||
0x66 | 01100110 | 102 | ||
0x9B | 10011011 | 155 | ||
0x9B | 10011011 | 155 | ||
0x1C | 00011100 | 28 | ||
0x85 | 10000101 | 133 | ||
1st trame | ||||
TX FIFO (MVHR TX) | [0x] | [0b] | [0d] | DECODAGE |
0x1C | 00011100 | 28 | ||
0xC4 | 11000100 | 196 | ||
0xA0 | 10100000 | 160 | ||
0x1C | 00011100 | 28 | ||
0x87 | 10000111 | 135 | ||
0x29 | 00101001 | 41 | ||
speed state | 0x00 | 00000000 | 0 | holidays |
0xA0 | 10100000 | 160 | ||
0x00 | 00000000 | 0 | ||
0x20 | 00100000 | 32 | ||
0x00 | 00000000 | 0 | ||
temp bypass? | 0x6E | 01101110 | 110 | 22 |
0x40 | 01000000 | 64 | ||
0x06 | 00000110 | 6 | ||
0x13 | 00010011 | 19 | ||
0x0C | 00001100 | 12 | ||
0x30 | 00110000 | 48 | ||
temp in/out ? | 0x66 | 01100110 | 102 | 18 |
temp in/out ? | 0x66 | 01100110 | 102 | 18 |
0x29 | 00101001 | 41 | ||
0x10 | 00010000 | 16 | ||
0x00 | 00000000 | 0 | ||
0x00 | 00000000 | 0 | ||
0xC4 | 11000100 | 196 | ||
0x09 | 00001001 | 9 | ||
0x82 | 10000010 | 130 | ||
0x00 | 00000000 | 0 | ||
0xC2 | 11000010 | 194 | ||
CRC ? | 0xD9 | 11011001 | 217 |
@yanoooou combien de temps penses-tu qu’il te faudrait? J’ai une Aldes Connect mais elle me sert tous les jours…
Et sinon, si on dump le firmware du STM32 de l’Aldes Connect ne pensez-vous pas qu’on peut y arriver plus vite? Je pense arriver à extraire le firmware mais je n’ai pas les compétences pour décompiler…
Hello!
Merci a tous pour les infos !
Je pense avoir décodé une partie de la trame.
Voici la liste des valeurs avec les calculs :
bytes N°5 : « Soft » = dec(x)
bytes N°7 : « Etat » = ???
bytes N°29 : « Cond_C » = dec(x)/2
bytes N°30 : « Cond_R » = dec(x)/2
bytes N°37 : « T_haut » = dec(x)*0.5-20
bytes N°38 : « T_bas » = dec(x)*0.5-20
bytes N°33 : « T_hp » = dec(x)*0.5-20
bytes N°35 : « T_evap » = dec(x)*0.5-20
bytes N°34 : « T_vmc » = dec(x)*0.5-20
Je vais prochainement mettre à jour le code de mon ESP32 pour afficher directement ces valeurs sur la page web embarquée.
@PaC , pour l’ ALDES connect je pense qu’il faudrait bien 1 semaine, sans garantie de résultat
Sinon tu pourrais « sniffer » les trames IBUS lorsque tu envoie des commandes via l’ ALDES connect et me transmettre les trames dans un premier temps.
Sinon décompiler le firmware du STM32 me semble compliqué…
Dés que j’aurai un moment, je vais essayer de faire un montage pour envoyer des trames sur l’IBUS.
Ça prend forme, j’aime ça !
Effectivement il reste la partie TX à faire…
Pour information il y a aussi @guix77 qui a une interface AldesConnzct mais de mémoire il l’utilise. Peut-être qu’il pourrait aider au dev, de mémoire il n’était pas mauvais vu qu’il a déjà fait une intégration AldesConnect pour HA.
Voir ici :