[Projet en cours] Enlightened Domotics Alarm Monitoring System(EDAMS)

Bonsoir à tous,

Un petit message pour vous présenter un projet en cours d'élaboration mais j'ai déjà un bout de code fonctionnel alors autant partager!

Alors voilà, EDAMS est une sorte de logiciel interface pour liaison série(donc peut convenir pour arduino,atmega...) permettant le receuil et traitement d'informations provenant de divers capteurs.

Avec EDAMS il sera possible d'affecter ces capteurs à des pièces de la maison de manière virtuelle et ainsi voir apparaitre les données receuillies de ceux-ci.

Concrétement, comment cela se passe?

Un server EDAM receuil toutes les trames d'infos de type "XXX;XXX;XXX;XXX" ayant une signification propre et les stockes dans un fichier temporaires. Le client interprete ces trames et les traitent de manière séquentielle. Lorsqu'un nouveau capteur est détecté il compare avec la base existante pour savoir si celui-ci est nouveau et peut même aller jusqu'à affecter ce capteur à l'un de ceux repertorié(pour l'instant j'ai incorporé DHT11,DS18B20,PIR).

Un créateur de capteurs permet de créer ses propres capteurs pour permettre une meilleur reconnaissance de ceux-ci.

Bon c'est pas simple à expliquer, j'y suis en plus dessus depuis 3 jours et à fond dans le code. Les derniers essais sont concluants et permettent déjà de détecter la nouvelle présence de capteur, le comparer à la base existante, l'affecter si celui-ci est repertorié dans la base de données. Si ce capteur est déjà présent, seules les données sont receuillies.

Le code est sous développement intense, c'est pas beau à voir mais ça fonctionne et je reste un complet amateur, seul le plaisir me guide. Beaucoup de fonctions manque ou sont en cours de devenir interessantes...pas de documentations et de tout ça...mais ça viendra, soyez indulgents :slight_smile:

Pour les plus téméraires(ou courageux au choix), la compilation nécessite Linux et les EFLs(http://enlightenement.org).

Pour les captures d'écran, c'est par içi:

Dépôt pour le code:
https://code.google.com/p/edams/source/list

A bientôt!
Alexandre.

Une mise à jour s'impose, j'ai retravaillé sur le code et les fonctionnalités. Du coup les dernières nouveautés:

  • La lecture du tampon série se fait dans un processus enfant(suppression du serveur/client edams).
  • Ajout de widgets pour la représentation des données(moniteur, thermometre...) avec effets d'animations.
  • Possibilité d'affecter un capteur à une ou plusieurs pièces définies.
  • Mise à jour en temps réel des données de capteurs.
  • Suppression des widgets capteurs par pièce.
  • Beaucoup de résolutions de bogues et choses atroces.
  • Un nouveau logo et surtout une nouvelle boite "A propos de"!
  • Mise à jour du fichier de traduction français.

Une nouvelle capture de l'état des lieux:

Le code toujours disponible sur le dépôt, la mise à jour se fait de manière constante dès que je suis satisfait d'une fonctionnalité.

Pour les prochaines versions, les objectifs:

  • Refactorisation et nettoyage du code.

  • Documentation pour l'installation et exemples d'utilisations pour Arduino(livraison de fichiers .ino avec les sources?).

  • Prise en charge protocole xpl(parser) voir:xPL.Arduino, émission de messages | Connecting Stuff

  • Nouveaux widgets pour la visualisation de données.

  • Amélioration des widgets existants(animations,gestion géometrie/redimenssionnement...).

  • Sélecteur de widgets de visualisation pour les capteurs avant ajout par pièces.

  • Gestion du double click sur un widget, afin d'avoir plus de renseigntements sur le capteur associé(description,datasheet...).

  • Gestion d'un widget générique par défaut pour les capteurs non repertoriés dans la bdd(slider ou entrée texte).

  • Amélioration de la gestion de la base de données des capteurs avec navigation,suppression,mise à jour.

  • Double-clic sur la pièce de la liste, propose une mise à jour de celle-ci(nom,description).

  • Tri alphabétique pour le gestionnaire de fichiers.

C'est pas mal du tout, je n'utilise pas Linux et je n'ai aucune raison d'utiliser ce programme... mais ça à l'air bien pratique :slight_smile:

Bonne chance pour la suite :slight_smile:

Bonjour!

@guix:merci pour tes encouragements :slight_smile:

Aprés 1 semaine, de nombreux changements par forcèments les plus visibles pour l'utilisateur mais un code beaucoup plus robuste et plus modulaire. L'objectif était donc pour cette version un nettoyage du code pour avoir une base plus solide.

Cette version la 0.6.0 apporte les changements suivants:

  • Rafraichissement des données dans tous les widgets affectés par pièces.
  • Possibilité d'affecter un autre type de widget de visualisation par capteur.
  • Tri des pièces par ordre alphabétique.
  • Tri des capteurs par leurs ids.
  • Utilisation d'un widget générique pour la gestion des préférences(elm_prefs pour les connaisseurs).
  • Ajout d'un widget générique "counter", en fait un compteur type LCD pour visualiser les données numériques.
  • Affichage d'un logo en fading "UPDATED" lors de la mise à jour d'un widget de visualisation.
  • Nombreuses fuites mémoires corrigées.
  • Nombreux segfaults corrigés.
  • Nettoyage de certaines parties de code(suppression du port win32, suppression gestion de plugins, suppression de champs inutiles dans les fichiers Eet).
  • Correction du fichier spec, package RPM opérationnel et généré correctement. A tester.
  • Mise à jour de la traduction française.

Dernière capture:

Voilà c'est à peu près tout pour cette version, je compte mettre en place un petit morceau de blog pour faciliter les annonces et la distribution des binaires(rpms...) et sources(tar.bz2, svn) et surtout j'ai commencé à bosser un peu sur la documentation donc permettre aussi sa diffusion.

A bientôt!

Bonjour!

Nouvelle version pour EDAMS qui passe maintenant à la version 0.7.0 et apporte les changements suivants:

  • Ajout de la prise en charge du protocole xPL.
  • Ajout de la prise en charge de l'envoi des données sur cosm(ex pachube).
  • Ajout d'une carte générale pour visualiser les capteurs d'un seul coup d'oeil.
  • Ajout de la possibilité d'affecter plusieurs fois un même capteur sur une ou plusieurs locations.
  • Ajout de la géolocalisation(+ prise en char via cosm).
  • Ajout de la reconnaissance automatique du type des capteurs.
  • Ajout de la reconnaissance automatique du format des données des capteurs.
  • Ajout de la xPPLib au sein d'EDAMS.
  • Nombreux correctifs.
  • Amélioration notable de la lisibilité du code.

Voilà donc de grosses nouveautés(cosm, xPL) qui oriente EDAMS vers les standards de référence. La carte générale permet d'auto-grouper ses capteurs par location et ensuite déplacer ces groupes où on le souhaite, les captures ne montrent pas cette possibilité mais il est possible de définir un fond d'écran sur cette carte, permettant par exemple de mettre le plan de son logement.

De gros efforts ont été fait pour corriger bon nombres de bogues et amiéliorer les interfaces utilisateur(notamment l'ajout de location).

Vous l'aurez donc compris, pour utiliser EDAMS il vous faudra configuer un hub xpl(perl-hub ou xPL_Hub), cependant rien de bien compliqué!

Dernière capture:

Bonne fêtes de fin d'année à tous!

Bonjour à tous!

Un wiki pour EDAMS a été mis en place, vous y trouverez:

  • Une introduction
  • La procèdure d'installation
  • Cas pratique d'utilisation
  • Captures d'écrans

L'introduction est disponible en français, de manière automatique(si votre navigateur est localisé).

Le wiki est disponible sur http://code.google.com/p/edams/

A bientôt!

Bonjour à tous!

Nombreuses nouveautés pour edams:

  • Rendu des données directement dans la carte générale via gnuplot.
  • Ajout de documentations sur le wiki.
  • Suppression du code du port série.
  • Ajout du label du nom de la localisation dans la carte générale.
  • Les régions de sélection dans la carte générale sont redimensionnables.
  • Les dimensions et les positions des régions de sélection dans la carte générale sont enregistrées et restaurées.
  • Nouvelle interface lors de l'ajout de localisations.
  • Nouvelle interface pour faciliter l'ajout de nouveaux capteurs dans la base de données.
  • Nouvelle interface pour la fenêtre de la gestion des préférences.
  • Amélioration de l'interface du panneau des localisation dans l'interface principale.
  • Le fond d'écran de la carte générale est configurable directement dans les fenêtre de gestion des préférences
  • Amélioration du système de débogguage(abandon d'eina_log:trop lourd)
  • Nettoyage du code xPL code.
  • Mise à jour des fichiers de la base de données(DHT11, DS18B20, PIR) pour correspondre au tout dernier format de données de la base de données d'edams.
  • Annonces sur e17-stuff.org et le groupe google xPL.

Les dernières captures d'écrans(les packages binaires ne sont toujours pas disponibles, voir wiki pour l'installation):

Bonjour!

Encore des nouveautés pour EDAMS, qui prend exactement la forme que je souhaite:

  • Editeur d'actions(à la manière des "scénarios"), si par exemple la température de mon bureau est supérieure ou égale à 24° j'envoie un mail, j'allume ma télé et j'éteinds la lampe x et y. Le nombre d'actions définissable est illimitée et se fait capteur par capteur.
  • Suppression des dernières spécificités d'EDAMS, maintenant tout est 100% xPL compatible pas de mise en forme particulière lorsque vous envoyez vos requêtes xPL.
  • Suppression de la mise à jour des données capteurs sur l'interface principale, ça devenait trop lourd à gérer. L'interface principale sera maintenant la partie administrative. Le reste se passant dans la "carte générale".
  • Utilisation des icones freedesktop.
  • Ajout d'une barre d'état pour indiquer les messages d'erreurs rencontrés, le résultat des dernières actions effectuées...
  • Suppression du créateur de périphériques, ne sert plus à rien(voir point sur 100% xPL).
  • Les thermométres refonctionnent et suppressions des widgets inutiles ou obsolètes.
  • Allégement encore et toujours de la xPLLib intégrée(reste à supprimer le hub).

Google code:http://code.google.com/p/edams/
Introduction:Google Code Archive - Long-term storage for Google Code Project Hosting.
Captures d'écrans:Google Code Archive - Long-term storage for Google Code Project Hosting.

Bonjour à tous!

Nouvelles évolution interessantes pour EDAMS:

  • Ajout d'un type de périphérique "virtuel" pour l'ajout de widgets comme des horloges, vérificateurs de mail...
  • Ajout de la prise en charge des périphériques xPL de type control.basic, il sera donc possible d'envoyer des requêtes xPL CMND directement dans la vue globale via des widgets pour intéragir sur le réseau xPL(allumage d'une lampe en cliquant sur le widget interrupteur, réglage de l'intensité d'une lampe halogène...).
  • Ajout de la prise en charge d'interfaces adapatives dans l'éditeur d'actions(exemple si l'on souhaite envoyer un mail, propose une interface avec les champs correspondants...)
  • Ajout du nom du périphérique en cours d'édition dans la barre de titre, lorsque l'on utilise l'éditeur d'actions ou l'éditeur de propriétés widgets.
  • Ajout d'un début de prise en charge pour l'envoi de mails.
  • Ajout widget ''lightbulb" pour l'indication d'état des ampoules/lampes.
  • Ajout widget "led" pour l'indication d'états binaires(0./1).
  • Ajout widget "switch" pour l'envoi sur les control.basic des signaux enable/disable.
  • Ajout widget virtuel "clockdigital", pour l'affichage de l'heure sous forme numérique.
  • Ajout widget virtuel "clockmain", pour l'affichage de l'heure sous forme analogique.
  • Ajout d'un parseur JSON(cJSON)
  • Ajout de la prise en charge du parseur cJSON pour générer les requêtes cosm.
  • Ajout de la prise en charge du parseur cJSON pour mettre en forme les arguments passés dans l'éditeur d'actions.
  • Correction de la géométrie du gengrid dans le sélecteur de périphériques, gestion des barres de défilements automatiques.
  • Correction de la création des fluxs cosm(beaucoup de segfaults étaient présents).
  • Correction de la suppression des fluxs cosm(beaucoup de segfaults).
  • Correction des widgets avec le même id, génére un id unique incrémental.
  • Mise à jour wiki(fr/en).

