la derniere version de Glasys integre la possibilité d’afficher des graphiques binaires, cela dit il n’est pas possible d’afficher une présence (donc a priori binaire) issue de lan manager.
Est il possible de faire en sorte que ces présences s’affichent ? j’imagine que cela est liée au fait que l’historique n’est pas géré pour les objets lan manager ?
Merci déja pour ta réponse , je me suis sans doutes mal exprimé. En fait il est possible d’associer uen présence lan manager a un graphique binaire, mais celui-ci ne s’affiche pas :
C’est pourquoi je pensais qu’il s’agit de données non historisées.
il s’agit d’un smartphone en wifi gerant ma présence, j’ai bien allumé puis coupé le wifi plusieurs fois dans la matinée mais rien ne change au niveau du graphique. Je n’ai pas compris ta derniere phase concernant le fait qu’il n’y ai pas de 0 envoyé, cela signifie qu’il me faut envoyer 0 par un autre moyen ?
Non rien à faire de spécial, c’est juste que je précise que l’intégration n’envoie qu’une valeur quand l’appareil est détecté, il n’y a pas actuellement de « retour à 0 » quand l’appareil n’est pas détecté.
Donc même si on arrive à faire fonctionner le graphique chez toi, tu ne verras qu’une seule bande de couleur, pas d’alternance entre présence/absence.
Tu es bien dans la dernière version de Gladys ? (4.47?)
je suis bien en 4.47, le fait que l’intégration n’envoi pas 0 si non detecté n’empeche pas d’afficher le graphique ? car du coup je n’ai que des 1 malgré la coupure manuelle du wifi sur le smartphone ?
@Terdious il y a un souci avec la requête SQL pour les appareils binaires, quand c’est un appareil de type « push » qui n’envoie que des 1, ça ne marche pas, ça ne renvoie rien
Je pense qu’il y a un bug avec la query actuelle même pour les appareils binaires, la première valeur n’est jamais renvoyée, car la query pense que l’état n’a pas changé.
Que penses-tu d’une query de ce style:
WITH value_changes AS (
SELECT
created_at,
value,
LAG(value) OVER (ORDER BY created_at) AS prev_value
FROM
t_device_feature_state
WHERE
device_feature_id = ?
AND created_at > ?
),
state_transitions AS (
SELECT
created_at,
value
FROM
value_changes
WHERE
prev_value IS NULL OR value != prev_value
)
SELECT
value,
created_at
FROM
state_transitions
ORDER BY
created_at ASC
LIMIT ?
Hello,
Désolé je viens seulement de voir la conversation !!
En effet je suis d’accord (en meme temps comment pourrais-je en juger autrement ) que la 1ere valeur n’est pas prise en compte. Loose de ne pas avoir vu cela et surtout désolé.
En effet en ce qui concerne tout ce qui ne change jamais d’état à part envoyer des 1 … ca ne peut pas fonctionner.
Comme ça je ne vois pas trop comment resoudre ce point pour la présence (je n’ai jamais apprécié ce fonctionnement d’ailleurs… il devrait y avoir associé un timer pour retomber à 0) ou pour tout détecteur a envoi unique d’état.
Oui ! La requête que je propose plus haut
Elle corrige le fonctionnement pour les binaires et les push
Edit : ah je comprend ce que tu veux dire. Pour le retour à zéro, pas le choix c’est l’intégration LAN Manager qui doit être modifiée pour coder un retour à zéro quand l’appareil n’est plus vu
WITH value_changes AS (
SELECT
created_at,
value,
LAG(value) OVER (ORDER BY created_at) AS prev_value
FROM
t_device_feature_state
WHERE
device_feature_id = ?
AND created_at > ?
),
state_transitions AS (
SELECT
created_at,
value,
LEAD(created_at) OVER (ORDER BY created_at) AS end_time
FROM
value_changes
WHERE
prev_value IS NULL OR value != prev_value
)
SELECT
value,
created_at,
end_time
FROM
state_transitions
ORDER BY
created_at ASC
LIMIT ?
Avec cette PR, @zedyxer tu devrais voir une barre continue, il y aura juste les fois où ton appareil est détecté, mais sans les fois où ton appareil n’est pas détecté (le fameux retour à zéro), donc pas très utile pour l’instant
Je vais essayer de regarder pour rajouter ça à l’intégration LAN Manager.