Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Résolue] Les façons de stocker une information dans un virtuel

Pour parler de tout, et surtout de rien !
Avatar de l’utilisateur
Antoinekl1
Actif
Messages : 3927
Inscription : 23 mai 2015, 08:14

[Résolue] Les façons de stocker une information dans un virtuel

Message par Antoinekl1 » 28 juin 2019, 20:51

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 ?
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

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Les façons de stocker une information dans un virtuel

Message par loic » 28 juin 2019, 22:25

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.
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

Avatar de l’utilisateur
Antoinekl1
Actif
Messages : 3927
Inscription : 23 mai 2015, 08:14

Re: Les façons de stocker une information dans un virtuel

Message par Antoinekl1 » 28 juin 2019, 23:23

loic a écrit :
28 juin 2019, 22:25
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.
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

Avatar de l’utilisateur
fwehrle
Actif
Messages : 2824
Inscription : 01 juil. 2015, 11:03
Localisation : Strasbourg

Re: Les façons de stocker une information dans un virtuel

Message par fwehrle » 29 juin 2019, 08:45

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.
Info très intéressante. A mes début sur jeedom, j'avais construit les scénarios avec le postulat inverse.
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

Avatar de l’utilisateur
Antoinekl1
Actif
Messages : 3927
Inscription : 23 mai 2015, 08:14

Re: Les façons de stocker une information dans un virtuel

Message par Antoinekl1 » 29 juin 2019, 09:02

fwehrle a écrit :
29 juin 2019, 08:45
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.
Info très intéressante. A mes début sur jeedom, j'avais construit les scénarios avec le postulat inverse.
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.
Tu utilisais déjà la fonction event pour mettre a jour tes commandes ?
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

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Les façons de stocker une information dans un virtuel

Message par loic » 29 juin 2019, 09:54

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.
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

Avatar de l’utilisateur
fwehrle
Actif
Messages : 2824
Inscription : 01 juil. 2015, 11:03
Localisation : Strasbourg

Re: Les façons de stocker une information dans un virtuel

Message par fwehrle » 29 juin 2019, 11:31

@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.
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

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Les façons de stocker une information dans un virtuel

Message par loic » 29 juin 2019, 11:35

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

Avatar de l’utilisateur
fwehrle
Actif
Messages : 2824
Inscription : 01 juil. 2015, 11:03
Localisation : Strasbourg

Re: Les façons de stocker une information dans un virtuel

Message par fwehrle » 29 juin 2019, 11:59

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

Avatar de l’utilisateur
Antoinekl1
Actif
Messages : 3927
Inscription : 23 mai 2015, 08:14

Re: Les façons de stocker une information dans un virtuel

Message par Antoinekl1 » 29 juin 2019, 12:01

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
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Les façons de stocker une information dans un virtuel

Message par loic » 29 juin 2019, 12:14

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

Avatar de l’utilisateur
Antoinekl1
Actif
Messages : 3927
Inscription : 23 mai 2015, 08:14

Re: Les façons de stocker une information dans un virtuel

Message par Antoinekl1 » 29 juin 2019, 12:27

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
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6

glenan
Actif
Messages : 1479
Inscription : 08 mai 2017, 21:38
Localisation : Bretagne

Re: Les façons de stocker une information dans un virtuel

Message par glenan » 29 juin 2019, 12:37

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é
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.

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

Avatar de l’utilisateur
fwehrle
Actif
Messages : 2824
Inscription : 01 juil. 2015, 11:03
Localisation : Strasbourg

Re: Les façons de stocker une information dans un virtuel

Message par fwehrle » 29 juin 2019, 12:55

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é
Bien vu. Ça évite de passer par toute la mécanique de mise à jour, déclenchement des scénarios, etc...
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

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Les façons de stocker une information dans un virtuel

Message par loic » 29 juin 2019, 13:27

glenan a écrit :
29 juin 2019, 12:37
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é
Le 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.

Envoyé de mon Samsung Note 8 en utilisant Tapatalk
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...
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

Avatar de l’utilisateur
Antoinekl1
Actif
Messages : 3927
Inscription : 23 mai 2015, 08:14

Re: Les façons de stocker une information dans un virtuel

Message par Antoinekl1 » 29 juin 2019, 16:20

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é
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 simple

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

Avatar de l’utilisateur
Antoinekl1
Actif
Messages : 3927
Inscription : 23 mai 2015, 08:14

Re: Les façons de stocker une information dans un virtuel

Message par Antoinekl1 » 29 juin 2019, 16:34

fwehrle a écrit :
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é
Bien vu. Ça évite de passer par toute la mécanique de mise à jour, déclenchement des scénarios, etc...
Pourquoi cela éviterait le déclenchement d'un scénario ?

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

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Les façons de stocker une information dans un virtuel

Message par loic » 29 juin 2019, 17:54

Antoinekl1 a écrit :
29 juin 2019, 16:20
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é
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 simple

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
Ç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 Jeedom
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

Avatar de l’utilisateur
Antoinekl1
Actif
Messages : 3927
Inscription : 23 mai 2015, 08:14

Re: Les façons de stocker une information dans un virtuel

Message par Antoinekl1 » 29 juin 2019, 18:06

loic a écrit :
Antoinekl1 a écrit :
29 juin 2019, 16:20
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é
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 simple

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
Ç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 Jeedom
Je peux comprendre

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

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Les façons de stocker une information dans un virtuel

Message par loic » 29 juin 2019, 18:14

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

Répondre

Revenir vers « Discussions Générales »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités