Scénarios et type générique OPENING

Bonjour,

Je suis en cours de réalisation d’un scénario générique type « protection fenêtre ouverte » qui va couper l’alimentation de moyens de chauffage par pièce en fonction de la détection d’ouverture des ouvrants de cette même pièce.

Je réalise un seul scénario, qui se sert des types génériques et du parent du déclencheur de l’ouvrant pour couper le chauffage de la pièce.

Mon souci est que je ne récupère que les ouvertures et pas les fermetures. Voici la partie déclencheur de mon scénario :

Pour le moment, mon scénario ne fait rien de plus que logguer l’état du trigger :

require_once dirname(__FILE__) . '/../../data/php/constants.php';
require_once dirname(__FILE__) . '/../../data/php/user.function.class.php';



if('user' !== $scenario->getRealTrigger()) {
  $triggerCommand = cmd::byString($scenario->getRealTrigger());
  var_dump($triggerCommand->execCmd());
  if(1 === $triggerCommand->execCmd()) {
    $scenario->setLog("Ouverture détectée de " . $triggerCommand->getHumanName());
  } 
  else {
    $scenario->setLog("Fermeture détectée de " . $triggerCommand->getHumanName());
  } 
}

Voici une extraction des data de ce matin, pour ma porte d’entrée :

On voit bien

  • Une ouverture un peu après 8h33 et la fermeture associée un peu après 8h34.
  • Une ouverture/fermeture autour de 8h38.

Maintenant, voici les logs de mon scénario :

[2022-12-16 08:33:03][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de :  genericType(OPENING,#[Entree]#) from [Entree][Porte entree][Ouverture].
[2022-12-16 08:33:03][SCENARIO] - Exécution du sous-élément de type [action] : code
[2022-12-16 08:33:03][SCENARIO] Exécution d'un bloc code 
[2022-12-16 08:33:03][SCENARIO] Ouverture détectée de [Entrée][Porte entrée][Ouverture]
[2022-12-16 08:33:03][SCENARIO] Fin correcte du scénario
------------------------------------
[2022-12-16 08:37:53][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de :  genericType(OPENING,#[Entree]#) from [Entree][Porte entree][Ouverture].
[2022-12-16 08:37:53][SCENARIO] - Exécution du sous-élément de type [action] : code
[2022-12-16 08:37:53][SCENARIO] Exécution d'un bloc code 
[2022-12-16 08:37:53][SCENARIO] Ouverture détectée de [Entrée][Porte entrée][Ouverture]
[2022-12-16 08:37:53][SCENARIO] Fin correcte du scénario

On n’a que le passage à 1, donc l’ouverture, et pas la fermeture.

Voyez-vous un souci dans la configuration de mes déclencheurs? Ou un souci sur le test de la valeur? J’ai vérifié, la commande renvoie bien un integer, du coup le test if(1 === $triggerCommand->execCmd()) est valable. Je dumpe la valeur avant et j’ai toujours un (int) 1, ce qui me fait dire que mes déclencheurs sont mal paramétrés de ma part.

Merci pour vos retours & éclairages,

Bonjour,

Je n’utilise pas ce type de générique, donc juste une idée (je n’ai pas trouvé dansla donc, ou je n’ai pas compris le fonctionnement!, donc un peu au pif) : ton déclencheur est sur « opening_windows », faut-il ajouter « closing_windows »?

Bonjour,

J’ai le même problème avec #genericType(THERMOSTAT_STATE)#, le passage à 0 ne declenche pas systematiquement le scenario.

Merci pour ton retour. En fait, sauf erreur de ma part ce n’est pas nécessaire et pas customisable, car là on parle des noms des types génériques. Si tu veux un aperçu de ce qui est dispo, tu peux aller sur /index.php?v=d&p=types (sur ton Jeedom). Et là tu cliques sur « Liste » en haut à droite.

Tu auras la liste des types génériques dispos. Par ailleurs, comme c’est une commande info binaire, les 2 états permettent normalement de gérer l’ouverture et la fermeture sur cette même commande.

Merci pour ton retour. Du coup, as-tu trouvé un contournement? Il y a bien la solution de faire un déclenchement mixte, avec un déclenchement par événement pour l’ouverture et un pooling toutes les minutes pour la fermeture, mais c’est (trop) moche…

Pour le moment nom, je reviens à l’ancienne avec les commandes s"status" pour chaque piece.

@Guitou ,

Je viens de remettre le nez dans ce sujet. Et je constate que mes scénarios fonctionnent maintenant. Que ce soit avec triggerValue() en mode WYSIWYG ou en mode code, ($scenario->getRealTrigger()), j’obtiens bien la valeur binaire correspondant à l’ouverture ou la fermeture du device.

PI je suis à jour du core et de tous les plugins. Est-ce que tu confirmes que ça fonctionne de ton côté ?