interface_chauffage_-_local_process_bus_lpb
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| interface_chauffage_-_local_process_bus_lpb [2017/12/30 19:48] – [Protocole] 88.164.131.165 | interface_chauffage_-_local_process_bus_lpb [2024/11/30 21:14] (Version actuelle) – [1er lecture] 78.120.131.233 | ||
|---|---|---|---|
| Ligne 59: | Ligne 59: | ||
| 78 13 FF 00 FC 02 00 14 02 15 00 02 0A 00 01 1F 00 00 F0 F0 | 78 13 FF 00 FC 02 00 14 02 15 00 02 0A 00 01 1F 00 00 F0 F0 | ||
| 78 11 FF 00 CC 02 00 14 02 05 00 02 1D 00 0E C0 F3 6D | 78 11 FF 00 CC 02 00 14 02 05 00 02 1D 00 0E C0 F3 6D | ||
| - | 78 10 FF 00 CC 02 00 14 02 15 00 01 FB 00 00 F4 8A 78 14 00 10 CC 02 00 14 A3 3D 2D 02 0D 06 01 00 00 00 01 EF B4 | + | 78 10 FF 00 CC 02 00 14 02 15 00 01 FB 00 00 F4 8A |
| + | 78 14 00 10 CC 02 00 14 A3 3D 2D 02 0D 06 01 00 00 00 01 EF B4 | ||
| </ | </ | ||
| Ligne 65: | Ligne 66: | ||
| Exemple : 78 11 FF 00 CC 02 00 14 02 05 00 02 1D 00 0F 06 F2 B4 | Exemple : 78 11 FF 00 CC 02 00 14 02 05 00 02 1D 00 0F 06 F2 B4 | ||
| - | 78 : Magic Byte - Indique le debut de la trame (Toujours 78) | + | * 78 : Magic Byte - Indique le debut de la trame (Toujours 78) |
| - | 11 : Taille - Indique la taille du télégramme sans compter le Magic Byte 0x11 = 0d17 et on a bien 7 octets dans la trame. | + | |
| - | FF : Destination - Adresse de destination du telegramme (0xFF Broadcast à touts les périphériques sur le bus) | + | |
| - | 00 : Expéditeur - Adresse de l' | + | |
| - | CC 02 00 14 02 05 00 02 1D 00 : Nom du telegramme | + | |
| - | 0F 06 : Valeur du telegramme | + | * 02 : inconnu |
| + | * 00 : inconnu | ||
| + | * 14 : inconnu | ||
| + | * 02 : type ? 2 : info / 3 : Set / 4: ACK / 5: NACK / 6 : Request / 7 : reply to request / 8 : Error - Le type est augmenté de 0x20 entre chaque échange | ||
| + | * 05 : (cmd & 0x00ff0000) >> 16; | ||
| + | * 00 : (cmd & 0xff000000) >> 24; | ||
| + | * 02 : (cmd & 0x0000ff00) >> 8; | ||
| + | * 1D : (cmd & 0x000000ff); | ||
| + | * 00 0F 06 : Valeur | ||
| + | * F2 B4 : CRC | ||
| + | |||
| + | Les octets 1 et 2 sont inversés entre la demande et la réponse : | ||
| + | |||
| + | Exemple : | ||
| + | * Demande : 053D0064 type 86 | ||
| + | * Réponse : 3D050064 type 87 | ||
| + | |||
| + | Échange suivant +0x20 | ||
| + | |||
| + | * Demande : 053D0064 type A6 | ||
| + | * Réponse : 3D050064 type A7 | ||
| + | |||
| + | |||
| + | |||
| + | ==== Calcul | ||
| + | |||
| + | Le CRC se calcule avec l' | ||
| + | |||
| + | <code csharp> | ||
| + | public static string CRC_LPB(byte[] bytes) | ||
| + | { | ||
| + | int crc = 0; | ||
| + | int len = bytes.Length-1; | ||
| + | crc = (257 - len) * 256 + len - 2; | ||
| + | |||
| + | if (bytes != null && bytes.Length > 0) | ||
| + | { | ||
| + | for(int i=0; | ||
| + | { | ||
| + | crc += bytes[i]; | ||
| + | } | ||
| + | } | ||
| + | return String.Format(" | ||
| + | } | ||
| + | </ | ||
| | | ||
| + | Si bytes[] = {0x78, | ||
| + | | ||
| + | Alors crc = F2B4 | ||
| + | ==== Liste des télégramme et décodage ==== | ||
| + | |||
| + | La majorité des informations ci dessous sont issu de tests (reverse engineering) et ne sont pas donc pas fiables à 100% | ||
| + | |||
| + | |0005021F|Température extérieure| | ||
| + | |0005021D|Température chaudière| | ||
| + | |2D3D021C|Température ambiante| | ||
| + | |00310210|Température chaudière 2 ?| | ||
| + | |0005021E|Température retour chaudière| | ||
| + | |00310222|Température ECS| | ||
| + | |3D250516|Température ECS fournie par la chaudière lors d'une demande du thermostat| | ||
| + | |001501FB|Bruleur OFF| | ||
| + | |001501F8|Bruleur ON| | ||
| + | |2D3D020D|Le thermostat indique dans quel mode il se trouve(1)| | ||
| + | |002D020F|ACK Mode| | ||
| + | |050504B3|Mode été| | ||
| + | |050504B2|Mode fin été ?| | ||
| + | |0005006C|DateTime| | ||
| + | |||
| + | (1) : | ||
| + | |||
| + | === Décodage températures === | ||
| + | Toutes les températures se décodent de la même manière. | ||
| + | |||
| + | Exemple : 78 11 FF 00 FC 02 00 14 02 31 00 02 22 00 **0A 7B** F3 85 | ||
| + | |||
| + | On récupère la valeur (Ici il s'agit d'une information de température de l'ECS) | ||
| + | On convertir cette valeur en entier : 0x0A7B = d2683 | ||
| + | On divise par 64 par avoir la valeur en °C : 2683 / 64 = 41°C | ||
| + | |||
| + | === Décodage DateTime === | ||
| + | |||
| + | Exemple 78 17 FF 00 FC 02 00 14 02 05 00 00 6C 00 **75 0C 1F 07 10 0E 1A 00** EE 07 | ||
| + | |||
| + | * 75 : 1900 + 0x75 (117) = 2017 (année) | ||
| + | * 0C : 12 (mois) | ||
| + | * 1F : 31 (jour) | ||
| + | * 07 : 7eme jour de la semaine donc dimanche | ||
| + | * 10 : 16 (heure) | ||
| + | * 0E : 14 (min) | ||
| + | * 1A : 26 (secondes ?) | ||
| + | * 00 : ?? | ||
interface_chauffage_-_local_process_bus_lpb.1514659724.txt.gz · Dernière modification : 2017/12/30 19:48 de 88.164.131.165