Désormais pour éviter les lourdeurs liées aux captures d'écrans dans ce post, je vous propose de vous diriger sur le wiki, que je met régulièrement à jour(du moins pour la partie anglaise).

Google code:Google Code Archive - Long-term storage for Google Code Project Hosting.
Introduction:Google Code Archive - Long-term storage for Google Code Project Hosting.
Captures d'écrans:Google Code Archive - Long-term storage for Google Code Project Hosting.

Les prochains développements porteronts sur:

  • Prise en charge des widgets control.basic dans la vue globale, avec envoir des requêtes xPL CMND adéquates via la xPLLib intégrée.
  • Amélioration de l'éditeur d'actions, notamment simplification de l'interface avec suppression d'élements affichés ésotériques.
  • Prise en charge des requêtes CMND(éditeur d'actions).
  • Prise en charge de l'envoi de mail(éditeur d'actions).
  • Prise en charge de l'envoi de SMS(éditeur d'actions).
  • Prise en charge d'un gestionnaire de temps avec actions associées.
  • Ajout en temps réel dans la vue globale lors création/suppression localité.
  • Ajout widgets pour les autres types des control.basic.
  • Ajout widget vérificateur de mails.

Une mise à jour sur ce post, pour signaler les dernières nouveautés pour EDAMS:

  • Grosse modification pour la gestion des périphériques xPL, toutes les données xPL sont intégrées dans les widgets. Donc suppression du sélecteur de périphériques, tout se passe au sein d'une même interface(widget editor).
  • Interface unique pour l'ajout/l'édition de widgets.
  • L'envoi de données est une option activable pour chaque widget.
  • La tracabilité des données via gnuplot est une option activable pour chaque widget.
  • Prise en charge des widgets control.basic dans la vue globale, avec envoir des requêtes xPL CMND adéquates via la xPLLib intégrée.
  • Editeur d'événement, utilise crontab(mais ne casse pas vos entrées actuelles).
  • Amélioration de l'interface de l'éditeur d'actions.
  • Suppression/Création des localités en temps réel dans la vue globale.
  • Widget vérificateur de mails(monitoring du fichier mbox, nécessite une distribution locale du courriel).
  • Widget control.basic 'mute'.
  • Widget lock edition, pour verouiller l'édition dans la vue globale.

A bientôt pour des nouveautés!

Bonjour , je suis très intéressé par votre projet et souhaiterais savoir si vous continuez son développement.
Avez vous un site/blog pour suivre son évolution ?

Bonjour!

J'ai arrêté son développement pour me consacrer à un EDAMS plus personnel(adapté à ma configuration) où je n'ai pas besoin d'une configuration en xPL.

Pour mon projet plus personnel j'utilise un arduino connecté à un pcduino qui reçois des informations en série de type xxxx;xxxx) du coup la version EDAMS officielle en xPL n'a pas été mise à jour depuis un bon moment. Je réflechis au meilleur moyen d'intéger ma version perso dans la version officielle.

Le développement continue donc, mais il me reste à trouver du temps pour intéger tout ça de la meilleur façon possible.

J'ai mis en place un wiki pour EDAMS disponible içi:
https://code.google.com/p/edams/

et un blog(un seul article et un peu obsoléte), mais bon:
http://hylius.blogspot.fr/

En pièce jointe quelques captures d'EDAMS version "perso"...

Utilisez vous déjà EDAMS? quelle est votre configuration domotique(DIY? commerciale?)...En tout les cas je serais ravi d'échanger avec vous sur l'évolution de mon projet!

Dommage que ton prog soit pour Linux seulement! Si tu fais une version pour Windows je suis sûr que ça attirerais beaucoup plus de monde, et mets un système de donation sur ton site.. :wink:

Enfin moi je n'ai toujours pas de maison mais bon... peut-être que dans 10 ans j'utiliserais ton prog mais à mon avis il y aura de meilleures solutions :wink:

Je ne suis pas en maison et encore moins propriétaire, mon appartement en location me sert un peu de terrain d'entraînement en attendant d'être propriétaire :slight_smile: cela dit si tu vis chez tes parents, c'est vrai que domotiser sa chambre représente peu d'intérêt(quoique engranger des connaissances est toujours bon à prendre)...

Concernant une version Windows, c'est plus que le fait que c'est un système qui ne m'attire pas qui me bloque, tant pis si cela n'attire pas plus de monde. J'ajouterais aussi, qu'EDAMS nécessite quand même quelques connaissances et l'utilisation de Linux trie déjà la base d'utilisateurs concernés. C'est un projet totalement amateur et développé avec beaucoup plus de plaisir que d'intêret commercial/glorifique ou que sais-je encore...Cela dit je suis toujours ouvert pour échanger sur son évolution et aider ceux qui veulent s'y mettre(pour l'utiliser ou le développer).

Un autre argument décisif quant au choix de Linux: la portabilité. Sans modifier une seule ligne de code, j'ai pu démarrer EDAMS sur PCDuino et RPI...Cela me permet de laisser tourner ma plateforme jour et nuit sans soucis de consommation...

Sans nul doute, il existe déjà de meilleures solutions qu'EDAMS mais elle reste MA solution :slight_smile: et qu'est-ce qu'une meilleure solution sinon celle qui nous correspond? Libre aux utilisateurs de trouver ou non EDAMS à leurs pieds :slight_smile: