[Résolue] Les façons de stocker une information dans un virtuel
- Antoinekl1
- Actif
- Messages : 3927
- Inscription : 23 mai 2015, 08:14
[Résolue] Les façons de stocker une information dans un virtuel
Bonjour à tous
Ce post a pour but d'expliquer (ma compréhension) et de récolter des informations sur la façon de stocker une donnée dans un virtuel
Le plus simple, l'info avec une interface homme-machine, là pas trop le choix, c'est x commandes action avec 1 commande info qui récupère le résultat
Ça peut être :
- un interrupteur ON/OFF : 2 commandes actions
- un variateur : 1 commande action
...
L'autre cas, une info gérée par un scenario, que l'on peut afficher ou non dans un scénario
La plusieurs possibilités
Jusqu'à maintenant, j'en utilisais 2
- une variable que j'affiche via une commande info dans le virtuel, il semblerait que c'est pas l'idéal et ça pose des soucis de rafraîchissement de la vignette
- une commande action liée à une commande info, l'action pour mettre la valeur a jour et l'info pour l'afficher, c'est lourd, mais je ne connaissais que ca
- une commande info que l'on met a jour par la fonction 'event', découvert ce jour , merci @rombautsdidier
cela semblerait mieux que la méthode avec la variable mais dans le cas d'un scénario avec lecture et mise a jour d'une même info, cela ne serait pas plus optimisé via une variable que par une commande dans un virtuel (lecture/écriture)
Qu'en pensez vous ?, Qu'utilisez vous ?
Ce post a pour but d'expliquer (ma compréhension) et de récolter des informations sur la façon de stocker une donnée dans un virtuel
Le plus simple, l'info avec une interface homme-machine, là pas trop le choix, c'est x commandes action avec 1 commande info qui récupère le résultat
Ça peut être :
- un interrupteur ON/OFF : 2 commandes actions
- un variateur : 1 commande action
...
L'autre cas, une info gérée par un scenario, que l'on peut afficher ou non dans un scénario
La plusieurs possibilités
Jusqu'à maintenant, j'en utilisais 2
- une variable que j'affiche via une commande info dans le virtuel, il semblerait que c'est pas l'idéal et ça pose des soucis de rafraîchissement de la vignette
- une commande action liée à une commande info, l'action pour mettre la valeur a jour et l'info pour l'afficher, c'est lourd, mais je ne connaissais que ca
- une commande info que l'on met a jour par la fonction 'event', découvert ce jour , merci @rombautsdidier
cela semblerait mieux que la méthode avec la variable mais dans le cas d'un scénario avec lecture et mise a jour d'une même info, cela ne serait pas plus optimisé via une variable que par une commande dans un virtuel (lecture/écriture)
Qu'en pensez vous ?, Qu'utilisez vous ?
Dernière édition par Antoinekl1 le 04 juil. 2019, 15:52, édité 1 fois.
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
Re: Les façons de stocker une information dans un virtuel
Bonjour,
Non la commande est mieux que la variable car en cache et non en db ça usera donc moins la carte sd et ira plus vite.
Non la commande est mieux que la variable car en cache et non en db ça usera donc moins la carte sd et ira plus vite.
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section
- Antoinekl1
- Actif
- Messages : 3927
- Inscription : 23 mai 2015, 08:14
Re: Les façons de stocker une information dans un virtuel
Merci pour la réponse, si je comprend bien
La variable n'est pas en cache et donc solicite la lecture de la BD pour l'afficher, ça explique pourquoi c'est si long d'afficher la page des variables
Alors que toutes les commandes sont en cache ?
Juste pour être sûr, dans un scénario, si je fais plusieurs tests avec l'increment d'une même 'variable' faut il mieux mettre a jour la commande info a chaque test ou passer par une variable (qui lors de l'exécution du scénario sera peut être en cache) pour incrémenter sa valeur puis affecter la valeur de la variable a la commande pour stockage du résultat final ?
Qui a revoir tous les scénarios et virtuel autant que ce soit avec.la meilleure méthode
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
Re: Les façons de stocker une information dans un virtuel
Info très intéressante. A mes début sur jeedom, j'avais construit les scénarios avec le postulat inverse.loic a écrit :Bonjour,
Non la commande est mieux que la variable car en cache et non en db ça usera donc moins la carte sd et ira plus vite.
Depuis la mise en cache, j'ai pas mal de virtuels, mais je vais faire un tour sur les variables qui reste et qui sont souvent lues, pour les passer en virtuel, histoire de gagner un peu en perf.
Une question annexe : pourquoi ne pas mettre les variables en cache également? Au moins en lecture.
Jeedom 3 sur Debian 9 en VM Proxmox 5 sur NUC Intel.
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
- Antoinekl1
- Actif
- Messages : 3927
- Inscription : 23 mai 2015, 08:14
Re: Les façons de stocker une information dans un virtuel
Tu utilisais déjà la fonction event pour mettre a jour tes commandes ?fwehrle a écrit : ↑29 juin 2019, 08:45Info très intéressante. A mes début sur jeedom, j'avais construit les scénarios avec le postulat inverse.loic a écrit :Bonjour,
Non la commande est mieux que la variable car en cache et non en db ça usera donc moins la carte sd et ira plus vite.
Depuis la mise en cache, j'ai pas mal de virtuels, mais je vais faire un tour sur les variables qui reste et qui sont souvent lues, pour les passer en virtuel, histoire de gagner un peu en perf.
Une question annexe : pourquoi ne pas mettre les variables en cache également? Au moins en lecture.
Elle n'existait pas cette fonction au début, il fallait forcément faire commande action+commande info
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
Re: Les façons de stocker une information dans un virtuel
Les variables ont été conçu pour avoir une durée de vie de leur valeur plus longue que celle des commandes qui change fréquemment.
Une variable c'est par exemple la température confort de la maison, vous pouvez l'appeler partout où ya besoin de mettre cette température et le jour où ya besoin de la changer c'est que a un endroit.
Une variable c'est par exemple la température confort de la maison, vous pouvez l'appeler partout où ya besoin de mettre cette température et le jour où ya besoin de la changer c'est que a un endroit.
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section
Re: Les façons de stocker une information dans un virtuel
@Loic : oui, c'est comme ça que je m'en sers maintenant. Mais la lecture d'une variable est-elle plus rapide que celle d'une info de virtuel?
@antoine : non, je me servait d'une action de type autre pour mettre l'info a jour.
@antoine : non, je me servait d'une action de type autre pour mettre l'info a jour.
Jeedom 3 sur Debian 9 en VM Proxmox 5 sur NUC Intel.
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
Re: Les façons de stocker une information dans un virtuel
Non l'info virtuel sera plus rapide quand dans la plupart des cas ya même pas d'accès bdd il va chercher directement dans le cache. L'écriture d'une info virtuel peut être par contre est similaire mais moins stressant que la variable car ya juste un accès db et une écriture en cache au lieu d'une écriture en db. Pour rappel le cache est monté en RAM .
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section
Re: Les façons de stocker une information dans un virtuel
Ok. Merci pour l'explication. Je vais donc remplacer les variables les plus utilisées par des virtuels sans historiques. Merci.
Jeedom 3 sur Debian 9 en VM Proxmox 5 sur NUC Intel.
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
- Antoinekl1
- Actif
- Messages : 3927
- Inscription : 23 mai 2015, 08:14
Re: Les façons de stocker une information dans un virtuel
Ok, je comprend mieux merci pour ces infos
donc même au sein d'un scénario il faut mieux utiliser une commande, même si je dois la mettre a jour plusieurs fois dans le scenario
Et éventuellement garder les variables pour des infos fixes et transverses
Bon, je vais avoir un peu de taf pour reprendre tout ça, j'utilisais beaucoup les variables
donc même au sein d'un scénario il faut mieux utiliser une commande, même si je dois la mettre a jour plusieurs fois dans le scenario
Et éventuellement garder les variables pour des infos fixes et transverses
Bon, je vais avoir un peu de taf pour reprendre tout ça, j'utilisais beaucoup les variables
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
Re: Les façons de stocker une information dans un virtuel
Par contre pour la mise a jour d'une commande info il est conseillé de passer par l'action event qui sera plus rapide que de passer par la commande action associé
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section
- Antoinekl1
- Actif
- Messages : 3927
- Inscription : 23 mai 2015, 08:14
Re: Les façons de stocker une information dans un virtuel
La configuration : Formule de calcul (#value# pour la valeur)
Fonctionne bien ?
J'ai une commande info numérique qui contient un nombre en seconde
Je veux l'afficher en minute
J'ai donc mis dans ce champs #value#/60
Mais ll n'affiche que le nombre en seconde
Fonctionne bien ?
J'ai une commande info numérique qui contient un nombre en seconde
Je veux l'afficher en minute
J'ai donc mis dans ce champs #value#/60
Mais ll n'affiche que le nombre en seconde
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
Re: Les façons de stocker une information dans un virtuel
Le 25 nov 2018 tu disais que tu n'étais pas trop pour documenter la commande event pour éviter qu'elle ne soit trop accessible, pour éviter des problèmes dans jeedom.loic a écrit :Par contre pour la mise a jour d'une commande info il est conseillé de passer par l'action event qui sera plus rapide que de passer par la commande action associé
Envoyé de mon Samsung Note 8 en utilisant Tapatalk
Dernière édition par glenan le 29 juin 2019, 12:37, édité 1 fois.
Jeedom Smart Z-Wave+ & RFXCOM - NAS Syno DS415+
1 BROADLINK MP1 / Gestion aquarium
4 Roller Shutter 2 - 3 Door/Windows Sensor 2 FGDW-002 - 1 Dimmer 2 FGD-212 - Bypass 2 FGB-002 - 2 FGWPE/F Wall Plug Gen5 - M. Sensor FGMS-001 - Oregon RAR502
1 BROADLINK MP1 / Gestion aquarium
4 Roller Shutter 2 - 3 Door/Windows Sensor 2 FGDW-002 - 1 Dimmer 2 FGD-212 - Bypass 2 FGB-002 - 2 FGWPE/F Wall Plug Gen5 - M. Sensor FGMS-001 - Oregon RAR502
Re: Les façons de stocker une information dans un virtuel
Bien vu. Ça évite de passer par toute la mécanique de mise à jour, déclenchement des scénarios, etc...loic a écrit :Par contre pour la mise a jour d'une commande info il est conseillé de passer par l'action event qui sera plus rapide que de passer par la commande action associé
Jeedom 3 sur Debian 9 en VM Proxmox 5 sur NUC Intel.
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
Re: Les façons de stocker une information dans un virtuel
Oui sauf pour le plugin virtuel la commande event permet de changer n'importe qu'elle valeur de n'importe quelle commande c'est dangereux...glenan a écrit : ↑29 juin 2019, 12:37Le 25 nov 2018 tu disais que tu n'étais pas trop pour documenter la commande event pour éviter qu'elle ne doit trop accessible pour éviter des problèmes dans jeedom.loic a écrit :Par contre pour la mise a jour d'une commande info il est conseillé de passer par l'action event qui sera plus rapide que de passer par la commande action associé
Envoyé de mon Samsung Note 8 en utilisant Tapatalk
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section
- Antoinekl1
- Actif
- Messages : 3927
- Inscription : 23 mai 2015, 08:14
Re: Les façons de stocker une information dans un virtuel
Oui j'ai pas précisé mais je pensais bien a cette commande event pour mettre a jour la commande info, commande info qui n'a d'ailleurs plus besoin d'avoir une commande action associée, c'est plus simpleloic a écrit :Par contre pour la mise a jour d'une commande info il est conseillé de passer par l'action event qui sera plus rapide que de passer par la commande action associé
Par contre, ça m'ennuie quand même de ne pas avoir une véritable variable volatile, ce qu'était pour moi la variable actuelle mais qu'il faut plutôt voir comme un paramètre
Quand dans un scénario j'ai besoin de traiter une information pour l'envoyer en vocale par exemple ou pour compléter un texte qui sera lui stocké dans une commande, j'utilise une variable que j'appelle 'tempo' et que je peux supprimer a la fin de mon scénario. (même si je le faisais pas), mais vu le fonctionnement de 'variable' ça me génére des lectures et écritures en BD, c'est pas top
Et j'ai pas forcément envie de créer en commande info pour ca, sauf peut-être a faire un virtuel 'variable' avec 1 commande info 'tempo' que je pourrais utiliser a cet usage
Ne serait t'il pas possible d'avoir la possibilité de créer de vrais variables en cache ? Que l'on pourrait utiliser entre les scénarios 'variable globale' qui restent en vie tant que la cache se vide pas (rebootl) ou même uniquement dans un scénario 'variable locale' qui se supprimerait a la fin du scénario
Les variables actuelles devrait plutôt s'appeler 'parametre' que variable, dans le jargon dev en tout cas, ce serait plus claire a mon avis
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
- Antoinekl1
- Actif
- Messages : 3927
- Inscription : 23 mai 2015, 08:14
Re: Les façons de stocker une information dans un virtuel
Pourquoi cela éviterait le déclenchement d'un scénario ?fwehrle a écrit :Bien vu. Ça évite de passer par toute la mécanique de mise à jour, déclenchement des scénarios, etc...loic a écrit :Par contre pour la mise a jour d'une commande info il est conseillé de passer par l'action event qui sera plus rapide que de passer par la commande action associé
Si la commande info est en déclencheur d'un scénario et que je la met a jour par la fonction event, le scénario ne se déclenchera pas ?
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
Re: Les façons de stocker une information dans un virtuel
Ça serait possible mais je doute qu'on le fasse rajouter encore un truc possible va encore plus perdre les gens et même si les variables accède a la bdd c'est pas non plus horrible ya énormément d'accès écriture lecture en permanence dans JeedomAntoinekl1 a écrit : ↑29 juin 2019, 16:20Oui j'ai pas précisé mais je pensais bien a cette commande event pour mettre a jour la commande info, commande info qui n'a d'ailleurs plus besoin d'avoir une commande action associée, c'est plus simpleloic a écrit :Par contre pour la mise a jour d'une commande info il est conseillé de passer par l'action event qui sera plus rapide que de passer par la commande action associé
Par contre, ça m'ennuie quand même de ne pas avoir une véritable variable volatile, ce qu'était pour moi la variable actuelle mais qu'il faut plutôt voir comme un paramètre
Quand dans un scénario j'ai besoin de traiter une information pour l'envoyer en vocale par exemple ou pour compléter un texte qui sera lui stocké dans une commande, j'utilise une variable que j'appelle 'tempo' et que je peux supprimer a la fin de mon scénario. (même si je le faisais pas), mais vu le fonctionnement de 'variable' ça me génére des lectures et écritures en BD, c'est pas top
Et j'ai pas forcément envie de créer en commande info pour ca, sauf peut-être a faire un virtuel 'variable' avec 1 commande info 'tempo' que je pourrais utiliser a cet usage
Ne serait t'il pas possible d'avoir la possibilité de créer de vrais variables en cache ? Que l'on pourrait utiliser entre les scénarios 'variable globale' qui restent en vie tant que la cache se vide pas (rebootl) ou même uniquement dans un scénario 'variable locale' qui se supprimerait a la fin du scénario
Les variables actuelles devrait plutôt s'appeler 'parametre' que variable, dans le jargon dev en tout cas, ce serait plus claire a mon avis
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section
- Antoinekl1
- Actif
- Messages : 3927
- Inscription : 23 mai 2015, 08:14
Re: Les façons de stocker une information dans un virtuel
Je peux comprendreloic a écrit :Ça serait possible mais je doute qu'on le fasse rajouter encore un truc possible va encore plus perdre les gens et même si les variables accède a la bdd c'est pas non plus horrible ya énormément d'accès écriture lecture en permanence dans JeedomAntoinekl1 a écrit : ↑29 juin 2019, 16:20Oui j'ai pas précisé mais je pensais bien a cette commande event pour mettre a jour la commande info, commande info qui n'a d'ailleurs plus besoin d'avoir une commande action associée, c'est plus simpleloic a écrit :Par contre pour la mise a jour d'une commande info il est conseillé de passer par l'action event qui sera plus rapide que de passer par la commande action associé
Par contre, ça m'ennuie quand même de ne pas avoir une véritable variable volatile, ce qu'était pour moi la variable actuelle mais qu'il faut plutôt voir comme un paramètre
Quand dans un scénario j'ai besoin de traiter une information pour l'envoyer en vocale par exemple ou pour compléter un texte qui sera lui stocké dans une commande, j'utilise une variable que j'appelle 'tempo' et que je peux supprimer a la fin de mon scénario. (même si je le faisais pas), mais vu le fonctionnement de 'variable' ça me génére des lectures et écritures en BD, c'est pas top
Et j'ai pas forcément envie de créer en commande info pour ca, sauf peut-être a faire un virtuel 'variable' avec 1 commande info 'tempo' que je pourrais utiliser a cet usage
Ne serait t'il pas possible d'avoir la possibilité de créer de vrais variables en cache ? Que l'on pourrait utiliser entre les scénarios 'variable globale' qui restent en vie tant que la cache se vide pas (rebootl) ou même uniquement dans un scénario 'variable locale' qui se supprimerait a la fin du scénario
Les variables actuelles devrait plutôt s'appeler 'parametre' que variable, dans le jargon dev en tout cas, ce serait plus claire a mon avis
Mais même pour cet usage, tu préconise plus l'utilisation d'une commande via un virtuel dédié a ca par exemple que par une variable ?
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6
Re: Les façons de stocker une information dans un virtuel
Me suis jamais trop poser question... J'ai expliqué blés différence et le pourquoi des variables après a vous de voir ce que vous préférez faire.
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 11 invités