Aidez nous ! Projet - Gestion domotique

Yep!

Osaka, nos posts ont dûs se croiser, je refais un petit up sur AJSON et demande ton avis d'expert dessus XD

Ne peut-on pas également et quel en est la difficulté, discuter directement avec une base de données genre sql ou access (via XML ou mieux JSON) ???

@+

Zoroastre.

EDIT1 : Tiens çà me rappelle qu'il y a un projet interessant nommé AJSON (arduino-json lib)
http://www.domotichome.net/tutorials/4-json-protocol-for-home/public_show
(les + : pas lourd et facilement interpretable)

@+

Zoroastre.

lol j'avais edit ton edit mais ça c'est recroisé donc je remet ici. :grin:

zoroastre:
Tiens çà me rappelle qu'il y a un projet interessant nommé AJSON (arduino-json lib)
http://www.domotichome.net/tutorials/4-json-protocol-for-home/public_show
(les + : pas lourd et facilement interpretable)

J'ai utilisé le format JSon dans mes solutions précédente.

http://arduino.cc/forum/index.php/topic,72035.0.html

uniquement côté navigateur ici, parser côté php.

Le gros avantage c'est que le parsing est natif du côté javascript, donc ultra simple à interprété côté navigateur.
Ca peut être une très bonne solution à ceux qui ne veulent pas gérer des données format binaire, de mon côté je préfère toujours évité les caractères et les chaines qui doivent de toute façons être reconvertie, mais bon c'est toujours une préférence perso.

Gromain59 m'avait à une époque lancé sur le sujet...faudrait que je m'y rejette tantôt

ouiii ?
je confirme que xPL (dérivé simplifié d'XAP) est assez gourmand en ressource.
Ceci dit, moyennant quelques astuces, on arrive à limiter la consommation de RAM. En placant les parties "fixes" des trames émises en mémoire flash par ex.
Pareil pour le parsing, en analysant la trame entrante caractère par caractère au lieu d'utiliser des fonctions type scanf, on utilise beaucoup moins de mémoire.

Pour ma part, comme mes modules xplduino doivent causer entre eux en exécutant des scénarios "évolués", j'ai mis au point un protocole plus léger, via UDP, composé d'un header et d'une partie data. Chaque trame pésera de 5 à 20 octets. Ce même protocole me permettra de configurer les modules à distance au moyen du manager (soft java), et pourra être transporté via RF ou RS485 par ex.
Que devient xPL alors ? C'est un protocole "haut niveau" donc, les états et commandes sont toujours traités et émis. Il sert aux échanges avec l'extérieur (IHM Domogik...)

Voila pour ma contribution au sujet (hors sujet ?)

Gromain

Bonjour à tous,

J'ai essayé de suivre vos discussions sur le sujet, mais plus ça va, moins j'y comprends !

C'est normal ?

@+

Gromain59:
Pareil pour le parsing, en analysant la trame entrante caractère par caractère au lieu d'utiliser des fonctions type scanf, on utilise beaucoup moins de mémoire.

Oui normalement c'est la solution la plus adapté à nos µc, c'est de faire un peux à la façon de "SAX" qui considère chaque balise '<' ou '>' ou ':' etc comme un évènement donc on ne prend que la partie correspondante à cette évènement en compte au fur et à mesure que l'on avance et non la totalité du document en un coup comme "DOM".

Yep!

Je pense que la difficulté première est d'évaluer chaque solution. Si c'est pour créer une seule page pour allumer une lampe, alors html + css suffisent.

Par contre, lorsqu'il s'agit de confronter les solutions pour une application plus large, comment justement évaluer ces solutions : ne vaut-il pas mieux écrire quelques 500 lignes de code arduino en plus afin d'avoir un proto évolutif et définitivement implanté...ou faut-il rester sur du cas par cas en mettant dans la balance Php, Ajax, xpl ou json.

Il est clair qu'un uC ne peut pas tout faire mais dans l'optique d'une solution userfriendly et extensible, je pense qu'un proto doit être on ne peut plus figé quelque soit le hardware.

@+

Zoroastre.

EDIT :

Gromain59:
ouiii ?

Je suis toujours partant, mais en ce moment, je suis sur çà : Arduino Forum
(En gros, je scinde la partie gestion IHM et ordonnancement. J'ai d'ailleurs quasiment terminé le dessin, quelques retouches artistisques et mise au point théorique des cartes filles.)

EDIT2 :

Brisebee:
J'ai essayé de suivre vos discussions sur le sujet, mais plus ça va, moins j'y comprends !

C'est normal ?

T'inquètes, je commence à être largué aussi...$£**%DOM...SAX!!!

Bonjour à tous,

Ça y est ! M'y voilà, le moment tant redouté, où il va falloir se jeter à l'assaut de la toile est arrivé !

J'ai réussi à tout faire fonctionner, hormis la communication avec un site web.
J'ai même réussi à me connecter à un serveur NTP et lire le temps courant (c'est tout neuf), mais je n'ai pas encore intégré cette
fonction dans mon programme global.

Je suis maintenant à la recherche de solutions pour, via le web :

  • pouvoir saisir et modifier des plages horaires (hh:mm)début et (hh:mm)fin
  • pouvoir modifier l'état de sorties (binaires)
  • afficher : l'état de sorties, d'entrées, des températures, des taux d'humidité, ...
  • (plus tard), stocker et exploiter (listes, courbes) des données issues de capteurs ou d'E/S.

Pour l'instant j'ai assez peu d'éléments complets (il y a pas mal d'exemples, mais rarement la partie arduino et la partie serveur web) sur le sujet de la communication avec le web.

Merci par avance pour votre aide.

Bonjour tout le monde,
vraiment bravo à vous, super excellent topic XD, j’ai une remarque suggestion je préfère si vous permettez bien sûre XD, vu le nombre de pages important « oulala trop d’informations et d’idées :grin:», divers et parfois divergentes :roll_eyes: qu’elle reste vraiment très utiles, et vu le but de se topic et de mettre en place un style de cahier des charges plus ou moins générique avec des petite personnalisation pour chacun « tracer les grandes lignes quoi », je vous suggère de faire un break pour synthétiser tout les idées d’une manière méthodique, comme proposé par Skuzmitoo « uml ou autre », afin de synchroniser les idées.
Une deuxième fois bravo
Je suis ce topic avec grand intérêt
@+

clouso007:
vu le but de se topic et de mettre en place un style de cahier des charges plus ou moins générique avec des petite personnalisation pour chacun

L'idée de départ était de proposer différentes briques (modules) tant matérielles que logicielles pour que chacun puisse ensuite les assembler selon son besoin.

Mais cette idée est probablement trop utopique et/ou demanderait de partir sur des principes généraux communs.
Très vite, au fil des discussions, nous nous sommes rendu compte qu'il était plus simple que chacun parte sur "sa" solution en échangeant et en partageant son expérience et en demandant de l'aide aux autres pour les parties qu'il maîtrise le moins.

Donc forcément les projets ont divergés, avancés à des rythmes différents, mais cela n'empêche pas l'échange et l'entre aide.

clouso007:
je vous suggère de faire un break pour synthétiser tout les idées d’une manière méthodique, comme proposé par Skuzmitoo « uml ou autre »,

Synthétiser les discussions les plus intéressantes de ce topic (et d’autres) peut assurément rendre service à plus d’un. Mais c’est un travail de fourmi, c’est le genre de tâche que je confierai dans ma structure professionnelle à un stagiaire, comme c’est le cas de projets intéressants dont personne n’a le temps de s’occuper et qui ne présente pas un enjeu trop important.

@+

Brisebee:
Mais cette idée est probablement trop utopique et/ou demanderait de partir sur des principes généraux communs.
Très vite, au fil des discussions, nous nous sommes rendu compte qu'il était plus simple que chacun parte sur "sa" solution en échangeant et en partageant son expérience et en demandant de l'aide aux autres pour les parties qu'il maîtrise le moins.

Donc forcément les projets ont divergés, avancés à des rythmes différents, mais cela n'empêche pas l'échange et l'entre aide.

Donc ce topic n’aura plus lieu d’exister car les préoccupations sont divergentes :wink: à murir

Brisebee:
C’est le genre de tâche que je confierai dans ma structure professionnelle à un stagiaire.

