{"id":13,"date":"2014-05-01T22:20:26","date_gmt":"2014-05-01T20:20:26","guid":{"rendered":"http:\/\/bricolageandco.redoutey.net\/?p=13"},"modified":"2014-06-18T16:34:04","modified_gmt":"2014-06-18T14:34:04","slug":"arduino-et-prises-commandees-protocole-de-transmission","status":"publish","type":"post","link":"https:\/\/bricolageandco.redoutey.net\/?p=13","title":{"rendered":"Arduino et prises command\u00e9es (3 &#8211; protocole de transmission)"},"content":{"rendered":"<h1 align=\"CENTER\">Arduino<\/h1>\n<h1 align=\"CENTER\">Commande de prises \u00e9lectriques, \u00e9clairages\u2026<\/h1>\n<h1 align=\"CENTER\">par transmission 2.4GHz<\/h1>\n<h2 class=\"western\"><\/h2>\n<h2 class=\"western\">Protocole de transmission<\/h2>\n<p>&nbsp;<\/p>\n<p>A l\u2019issue de tous ces choix de base et quel que soit le mode de fonctionnement retenu, il est n\u00e9cessaire de d\u00e9finir la fa\u00e7on dont les informations circulent.<\/p>\n<p>Pr\u00e9requis\u00a0:<\/p>\n<ul>\n<li>diff\u00e9rencier les diff\u00e9rents modules avec des plages d\u2019adresses suffisamment \u00e9tendues (prise, \u00e9clairage, capteur de temp\u00e9rature, thermostat, alarme\u2026).<\/li>\n<li>permettre d\u2019identifier le type de commande (programmation, commande directe, demande de statut\u2026),<\/li>\n<li>en cas de programmation pour les A\/M des prises, permettre plusieurs programmations quotidiennes et\/ou hebdomadaires,<\/li>\n<li>en cas de programmation pour les \u00e9clairages, permettre de commander soit des niveaux directs, soit des plages \u2013 temps de variation,<\/li>\n<li>\u2026 et j\u2019en ai surement oubli\u00e9,<\/li>\n<li>tenir compte du fait que les modules 2.4GHz (nRf24l01) ne permettent de transf\u00e9rer que 32 octets, il faut donc \u00eatre \u00e9conome dans l\u2019utilisation de ces octets ou utiliser d\u2019autres astuces. NB\u00a0: cette valeur de 1 \u00e0 32 octets, c\u2019est le Mirf.payload que l\u2019on initialise dans le programme.<\/li>\n<\/ul>\n<p>J\u2019avais donc opt\u00e9 pour le d\u00e9coupage suivant\u00a0:<\/p>\n<ul>\n<li>Octet 1 (num\u00e9rot\u00e9 0 dans la programmation)\u00a0: 1<sup>\u00e8re<\/sup> partie de l\u2019adresse du module\u00a0; permet surtout de diff\u00e9rencier les types d\u2019interfaces\u00a0; de 1 \u00e0 255 (on \u00e9vite d\u2019utiliser la valeur 0)\u00a0;<\/li>\n<li>Octet 2\u00a0: 2<sup>\u00e8me<\/sup> partie de l\u2019adresse du module\u00a0; permet d\u2019identifier le module dans son type\u00a0; de 1 \u00e0 255 (on \u00e9vite d\u2019utiliser la valeur 0)\u00a0;<\/li>\n<li>Octet 3\u00a0: type de commande (programmation, commande directe, lecture du statut du module, reset des plages horaires des modules, remise \u00e0 l\u2019heure, si n\u00e9cessaire, des horloges des modules\u2026 entre l\u2019utilisation des bits \u00e0 l\u2019unit\u00e9 et les combinaisons possibles, il reste beaucoup de fonctions imaginables)\u00a0;<\/li>\n<li>Octet 4\u00a0: \u00e9tat de la commande directe (0 ou 1 pour une prise, de 0 \u00e0 255 pour une lampe)\u00a0;<\/li>\n<li>Octet 5\u00a0: utilis\u00e9 pour la commande de lampe, sur commande directe, de 1 \u00e0 255 pour une variation sur le nombre de secondes indiqu\u00e9es\u00a0;<\/li>\n<\/ul>\n<p>Sur cette premi\u00e8re base, il s\u2019av\u00e8re que 5 octets sont utilis\u00e9s, il en restait donc 27 de disponibles.<\/p>\n<p>NB\u00a0: en s\u2019inspirant d\u2019une structure telle que celle du X10 (16 codes maison x 16 codes modules), on aura pu se limiter \u00e0 un byte d\u2019adresse, soit \u00ab\u00a0seulement\u00a0\u00bb 256 modules\u00a0; cela m\u2019a paru trop limitatif et je\u00a0suis donc rest\u00e9 sur 2 octets pour l\u2019adresse.<\/p>\n<p>Tableau r\u00e9cap pour les 5 premiers octets\u00a0:<\/p>\n<table border=\"1\" width=\"622\" cellspacing=\"0\" cellpadding=\"7\">\n<colgroup>\n<col width=\"25\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"108\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"3\" width=\"25\">\n<p align=\"CENTER\"><b>Octet[0]<\/b><\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 7<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 6<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 5<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 4<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 3<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 2<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\">Utilisation<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><i><b>Inutilis\u00e9<\/b><\/i><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Adresse premi\u00e8re partie<\/b><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table border=\"1\" width=\"622\" cellspacing=\"0\" cellpadding=\"7\">\n<colgroup>\n<col width=\"25\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"108\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"3\" width=\"25\">\n<p align=\"CENTER\"><b>Octet[1]<\/b><\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 7<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 6<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 5<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 4<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 3<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 2<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\">Utilisation<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><i><b>Inutilis\u00e9<\/b><\/i><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Adresse deuxi\u00e8me partie<\/b><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Si par exemple, on d\u00e9cide que les prises sont \u00e0 l\u2019adresse haute 1, le premier module prise portera l\u2019adresse basse 1 et donc l\u2019adresse globale 11 en hexa (soit 00000001 00000001 en binaire).<\/p>\n<p>Si les \u00e9clairages sont \u00e0 l\u2019adresse haute 2, le premier module \u00e9clairage sera \u00e0 l\u2019adresse globale 21&#8230;<\/p>\n<table border=\"1\" width=\"622\" cellspacing=\"0\" cellpadding=\"7\">\n<colgroup>\n<col width=\"25\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"108\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"8\" width=\"25\">\n<p align=\"CENTER\"><b>Octet[2]<\/b><\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 7<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 6<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 5<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 4<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 3<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 2<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\">Action<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><i><b>Aucune<\/b><\/i><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Programmation<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Commande directe<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Lecture statut<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Option \u00e0 venir<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Remise \u00e0 l\u2019heure des RTC des modules<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Remise \u00e0 z\u00e9ro (notamment les plages horaires programm\u00e9es pour les modules prises)<\/b><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table border=\"1\" width=\"622\" cellspacing=\"0\" cellpadding=\"7\">\n<colgroup>\n<col width=\"25\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"108\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"4\" width=\"25\">\n<p align=\"CENTER\"><b>Octet[3]<\/b><\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 7<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 6<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 5<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 4<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 3<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 2<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\">Action<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td rowspan=\"2\" width=\"108\">\n<p align=\"CENTER\"><b>Commande A\/M<\/b><\/p>\n<p align=\"CENTER\"><b>(prise)<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Niveau d\u2019\u00e9clairement<\/b><\/p>\n<p align=\"CENTER\"><b>(lampe)<\/b><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A noter que la commande de volet \u2013 \u00e9cran, peut se faire sans probl\u00e8me avec une fonction A\/M sous r\u00e9serve d\u2019avoir un relais m\u00e9canique en sortie.<\/p>\n<table border=\"1\" width=\"622\" cellspacing=\"0\" cellpadding=\"7\">\n<colgroup>\n<col width=\"25\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"43\" \/>\n<col width=\"108\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"2\" width=\"25\">\n<p align=\"CENTER\"><b>Octet[4]<\/b><\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 7<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 6<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 5<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 4<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 3<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 2<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 1<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">Byte 0<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\">Action<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"43\">\n<p align=\"CENTER\">x<\/p>\n<\/td>\n<td width=\"108\">\n<p align=\"CENTER\"><b>Temps de variation lumineuse en secondes<\/b><\/p>\n<p align=\"CENTER\"><b>(entre valeur actuelle et valeur demand\u00e9e dans l\u2019octet[3])<\/b><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Si ma prise est \u00e0 l\u2019adresse basse 1 et que je veux lui envoyer un ordre direct de marche, je vais \u00e9mettre 01h, 01h, 02h, 01h, 00h.<\/p>\n<p>Pour les prises, j\u2019\u00e9tais parti sur 2 ou 3 programmation quotidiennes possibles mais je me suis rendu compte que je bloquais la possibilit\u00e9 d\u2019avoir des programmations diff\u00e9rentes, par exemple, pour la semaine et le WE.<\/p>\n<p>J\u2019\u00e9tais donc reparti sur le fait de pr\u00e9voir le maximum de possibilit\u00e9s en utilisant les 27 octets restants\u00a0; n\u00e9anmoins, il me fallait un octet pour d\u00e9finir le ou les jour(s) de la semaine et 4 octets (compactables en 3 avec du concat\u00e9nage) pour d\u00e9finir une heure de d\u00e9but (marche) et une heure de fin (arr\u00eat).<\/p>\n<p>J\u2019avais donc red\u00e9fini le mode de programmation des heures, d\u00e9coup\u00e9s de la fa\u00e7on suivante\u00a0:<\/p>\n<ul>\n<li>le premier octet contient un num\u00e9ro de jour ou une combinaison\u00a0: 1 octet = 8 bits, 1 semaine = 7 jours, ce qui permet toutes les combinaisons possibles, y compris des commandes r\u00e9p\u00e9titives, la valeur 0 permet au module de comprendre qu\u2019il ne g\u00e8re pas les octets suivants,<\/li>\n<li>le second octet contient la valeur de l\u2019heure pour l\u2019allumage,<\/li>\n<li>le troisi\u00e8me octet contient la valeur des minutes pour l\u2019allumage,<\/li>\n<li>le quatri\u00e8me octet contient la valeur de l\u2019heure pour l\u2019extinction,<\/li>\n<li>le cinqui\u00e8me octet contient la valeur des minutes pour l\u2019extinction.<\/li>\n<\/ul>\n<p>Et l\u00e0, je vous entends me dire\u00a0: <i>reste 27 octets, 5 octets par commande, cela ne fait plus que 5 programmations possibles, c\u2019est pas assez\u2026<\/i> Et je suis d\u2019accord\u00a0!<\/p>\n<p>Donc, il faut non pas envoyer toutes les plages horaires lors d\u2019une transmission mais envoyer les plages horaires \u00e0 raison de 1 par transmission et les m\u00e9moriser dans le module\u00a0; il faut donc faire attention dans ce cas de ne pas \u00ab\u00a0exploser\u00a0\u00bb la capacit\u00e9 m\u00e9moire du module et de savoir m\u00e9moriser les donn\u00e9es\u00a0; dans ce but, on va utiliser la partie EEPROM du module Arduino NANO qui fait 512 octets (pour la version ATmega168) et 1ko (pour la version ATmega368)\u00a0; du coup, on se retrouve avec la possibilit\u00e9 de programmer 512 \/ 5 = 102 pages horaires.<\/p>\n<p>Dans la mesure o\u00f9 il sera int\u00e9ressant de pouvoir r\u00e9cup\u00e9rer ces info (avec le mode \u00ab\u00a0lecture du statut\u00a0\u00bb) et de les afficher, il faudra \u00eatre raisonnable. De mon point de vue, 4 \u00e0 5 programmations diff\u00e9rentes par semaine doit repr\u00e9senter la majorit\u00e9 des besoins.<\/p>\n<p>Tableau r\u00e9cap pour les octets\u00a0correspondants aux jours et heures:<\/p>\n<table border=\"1\" width=\"622\" cellspacing=\"0\" cellpadding=\"7\">\n<colgroup>\n<col width=\"30\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"113\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"11\" width=\"30\">\n<p align=\"CENTER\"><b>Octet[5]<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 7<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 6<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 5<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 4<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 3<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 2<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">Jour<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><i><b>Inutilis\u00e9<\/b><\/i><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>Lundi<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>Mardi<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>Mercredi<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>Dimanche<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>Samedi + dimanche<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>Semaine compl\u00e8te<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>Du lundi au vendredi<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table border=\"1\" width=\"622\" cellspacing=\"0\" cellpadding=\"7\">\n<colgroup>\n<col width=\"30\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"113\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"9\" width=\"30\">\n<p align=\"CENTER\"><b>Octet[6]<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 7<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 6<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 5<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 4<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 3<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 2<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">Heure de d\u00e9but<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>00hxx<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>01hxx<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>02hxx<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>04hxx<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>18hxx<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">..<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>23hxx<\/b><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table border=\"1\" width=\"622\" cellspacing=\"0\" cellpadding=\"7\">\n<colgroup>\n<col width=\"30\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"42\" \/>\n<col width=\"113\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"9\" width=\"30\">\n<p align=\"CENTER\"><b>Octet[7]<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 7<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 6<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 5<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 4<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 3<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 2<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">Byte 0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">Minutes de d\u00e9but<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>xxh00<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>xxh01<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>xxh02<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>xxh04<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>xxh42<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">..<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\">\u2026<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\"><b>0<\/b><\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">0<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"42\">\n<p align=\"CENTER\">1<\/p>\n<\/td>\n<td width=\"113\">\n<p align=\"CENTER\"><b>xxh59<\/b><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Idem pour octet[8] pour l\u2019heure de fin et pour octet[9] pour les minutes de fin.<\/p>\n<p>Au total, par transmission, on n\u2019enverrait donc que 10 octets (Mirf.payload = 10).<\/p>\n<p>Comme les modules r\u00e9cepteurs sont intelligents et stockent les informations, on n\u2019envoie ces informations que lorsque l\u2019on veut modifier la programmation, c&rsquo;est-\u00e0-dire pas souvent.<\/p>\n<p>Gestion du statut\u00a0: cette fonction permet de r\u00e9cup\u00e9rer l\u2019\u00e9tat d\u2019un module prise ou d\u2019un module lampe, de lire la programmation horaire pour un module prise, de r\u00e9cup\u00e9rer une valeur, par exemple pour un module thermom\u00e8tre\u2026<\/p>\n<p>Adressage des modules\u00a0: dans un premier temps, je vais pr\u00e9parer mes modules avec les adresses programm\u00e9es en dur\u00a0; ult\u00e9rieurement, j\u2019aimerais faire en sorte qu\u2019un module soit en phase d\u2019auto-apprentissage pendant, par exemple 30 secondes apr\u00e8s sa mise sous tension (et sous r\u00e9serve qu\u2019il n\u2019ait pas d\u00e9j\u00e0 une adresse, auquel cas, il faut d\u2019abord passer par une commande de remise \u00e0 z\u00e9ro).<\/p>\n<p>&nbsp;<\/p>\n<p>Ce n&rsquo;est donc pas termin\u00e9 car je voudrais encore am\u00e9liorer plusieurs\u00a0points :<\/p>\n<p>1) permettre d&rsquo;utiliser un module Arduino pour\u00a0commander plusieurs prises diff\u00e9rentes; cela signifie qu&rsquo;un module prise ne r\u00e9pond pas qu&rsquo;\u00e0 une seule adresse mais \u00e0 plusieurs;<\/p>\n<p>2) rendre possible le fait de reseter les modules;<\/p>\n<p>3) reprogrammer un module (apr\u00e8s l&rsquo;avoir reseter ou \u00e0 la premi\u00e8re utilisation); il faut donc g\u00e9rer le fait que l&rsquo;adresse est \u00ab\u00a0vide\u00a0\u00bb pour \u00eatre alors en mode programmation puis ne plus le faire quand l&rsquo;adresse est enregistr\u00e9e.<\/p>\n<p><a title=\"Arduino et prises command\u00e9es (les essais)\" href=\"https:\/\/bricolageandco.redoutey.net\/?p=58\">Suite : voir article sur les premiers essais<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Arduino Commande de prises \u00e9lectriques, \u00e9clairages\u2026 par transmission 2.4GHz Protocole de transmission &nbsp; A l\u2019issue de tous ces choix de base et quel que soit le mode de fonctionnement retenu, il est n\u00e9cessaire de d\u00e9finir la fa\u00e7on dont les informations circulent. Pr\u00e9requis\u00a0: diff\u00e9rencier les diff\u00e9rents modules avec des plages d\u2019adresses suffisamment \u00e9tendues (prise, \u00e9clairage, capteur <a href='https:\/\/bricolageandco.redoutey.net\/?p=13' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[6,16,17],"class_list":["post-13","post","type-post","status-publish","format-standard","hentry","category-arduino-philie","tag-arduino","tag-prises-commandees","tag-transmission-radio","category-5-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=\/wp\/v2\/posts\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13"}],"version-history":[{"count":11,"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=\/wp\/v2\/posts\/13\/revisions"}],"predecessor-version":[{"id":107,"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=\/wp\/v2\/posts\/13\/revisions\/107"}],"wp:attachment":[{"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bricolageandco.redoutey.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}