Bonjour,
Après tout ce temps je me suis dis qu’un bon nettoyage de pré-printemps ne serait pas mal.
Le déclencheur a été le passage à Debian 12 (php8 moins permissif que la version 7) qui m’a obligé à revoir mes manières de faire ainsi que les petits pb de déconnexion du client mqtt de zigbee2mqtt.
J’ai pensé qu’au delà des http.errors captées par le patch utile de mrgreen j’avais encore surement des erreurs de ma part qui perduraient dans mes virtuels.
N’ayant que des idées mais pas de savoir faire en code, je me suis aidé de chatgpt que j’ai dirigé pour avoir ce que je voulais.
Je vous soumet en partage si ça peu en aider d’autres que moi.
L’idée est de faire un inventaire des commandes qui sont gourmandes et de les classer par poids. Au dessus de 5-6 on s’en occupe, en dessous on laisse c’est marginal.
C’est à lancer en ssh, comme c’est du mysql il faudra mettre votre mot de pass jeedom bd qui est en bas de la page configuration.
Le code :
mysql -u jeedom -p jeedom -e "
SELECT
c.id AS 'ID_cmd',
c.name AS 'Nom_cmd',
e.name AS 'Équipement_virtuel',
(LENGTH(c.configuration) - LENGTH(REPLACE(c.configuration, '#', ''))) / 2 AS nb_refs,
(LENGTH(c.configuration) - LENGTH(REPLACE(c.configuration, '(', ''))) AS nb_fcts,
ROUND(
((LENGTH(c.configuration) - LENGTH(REPLACE(c.configuration, '#', ''))) / 2)
+ (LENGTH(c.configuration) - LENGTH(REPLACE(c.configuration, '(', ''))), 1
) AS poids
FROM cmd c
LEFT JOIN eqLogic e ON c.eqLogic_id = e.id
WHERE c.eqType='virtual' AND c.type='info'
AND (
c.configuration LIKE '%avg%' OR
c.configuration LIKE '%sum%' OR
c.configuration LIKE '%date%' OR
c.configuration LIKE '%strtotime%'
)
ORDER BY poids DESC
LIMIT 20;
> "
Bonjour Mips,
Ma mauvaise habitude était de faire des calculs trop complexes dans les commandes virtuel. Par gourmande je veux dire celles qui ralentissent inutilement le traitement de mariaDb alors qu’avec l’expérience on peu faire plus simple.
Jeedom a aussi évolué et a proposé au fil des versions des expressions simplifiées qu’auparavant je calculais.
Ca fait 10 ans que j’accumule des calculs qui parfois ne me servent plus et que j’avais oubliés, ça m’a aussi servi à ça.
Bien cordialement
Dans l’absolu, je fais pas mal de calculs pour avoir une info - me passant de scénarios que ça soit par code ou en bloc ; surtout quand les ternaires rendent bien service.
Je regarde à l’occasion de quoi on parle en l’exécutant chez moi. Mais je ne vois pas l’alternative.
J’ai mis en place pour les scénarios les tags sur les conseils de Mips à l’époque, très pratique, effectivement.
Bonjour benj29,
Arff j’aurais dû modérer mon titre en mettant « Révision après plusieurs années d’utilisation par un Nul »
Je suis absolument persuadé que la majorité des intervenants réguliers et de ceux qui savent ne sont pas impactés par le mal qui rongeait ma Jeedom.
Mais moi j’ai commencé en dessous de zéro, sans aucune connaissance et j’ai fais comme j’ai pu avec souvent des solutions alambiquées qui me donnaient un résultat, mais au prix de performances de mon cpu pour suivre mes élucubrations.
L’exemple que tu prends, les ternaires, qui sont effectivement puissant et que j’utilise maintenant assez facilement à mon niveau.
Je ne les aient découvert que l’an dernier grâce à Bison.
Idem pour les tags, il y avait eu une explication sur le forum, j’ai appris à m’en servir plus facilement maintenant.
Avant je compensais par des formules d’enchainement de commandes avec souvent des répétitions, etc … D’où la lourdeur de mon installation et des difficultés à maintenir. Depuis 10 ans je n’ai jamais fais que sauvegarde restauration upgrade pour suivre les différentes migrations et tout s’est accumulé.
J’avais besoin de cet audit pour matérialiser où mettre mes efforts de simplification. Ca m’a rendu service donc je partage avec ceux qui seraient dans mon cas.
Bien cordialement
Ok certaines commandes sont référencées avec un poid élevé mais ça ne veut pas dire que ce sont des commandes qui ralentissent ou perturbent Jeedom/BDD pour moi ; si ?
Exemple : la premiere commande est configurée comme suit :
Bonjour,
Non dans ton cas je ne pense pas que ça perturbe ta bd. J’avais bien pire la première fois que j’ai fais tourner le script
Mais par curiosité, ça te sert à quoi d’avoir le % moyen de tous tes volets ?
Si un est ouvert 0% et l’autre fermé 100% tu as 50 % je ne vois pas la pertinence de l’info.
Bien cordialement
Quand j’ai crée la commande, l’idée de base que en armant l’alarme en partant, il y a un scénario qui coupe reduit les consignes et ferme les volets.
l’idée de cette commande était de récupérer l’info : OK tous les volets sont bien fermés (=100)
J’avais ça aussi, des restes de mes débuts jamais corrigé ou supprimé et le tableau a eu la vertu de me les révéler.
En lisant mes commandes je n’arrivais même plus à savoir pourquoi j’avais fais ça et je me suis traité d’idiot plusieurs fois