Hexa / Décimal (paramétrage Z-Wave)

Tout ce qui concerne l'usage des périphériques radios Z-Wave avec eedomus

Hexa / Décimal (paramétrage Z-Wave)

Messagepar thrymartin » 05 Mai 2022 17:36

Je n'ai pas posté ça dans la rubrique "programmation", puisque ça concerne ici les paramétrages Z-Wave concernant les valeurs des paramètre sur 1 à 4 octets

NB : je ne sais pas si le sujet a été traité, mais je vois encore beaucoup d'incompréhension à ce sujet et moi même j'ai été surpris de voir une valeur sur 2 octets, 900 exprimée en 3 puis 132, mais tout s'explique :-)

On poura s'aider du convertisseur eedomus

Vous pouvez sauter les rappels et descendre au sous-titre "1 Octet"
et si vous trouvez trop "roman fleuve", vous pouvez sauter au message suivant

Rappels :
un octet, c'est 8 bits, le poids faible à droite (comme en écriture décimale), on commence bien sur à 0 et on va jusqu'à ... 11111111 en binaire, ça se numérote de 0 à 7 en commençant par la droite, et chaque bit est une puissance de 2 (l'exposant est son numéro d'ordre)...
bit 11111111
N° 76543210
ça va donc de 0 à 255 donc 256 valeurs
on compte de droite à gauche et on multiplie par 2 puissance N° d'ordre soit
7 6 5 4 3 2 1 0
128 64 32 16 8 4 2 1

ex: 01101011 = 64+32+8+2+1 = 107

2 octets, c'est donc 16bits, l'octet de poids faible à droite, comme pour les bits, comme en décimal

pour écrire de manière plus rapide les octets, on emploie l'hexadécimal : au lieu d'aller de 0 à 9 pour 10 chiffres, on va de 0 à F pour 16 chiffres
0 1 2 3 4 5 6 7 8 9 A B C D E F
Avec A=10, B=11, C=12, D=13, E=14 et F=15
ça ne va pas suffire pour écrire un octet, puisqu'avec 16 chiffres, on ne peut écrire que 4 bits, donc il en faut 2 : toujours le poids faible à droite, on écrira donc de 0 à 255 en 00 à FF le premier terme étant un multiple de 16 (puisque hexa), comme le premier terme d'un nombre à deux chiffres est un multiple de 10 (en décimal).


Pas grave si pour certains ça chauffe, puisqu'en fait on n'en a pas trop besoin puisque...

1 Octet
La valeur est toujours exprimée en décimal, par exemple, si on demande un pourcentage de 0 à 99, inutile de le convertir, vous le noterez tel quel !
Notez que dans le convertisseur, cela correspond à "8 bits" mais si on met 16 bits, 24 bits ou 32 bits cela ne changera pas la valeur Hexa Un GET renverra aussi la valeur en décimal !
SI par hasard, on vous explique que le bit 2 correspond à telle fonction et que le 5 à une autre, vous utiliserez le convertisseur, au cas ou vous voudriez n'activer que ces bits 2 et 5 ça donnerai :
76543210
00100100
ce qui en décimal est, vous dit le convertisseur, 36, valeur à entrer dans valeur1 (sur un octet)

2 Octets (ou 3 ou 4, le raisonnement est le même)
La ça se complique puisque ... La valeur est toujours envoyée (SET) et récupérée (GET) en décimal, mais ce n'est pas du tout ce que vous allez lire dans l'historique !
et cette valeur s'appelle valeur1 dans les fonctions documentées... or ...
dans l'historique, seront détaillées les valeurs dont le numéro d'ordre sera celui des octets mais avec celui de poids fort en premier et noté ... 1 ! (pas dans le même sens que l'écriture des chiffres) et cette valeur s'exprimera toujours en décimal, mais dans une logique héxadécimale, d'où la confuse, avec donc, si la fonction est documentée :
si la valeur, entrée valeur1, est inférieure à 256, l'historique la notera valeur1
si la valeur, entrée valeur1, est supérieure à 256, il y aura 2 octets (inférieur à 65535 sinon, 3 ou 4 octets), donc 2 valeurs, valeur1 sera cette fois ci l'octet de poids fort et valeur2, celui de poids faible, les deux exprimés en décimal dans l'historique !
si la fonction n'est pas documentée, alors il faudra entrer valeur1 et valeur2 comme suit :
si la valeur est inférieure à 256, on la notera dans valeur2 et on notera valeur1=0
si la valeur est supérieure à 256, il y aura 2 octets (inférieur à 65535 sinon, 3 ou 4 octets), donc 2 valeurs, le plus simple est d'inscrire 900 dans le convertisseur, ce qui donne 384 en hexa, les 2 octets sont donc 03 et 84 et chacun vaut en décimal 3 et 120 à mettre respectivement dans valeur1 et valeur2
dans tous les cas, c'est ce que vous verrez aussi en historique du SET, mais le GET vous donnera, lui, la valeur décimale complète, 900

et voila pourquoi votre fille est muette (*)

Le raisonnement sera le même avec 3 ou 4 octets, mais dans tous les cas, ne vous perturbez pas avec les fonctions documentées, puisque les entrées sont en décimales, sur une seule valeur globale, le contrôle aussi.
Avec les fonctions non documentées, il vous faudra donc calculer vous même les valeurs décimales des octets en commençant par valeur1 pour le poids fort, de gauche à droite, à l'envers de la numérotation des bits, sans oublier de noter 0 pour les octets non utilisés.
L'autre cas ou vous devrez utiliser le convertisseur, c'est celui ou le paramétrage concerne les N° de bit - et comme les valeurs Z-Wave ne sont pas systématiquement renseignées dans la page Eedomus (voir mon mot dans les eedotrucs), vous pourriez en avoir besoin.

Si le staf a prévu l'entrée sur un seul nombre : il faut choisir ici, dans "Taille", les entrées de type
2 (Décimal 0 à 65 535) et on fait comme d'hab

(*) Le médecin malgré lui, Molière
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: Hexa / Décimal (paramétrage Z-Wave)

Messagepar thrymartin » 06 Mai 2022 00:24

On va faire plus court et sans explications, juste la marche à suivre :
Dans la page des paramètres Z-Wave

***documenté (préparamétré), vous inscrivez le nombre voulu en décimal dans valeur1 et c'est tout. Si une fonction n'a pas été préparamétrée ... faire comme suit :

***non documenté (pas de préparamétrage, aucune indication, tout est vide)
préambule : évidemment vous avez la notice du périphérique sous les yeux
1- on indique le nombre d'octets indiqué même si on n'a pas besoin de tous !
2- on décompose le nombre, par exemple en utilisant le convertisseur eedomus en "octets décimaux" en commençant par le premier, de gauche à droite.

exemple 900 sur 2 octets, 900 c'est 384 donc 03 84 en Hexa : nos deux octets à mettre en décimal
03, c'est 3 en décimal qu'on met dans valeur1
84, c'est 132 en décimal qu'on met dans valeur2

exemple 120 sur 2 octets, 120 c'est 78, c'est un seul octet (ben oui, c'est plus petit que 256)
on met donc 0 en valeur1 et 120 en valeur2

exemple 72687 sur 3 octets c'est 11BEF donc 01, 1B et EF soit 1, 27 et 239 dans valeur 1, 2 et 3
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: Hexa / Décimal (paramétrage Z-Wave)

Messagepar Fab_Rice » 06 Mai 2022 06:26

Bonjour Thierry et merci, même si ce n'est pas le truc que l'on utilise tous les jours ;)
Ca me rappel mes vieux cours d'automatisme :D
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine, PAC & Climatisation Mitsubishi ...
Fab_Rice
 
Messages : 923
Inscription : 27 Déc 2020

Re: Hexa / Décimal (paramétrage Z-Wave)

Messagepar thrymartin » 06 Mai 2022 06:52

Fab_Rice a écrit:Bonjour Thierry et merci, même si ce n'est pas le truc que l'on utilise tous les jours ;)
Ca me rappel mes vieux cours d'automatisme :D


Merci,
En fait, c'est parce qu'on ne l'utilise pas tous les jours qu'on est vite perdu quand on en a besoin.

J'ai cherché pour voir si le sujet a été traité, et je suis tombé sur des messages sur les périphériques pourtant préparamétrés ou l'utilisateur se demande si il faut inscrire en décimal ou pas et si c'est sur deux octets, s'il faut écrire deux valeurs et comment. bref non, décimal, un nombre, on ne se casse pas la tête.

Mais voila voilou, j'ai acheté un Aeotec Trisensor, reconnu depuis 2018 mais que l'équipe Eedomus n'a pas ugé utile de préparamétrer.
et de base, il s'endort pour 4 minutes après une commande d'allumage, question d'économie de pile peut etre, mais quand on a un timer a 2', ça fait 2' dans le noir :?

En fait il marche très bien, on peut ramener la valeur, ici, 2' pour moi, je renouvelle ici mes remerciements à Christophe Charrier, du staf Domotique Store pour cette histoire d'attendre le réveil et la confirmation que l'appareil était programmable Z-Wave, et à moi même pour cette histoire de 2octets non préparamétrés (on n'est jamais mieux servi que par soi même :mrgreen: )

Après, ce n'est pas fini : soit j'ai un problème de vue, soit le staf vient de mettre la possibilité pour l'Aeotec d'entrer une seule valeur ...
il faut choisir ici les entrées de type 2 (Décimal 0 à 65 535) et on fait comme d'hab

tout ça pour ça :?
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: Hexa / Décimal (paramétrage Z-Wave)

Messagepar Fab_Rice » 06 Mai 2022 11:16

J'ai aussi remarqué que les données des paramètres de scripts eedomus étaient soit pas à jour soit faux (ce qui revient au mêmes) sur certains modules z-waves, mon dernier étant un Heltun Quinto ou seuls des essais paramètre par paramètre permettent la programmation z-wave. :evil:
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine, PAC & Climatisation Mitsubishi ...
Fab_Rice
 
Messages : 923
Inscription : 27 Déc 2020

Re: Hexa / Décimal (paramétrage Z-Wave)

Messagepar thrymartin » 07 Mai 2022 07:46

Fab_Rice a écrit:J'ai aussi remarqué que les données des paramètres de scripts eedomus étaient soit pas à jour soit faux (ce qui revient au mêmes) sur certains modules z-waves, mon dernier étant un Heltun Quinto ou seuls des essais paramètre par paramètre permettent la programmation z-wave. :evil:


La bonne nouvelle c'est que quand un périphérique est associé, il est rare qu'une fonction ne soit pas accessible, préprogrammée ou pas par l'équipe Eedomus.
On se réfère au manuel, qu'on finit toujours par trouver. On peut même traduire les pdf par l'outil traduction de google (la page propose de traduire les documents, dont les pdf, on se retrouve avec un pdf traduit, ce truc qui existe depuis longtemps est ignoré de beaucoup)

Ensuite, le plus important, c'est que dans "taille" on ai les choix suivants :
2 (Décimal de 0 à 65 535)
3 (Décimal de 0 à 16 777 215)
4 (Décimal de 0 à 4 294 967 295)

Pour 1, pas besoin puisque ça se rentre ... sur un seul octet donc de 0 à 255

Je ne sais pas si le staff doit ajouter ça à chaque périphérique, ou si c'est disponible par défaut (?)
(quelqu'un peut répondre ?)
me semblait pas que ça apparaissait pour l'Aeotec Trisensor (?) en tout cas, maintenant je le vois.
SI on l'a pas, il faudra se référer à la tambouille écrite ci dessus en décomposant en octets décimaux, après avoir indiqué la taille puis en remplissant tous les octets requis, y compris si on doit mettre 0

du coup, avec la notice sous les yeux, on entre la classe, en général CCConfiguration
le n° de la fonction, sa taille en choisissant dans les 3 ci dessus si plus grand que 1
et on entre en décimal sur valeur1 qui devrait s'appeler valeur tout court, la valeur en décimal.

et si c'est à pile, on va avoir un "en cours" et on attend le réveil, en général toutes les 30', ou alors selon le pooling, plus raremet avec appui sur le bouton d'inclusion quand il sert de réveil du périphérique.
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion


Retour vers Périphériques Z-Wave

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 78 invité(s)