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 !

time_diff, collectDate et ... ERREUR

Réservé à la création de scénarios dans JEEDOM
Avatar de l’utilisateur
Bono2007
Timide
Messages : 182
Inscription : 27 août 2014, 19:47

Re: time_diff, collectDate et ... ERREUR

Message par Bono2007 » 19 févr. 2019, 12:52

Bonjour, problème toujours pas résolu :
Dans le tester de variable : time_diff(2018-04-30 00:00:00,2018-04-30 00:00:01,s); fonctionne.
Dans un scénario bloc code : [2019-02-19 12:48:44][SCENARIO] syntax error, unexpected '00' (T_LNUMBER), expecting ',' or ')'

Pour info, avec le framework SC on peut l'avoir comme suit :

Code : Tout sélectionner

$diffDate = $sc -> exp('time_diff(2018-01-04 0:0:01,now,h)/24');
Jeedom VM + RFXCom + Z-wave + blea sur Proxmox VE
5 volets Somfy – prises AN158 – Wallplugs – OWL CM180 – compteurs d'eau Gianola – Oeil FGMS001 – Eco-Device – sondes THGR810 - FGS 212 - FGBS321 - DS18B20 - ESCAM Pearl QF100 IP[/size]

Avatar de l’utilisateur
Tarlak
Timide
Messages : 100
Inscription : 04 déc. 2017, 19:00

Re: time_diff, collectDate et ... ERREUR

Message par Tarlak » 04 mars 2019, 20:50

Bonsoir,

J'ai le même soucis dans un scénario je veut faire le test suivant

Code : Tout sélectionner

time_diff(now,valueDate(#[Domotique][Mo][Durée nettoyage]#),h) > 7
Et j'obtiens l'erreur suivante
DateTime::__construct(): Failed to parse time string ("2019-03-04 10:45:02") at position 0 ("): Unexpected character Le seul moyen de contournement que j'ai trouver, affecté à une variable ceci

Code : Tout sélectionner

time_diff(now,valueDate(#[Domotique][Mo][Durée nettoyage]#),h) 
Et faire le test sur la variable, la ça fonctionne sans soucis, mais j'aurais aimé ne pas passer par une variable. Auriez vous une idée?
Snips sur Rasp 3 avec Matrix Voice | Jeedom 3.x en VM proxmox | Sonos Play 1 (x2)

Avatar de l’utilisateur
DomJeed
Timide
Messages : 38
Inscription : 25 juil. 2018, 16:59

Re: time_diff, collectDate et ... ERREUR

Message par DomJeed » 16 mars 2019, 09:44

Bonjour,
J'ai aussi un problème pour utiliser la fonction time_diff(d1,d2,m) pour déterminer l'intervalle entre coucher du soleil et crépuscule civile !!
Ça fonctionne parfaitement avec les "valeurs" :
    time_diff(1932,1855,m)
mais et ça donne un message d'erreur avec les "commandes" :
    time_diff([#[Maison / Extérieur][Home Héliotrope][Crépuscule Civil]#],[#[Maison / Extérieur][Home DomoGeek][Coucher du soleil scénario]#],m)
Voici le message d'erreur :
   DateTime::__construct(): Failed to parse time string ([#100#]) at position 0 ([): Unexpected character
Où est l'erreur d'écriture ??
Merci de votre aide
Je vous souhaite une agréable journée

Bosquetia
Actif
Messages : 6783
Inscription : 10 mai 2016, 07:54

Re: time_diff, collectDate et ... ERREUR

Message par Bosquetia » 16 mars 2019, 10:18

L'erreur c'est que le format heure passé ne lui convient pas...

La doc dit :
time_diff(date1,date1[,format]) : Permet de connaître la différence entre 2 dates (les dates doivent être au format AAAA/MM/JJ HH:MM:SS). Par défaut (si vous ne mettez rien pour format), la méthode retourne le nombre total de jours. Vous pouvez lui demander en secondes (s), minutes (m), heures (h). Exemple en secondes time_diff(2018-02-02 14:55:00,2018-02-25 14:55:00,s)

Avatar de l’utilisateur
DomJeed
Timide
Messages : 38
Inscription : 25 juil. 2018, 16:59

Re: time_diff, collectDate et ... ERREUR

Message par DomJeed » 16 mars 2019, 10:37

Euréka... ou plus honnêtement merci à la discussion «Souci strtotime» viewtopic.php?t=40959
J'ai remplacé la fonction time_diff par strtotime... avec succès !
    (strtotime(#[Maison / Extérieur][Home Héliotrope][Crépuscule Civil]#)-strtotime(#[Maison / Extérieur][Home DomoGeek][Coucher du soleil scénario]#))/60
... afin d'avoir la différence en minutes

Avatar de l’utilisateur
DomJeed
Timide
Messages : 38
Inscription : 25 juil. 2018, 16:59

Re: time_diff, collectDate et ... ERREUR

Message par DomJeed » 18 mars 2019, 17:02

.../... (suite de ma message d'hier)
Mon "astuce" ci-dessus ne fonctionne pas avec les horaires matinaux (!!?)... donc, pour une différence (en minutes) entre les horaires de l'Aube Civile et du Lever du Soleil, j'ai dû utiliser time_op(horaire,+720) afin de "mettre ces horaires sur l'après-midi".
Ce qui donne la nouvelle formule, quand même un peu alambiquée, suivante :
(strtotime(time_op(#[Maison / Extérieur][Home DomoGeek][Lever du soleil scénario]#,720))-strtotime(time_op(#[Maison / Extérieur][Home Héliotrope][Aube Civile]#,720)))/60
Bonne soirée

Didier3L
Actif
Messages : 1387
Inscription : 01 mai 2016, 13:40

Re: time_diff, collectDate et ... ERREUR

Message par Didier3L » 18 mars 2019, 18:22

Dans le même genre
je récupére la valeur et la transforme en heure au format 00h00
variable :arrow: Départ1 :arrow: formatTime(#[Transport][RER A][Départ 1 heure]#,'h:i')

Ensuite je remplace les h par des :
variable :arrow: Départ1 :arrow: str_replace("h",":",variable(Départ1))

Je peux ensuite calculer la diférence en minutes par rapport à l'heure actuelle
variable :arrow: Ecart1 :arrow: time_diff(str_replace("h",":",variable(Départ1)),now,m)
Synology DS216+ / DSM 6.2 / Docker / MariaDB 5
Conteneur : jeedom/Jeedom:master en mode réseau Host - Version Jeedom V3.3
Protocole : MyHOME Play Zigbee/ Xiaomi Aqara / HomeBridge / BLEA

Mon matériel | Tuto MyHOME en Vidéo | Documentation

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

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