Bonjour à tous les férus de domotique,
je découvre seulement ce topic donc j'arrive un peu tard...
J'ai lu que vous faisiez référence à mon projet xPLduino, un ensemble de module compatible arduino interconnectés via Ethernet (protocole UDP pour le transport, protocole XPL pour le formatage des messages).

Je confirme que le choix d'un seul arduino gérant une multitude de fonction (volet, éclairage...) est un mauvais choix. C'était mon choix avec xplduino_v1. L'idée était de profiter du grand nombre d'E/S d'une Mega et de limiter les couts car le shield Ethernet Wiznet n'est pas donné.
Le point fort:
- ça marche en production depuis 1 an, sans problème majeur
Les points faibles:
- une maintenabilité du code assez pénible (nombreuses fonctions logicielles empilées)
- une mise à jour impossible sans black-out de la maison (au moins le temps du chargement du soft, plus si loupé dans les modifs)
- une intégration mécanique de l'arduino dans un boitier délicate
Entre temps, j'ai étudié la solution Ethernet à base d'ENC28J60. Elle fut plus complexe à mettre en oeuvre au départ car l'arduino à plus de travail à réaliser: les datagrammes arrivent brutes de décoffrage au contraire du wiznet qui fait le gros du boulot.
Mais finalement ce n'était pas la mer à boire. En a découlé xplduino_v2 qui est bien avancé désormais. Le code de la v1 est porté à 80% en v2, les performances sont satisfaisantes.
La version 2 s'architecture autour d'un µC plus modeste (atmega328p) et d'un ethernet plus basique (débit 10mbps). Tous les composants existent au format DIP, donc je vais pouvoir réaliser une carte 2-en-1 qui s'intégrera parfaitement dans les boitiers sur rail DIN du marché, et qui sera très peu cher. La répartition des fonctions sur plusieurs modules interconnectés mais néanmoins autonomes apporte une plus grande fiabilité et flexibilité. Le code est commun à toutes les modules, mais optimisé pour chaque type de modules (éclairage, volet, E/S). La maintenance est simplifié.
Maintenant, pourquoi le choix de l'ethernet UDP ? je dirais le choix d'une certaine modernité lol. C'est le média universel et moderne par excellence. Alors oui, il nécessite un switch pour faire communiquer plusieurs modules entre eux, mais qui n'a pas de switch chez lui ? Il permet de s'affranchir des distances, et est modulaire (topologie en étoile, pas besoin de faire courir un bus dans toute la maison, on peut étendre le réseau à l'infini).
J'ai bien hésité un moment entre RS485, I2C et CAN, mais je trouve ces technos certes éprouvés, mais soit pas adpatés (I2C) soit d'une autre époque (RS485). Pour le CAN, d'une grand fiabilité, il est malheureusement très mal implémenté dans les arduino/atmega. Pour l'utiliser, autant partir sur l'excellent projet Domocan de BigOnOff, mais c'est du Pic. Toute la documentation est en wallon.
Au début du projet j'avais commencé à écrire mon propre protocole (largement pompé sur domocan d'ailleurs), mais je me suis vite rendu compte que l'ouverture vers le monde extérieur serait vite limitée. Puis j'ai découvert le protocole xPL (à ne pas confondre avec la techno CPL hein !!!). C'est un protocole ouvert, assez bien documenté, et supporté par un nombre croissant d'équipement (Squeezebox par ex) et de solutions logiciel (DOMOGIK étant ma préférée car 100% open-source, avec une IHM web, une appli android fonctionnelle et cerise sur le gateau, française). Son but est justement d'unifier l'incroyable profusion de techno plus ou moins propriétaires du monde de la domotique en faisant abstraction de la techno (plcbus, knx, x10, RF etc.).
Mais bon, libre à vous de créer un n nième protocole domotique

Voilà pour mon modeste point de vue.
@ bientôt
Gromain59
PS1: un début de spécification de xplduino_v2
ici.
PS2: je suis toujours ouvert à toute collaboration
