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_ » 01 avr. 2019, 13:22

Que font pi et piDev sur votre Jeedom?
pi, c'est l'user standard que j'utilise pour me connecter en ssh (et sftp du coup).
piDev n'existe pas pour le moment, je me questionnais juste sur la pertinence de donner accés à tout à l'user pi en l'ajoutant au groupe www-data, versus créér un nouvel user pour developper les plugins que j'ajouterais à www-data

Mais je me prends surement la tête pour rien :)

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

Re: [HOW TO] Création de plugin

Message par Mips2648 » 02 avr. 2019, 10:21

Pierre_ a écrit :
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?
Salut, même soucis, c'est jeedom que reset les droits chaque nuit
L'extension prévoit de pouvoir exécuter une commande à chaque connexion via le fichier de config, je n'ai plus la syntaxe en tête mais je peux regarder un de ces soirs.
Du coup moi j'exécute le chmod par ce biais, au moins c'est automatisé.
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_ » 02 avr. 2019, 10:30

La solution de jpty je ne fonctionne pas pour toi (add user pi www-data)?

Je n'ai pas encore eu le temps d'essayer, mais elle me paraissait prometeuse :)

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

Re: [HOW TO] Création de plugin

Message par fensoft » 02 avr. 2019, 11:58

ajouter ton user au groupe www-data puis déco/reco ton ssh, c'est important !
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)

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

Re: [HOW TO] Création de plugin

Message par Mips2648 » 02 avr. 2019, 16:59

Pierre_ a écrit :
02 avr. 2019, 10:30
La solution de jpty je ne fonctionne pas pour toi (add user pi www-data)?

Je n'ai pas encore eu le temps d'essayer, mais elle me paraissait prometeuse :)
je vais essayer, j'avoue j'avais pas chercher plus loin.
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

laval.etienne
Timide
Messages : 3
Inscription : 06 août 2019, 20:29

Re: [HOW TO] Création de plugin

Message par laval.etienne » 06 août 2019, 20:47

Bonjour à tous,

Je me lance dans jeedom en remplacement de mon domoticz et j'ai pas mal de questions!

la première, je viens de me développer un petit plugin de récupération des horaires ratp grace à ce très bon tuto, mais il me reste une chose que je n'arrive pas à faire, c'est récupérer la valeur d'un paramêtre du fichier desktop.php.

voici ce que j'ai dans mon fichier:

Code : Tout sélectionner

<div class="form-group">
        <label class="col-sm-3 control-label">{{URL}}</label>
        <div class="col-sm-3">
            <input type="text" class="eqLogicAttr form-control" data-l1key="configuration" data-l2key="urlapi" placeholder="url api"/>
        </div>
et dans mon class.php:

Code : Tout sélectionner

$url = $url.$this->getConfiguration("urlapi");
mais la valeur récupérée est toujours vide!

J'ai beau chercher depuis 2 jours, je sèche.

Le Debug n'est pas évident car il ne peut pas être fait en dehors de jeedom avec toutes les dépendance de classe et d'objet ...

Merci

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

Re: [HOW TO] Création de plugin

Message par Mips2648 » 06 août 2019, 22:25

Salut,

Bienvenu :)

D'abord:
- tu cites "desktop.php" et "class.php";
cela ne suis pas la convention de nommage: tu devrais appeler ton fichier class se trouvant dans ratp/core/class: "ratp.class.php" (si l'id du plugin est bien ratp, sinon remplace par la valeur correspondante) et ratp.php pour le fichier "desktop" se trouvant dans /ratp/desktop/php
- dans ton test, je suppose que donc tu as un équipement créer, que tu as été dans la config de celui-ci et que tu as renseigné une "url api" et sauvé ton équipement? (sinon normal que ca soit vide)
(question en passant: c'est l'utilisateur qui va devoir donner l'url de l'api ??)
- pourquoi la concatenation? ($url = $url. )

Après sans plus de code, difficile de savoir ;) si t'as un lien vers ton github je peux aider ;)
par exemple, es-tu sur d'être dans une fonction ou $this est accessible?

pour debug, tu peux aussi vérifier si tu as des erreurs dans le log http.error, tes erreurs de syntaxes seront là à priori.
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

laval.etienne
Timide
Messages : 3
Inscription : 06 août 2019, 20:29

Re: [HOW TO] Création de plugin

Message par laval.etienne » 07 août 2019, 09:50

Bonjour, merci pour ce premier retour.

Effectivement j'ai juste fait au plus simple pour l'explication, et les fichier sont bien nommé (ratp.class.php ...) c'était juste pour indiquer que le getConfiguration se trouvait dans le fichier class dans la fonction "execute" (donc le $this est normalement accessible à cet endroit).

J'i bien enregistré mon équipement avec le paramètre "urlapi" renseigné, ce paramètre ne contient que la fin de l'url, le début de l'url est en dur car il ne change pas, seul la partie correspondant à la ligne, l’arrêt et la direction change c'est pour cela que j'ai la concaténation de la variable $url mais le problème ne vient pas de la.

si je met l'url complète en dur, le plugin fonctionne très bien, mon seul problème est la récupération de cette chaîne pour pouvoir créer plusieurs équipements pour plusieurs stations différentes.

Pour le débug, je suis bien allé dans les logs mais rien de particulier pour ce plugin

edit: https://github.com/bolosetienne/ratp-jeedom.git

Avatar de l’utilisateur
lunarok
Actif
Messages : 6704
Inscription : 08 août 2014, 12:48
Localisation : Anjou

Re: [HOW TO] Création de plugin

Message par lunarok » 07 août 2019, 10:41

Tu as mis le setting urlapi sur la page équipement (eqlogic) mais l'appelle via $this dans la commande (cmd)
C'est pas bon, ton paramètre est sur $eqlogic->getConfiguration("urlapi")
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas

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

Re: [HOW TO] Création de plugin

Message par Mips2648 » 07 août 2019, 10:45

laval.etienne a écrit :
07 août 2019, 09:50
Bonjour, merci pour ce premier retour.

Effectivement j'ai juste fait au plus simple pour l'explication, et les fichier sont bien nommé (ratp.class.php ...)
c'est ce que j'ai supposé mais je préférais préciser
laval.etienne a écrit :
07 août 2019, 09:50
c'était juste pour indiquer que le getConfiguration se trouvait dans le fichier class dans la fonction "execute" (donc le $this est normalement accessible à cet endroit).
la fonction execute de la commande alors ;) donc $this c'est la commande, pas l'eqlogic, voila pourquoi la config n'existe pas (et pas d'erreur car il existe aussi des config sur les commandes, juste que celle-là n'existe pas bien sur.
donc si tu t'es bassé sur le plugin template, tu as du voir un code du genre

Code : Tout sélectionner

$eqlogic = $this->getEqLogic();
et apres avoir fait ca tu peux faire

Code : Tout sélectionner

$url = $url.$eqlogic->getconfiguration('urlapi');
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

laval.etienne
Timide
Messages : 3
Inscription : 06 août 2019, 20:29

Re: [HOW TO] Création de plugin

Message par laval.etienne » 07 août 2019, 11:04

Merci ca fonctionne nickel, j'avais mal réfléchi (et ça faisait bien 10 ans que je n'avais plus fait de programmation objet!).

Une autre petite question, j'ai plusieurs commandes dans mon plugin, mais je n'arrive pas à trouver comment faire pour qu'elles soient dans un ordre défini à la création de l'équipement (par exemple je voudrais que la commande rafraîchir soir en premier lors de la création sans avoir besoin de le modifier manuellement après).

De plus cette commande rafraîchir ne fonctionne pas tout le temps sur le dashboard en mode desktop, mais pas de soucis en mode mobile, je ne vois pas d'ou cela pourrait vernie.

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

Re: [HOW TO] Création de plugin

Message par Mips2648 » 07 août 2019, 11:13

Sur la commande tu as une méthode setOrder (cf doc: https://jeedom.github.io/documentation/ ... d_setOrder)

Concernant le refresh, je ne vois pas qu'elle pourrait être la cause, je vais jeter un oeil à ton code
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

Répondre

Revenir vers « Développements sur Jeedom »

Qui est en ligne ?

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