La section « développeur » m’étant fermé, je poste ici dans un premier temps.
Je viens de passer quelques heures à lire des ressources, et je ne trouve pas une version « up to date » d’un template de plugin.
Bien sûr, je vois plein de repo de plugin, et en m’inspirant, je devrais arriver à faire quelque chose.
Je voulais simplement m’assurer qu’il n’y avait pas de guideline 100% à jour.
De plus, au delà du développement en lui-même, le process pour le faire me semble flou.
Autant, j’ai pu ajouté un plugin via un repo github, et je vois l’option « fichier », mais je me vois mal faire un commit / upload pour chaque tests.
Quelle est la bonne pratique ? Se connecter en ssh ?
Bref, si d’une manière générale, vous avez des pistes pour m’aiguiller, je suis preneur.
Etant moi-même passé par la même case que vous, je ne peux que comprendre votre désarroi. La page de doc pour Développeur (et tous les liens qu’elle contient) et ce community sont les seules ressources disponibles. Il faut rechercher comment fonctionnent les scripts en relisant le code (quasi non commenté) du core.
Grâce à Jeedom, je suis devenu un spécialiste de github !
Le plugin template est une aide utile. Vous trouverez un lien vers le dépôt github dans la doc.
Personnellement, j’ai installé samba et partagé le répertoire /var/www/html pour avoir accès aux fichiers sur ma VM de développement. Il me semble que la procédure est expliquée dans la doc quelque part, sinon ça se fait facilement à l’aide de google en faisant attention aux droits (tout doit être fait en tant que www-data).
J’utilise github Desktop, simple, fonctionnel et largement suffisant en complément de ce qu’on peut faire sur le site même de github. VScode intègre aussi un client git utile pour les fonctions simples.
C’est décourageant, c’est long à assimiler, mais certains gourous (au sens positif du terme) de cette communauté vont vous aiguiller. Parfois les réponses sont rustres, il ne faut pas y faire attention et surtout ne pas mal réagir. Ces gourous répondent à plein de posts et font du dev (gratos) pour que Jeedom soit et reste un bon produit. Malgré tout, ils prennent le temps de répondre aux questions de débutants. La communication n’est pas optimale, la présence de la team Jeedom est marginale sur ce community (et c’est volontaire puisqu’il existe les tickets de support) mais on arrive à s’en soritr, tant bien que mal.
Donc tout n’est pas rose, mais bizarrement, je n’ai absolument pas (encore ?) envie d’aller voir ailleurs, sans doute une forme de masochisme…?
Pour l’accès à la section développeur, il faut en faire la demande (lien dans la doc) et/ou demander l’accès à un mainteneur du community.
Bonjour,
Michel_F et Shunt84 ont tout dit, je dirai.
Je rajouterai :
mais je me vois mal faire un commit / upload pour chaque tests.
Je me suis fait une VM de test avec Jeedom dessus.
Je bosse via Visual Studio sur mon PC qui se connecte en SSH sur cette VM.
L’idée du partage de répertoire doit marcher aussi.
Tu testes le plugin sur ton environnement de dev.
Une fois que cela semble ok, tu commites/push sur Github. J’utilise aussi Github Desktop, parce que c’est la foire dans mon VS Code.
Et là, tu peux faire en sorte que ton plugin soit disponible sur le market, en mode privé et béta pour débuter. Et sur ton environnement de prod, tu peux installer ce plugin et l’utiliser un peu plus, le tester en vrai.
Pour faire un plugin, le template est un début, mais léger.
Commence avec ça, puis regarde comment sont faits les autres plugins.
La partie save et la partie execute au début.
Concernant la doc dev, je suis aussi passé par là, je n’ai pas trouvé ca particulièrement insurmontable mais quelques points m’ont manqués à l’époque… et du coup je les ai ajouté dans la doc (ca doit contribuer à ce qu’elle soit imbuvable )
bref, tout ca pour dire que perso je veux même bien prendre du temps pour documenter plus de chose mais chaque fois qu’il y a ce retour de manque de doc (comme le tien), je demande ce qui n’est pas clair et puis plus de réponse… donc pas facile d’apporter des éclaircissements
y a pas mal de questions/réponses dans la section dev, hésites pas à faire un tour: Aide Programmation - Communauté Jeedom
et essayes d’avoir ton compte dev pour poser des questions là-bas, j’ai mis la catégorie en surveillance donc perso je répond assez vite (quand je sais)
Moi j’utilise vscode avec déploiement auto sur mes jeedom de dev (plusieurs par branch du core et version debian) à chaque save (c’est le plus rapide) mais je peux aussi faire du remote debug (que je n’active pas en permanence pcq je ne trouve pas ca assez réactif); donc non bien sur pas de commit pour chaque test.
Ha, les bons outils font le bon forgeron, aujourd’hui avec les outils modernes on peut débugguer PHP en pas à pas, et même directement sous windows, avec VS code + Docker Desktop, mais c’est un peu lourd à installer je reconnais…
Par contre, en théorie mais j’ai pas encore réussi à le faire, on peut connecter de démon debug du VSCode sur une installation distante aussi, ça permet de débugguer en pas à pas depuis chez toi sur ton VSCode en local, sur un Jeedom installé sur - par exemple - un RPI sur lequel on se connecte en ssh.
Si ton plugin utilise node, la version consentie actuelle par tous les développeurs est la 18.
Si tu veux l’installer tu as deux méthodes :
Utiliser packages.json (avec s !) qui peut le faire pour toi, mais s’il y a des problèmes les logs sont moyens. (C’est moi qui l’ai mise dans le core)
J’ai fait un script de déploiement avec un formatage sympa en plus et des corrections des problèmes communs d’installation. Contacte moi si besoin.
Refaire par toi même mais je conseille pas, c’est pas un env de prod classique, tous les plugins partagent le même Nodejs donc tricky de lancer des suppressions de cache ou utiliser une autre version que l’actuelle (18 donc) ou de jouer avec nvm
PHP ne fait pas tout, il n’est que backend… Pour tout ce qui touche à l’interface c’est javascript, donc maintenant node (qui remplace jQuery on va dire) (mais j’avoue c’est pas clair pour moi encore)
Node aussi est utilisé pour les Frontend, par ailleurs, en tout cas dans mes projets pro, et du coup je m’étonne qu’on n’ai pas utilisé node ici pour remplacer jquery … il y a des choses qui ne s’expliquent pas.
node peut être utilisé pour packager le code js qui sera executé coté frontend mais il n’execute pas lui le code coté frontend, il sert plus de package builder dans ce cas
et ce n’est donc absolument pas un remplaçant de jquery (ni tout autre lib js)
côté Frontend c’est Angular, et c’est du node aussi. Ou du typescript plutôt. Enfin, pour moi tout ça c’est pareil ce n’est que des surcouche de javascript donc au final utilisable partout, backend ou frontend, c’est l’avantage.
Non… Il faut différencier le langage du framework.
Un code Nodejs ou jquery ou ReactJS ou Angular ou vuejs ne sont pas interchangeables ! Leurs synthaxes de base initiale (les if, les boucles, etc) est la même mais ils ont des buts différents (backend (démon par exemple), frontend (page web par exemple), mobile, etc) et même si leurs buts est le même la conception est différente… et ils utilisent des librairies specifiques pour leur but et leur conception.
C’est un peu comme un ingénieur civil ne serait pas compris par un boulanger et inversement, même langue mais pas le même vocabulaire et parfois une grammaire même différente (typescript/javascript).