Log in Register

Login to your account

Username
Password *
Remember Me

Create an account

Fields marked with an asterisk (*) are required.
Name
Username
Password *
Verify password *
Email *
Verify email *
Captcha *
Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: Maison dans le Nord (xPLduino en prod)

Maison dans le Nord (xPLduino en prod) 03 Jan 2014 14:05 #1

Bon, je trouve assez dommage qu'en tant qu'initiateur du projet je n'en dise pas davantage sur l'usage que je fais d'xPLduino Tongue

Et vous constaterez que ce n'est pas un projet Vaporware Whistling

Le contexte:
Rénovation lourde d'un corps de ferme (isolation, chauffage centrale, murs & sols, électricité...) en 2008.
Partant de zéro ou presque, j'ai fait une installation en étoile, le tableau se situant au centre de la maison.
Automaticien dans l'industrie, c'est assez naturellement que j'ai installé un automate programmable récupéré pour gérer l'éclairage de la maison. A l'époque je n'avais pas de volets roulants.
Un automate industriel a un avantage de taille: c'est hyper fiable. Mais c'est aussi assez lourd à programmer (soft propriétaire, communication limitée...) et à superviser (IHM). Il gére 20 points d'éclairages différents et quelques détecteurs.

La phase d'emménagement passée et un changement de métier plus tard, j'ai cherché une solution pour améliorer l'installation et remplacer l'automate à terme. J'ai découvert le monde de l'embarqué grâce à Arduino. Début de solution en vue Smile
Le temps de m'autoformer à cet univers où 1 bit a une grande valeur, et où l'électronique est omniprésente, xPLduino a pris la forme actuelle.

Fin 2012 j'ai profité de l'installation de 4 volets roulants pour installer mon premier noeud xPLduino.
Composé d'une LMB (atmega328), d'une carte 16 entrées et d'une carte 8 relais, il gérera les volets.
Les débuts ne furent pas sans quelques soucis car l'alimentation était parfois instable, provoquant un reset de l'uC et la perte de la position des volets. J'ai fini par alimenter la carte avec une alim 5V de PC pour me passer du régulateur linéaire.

Début 2013 la SMB v0.0 était enfin prête. Elle a rapidement remplacée la LMB. L'alim DC-DC qu'elle embarque a résolu les problèmes de stabilité rencontré sur la LMB. J'en profite pour basculer un éclairage de la maison (un couloir) sur la carte 4 entrées/ 4 dimmers.

Pendant ces quelques mois, je n'ai pas rencontré de problème de fiabilité côté matériel. Le soft a pu aussi être éprouvé et amélioré.

En septembre 2013, la SMB v0.1 est prête. Elle embarque donc une horloge RTC et une mémoire EEPROM. La carte 8 entrées / 8 relais est également opérationnelle. Le soft a pas mal évolué avec une réécriture du code plus orientée objet/méthodes.
Je remplace alors la SMB v0.0 et les cartes 16 entrées et 8 relais par une SMB v0.1 et une carte 8 entrées / 8 relais, alim 24V. Installation de Domogik sur un Rasp Pi.


IMG 20140101 121046

L'implantation est temporaire et sera plus propre lors du basculement complet de l'installation vers du tout xPLduino

Désormais je gére:

- 4 volets roulants commandé au choix :
  • par impulsion sur un bouton poussoir
  • automatiquement à heures prédéfinies
  • à distance par Domogik/Domoweb/Domodroid (commande xPL)
  • mémorisation de la position en EEPROM (plus besoin de recaler les volets en cas de coupure ou de rechargement du soft !)
- 2 sondes de températures DS18b20, valeurs logguées par Domogik via xPL Wink
- un éclairage à spots halogène 230V
- mesure des consommations d'eau chaude et d'eau froide totales (mémorisé en EEPROM) et instantanées, valeurs logguées par Domogik via xPL.

A tout moment je peux me connecter au contrôleur et connaitre l'état du système via la liaison série:
- état communication avec chaque carte d'interface (compteur perte de com, version du firmware)
- conf IP
- état instantanée des volets, switchs et lighting
- valeurs des compteurs d'eau

Je n'utilise pas (encore) en production :
- la Teleinformation (j'ai un vieux compteur EDF à disque)
- le mini-webserver (nécessite encore un peu d'amélioration)

A partir de maintenant, je tacherai d'enrichir ce post à chaque fois que j'ajouterai de nouvelles fonctionnalités.
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
Last Edit: 03 Jan 2014 15:14 by gromain.
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 03 Jan 2014 17:04 #2

Merci Gromain pour ce retour,

c'est bien plus concret et visuel de cette manière Smile
  • chestroled
  • Avatar
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 58
  • Thank you received: 2
  • Karma: 1
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 05 Jan 2014 11:19 #3

Fonction comptage consommation d'eau.

Je surveille la consommation d'eau chaude et d'eau froide de ma maison au moyen de deux compteurs d'eau divisionnaire classique, chacun équipé d'une aiguille 1 tour = 1 litre.
J'ai monté un petit aimant sur l'aiguille, et en vis-à-vis un détecteur type ampoule ILS.

Compteur Eau


Le principe est simple: lorsque l'aiguille passe devant l'ampoule, un contact sec se ferme. Ce contact est relié à une entrée de la carte 8 entrées / 8 relais.

Au niveau logiciel, j'ai lié l'entrée à un device "SWITCH" qui va me générer des infos "on/off".
Je n'ai plus qu'à associer un front montant du switch à l'incrémentation du compteur.
if(on_ons(eau_chaude))
    {
        WATER_COUNTER[cpt_eau_chaude].ctu();     // incrementation compteur conso instantanée
        WATER_COUNTER[cpt_eau_chaude_tot].ctu(); // incrementation compteur conso totale
        water_counter_status(&WATER_COUNTER[cpt_eau_chaude_tot], T_TRIG); // envoi message xPL conso totale vers Domogik
        write16(CPT_EAU_CHAUDE, WATER_COUNTER[cpt_eau_chaude_tot].getValue()); // sauvegarde en eeprom
    }
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
Last Edit: 06 Jan 2014 17:51 by gromain. Reason: modif du titre
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 06 Jan 2014 17:50 #4

Fonction Minuterie.

Depuis le temps que je peste après les gamins qui laisse la lumière du couloir allumée sans raison, j'ai fini par le faire: j'ai pris 5 minutes pour ajouter une fonction d'extinction automatique de la lumière.
Le principe est simple: lorsque la lumière est allumée (c'est à dire valeur courante différente de zéro), une tempo est lancé. Au bout de 5 min, la sortie q_ons (one shot) passe à vrai pour un cycle et lance une commande d'extinction:

initialisation de la tempo au démarrage:
    // uint8_t init(uint8_t _base, uint8_t _mode, uint16_t _setpoint);
    // base de temps: MILLIS, SECOND, MINUTE
    TIMER[0].init(MINUTE,TON, 5);
    #define timer_couloir TIMER[0]

initialisation de l'éclairage:
    LIGHTING[0].init("couloir", 100, 1); // allumer au démarrage, fade de 1
    #define couloir 0

utilisation dans le scénario:
if(pulse(bp_couloir))
        toggle_light(couloir);
    if(on_ons(bp_couloir))
        tune(couloir);
    if(off_ons(bp_couloir))
        stop_tune(couloir);
 
    if(timer_couloir.q_ons(LIGHTING[couloir].IsOn())){ // evenement au bout de 5 min d'eclairage
        LIGHTING[couloir].new_setpoint(0); // on eteint
    }

Si la fonction convient, je la rendrai plus sexy, notamment au niveau de la syntaxe.
Plus tard, j'ajouterai une pré-alerte d'extinction, en baissant la luminosité 1 minute avant. Ça laissera le temps d’appuyer de nouveau sur le bouton pour relancer la minuterie...
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 06 Jan 2014 19:20 #5

C'est génial ! Je vote . Après pour aller plus loin, c'est le genre de fonction qui serait à cocher dans le manager sur une sortie définie pour l'activer directement... Mais faut pas aller trop vite !
  • chestroled
  • Avatar
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 58
  • Thank you received: 2
  • Karma: 1
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 06 Jan 2014 20:49 #6

Chacun peut créer des fonctionnalités en les écrivant dans la partie scénario comme les exemple ci-dessus. Et les plus pertinentes pourront faire l'objet d'une intégration en standard et configurable directement dans le manager Wink
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 12 Jan 2014 21:42 #7

Merci pour ces retours d'utilisation et ces exemples de lignes de code, je suis heureux de voir que l'année 2014 a bien démarré pour xplduino, je souhaite qu'elle continue ainsi et qu'elle soit bonne pour tous les membres!

Et je souhaite surtout l'arrivée prochaine du manager parce que, put..., que c'est compliqué juste pour éteindre une lampe au bout de 5mn....!!
  • jean-marc
  • Nophoto
  • OFFLINE
  • Senior Boarder
  • Rank2
  • Posts: 60
  • Thank you received: 1
  • Karma: 0
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 12 Jan 2014 21:45 #8

lol

le manager devrait simplifier encore la chose, mais il n'y a pas de secret, si tu veux un peu de souplesse et de puissance dans un système, derrière il y a du code à pisser...
ça peut pas se faire par l'opération du Saint Esprit Grin
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 12 Jan 2014 22:31 #9

Je le comprends...pour l'instant le Saint Esprit c'est toi!

Mais quelque chose qui pourrait aider les esprits pas très clairs (quoique saints, comme le mien) serait bienvenu!

Peut on avoir déjà une idée de ce fameux manager? J'imagine des combos listes:
-entrez le nb de smb, OK nom smb 1=? etc...idem avec carte 8in/out,
-entrée 1 carte 8in/out: choisir type bouton
-sortie 1 carte 8in/out: choisir: lumière, compteur, compteur rapide, etc....

Et pour les scénarios, quelque chose de simple via "device, event, trigger"?
  • jean-marc
  • Nophoto
  • OFFLINE
  • Senior Boarder
  • Rank2
  • Posts: 60
  • Thank you received: 1
  • Karma: 0
The administrator has disabled public write access.

Maison dans le Nord (xPLduino en prod) 13 Jan 2014 09:10 #10

je suis plus souvent un Simple d'Esprit W00t

Encore un peu de patience pour le manager, je laisse à TheGrumpy l'honneur de le présenter, c'est son bébé.
Mais saches qu'il a de la gueule et devrait grandement simplifier la configuration d'un nœud.
Néanmoins, il faudra quand même mettre la main à la pâte pour faire des scénarios intéressant.
On prévoit quand même de pouvoir générer des actions simples sur des événements simples.
Mais personnellement, je veux garder un maximum de souplesse pour exploiter au mieux notre contrôleur.

J'ai amélioré ma gestion de la minuterie. Désormais, la luminosité baisse de 50% au bout des 5 minutes et ce pendant 1 minute avant extinction. Si on appuie de nouveau sur le BP, alors c'est reparti pour 5 minutes au seuil prédéfini.
Je dois encore simplifier la syntaxe, mais ça marche parfaitement bien.

Romain
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Backtotop