MySensors

Vous souhaitez une évolutions de Yadoms, un nouveau plugin, un nouveau widget ? Faites-nous en part ici
nevaram
Messages : 15
Enregistré le : 21 décembre 2017, 19:24

MySensors

Message par nevaram »

Bonjour,

Je voudrais commencer par vous féliciter pour la qualité du code et de la doc, je n'ai pas encore installé quoi que se soit mais j'ai lu tout le wiki et quelques exemple de plugins, tout est super propre.

afin que je puisse faire la grande migration, avez-vous envisagé d'implementer https://www.mysensors.org/ ?
Avatar du membre
sgallou
Messages : 128
Enregistré le : 25 avril 2017, 09:56

Re: MySensors

Message par sgallou »

Bonjour,

tout d'abord merci pour vos compliments, on attache effectivement beaucoup d'importance à la documentation, car nous souhaitons créer une communauté de développeur pour enrichir Yadoms.

Nous avons plein de projets d'évolutions (support de matériels, amélioration du client web...), et malheureusement le temps nous manque pour tout faire. Je ne connais pas bien encore MySensors, mais il semble être dans la philosophie de Yadoms. Nous sommes donc favorables à son intégration dans Yadoms, mais nous pourrons y contribuer (au moins avant un bon moment).
Cependant, si vous souhaitez développer le plugin nécessaire, soyez assurés de notre soutien et de notre disponibilité pour répondre à vos questions.

Par curiosité, quelle est votre installation aujourd'hui ? Quels types de capteurs/actionneurs utilisez-vous ?

Sébastien Gallou
nevaram
Messages : 15
Enregistré le : 21 décembre 2017, 19:24

Re: MySensors

Message par nevaram »

Bonjour,

Merci pour votre réponse. J'imagine la charge de travail pour un projet comme celui-ci, vous avez une roadmap à présenter pour qu'on sache ce qu'on peut attendre ou non?

Je vais voir si je trouve le temps de faire qqch, peut être commencer par un plugin simple simple.

Je me demandais, pourquoi avoir fait le choix de c++ pour le serveur ? de python pour les scripts et ko pour le client (ce n'est pas un reproche :))?

Pour pour l'installation:
  • RFX-Com
    • Volets roulants Somfy
    • Station météo Oregon
    • Prises télécommandées (Lidl)
    • Motorisation de portail Somfy
    • Siren extérieur MD-214R
  • MySensors
    • modem téléinfo
    • Capteur sur la boite aux lettre
    • Relais pour la chaudière et la VMC
  • ZWave
    • Un wall plug que je déplace selon les besoins soit de mesure soit d'actionneur
    • Des yeux fibaro pour les capteurs de présence
    • un Mini Keypad
    • une siren intérieur Aeotec
    • Deux têtes thermostatiques fibaro (pas encore installées)
Avatar du membre
sgallou
Messages : 128
Enregistré le : 25 avril 2017, 09:56

Re: MySensors

Message par sgallou »

Bonjour,

belle installation !

Concernant la roadmap, rien n'est vraiment écrit (les priorités peuvent être amenées à être modifiées suivant les besoins), mais voici nos développements prévus :
Yadoms :
  • Ajouter un gestionnaire d’événements sur l'interface web : affichage des événements depuis la dernière connexion au client web tel que les devices détectés, les erreurs possibles, les mises à jour disponibles, etc...
  • Mise en place d'un gestionnaire de dépendances (probablement Conan) pour faciliter la mise en place d'un nouvel environnement de développement sur une nouvelle machine (plus besoin de recompiler les libs et les API Yadoms)
  • Création d'un SDK pour faciliter la vie aux développeurs de plugins
  • Création d'un magasin de règles d'automatisation (pouvoir télécharger des règles, rendre ses règles paramétrables, partager des règles)
  • Fonction de restauration d'un backup
  • Et bien d'autres choses encore...
Plugins :
  • WebData (nom provisoire) : permettant de récupérer des données web pour tous services web tels que Netatmo, Nest, Pioupiou...
  • WakeOnLan : permettant de réveiller une machine du réseau local
  • Modbus : support des équipements électriques dialoguant en Modbus
  • Zigate : Support de la passerelle Zigbee
  • Exclusivité ;-) : Le plugin RFXCom aura une évolution (qui sera publiée en janvier en principe) qui permettra de flasher le RFXCom depuis le client web
Widgets :
  • MultiStatesDisplay : affichage d'une valeur énumérée, soit sous forme de texte, soit sous forme d'icône, soit sous forme de couleur
  • Wind : affichage du vent (direction, moyenne sur une période, rafale sur une période)
Cette liste n'est pas figée, nous sommes à l'écoute de toute demande, et chacun est libre de créer son plugin/widget et de le partager (ou pas !).

Les plugins WebData et Modbus sont des plugins complexes. Le plugin WakeOnLan est un plugin simple, bien adapté à un premier développement.

Ensuite, à propos de nos choix techniques :
Le serveur en C/C++ (C++11 et 14) : pour les performances, le support cross-plateform, et la pérennité. Typiquement, je pense que votre installation (avec une dizaine de règles) pourrait tourner sur une Pi0w sans difficulté.

Python pour les scripts : Python est un langage abordable (souvent cité pour débuter en développement), riche (beaucoup de libs dispos), et avec une grande communauté.
L'architecture de Yadoms permet de créer d'autres interpréteurs de script, on peut donc tout-à-fait imaginer avoir un jour des règles en Python qui cohabiteraient avec des règles en Lua, Perl, JS, voire même compilées (règles en C ou C++), sur une même installation.

Client Web : nous utilisons un certains nombre de librairies JS, dont KO effectivement. Je ne saurai vraiment le justifier, je ne suis pas spécialiste de cette partie. Mais l'idée à terme serait de refaire ce client en Angular pour être plus responsive et mieux gérer les clients mobiles (smartphones/tablettes).

En espérant avoir répondu à vos questions,

Sébastien
nevaram
Messages : 15
Enregistré le : 21 décembre 2017, 19:24

Re: MySensors

Message par nevaram »

Salut,

Merci pour ces réponses très intéressantes.

J'ai commencé de regarder pour installer l’environnement de dev, et je pense que le SDK sera bien utile :)
Avatar du membre
sgallou
Messages : 128
Enregistré le : 25 avril 2017, 09:56

Re: MySensors

Message par sgallou »

Oui, je reconnais, il y a pas mal de dépendances à installer /générer.
Promis, on va y travailler...
Avatar du membre
sgallou
Messages : 128
Enregistré le : 25 avril 2017, 09:56

Re: MySensors

Message par sgallou »

En fait, j'ai plus simple pour vous. Vous pouvez utiliser les versions que nous avons compilé pour le serveur d'intégration continue.
Vous n'aurez ainsi qu'à dézipper les fichiers de la liste suivant, et passer directement à l'étape de génération de Yadoms.

Donc téléchargez ces fichiers et les dézipper : Créer le fichier Yadoms/sources/CMakeListsUserConfig.txt (à partir du fichier CMakeListsUserConfig.sample.txt) pour y indiquer les chemins vers les libs que vous venez de télécharger.

Suivre ensuite la dernière étape du wiki.

En espérant que ce soit plus simple,

Sébastien
nevaram
Messages : 15
Enregistré le : 21 décembre 2017, 19:24

Re: MySensors

Message par nevaram »

Bonjour,

Désolé pour le temps de réponse, je n'ai pas eu le temps de tester avant.

J'ai suivi les instructions,mais j'ai une errreur:

Code : Tout sélectionner

10>Generating swigpyrun.h
9>LINK : fatal error LNK1104: cannot open file 'libcrypto.lib'
16>LINK : fatal error LNK1104: cannot open file 'libcrypto.lib'
9>Done building project "MailSender.vcxproj" -- FAILED.
16>Done building project "freeMobileSms.vcxproj" -- FAILED.
18>XplServiceTask.obj : error LNK2019: unresolved external symbol "public: class Poco::Net::IPAddress const & __thiscall Poco::Net::NetworkInterface::firstAddress(enum Poco::Net::AddressFamily::Family)const " (?firstAddress@NetworkInterface@Net@Poco@@QBEABVIPAddress@23@W4Family@AddressFamily@23@@Z) referenced in function __catch$?sendMessage@CXplServiceTask@xplcore@@QAEXABVCXplMessage@2@@Z$2
18>C:\OpenSSL\lib\VC\static\ssleay32MTd.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
18>C:\OpenSSL\lib\VC\static\libeay32MTd.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
18>D:\Workspaces\cpp\yadoms\builds\DEBUG\plugins\RfxLanXpl\RfxLanXpl.exe : fatal error LNK1120: 1 unresolved externals
18>Done building project "RfxLanXpl.vcxproj" -- FAILED.
10>python27.lib(python27.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86'
10>Done building project "_yScriptApiWrapper.vcxproj" -- FAILED.
30>LINK : fatal error LNK1104: cannot open file 'libcrypto.lib'
30>Done building project "yadoms.vcxproj" -- FAILED.

Je me disait, plutôt que de setuper cet environnement qui me semble assez lourd, est-ce que vous pourriez fournir une VM pré configurée.
Avatar du membre
sgallou
Messages : 128
Enregistré le : 25 avril 2017, 09:56

Re: MySensors

Message par sgallou »

Bonjour,

La compilation ne chercher pas les bonnes librairies de OpenSSL. Il faut savoir que les librairies OpenSSL ont été renommées en v1.1.0 (au moins pour Windows).
Nous utilisons ici une version antérieure à OpenSSL 1.1.0, le fichier libcrypto.lib n'existe donc pas.
Auriez-vous une autre version d'OpenSSL (>= 1.1.0) installée quelque part et/ou dont le chemin serait dans le PATH ?
Sinon il conviendrait de contrôler les chemins où Visual Studio cherche les libs. Par exemple sur le projet "yadoms", faire clic-droit / prorpiétés, puis aller dans "Editeur de liens" / "entrée", et afficher les "Dépendances supplémentaires", et vérifier les chemins vers OpenSSL, qui doivent ressembler à :
{Répertoire_installation_openSSL}\lib\VC\static\ssleay32MTd.lib
{Répertoire_installation_openSSL}\lib\VC\static\libeay32MTd.lib

Pour l'environnement de développement, plutôt qu'une VM, on préférerait mettre en place un gestionnaire de paquets tel que Conan.io, ce qui sera nettement plus facile à maintenir et pourra être utilisé sur n'importe quelle plateforme. Ça permettrait également de ne pas être ralenti par la virtualisation (pénalisant en développement, les IDE/compilateurs ont besoin de ressources).
L'idée serait que le développeur n'aurait qu'à tirer les sources de Yadoms, puis lancer le build, et au premier build toutes les dépendances seraient automatiquement téléchargées (et lorsqu'une dépendance change elle serait mise à jour).

Sébastien
nevaram
Messages : 15
Enregistré le : 21 décembre 2017, 19:24

Re: MySensors

Message par nevaram »

C’était effectivement ça.

Tout semble fonctionner, je vais pouvoir essayer de faire un plugin simple. Dois-je démarrer sur master ou sur une autre branche ?

Merci encore.
Répondre