Meilleures façons de patcher Jeedom?

Bonjour,

J’aimerai modifier certaines pièces de codes de jeedom pour coller au mieux à ma conf domotique.
exemple 1:
patch de plugins/rfxcom/resources/rfxcomd/rfxcomd.py pour
* Calcul de totalW et power1 et retourné par une sonde OWL sur une installation non triphasée
** totalW = « power1 »
** power1 = power1 - power2 -power3 (autre)
** power2 = radiateurs
** power3 = ECS
et si possible (la cerise sur le gateau)
** counter = (counter - oldCounter) * (power1 /(power1-power2-power3))

Est-ce qu’il y a une méthode préconisée ou qui a fait ces preuves pour patcher Jeedom à la suite d’un upgrade? Je suis pas une newbie en info/linux/git donc lachez vous, je ferai le tri :smiley:

Merci d’avance de vos réponse,

yofa

Salut,
Tu ne devrais pas changer le code mais ajouter des commandes ou peut être un virtuel pour recalculer tes valeurs à utiliser sur base de celles remontées par le plug-in.

2 « J'aime »

Hello,

Je ne vois qui ne puisse pas être fait nativement sans rien patcher … Si tu pars dans cette piste, tu n’as pas fini de souffrir pour réinventer ce qui n’a pas à l’être. A moins que je n’ai rien compris au besoin :slight_smile:

Regarde du coté des virtuels, voir des scripts si vraiment tu ressens le besoin irrépressible de faire du code (je doute quand même de l’interêt).

Bonjour Mips,

Je suis d’accord avec ta remarque, mais je n’arrive pas à modifier les infos que j’ajoute dans mon objet avec les données du plugin. Voici la configuration qui ne renseigne pas les valeurs de « Maison (W) » (tester = vide, testeur d’expression = correcte)

image

J’ai un autre exemple pour le widget suivant pour une multiprise


En fonction du statut, le widget image n’affiche qu’une prise et son statut.
Cela marche pour une prise appellée ON/OFF mais pas pour une mulptiprise avec ON1/OFF1, ON2/OFF2 et toutes les prises sont doublées dans le Dashboard.
J’ai simplement modifié 2 lignes de codes (.toLower().startsWith(‹ ON ›) à la place de = ‹ ON › ) pour arriver à mes fins, alors que je ne sais pas faire un widget « custom » qui pourrait me faire cela et me conserver mon script.
Le soucis, c’est pour les upgrade, le code est systématiquement écrasé à chaque installation.
Je sais que l’on parle d’un système domotique, et que l’on devrai pas upgrader trop souvent, mais j’aime bien être à jour.

Cdlt,

Yofa

j’ai ma solution simple que je partage.
Après chaque mise à jour, je jouerai ce script pour avoir un widget qui fonctionne pour la multiprise ON/OFF

sudo patch -R /var/www/html/core/template/dashboard/cmd.action.other.tmplimg.html <<EOF
22c22
<         if (jeedom.cmd.normalizeName('#name#').toLowerCase().startsWith('on')) {
---
>         if (jeedom.cmd.normalizeName('#name#') == 'on') {
29c29
<         if (jeedom.cmd.normalizeName('#name#').toLowerCase().startsWith('off')) {
---
>         if (jeedom.cmd.normalizeName('#name#') == 'off') {
EOF
1 « J'aime »

Salut,
Sachant qu’il existe un événement #end_update#, tu peux t’arranger pour automatiser la chose…
Evidemment c’est pas sans risque

1 « J'aime »

@mike: merci pour ta réponse

Le pb c’est pas la boite à outil, je suis certain qu’elle est bien fournie.
Le soucis, c’est le temps que j’ai envie d’y passer, et à chaque équipement que j’intègre, je passe déjà bcp de temps là ou je pensais que cela serait très simple.
Surement parce que je fais du pas cher pour commencer, mais j’apprends, je me forme, je m’améliore…

  • Doubler tout mon équipement en virtuel alors que je l’ai intégré dans des scénarios : NON
  • ajouter une info/commande : Essayé mais KO (cf post du dessus), d’où le plan B le code (et je connais rien en python) qui lui ne triche pas :smiley:
  • Investir du temps dans les widgets : NON
  • Passer du temps à comprendre : OUI mais pas si j’ai une solutions plus simple

Je suis preneur pour la solution s’il y a de l’info/commande mise à jour dans l’équipement (pas de scenario, pas de variable, pas de virtuel) à chaque evenement.
Mon info « Maison (W) » est toujours vide actuellement.
Un patch dans le code du Core pour prendre en compte mon besoin de multiprise ON/OFF numéroté serait idéal.

Merci @naboleo
un patch auto post upgrade, j’y avais pensé. En sachant que patch est vraiment « secure ». Je sais pas encore si le jeu/risque est payant.

Salut,

J’ai pas tout lu mais à première vue il suffit de renommer les commandes en les reprenant dans un virtuel si besoin…

ON_1,OFF_1, ON_2, OFF_2, etc…

Ce que tu fais est juste dangereux.
Tes réponses sont pourtant dans la doc ou sur le forum.

Une commande qui prend une formule en valeur : c’est le lambda, mais via le plugin virtuel.
Là en voulant ajouter une commande avec un ID qui n’a pas l’air d’exister dans rfxcom et en utilisant les options avancées, biensur que ca fonctionne pas. Cette formule de calcul est utiliser … en trigger quand la commande se met à jour. Donc si elle n’est pas « réelle », que rfxcom ne publie jamais dessus … elle ne se calcule pas

Pour les widgets, @Salvialf l’a dit, tu dois juste renommer tes commandes. A vouloir modifier le core et les plugins, tu vas te créer des soucis sur les plugins assistants vocaux très rapidement.

Le plugin virtuel est l’ami de tout jeedomien. Tu feras tout ce que tu veux avec, sans avoir à jouer avec le code des plugins. Ca sera aussi la meilleure source pour comprendre comment utiliser les widgets existants.

@Salvialf: merci pour le tuyau, je viens de regarder dans /var/www/html/core/js/cmd.class.js et cela y ressemble fortement.

@lunarok: Est-ce que l’info du plugin virtuel est stocké en temps réel lors de la MàJ des infos de l’équipement?
Si c’est le cas, c’est en effet plus intéressant d’utiliser un virtuel que de bidouiller dans le code du plugin.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.