Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[HOW TO] Création de plugin

Cette partie est dédiée à la programmation sur le logiciel JEEDOM
Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 19 mars 2019, 18:17

Super tuto,
ça fait un moment que j'ai pleins d'envie de plugin, jusqu'a present je m'en suis toujours sortie avec des virtuels bien crade et bien complexe, c'est peut etre le moment que je change ça :)

Par contre il y a un point que tu n'abordes pas et sur lequel je ne trouve pas vraiment d'info, c'est celui de l'environement de travail. Comment tu edites tout ça, comment tu envoie tes modifs sur ta box, etc...

Pour la toute premiere etape de ton tuto, j'imagine qu'on peut editer tout ça tranquille sur son PC, puis envoyé tout ça sur la box en ssh ou ftp? Mais aprés? Tu travail toujours sur ton PC et tu ecrases tout a chaque version? Tu as un petit script qui va bien? Tu arrives à editer directement sur ta box? Si oui comment, avec quel logiciel?Je n'ai pas trouvé d'interface d'edition de plugin dans Jeedom (comme pour le plugin script), mais je suis peut etre passé à coté de quelque chose. Et quid du versioning?

Bref, il est toujours possible de se debrouiller, mais j'aimerais connaitre les best practice de ceux qui ont l'habitude developper des plugins, comment vous poussez vos modifs sur votre box, comment vous attrapez les erreurs de syntax/compilation avant, etc...

Avatar de l’utilisateur
fensoft
Actif
Messages : 1314
Inscription : 07 mai 2015, 11:26

Re: [HOW TO] Création de plugin

Message par fensoft » 19 mars 2019, 19:50

j'édite avec winscp couplé à notepad++
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)

ZygOm4t1k
Actif
Messages : 1702
Inscription : 08 sept. 2014, 20:52

Re: [HOW TO] Création de plugin

Message par ZygOm4t1k » 19 mars 2019, 21:03

J'ai créé un partage samba , mis le bon droit des fichiers et c'est bon. J’édite direct sur la box de développement.
Il y a le plugin développement mais faut pas se louper à distance pour conserver l'accés et éditer.
Oui souvent sur mon pc et git permet de gérer les versions.
Si une erreur tu le sais tout de suite et peux récupérer tout de suite

peofofo
Timide
Messages : 243
Inscription : 05 mai 2015, 22:45

Re: [HOW TO] Création de plugin

Message par peofofo » 20 mars 2019, 15:30

Bonjour,
J'ai quelques questions:
Quelle méthode est appelé lors de l'appuie sur tester dans la partie commande de l'équipement?
Je n'arrive pas à mettre à jour la valeur
Lorsque je sauvegarde l’équipement, j'ai une erreur 500:
La méthode start() est appelé à quelle moment?

Merci ;)

Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 20 mars 2019, 18:32

J'ai créé un partage samba , mis le bon droit des fichiers et c'est bon. J’édite direct sur la box de développement.
Il y a le plugin développement mais faut pas se louper à distance pour conserver l'accés et éditer.
Oui souvent sur mon pc et git permet de gérer les versions.
Si une erreur tu le sais tout de suite et peux récupérer tout de suite
Tout betement :) Le seul soucis c'est qu'on ne peut pas developper en remote mais uniquement depuis son reseau local.
C'est quoi le plugin developpement dont tu parles?

ZygOm4t1k
Actif
Messages : 1702
Inscription : 08 sept. 2014, 20:52

Re: [HOW TO] Création de plugin

Message par ZygOm4t1k » 20 mars 2019, 20:10

recherche outilsdev sur le market

Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 20 mars 2019, 21:10

J'étais effectivement tombé dessus lors de ma recherche mais ce n'est pas un plugin officiel, il n'est plus mis à jour depuis 2017, et plus aucun lien ne fonctionne (doc, forum, etc...), du coup j'ai fait demi tour :)

Je viens quand meme de l'installer, ça n'a pas l'air mal en fait, ne serais que pour fouiller dans le code source des plugins qu'on a installé.
Il y a le plugin développement mais faut pas se louper à distance pour conserver l'accés et éditer.
Tu peux developper? Je ne suis pas sur de comprendre le risque dont tu parles.

jpty
Timide
Messages : 333
Inscription : 01 juin 2018, 10:54
Localisation : Nancy

Re: [HOW TO] Création de plugin

Message par jpty » 20 mars 2019, 22:46

Pierre_ a écrit :
20 mars 2019, 21:10
J'étais effectivement tombé dessus lors de ma recherche mais ce n'est pas un plugin officiel, il n'est plus mis à jour depuis 2017, et plus aucun lien ne fonctionne (doc, forum, etc...), du coup j'ai fait demi tour :)

Je viens quand meme de l'installer, ça n'a pas l'air mal en fait, ne serais que pour fouiller dans le code source des plugins qu'on a installé.
Il y a le plugin développement mais faut pas se louper à distance pour conserver l'accés et éditer.
Tu peux developper? Je ne suis pas sur de comprendre le risque dont tu parles.
Je peux répondre pour les risques puisque je viens d'avoir un problème avec une accolade oubliée.
Le résultat de cet oubli est une page blanche dans Jeedom.
Le fichier log/http.error contient bien cette erreur mais pas facile d'y accéder en partant d'une page blanche. Le .htaccess empêche l’accès direct.
Si vous utilisiez un plugin pour éditer un code source, page blanche aussi et donc plus d'édition possible et donc pas de possibilité de correction.
Il ne reste que l’accès ssh.

J'ai utilisé elfinder ( https://studio-42.github.io/elFinder ) dans un onglet du navigateur indépendant de Jeedom.
C'est la partie parcours de l'arborescence des fichiers de Jeedom, pour modification, suppression.
C'est ce qui est utilisé dans le plugin outilsdev mais dans une version plus récente et moins buggée.

J'utilise maintenant samba installé sur ma Smart Jeedom pour parcourir les fichiers avec l'explorateur de fichier Windows.

Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 20 mars 2019, 23:38

Effectivement, ça parait fébrile, je vais me contenter de l'utiliser pour fouiller dans le code source des plugins :)

J'ai trouvé un plugin ftp pour PyCharm (un IDE que j'utilise deja pour faire un peu de Python), si j'ai bien compris il permet d'uploader tous les fichiers sur un serveur FTP, ça devrait faire le job et me permettre de bosser à distance. Avec l'integration git je devrais avoir un bon point de depart pour bosser tranquillement :)

Il ne me restera plus qu'a trouver un moyen pour remonter le fichier log/http.error dans PyCharm puisque si j'ai bien compris c'est lui qui contiendra toutes mes erreurs de "compilation"

Mips2648
Actif
Messages : 932
Inscription : 08 sept. 2018, 17:09

Re: [HOW TO] Création de plugin

Message par Mips2648 » 20 mars 2019, 23:56

Perso, j'utilse vs code avec les extensions suivantes (entre autre) :
- php intellisense: pas besoin d’expliquer je pense, intellisense, vérification syntaxique, linter
- deploy (reloaded): ca c'est top -> tu peux setup l'extension pour upload les fichiers en sftp, soit en manuel, soit en auto dès qu'un fichier est sauvé, soit lors d'un commit git etc

autre extensions sympa (dans le contexte jeedom):
- bracket pair colorizer
- gitlens
- markdown lint (un linter pour markdown donc)
- markdown preview
Développeur et auteur des plugins suivants, (entre autre Arlo, Solaredge, Design Image, Gotify...) et aidant sur plein d'autres!

Si vous voulez contribuer, un don fait toujours plaisir : https://paypal.me/mips2648

Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 21 mars 2019, 11:02

Ca ne m'avait meme pas traversé l'esprit que VS Code était dispo sur mac os, ça me plait encore plus :)
Et ton extension deploy à l'air parfaite!

Du coup tu arrives à récuperer le log/http.error dans la solution ou tu t'en passes?

Le markdown c'est pour quoi par contre?

Mips2648
Actif
Messages : 932
Inscription : 08 sept. 2018, 17:09

Re: [HOW TO] Création de plugin

Message par Mips2648 » 21 mars 2019, 11:55

Je ne récupère pas le http.error mais cela doit être possible, j'avoue j'avais pas creusé cette question.
j'ai un tab ouvert sur ce log généralement en // de mon tab pour tester, mais j'y regarderai à l'occas ca peut etre intéressant.

markdown c'est donc le format pour la documentation;
- markdown preview (github style) pour avoir le preview comme si c'était généré sur github -> dès que tu tapes du texte dans ton fichier markdown tu vois le résultat html
- markdownlint pour voir les problèmes de syntaxes et suivre les conventions de formatage, intellisense etc
Dernière édition par Mips2648 le 21 mars 2019, 13:27, édité 2 fois.
Développeur et auteur des plugins suivants, (entre autre Arlo, Solaredge, Design Image, Gotify...) et aidant sur plein d'autres!

Si vous voulez contribuer, un don fait toujours plaisir : https://paypal.me/mips2648

Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 21 mars 2019, 13:25

markdown c'est donc le format pour la documentation;
Oh ok, je n'en suis pas encore la :)

Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 21 mars 2019, 14:29

Je me suis lancé dans le "grand remplacement" et quand j'arrive sur desktop/php/template.php il y a pleins de chaines que tu demandes de remplacer qui ne sont pas présente comme

{{Ajouter un template}} ou <legend>{{Mes templates}}</legend>

En creusant un peu, j'ai l'impression que le desktop/php/vdm.php de ton plugin est trés different de celui du template, comme si le template avait changé depuis le début de ton tuto.

Les chaines entre double accolade correspondent à quoi du coup? On dirait les chaines de caracteres utilisé dans l'interface, mais pourquoi sont elles du format {{machaine}} au lieu de "machaine" ? (désolé si c'est une question debile, mais le php/html c'est pas mon truc)

Edit : my bad, tu l'expliques plus tard :
Important : Le texte entre accolades correspond au texte qui sera traduit si vous poussez le plugin sur le market

Avatar de l’utilisateur
fensoft
Actif
Messages : 1314
Inscription : 07 mai 2015, 11:26

Re: [HOW TO] Création de plugin

Message par fensoft » 28 mars 2019, 15:12

vraiment, l'édition dans winscp est pratique (besoin de rien configurer => juste choisir l'ip de jeedom, mettre SCP et rentrer root + password)
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)

Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 01 avr. 2019, 10:54

vraiment, l'édition dans winscp est pratique (besoin de rien configurer => juste choisir l'ip de jeedom, mettre SCP et rentrer root + password)
Il se trouve que je suis sur Mac, et avec un nom comme "winscp" quelque chose me dit que ça ne va pas etre possible :) Mais j'aime beaucoup le workflow qu'a proposé Mips à base de VS Code et son plugin Deploy.

Par conte en me connectant en sftp avec l'user pi, j'ai des problemes d'accés en ecriture au repertoire plugins. Je fixe ça a coup de "sudo chmod -R 777 plugins". Mais je reperds l'accés quelques jours plus tard (probablement quand je met à jour les plugins, mais je ne suis pas sur).

Quelqu'un a quelque chose de plus propre à proposer?

Avatar de l’utilisateur
fensoft
Actif
Messages : 1314
Inscription : 07 mai 2015, 11:26

Re: [HOW TO] Création de plugin

Message par fensoft » 01 avr. 2019, 11:39

Perso, je me sert de WinSCP via Wine sur MAC. Par contre l'intégration avec notepad++ fonctionne pas très bien dans ce cas, donc je reste sur l'éditeur de base.
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)

jpty
Timide
Messages : 333
Inscription : 01 juin 2018, 10:54
Localisation : Nancy

Re: [HOW TO] Création de plugin

Message par jpty » 01 avr. 2019, 11:50

Pierre_ a écrit :
01 avr. 2019, 10:54
Quelqu'un a quelque chose de plus propre à proposer?
Ajouter l'user pi au groupe www-data pour que l'user pi ait les mêmes droits que www-data
Je le fais en éditant /etc/group mais adduser utilisateur groupe le fait aussi.

Code : Tout sélectionner

sudo adduser pi www-data
health.sh reset les protections en 775

Pierre_
Timide
Messages : 27
Inscription : 14 mars 2017, 11:51

Re: [HOW TO] Création de plugin

Message par Pierre_ » 01 avr. 2019, 12:14

Du coup, j'imagine que je peux aussi faire quelque chose du genre

Code : Tout sélectionner

sudo adduser piDev www-data
Histoire de ne pas toucher a l'utilisateur pi et de limiter les risques, ou je risque d'avoir d'autres soucis de droit avec ce nouvel user (genre mon plugins avec les droits pour piDev et non pi)?

jpty
Timide
Messages : 333
Inscription : 01 juin 2018, 10:54
Localisation : Nancy

Re: [HOW TO] Création de plugin

Message par jpty » 01 avr. 2019, 12:31

Jeedom utilise via apache l'user www-data
Tous les fichiers de Jeedom appartiennent à www-data:www-data. Ils sont tous en 775. Voir les chown -R et chmod -R dans health.sh
Sans être dans le group www-data l'user pi n'a pas le droit d'écriture des fichiers (5).

Que font pi et piDev sur votre Jeedom?

Répondre

Revenir vers « Développements sur Jeedom »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités