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 !

Variable => Virtuel => Slider

Réservé à l'utilisation et la création des objets virtuels dans JEEDOM
Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Variable => Virtuel => Slider

Message par Naboleo » 09 juil. 2019, 21:52

Bonsoir,

ça fait un petit moment que je joue avec jeedom mais là je ne vois pas tellement de solution

Aujourd'hui j'ai fait pas mal de virtuels genre "panneau de commande" pour exploiter des "infos" dans mes scénarios et mécaniques jeedom. Ces infos sont liées à un curseur.
control.PNG
control.PNG (14.92 Kio) Consulté 3026 fois
Le gros intérêt c'est que les nouvelles valeurs sont prises en compte automatiquement quand on bouge le curseur. ça marche bien mais j'ai un souci de temps en temps : si par hasard le cache se vide, les infos se retrouvent à 0 et forcement c'est le bazard dans le fonctionnement de jeedom...

La solution c'est probablement de passer en plus par une variable pour stocker tout ça mais je n'arrive pas à coordonner les 3 pour avoir un truc du genre :
  • Augmenter le slider, augmente la valeur de l'info -> OK ça c'est la base, je l'ai déjà
  • L'info met à jour la variable -> OK via les actions post commandes sur le slider
Mais si je vide le cache, le slider, info et variable tombent à zéro. Logique puisque la mise à jour de l'info est répercuté dans la variable

Quelqu'un sait comment faire ?
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

winhex
Actif
Messages : 3799
Inscription : 23 janv. 2015, 01:41

Re: Variable => Virtuel => Slider

Message par winhex » 09 juil. 2019, 22:24

Bonjour
J'ai jamais eu de soucis
Donc c'est quoi le cache pour toi ?

Auparavant il n'y avait pas de cache (reboot = valeur a zéro)

On passait par une variable mais ça fait un baille que c'est resolu
Enfin j'ai des batteries "powerbank" donc je m'avance peut être

Sinon un enregistrement de la valeur en variable
Et en scénario un déclencheur boot remettre la variable au curseur

Pour être sûr de ton codage widget , création cmd
Fait un évent sur l'info
Le curseur doit reprendre la bonne valeur
" Je verrais bien un manque d'update dans ton widget curseur"

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Variable => Virtuel => Slider

Message par Naboleo » 09 juil. 2019, 23:14

Merci Winhex pour ton retour...

Quand je parle d'une vidange de cache, il y a 2 cas :
- ça m'arrive temps en temps après un reboot mais je ne sais pas trop à la suite de quoi... la plupart des reboots ne produisent pas cet effet. C'est pas un souci matériel (SSD etc)
- avec le bouton adhoc dans la partie configuration/cache de jeedom

Voilà un exemple de config basique : un simple virtuel, avec les widgets du core
synch.PNG
synch.PNG (48.98 Kio) Consulté 2999 fois
coté slider
tmp.PNG
tmp.PNG (10.67 Kio) Consulté 2995 fois
Et typiquement avec ça si j'efface le cache (choix 2 ci-dessus), je retourne à zéro

Pour le scénario qui se déclenche au boot, qui vérifie les infos 1 à 1 et remplace avec le contenu de la variable si l'info vaut zéro, j'y ai bien pensé mais à gérer c'est quasiment infernal

PS : d'ailleurs c'est rigolo, si on place la mise à jour de la variable dans la case "action AVANT execution de la commande", on garde la valeur n-1 ... ça peut être pas mal pour revenir en arrière
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

winhex
Actif
Messages : 3799
Inscription : 23 janv. 2015, 01:41

Re: Variable => Virtuel => Slider

Message par winhex » 10 juil. 2019, 09:19

Pourquoi vérifier
Si #start# est le déclencheur
La variable est l'info
Le cas 2 étant un cas improbable hors volonté de ta pars

Les redemarrages n'etant pas le truc qui se produit normalement souvant.
Pense a te faire une notification en même temps pour venir faire ton tour

Je garde ton ps en mémoire :idea:

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Variable => Virtuel => Slider

Message par Naboleo » 10 juil. 2019, 21:34

Il doit y avoir moyen de faire un truc un peu automatisé :
Prérequis : Les infos à enregistrer se terminent toutes par -BACKUP.

Sauvegarde :
Avec un déclencheur programmé (genre 3h du mat) : on liste toutes les infos qui se terminent toutes par -BACKUP, et on mets à jour/créer la variable qui porte le même nom avec la valeur de l'info.

Restauration :
Avec le déclencheur #start" on liste toutes les infos qui se terminent toutes par -BACKUP, si info à 0, on y colle la valeur de la variable qui porte le même nom.




Comme ça les nouvelles variables sont automatiquement prises en compte grâce au nom.
Le seul soucis, c'est de ne pas voir la dernière valeur si le cache se vide avant le scheduling de backup... mais c'est mieux que d'avoir 0
Je vais voir si je peux faire un petit script
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Variable => Virtuel => Slider

Message par Naboleo » 12 juil. 2019, 09:55

Bon à priori, il n'y pas moyen de récupérer une commande seulement avec une partie de son nom en natif ... Et j'ai vu pas comment récupérer toutes les commandes :(
Dernière édition par Naboleo le 12 juil. 2019, 16:22, édité 1 fois.
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

winhex
Actif
Messages : 3799
Inscription : 23 janv. 2015, 01:41

Re: Variable => Virtuel => Slider

Message par winhex » 12 juil. 2019, 16:18

sans le faire
tu peux faire une boucle sur id (chiffre)
si dedans
le getType() est une info
sauvegarde en variable
getHumanName() qui sera ta cmd info

Code : Tout sélectionner

$declencheur='#[sondes][Sondes SdB][Humidité]#';
$id=267;

$etat_declencheur=cmd::byString($declencheur)->getName();
$etat_declencheur1=cmd::byString($declencheur)->getId();
$etat_declencheur2=cmd::byString($declencheur)->getType(); // info
$etat_declencheur3=cmd::byString($declencheur)->getEqType_name(); // rfxcom
$etat_declencheur4=cmd::byString($declencheur)->getHumanName();
$etat_declencheur5=cmd::byId($id)->getHumanName();
$scenario->setLog("lancement du scenario par : $etat_declencheur5");
suivi de sa valeur
soit
[sondes][Sondes SdB][Humidité]_backup / 23
---
mais si cest simplement quelques infos
autant les mettres en dur dans une boucles

Code : Tout sélectionner

temperatures = array("Salle a manger]",
                      "Cuisine]",
//                      "Chambre Adrien]",
//                      "Chambre Lisa]",
                      "Chambre Ami]",
);
foreach ($temperatures as $temperature) {
$temp_cmd = cmd::byString('#[Nouveau Chauffage][Gestion Chauffage][' . $temperature . '#');
$temp = $temp_cmd->execCmd();
  $scenario->setLog("sonde : [$temperature température : [$temp] ");
  }

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Variable => Virtuel => Slider

Message par Naboleo » 12 juil. 2019, 16:59

@winhex

Finalement il y a tout ce qu'il faut avec cmd:all() (suis passé trop vite sur la doc)

Code : Tout sélectionner

foreach(cmd::all() as $cmd) {
  if($cmd->getType()=="info"){
    $name=$cmd->getHumanName();
    //$scenario->setLog($cmd->getId() . ' : '.$name);
    if(substr($name,strlen($name)-8,8)=="-backup]")
    {
      $val=$cmd->execCmd();
      $var = "#".$name."#";
      if($val != 0)
      {
        $scenario->setLog('Backup de : ' . $name.' Valeur='.$val);
        $scenario->setData($var, $val);
      }
      else
      {
        $val=$scenario->getData($var);
        $scenario->setLog('Récupération de : ' . $name.' Valeur='.$val);
        $cmd->event($val);
      }
    }
  }
}
L'avantage c'est de ne surtout pas avoir à coder une liste en dur, même si ça varie peu au final.Il suffit de nommer la variable de façon particulière. Il y a peut-être encore un ou deux bugs à voir si la variable n'existe pas et qu'on tente de la récupérer + quand l'info n'existe plus, la variable reste ...mais bon
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Variable => Virtuel => Slider

Message par Naboleo » 14 juil. 2019, 11:09

Finalement j'ai inversé les conditions : si 0 on restaure, sinon dans tous les autres cas on fait le backup. Comme ça il y a moins de risques d'être de garder de vieilles valeurs

Code : Tout sélectionner

foreach(cmd::all() as $cmd) {
  if($cmd->getType()=="info"){
    $name=$cmd->getHumanName();
    if(substr($name,strlen($name)-8,8)=="-backup]")
    {
      $val=$cmd->execCmd();
      $var = "#".$name."#";
      $valbckp=$scenario->getData($var);
      if($val == 0)
      {
        $scenario->setLog('Restauration de : ' . $name.' Valeur='.$valbckp);
        $cmd->event($val);
      }
      else
      {
        $scenario->setLog('Backup de : ' . $name.' Valeur='.$val);
        $scenario->setData($var, $val);
      }
    }
  }
}
ça fonctionne nickel
[2019-07-14 01:00:02][SCENARIO] Lancement du scénario en mode synchrone
[2019-07-14 01:00:02][SCENARIO] Start : Scénario exécuté automatiquement sur programmation.
[2019-07-14 01:00:02][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-07-14 01:00:02][SCENARIO] Exécution d'un bloc code
[2019-07-14 01:00:04][SCENARIO] Backup de : [La maison][Contrôle Chauffage][T-Eco-backup] Valeur=16
[2019-07-14 01:00:04][SCENARIO] Backup de : [La maison][Contrôles Volets][TDelta-backup] Valeur=2
[2019-07-14 01:00:04][SCENARIO] Backup de : [La maison][Contrôle Chauffage][AnticipationH-backup] Valeur=6
[2019-07-14 01:00:04][SCENARIO] Backup de : [La maison][Contrôles Volets][Luminosite-backup] Valeur=1
[2019-07-14 01:00:04][SCENARIO] Backup de : [La maison][Contrôles Volets][DelaiCloture-backup] Valeur=30
[2019-07-14 01:00:04][SCENARIO] Backup de : [La maison][Contrôles Volets][TIntMax-backup] Valeur=25
[2019-07-14 01:00:04][SCENARIO] Backup de : [La maison][Contrôles Volets][TExtMax-backup] Valeur=28
[2019-07-14 01:00:04][SCENARIO] Backup de : [La maison][Contrôles Volets][TExtMin-backup] Valeur=5
[2019-07-14 01:00:05][SCENARIO] Backup de : [La maison][Contrôles Volets][TExtCan-backup] Valeur=30.5
[2019-07-14 01:00:05][SCENARIO] Backup de : [La maison][Contrôle Chauffage][T-Confort-backup] Valeur=18.5
[2019-07-14 01:00:05][SCENARIO] Backup de : [La maison][Contrôle Chauffage][T-Absent-backup] Valeur=12.5
[2019-07-14 01:00:05][SCENARIO] Backup de : [La maison][Contrôle Chauffage][T-SdB-backup] Valeur=24
[2019-07-14 01:00:05][SCENARIO] Fin correcte du scénario
J'ai finalement mis 2 triggers #start# et #end_backup#
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

Répondre

Revenir vers « [Plugin officiel] Virtuels »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité