Étape 3: Exploiter les données
OK, maintenant ce que nous avons est une collection de fichiers de données contenant des bits (en fait des caractères représentant les chiffres binaires, qui est techniquement différent).
L’utilisation d’un programme de comparaison de fichiers aidera à identifier quelle partie change pour chaque paramètre.
Ce que nous voyons est non seulement une partie des changements, mais la partie finale du message aussi. Généralement lorsque la communication est impliquée l’exactitude des données n’est jamais assurée pour une somme de contrôle est habituellement utilisée pour s’assurer qu’aucune donnée n’a été endommagée. La somme de contrôle sera étudiée plus tard.
Les commandes
MARCHE/ARRÊT :
Seul un bit change, le premier des 6 octets (ou 40 bits). Si 1 la commande est activée, si 0 est OFF
AUTO/CHALEUR/REFROIDISSEMENT/DÉSHUMIDIFICATION
changer de 3 bits : mèches de 45 à 48 (voir photo)
Swing
bits 64 à 67 :
Vitesse du ventilateur
bit de 68 à 72 :
Options (13 octets) :
Température :
Ici, il devient un peu plus compliqué parce qu’il serait agréable de comprendre la façon dont la valeur est codée et n’analyse pas toutes les possibilités.
Nous avons échantillonné à 16° C, 30° C et 21° C. En binaire :
La zone correcte pour que la température n’est pas trouvée à l’aide de ces valeurs. Mais souvent le matériel utiliser des fraises dans l’ordre inverse (Bit le plus significatif ou moindre peu significatif sur la gauche du nombre, également appelée Little Endian ou Big Endian). Si les bits les valeurs obtenues est :
Cela donne un match pour les 3 valeurs à bits 49 à 53. Cela est plutôt surprenant que la valeur ne correspond pas à un octet (plus proche serait 6 x 8 = 48 bits). Cela signifie que lorsque le code du bâtiment un message devra passer d’un bit de la valeur de la température.
Qui par conséquent valide la première hypothèse concernant les valeurs de synchronisation utilisés pour 0 et 1:)
Minuterie A:
Les minuteries sont codées en plusieurs postes : premier avalue est utilisé pour indiquer que le minuteur A est actif, puis un second sert à indiquer la valeur de la minuterie.
État actif de minuterie se trouvent sur le même octet comme ON_OFF (6 octets, deuxième bit, donc à partir du début de la mèche 41e de charge utile).
Si la minuterie A est active si l’octet est que l’octet 6 ressemble à :
Pour la durée de la minuterie, en utilisant le même encodage qu’avec la température et le codage minutes et non en heures (comme les écrans à distance), la valeur peut être trouvée sur la seconde moitié du 12ème octet.
Minuterie b :
Timer B est active lorsque le 2ème bit de l’octet ON/OFF est 1. Comme minuterie A est toujours activée lorsque vous utilisez la minuterie B, l’octet ressemble à :
OK, ici, je dois admettre que je n’ai pas trouver la clé de cette valeur, c’est peut-être un delta entre timer A et B, peut-être une autre unité... Vérité est : qui se soucie de minuteries lorsque l’objectif est de contrôler (automatiquement) à partir d’un ordinateur ? :) Même minuterie Qu'a n’est pas utilisé en fin de compte dans mon système, j’étais tout simplement heureux de l’avoir trouvé.
Somme de contrôle :
Ah. Ici est une valeur non négligeable. Il est essentiel de le comprendre.
Après quelques essais, il semble que la somme de contrôle de la charge utile partie seule (sans compter l’introduction), et est le résultat de la simple somme de tous les octets, gardant uniquement un seul octet du résultat (en ignorant les débordements). L’astuce consiste, bien sûr, que cette somme de contrôle est faite par un système de Big Endian, donc chaque octet doit être inversé avant d’être additionnés, puis le résultat inverse à nouveau.