Utilisation de l'heure dans un scénario

Le bloc SI utilise la meme syntaxe que le Testeur d’expression. => Pas de solution pour des expressions un peu complexes comme celle avec durationBetween de @scanab au dessus.

Plutôt que de passer par la recup des lever et coucher de soleil dans une commande de Jeedom, vous devriez aller voir du coté de la fonction php date_sun_info où avec les latitude et longitude, vous avez directement les timestamps des heures de lever et coucher du soleil.
https://www.php.net/manual/fr/function.date-sun-info.php

mktime avec uniquement les 2 arguments heure et minute fonctionne sans être lié au 1 juillet 2020.
https://www.php.net/manual/fr/function.mktime.php

Dit dés le départ !!!

Je présume que stateChangesBetween est dans la même classe.

Avec

$toto = scenarioExpression::stateChangesBetween("#[ma][commande][infoHistorisée]#","toto","yesterday","now");

J’ai une erreur:

 ERREUR PHP: [MySQL] Error code : 42S22 (1054). Unknown column 'toto' in 'where clause'  : SELECT count(*) as changes
FROM (SELECT t1.*
FROM (
SELECT *
FROM history
WHERE cmd_id=:cmd_id AND `datetime`>="2020-07-01 00:00:00" AND `datetime`<="2020-07-02 00:56:42"
UNION ALL
SELECT *
FROM historyArch
WHERE cmd_id=:cmd_id AND `datetime`>="2020-07-01 00:00:00" AND `datetime`<="2020-07-02 00:56:42"
) as t1
WHERE cmd_id=:cmd_id AND `datetime`>="2020-07-01 00:00:00" AND `datetime`<="2020-07-02 00:56:42"
) as t1
where  value = toto à la ligne 101 !

Il faut que la requête SQL soit de la forme where value = "toto"

La syntaxe est donc :

$toto = scenarioExpression::stateChangesBetween("#[ma][commande][infoHistorisée]#",'"toto"',"today","now");
1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.