Je pense que cette tache revient aux initiateurs du projet vu leurs expériences dans divers domaines et vu la complexité de la modélisation, pour que les débutants comme moi peuvent l'exploiter et démarrer sur des bonnes bases :smiley:
j’attends avec impatiente le fruit de ce topic et la réactions des autres :grin:
@+

Yop BriBri,

Brisebee:
Je suis maintenant à la recherche de solutions pour, via le web :

  • pouvoir saisir et modifier des plages horaires (hh:mm)début et (hh:mm)fin
  • pouvoir modifier l'état de sorties (binaires)
  • afficher : l'état de sorties, d'entrées, des températures, des taux d'humidité, ...
  • (plus tard), stocker et exploiter (listes, courbes) des données issues de capteurs ou d'E/S.

Pour l'instant j'ai assez peu d'éléments complets (il y a pas mal d'exemples, mais rarement la partie arduino et la partie serveur web) sur le sujet de la communication avec le web.

Ah mon avis une fois cette partie plus ou moin "maitrisée" via de simple exemples sans lien spécifique à ton projet, tu pourras revenir vers celui-ci plus tard.

clouso007:
Donc ce topic n’aura plus lieu d’exister car les préoccupations sont divergentes :wink: à murir

Je dirais que les préoccupations sont les même, ce sont les solutions pour y parvenir qui sont un peux divergentes. :grin:
Enfin ici à chaque question posée par l'un donne une réponse également à l'autre ... :open_mouth:

Sinon j'essaierais de refaire une récap des différente solutions proposées vu l'avancement des un et des autres (bribri, zoro, etc) avec de zouli schémas ou diagrammes dès que j'ai le temps (ai repris une formation en électromécanique-maintenance industriel :grin:)

osaka:
Ah mon avis une fois cette partie plus ou moin "maitrisée" via de simple exemples sans lien spécifique à ton projet, tu pourras revenir vers celui-ci plus tard.

Oui, c'est bien ce que j'ai essayé de faire, mais j'ai pas mal pataugé, et ton aide va me permettre d'avancer. Encore merci !

osaka:

clouso007:
Donc ce topic n’aura plus lieu d’exister car les préoccupations sont divergentes :wink: à murir

Je dirais que les préoccupations sont les même, ce sont les solutions pour y parvenir qui sont un peu divergentes. :grin:
Enfin ici à chaque question posée par l'un donne une réponse également à l'autre ... :open_mouth:

C'est exactement cela !
Faire un projet complètement modulaire, qui correspondrait à tout le monde impliquerait d'une part l'écriture d'un cahier des charges unique qui satisfasse tout le monde, d'autre part une coordination (et non pas une collaboration) qui n'est possible que dans les structures hiérarchisées, avec un vrai chef de projet, qui prend les décisions, et que tout le monde met en oeuvre.
Or ce n'est pas possible dans le cadre ou nous nous trouvons qui est celui de l'échange et de l'entraide.

osaka:
ai repris une formation en électromécanique-maintenance industriel :grin:

Super ! Ainsi tu seras également compétent sur la partie matérielle, et notamment les parties opératives et l'électronique de puissance.
Tu maîtriseras ainsi toute la chaîne.

@+

Brisebee:
Super ! Ainsi tu seras également compétent sur la partie matérielle, et notamment les parties opératives et l'électronique de puissance.
Tu maîtriseras ainsi toute la chaîne.

Toute la chaîne de production. :grin:
Ah mon avis je serais encore très loin d'atteindre votre niveau, mais j'espère m'en approcher. :*
D'un côté c'est vous (bribri, zoro, ...) qui m'avez donné envie de prendre cette direction. :wink:
http://www.tfindustrie.be/formations_longues.php?idfl=21

Salut Osaka,

Ca a l'air très complet comme formation.
Tu as déjà commencé ?

@+

Bonjour à tous,
Je profite de la discution autour d'xpl pour vous indiquer l'ouverture d'un projet xPL.Arduino : xPL.Arduino | Connecting Stuff
C'est une implémentation du protocole xPL (une partie du moins) pour arduino. La librairie est indépendante du shield ethernet utilisé.

C'est une première version donc surement pas optimisée (elle prend pas mal de place et de ram). Il n'y a pas eu de recherche dans ce sens pour l'instant car je l'utilise sur un arduino mega (qui me sert dans mon projet domotique) sans trop de soucis.

Elle est basée sur le premier parseur xPL que gromain avait publié (il me corrigera si je me trompe?).
Voila, si ça peut donner des idées ou aider ?
bonne journée.

Brisebee:
Ca a l'air très complet comme formation.
Tu as déjà commencé ?

Yop Bribri,
Oui j'ai commencé il y a une semaine. :grin:

olebrun:
(elle prend pas mal de place et de ram)

On a discuté de xpl 2,3 fois dans le topic (voir la page précédente), pour ma part je ne l'utiliserais pas pour les raisons que tu sites.
Je préfère rester dans le seul langage que nos machines comprennent (binaire) puisqu'aux final c'est à eux que s'adresse le(s) message(s) et non à nous ...
:wink:

On a discuté de xpl 2,3 fois dans le topic (voir la page précédente), pour ma part je ne l'utiliserais pas pour les raisons que tu sites.
Je préfère rester dans le seul langage que nos machines comprennent (binaire) puisqu'aux final c'est à eux que s'adresse le(s) message(s) et non à nous ...

J'ai cru comprendre en lisant les posts précédants :wink: . Malgré ce petit problème, je pense que le confort que cela apporte vaut largement la place perdu. Il faut peut etre avoir déjà tout un système pensé autour d'xPL pour en voir les avantages ?

olebrun:
Malgré ce petit problème, je pense que le confort que cela apporte vaut largement la place perdu.

Le problème c'est que confort il n'y en a aucun, lourd en mémoire, lourd en traitement, ...
Le seule avantage que j'y vois c'est en temps de développement "facilement" accessible aux débutants puisqu'on n'a plus qu'à ce concentré sur les données (chaines de caractères lisible pour les humains), mais aucun avantage en ce qui concerne mon(nos) projet(s) bien spécifique ici.
(je n'ai que 16k en mémoire programme et 1k de sram sur mes 168 encore moin si je prend des attiny :sweat_smile:)

olebrun:
Il faut peut etre avoir déjà tout un système pensé autour d'xPL pour en voir les avantages ?

Oui puisque à la base XPL est prévu justement pour l’interconnexion entre systèmes différents, ce qui n'est pas le cas ici puisqu'il s'agira d'un seul système à tout faire.

On trouvera plus facilement le public auquel il est destiné ici TouteLaDomotique.com : la maison connectée au meilleur prix .
Un petit peux de pub pour ton poste. :grin:

Je t'avoue que je n'ai pas lu tout le post, donc je ne connais pas tous les tenants et aboutissants du projets mais j'ai eu, il me semble, le meme genre d'approche depuis 2ans pour la réalisation du mon système domotique (basé aussi sur arduino) et c'est pour ça que je me permets d'insister :wink: (tu vas utiliser xPL oui !! XD ... apres j'arrete. Tu dis qu'il s'agit ici "d'un seul système à tout faire", mais j'ose imaginer qu'il va devoir/pouvoir interragir avec le reste du monde ? un matériel existant ? une IHM au moins ? c'est pour cela que xPL existe.

Après forcement sur un atmega168, meme au chausse pied ça rentrera difficilement :slight_smile: ... quoique la partie émission elle reste simple.
Bonne soirée

olebrun:
Je t'avoue que je n'ai pas lu tout le post, donc je ne connais pas tous les tenants et aboutissants du projets

Pour résumer mon projet d'à moi, quelque post tirés de ce topic.

une discussion sur xpl :grin:

olebrun:
(tu vas utiliser xPL oui !! XD ... apres j'arrete.

Naaannnnnn. =( :grin:

olebrun:
Tu dis qu'il s'agit ici "d'un seul système à tout faire", mais j'ose imaginer qu'il va devoir/pouvoir interragir avec le reste du monde ? un matériel existant ? une IHM au moins ? c'est pour cela que xPL existe.

Vivi l'interfaçage est prévu :sweat_smile:, de ce point de vue là je me tourne vers interface web (html, javascript, websocket, ...) et toujours le même protocole binaire.

olebrun:
Après forcement sur un atmega168, meme au chausse pied ça rentrera difficilement :slight_smile: ... quoique la partie émission elle reste simple.

Ma solution rentre dans un attiny2313 (2ko de mémoire programme sans compté le bootloader) :grin: .

olebrun:
Bonne soirée

:wink: