Test alpha/beta

Bonjour,
Je viens de faire 3 modifications lourde en alpha/beta (pour l’avoir il faut forcer une mise à jour de jeedom meme si il ne vous propose rien).

  • La première au niveau de la gestion de l’archivage de l’historique, avant tout le lissage était fait en php (donc 12 calcul par commande avec un lissage sur 2h soit 36 requêtes en database [1 recuperation de la valeur,1 insertion dans l’autre table, 1 suppression des valeurs inutile), ça consommer pas mal de ram d’après certain retour utilisateur. Maintenant c’est 2 requêtes en tout (1 calcul puis écriture dans l’autre table, 1 suppression des anciennes valeur). Chez moi ca semble ok la seule conséquence c’est que les points ne sont plus a heure fixe mais dépendent du datetime de la 1er valeur a lisser (je pense pas que ça soit gênant surtout comparé au gain)
  • la deuxieme est liée a ce sujet : Retro-programmation avec un bloc A - #7 par Loic. J’ai expliqué dedans la modification, ce qu’il faut surveiller c’est les scénarios qui utilise des calcul. Je peux absolument pas connaitre les conséquences (trop d’implication). Donc mettez a jour et surveillez
  • la 3eme dans la configuration de jeedom partie OS/DB dans databases sur le nettoyage maintenant ça nettoie les commandes ayant des historiques qui n’existent plus ou ne devraient plus être historisées

Merci a tout ceux qui prendront le temps de mettre a jour et de tester

5 « J'aime »

J’ai mis à jour et je crois que ca impacte la fonction value() dans les scénarios. Elles donnent un résultat vide sur mes scénarios interrupteur loxone, juste avant c’était bon j’avais la valeur de la commande.

Salut,
Merci pour le retour je me demande si c’est pas le même soucis que ludo m’a remonté (une histoire de quote automatique). Je viens de pousser une correction en alpha/beta si tu peux tester.

C’est bon en tout cas maintenant, j’ai mis à jour et c’est redevenu ok

@Loic en fait non c’est pas bon toujours, effectivement le ‹  › a disaparu, mais du coup ca me garde les anciennes valeurs des variables
Pour que ce soit plus parlant, voilà ce que j’ai en entete de scénario :


(je fais ca car j’ai le meme scénario pour toutes les pièces, ca m’évite de mettre le nom de chaque interrupteur dans les scénarios et le garder générique en récupérant le trigger puis sa valeur. Pareil en test direct le value(#trigger#) ne marche pas, mais ca bien avant ta modif, juste c’est pour ca que mon scénario est comme ca

Et si j’essaye le log associé :

On voit bien le passage par valeur vide. Du coup après il dit que c’est 30, la dernière valeur « fonctionnelle » on va dire.

Ce que ca faisait ce matin avant ta modif :

Pas tout compris… La value(#trigger#) est pas bon c’est ca ? Il est vide alors qu’il ne devrait pas ?

Il a toujours été vide, du moins depuis décembre que je bascule mes interrupteurs Loxone dans Jeedom pour gérer via des scénarios toutes les possibilités.
value(#trigger#) → vide, du coup je fais cet entete ou je met le nom du trigger en variable triggerN, puis je fais un value(interrN) et ca ca marche ca me retourne la valeur de ma commande qui a déclenché le scénario.

Avec ton changement hier, la variable interr retournait «  » (dernier screen, on voit "Affectation de la variable interr => «  » = «  »). Puis elle était testé à «  » == … Donc contenant toujours le double quote.
(dernier screen)

Aujourd’hui elle est affecté à vide, puis quand je la teste elle donne la dernière valeur « correcte » (d’hier j’ai l’impression).
(avant dernier screen, on voit une affectation interr => =, alors qu’après le test variable(interr) == 11, dans le log est vu comme 30 == 11)

Normalement elle prend pour valeur 31, 12, 21 … la valeur de mon interrupteur. Côté log Loxone j’ai bien les events avec les bonnes valeurs. Et le log du scénario par exemple est bien déclenché une fois par pression de l’inter.

Donc c’est bon mais la log est fausse ?

Non c’est pas bon du tout, c’est incohérent.

Exemple :
Côté plugin je recois mon evenement, je fait le checkandupdatecmd avec en valeur 31 (pour info, c’est des commandes infos de types numériques). Ca c’est bon dans le plugin.
Le scénario est bien déclenché à ce moment là oui, donc l’event est vu.

Mais dans le scénario, quand je vois le log du set variable, il me dit "=> = ", donc vide
Et après lors des tests avec cette variable, il prend 30 en valeur, ce qui est la dernière valeur hier avant modif je pense.

Peut importe la valeur que je déclenche avec mon interrupteur (ca va de 10 à 52), la variable n’est plus setté correctement et donc les tests derrière sont foireux

Ok je vois avant yavait une double évaluation ce n’est plus le cas maintenant. Par contre je comprend pas pourquoi tu veux faire un value(#trigger#) qui pour moi ne doit pas marcher alors que tu peux sois utiliser :

  • triggerValue() (documenté ca)
  • #trigger_value# (non documenté mais je viens de corrigé en alpha/beta)

Je conseils plutot le premier

J’étais passé à côté de triggerValue() et #trigger_value#.
Par contre, j’ai mis à jour, et essayer les 2, ca raccourci mon scénario et plus d’utilisation de variable mais il fait toujours n’importe quoi.

Si j’appuie sur mon inter, bouton haut gauche en simple clic, Loxone m’envoit 11, puis 10 (retour à 0 en gros)
Dans les logs du plugin, j’ai bien ca :

Capture%20d%E2%80%99%C3%A9cran%20de%202020-01-12%2021-44-12

Mais, dans le scénario, les 2 déclenchements à cette occasion … il me dit que c’était 10 et 10

Premier (qui devrait etre 11) :
Capture%20d%E2%80%99%C3%A9cran%20de%202020-01-12%2021-44-36

Deuxième (qui devrait etre 10, donc lui est ok) :
Capture%20d%E2%80%99%C3%A9cran%20de%202020-01-12%2021-44-48

Tu peux le voir au timestamp, les actions ont que 2s d’écart.

Quand je regarde mon historique, pour les appuis fait à l’instant, il me fait des moyennes ???
Genre là je trouve très peu de points alors qu’il y a eu beaucoup d’appuis (tests obligent). Et les points sont forcément des moyennes car l’interrupteur m’envoit forcément des entiers :

Capture%20d%E2%80%99%C3%A9cran%20de%202020-01-12%2021-44-59

Ok en faite c’est trop rapide le changement d’état la le temps qu’il lance le scénario et regarde la valeur de la commande tu es déjà repassé a 10… Tu peux essayer de le mettre en mode scénario rapide peut être que ça aidera

Pour l’historique c’est normal a moins d’être en mode sans lissage il est forcément moyenné sur 5min pour les valeurs numériques

Bonjour, je suis pas sur que cela soit lié mais depuis la mise à jour j’ai eux 1 ou 2 messages de ce type de la source history:

	Erreur sur history::archive() : Exception Object ( [message:protected] => [MySQL] Error code : 23000 (1062). Duplicate entry '4642-2020-01-01 00:00:00' for key 'PRIMARY' : INSERT INTO historyArch(cmd_id,`datetime`,value) SELECT cmd_id,`datetime`,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE `datetime` [code:protected] => 0 [file:protected] => /var/www/html/core/class/DB.class.php [line:protected] => 101 [trace:Exception:private] => Array ( [0] => Array ( [file] => /var/www/html/core/class/history.class.php [line] => 206 [function] => Prepare [class] => DB [type] => :: [args] => Array ( [0] => INSERT INTO historyArch(cmd_id,`datetime`,value) SELECT cmd_id,`datetime`,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE `datetime` Array ( [cmd_id] => 4642 [archivePackage] => 3600 [archiveTime] => 2020-01-15 03:00:22 ) [2] => 0 ) ) [1] => Array ( [file] => /var/www/html/core/php/jeeCron.php [line] => 49 [function] => archive [class] => history [type] => :: [args] => Array ( ) ) ) [previous:Exception:private] => )

Bizarre ca a voir si ca se reproduit c’est peut etre la transition de l’ancien systeme au nouveau

1 « J'aime »

De mon coté, j’ai un effet de bord sur les variables/tags et " que je n’arrive à pas contourner quand on veut concatener les chaines

Le scenario 1


Le scenario 2

La log de 2

------------------------------------
[2020-01-17 12:39:27][SCENARIO] Start : Lancement provoqué par le scénario  : [Scénario][X Tests][tmp1]. Tags : {"#msg#":"\"toto 1239\""}
[2020-01-17 12:39:27][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-01-17 12:39:27][SCENARIO] Affectation de la variable toto => ici "toto 1239" = ici "toto 1239"
[2020-01-17 12:39:27][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-01-17 12:39:27][SCENARIO] Evaluation de la condition : ["ici "toto 1239"==""] = "ici "toto 1239"==""
[2020-01-17 12:39:27][SCENARIO] Expression non valide : "ici "toto 1239"==""
[2020-01-17 12:39:27][SCENARIO] Fin correcte du scénario

Ce genre de scénario ne posait pas de souci avant…

A ben oui mais ca aurait du en faite, avant c’était pour moi un bug jeedom supprimé les " mais il ne devrait pas.

@Loic Oui je trouve que ta correction va dans le bon sens. Par contre, la version précédente masquait autre chose encore à mon avis… Je ne vois pas comment en partant de deux chaines ici et « toto 1239 » (avec 2 " si j’en crois la log) on arrive à une valeur avec un nombre impaire de quote … : "ici « toto 1239 »
Donc forcément l’évaluation dans le scénario est perdue
Il n’y a pas encore une concaténation forcée avec une " au début de chaîne quelque part ?

Si si ca tu peux le desactiver en desactivant les quote automatique dans la configuration de jeedom. Pas sur que ca vienne de la mais ca se test. Attention aux impacts a coté.

Bonne idée, je fais un retour au plus vite

ça ressemble bien à ça puisque j’ai bien mes 2 " seulement…

------------------------------------
[2020-01-17 16:18:28][SCENARIO] Start : Lancement provoqué par le scénario  : [Scénario][X Tests][tmp1]. Tags : {"#msg#":"\"toto 1618\""}
[2020-01-17 16:18:28][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-01-17 16:18:28][SCENARIO] Affectation de la variable toto => ici "toto 1618" = ici "toto 1618"
[2020-01-17 16:18:28][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-01-17 16:18:28][SCENARIO] Evaluation de la condition : [ici "toto 1618"==""] = ici "toto 1618"==""
[2020-01-17 16:18:28][SCENARIO] Expression non valide : ici "toto 1618"==""
[2020-01-17 16:18:28][SCENARIO] Fin correcte du scénario

L’effet négatif c’est qu’ai des alertes partout ailleurs… notamment avec les regex sur matches par exemple
Expression non valide [#4447# == "Off" AND #4426# == 1 AND #4309# matches "/.*Présence*|.*Retour.*/i"] trouvée dans le scénario : [Scénario][Volets - Fonctions][Canicule Auto], résultat : == "Off" AND 0 == 1 AND Retour matches "/.*Présence*|.*Retour.*/i"

Solution (pas belle), ajouter dans le quotage automatique de quoi compter le nombre " et compléter pour avoir un nombre paire ?