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 !

ouverture volet roulant au levé du soleil si time > 7h30

Réservé à la création de scénarios dans JEEDOM
crunchy59
Timide
Messages : 185
Inscription : 23 juil. 2018, 18:42

ouverture volet roulant au levé du soleil si time > 7h30

Message par crunchy59 » 03 mai 2019, 08:11

Bonjour,

Je voudrais faire un scénario avec le levé du soleil. Il fonctionne parfaitement. Mais maintenant le soleil se lève tôt, je voudrais décaler l'ouverture des volet après au levé du soleil si il est plus de 7h30.

J'ai donc fait ce scénario, mais mes volets se sont ouverts à 1h du matin :shock:
up volet.JPG
up volet.JPG (215.17 Kio) Consulté 887 fois
Savez vous où j'ai mal fait les choses?

Code : Tout sélectionner

[2019-05-03 00:00:03][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2019-05-03 00:00:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-05-03 00:00:03][SCENARIO] Evaluation de la condition : [724 ET "Non" == "Non"  ] = Vrai
[2019-05-03 00:00:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2019-05-03 00:00:03][SCENARIO] Exécution d'un bloc élément : 26
[2019-05-03 00:00:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-05-03 00:00:03][SCENARIO] Evaluation de la condition : [000>0730] = Faux
[2019-05-03 00:00:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-05-03 01:00:08][SCENARIO] [Wait] Condition valide par dépassement de temps :  100 == 0730 =>
[2019-05-03 01:00:08][SCENARIO] Exécution de la commande [Salon][Volet roulant Salon][Up]
[2019-05-03 01:00:08][SCENARIO] Pause de 10 seconde(s)
[2019-05-03 01:00:18][SCENARIO] Exécution de la commande [Salle à Manger][Volet Roulant Salle à Manger][Up]
[2019-05-03 01:00:18][SCENARIO] Pause de 10 seconde(s)
[2019-05-03 01:00:28][SCENARIO] Exécution de la commande [Cuisine][Volet roulant Cuisine][Up]
[2019-05-03 01:00:28][SCENARIO] Exécution de la commande [Salle à Manger][Lumières Salle à manger][Off]
[2019-05-03 01:00:28][SCENARIO] Fin correcte du scénario
Un grand merci d'avance,
C.

Avatar de l’utilisateur
PrFalKeN
Actif
Messages : 936
Inscription : 27 nov. 2017, 18:51

Re: ouverture volet roulant au levé du soleil si time > 7h30

Message par PrFalKeN » 03 mai 2019, 08:19

'Jour,

Il suffit de lire le log pour comprendre !
Ton scénario est programmé à minuit donc il s'est lancé à minuit...
Ensuite ta 1ere condition SI est vrai donc tu passes à la deuxième qui elle teste si heure actuel est supérieur a 7h30
Or à minuit c'est faux donc tu passes dans le ELSE et tu ouvres !!

Tu dis que tu veux décaller l'ouverture à 7h30 si l'heure de lever du soleil est plus tot que 7h30 mais nulle part dans ton scénario tu ne fais ce test...

Pourtant ce serait peut être par là qu'il faudrait commencer.
Si heure de lever soleil est < 7h30
Alors A 7h30 OUvrir
Sinon A Heure lever soleil, + random x minutes Ouvrir

Et programmer le scénario à 4h du matin...

romanais
Actif
Messages : 1999
Inscription : 21 août 2014, 21:36
Localisation : Drôme

Re: ouverture volet roulant au levé du soleil si time > 7h30

Message par romanais » 03 mai 2019, 08:59

Tout est dit par PrFalKeN ;-)
Merci à toute l'équipe pour le taf

Mon matériel

crunchy59
Timide
Messages : 185
Inscription : 23 juil. 2018, 18:42

Re: ouverture volet roulant au levé du soleil si time > 7h30

Message par crunchy59 » 03 mai 2019, 09:24

Merci du retour.
Je viens de faire la modif:
voletuptime.JPG
voletuptime.JPG (220.86 Kio) Consulté 863 fois
J'espère avoir bien fait.

Cdt,
C.

Avatar de l’utilisateur
PrFalKeN
Actif
Messages : 936
Inscription : 27 nov. 2017, 18:51

Re: ouverture volet roulant au levé du soleil si time > 7h30

Message par PrFalKeN » 03 mai 2019, 10:39

Ben non :mrgreen:

Déjà pas la peine de passer par une variable comme tu le fais !
tu peux faire directement

SI time_op(tonblabla) < 730
ALORS A 730

Le SINON doit comporter un A et mettre l'heure de lever du soleil car comme tu l'as fait c'est pas bon
En effet demain si le soleil se lève à 7h45(en hiver) et que ton scénario se déclenche à 4h du matin tu vas passer dans le SINON et tes volets vont s'ouvrir à l'heure de déclenchement du scénario !!!!

jpty
Timide
Messages : 333
Inscription : 01 juin 2018, 10:54
Localisation : Nancy

Re: ouverture volet roulant au levé du soleil si time > 7h30

Message par jpty » 03 mai 2019, 11:12

Bonjour,
Mon scénario:
Mytime_op.PNG
Mytime_op.PNG (8.25 Kio) Consulté 841 fois
Et j'ai ajouté la fonction Mytime_op dans data/php/user.function.class.php. Ce fichier n'est pas modifié par les mises à jour du core.

Code : Tout sélectionner

 public static function Mytime_op($_time, $_value = 0, $min = -1, $max = -1 ) {
		$_time = scenarioExpression::setTags($_time);
		$_value = scenarioExpression::setTags($_value);
    $_time = trim($_time); // suppression espaces debut et fin
      // traitement des : dans $_time +cas ou minute sur 1 digit
    $t = explode(":",$_time);
    if(count($t) >= 2) $_time = $t[0].sprintf("%02d",$t[1]);
      // Mise a longueur 4 caracteres
    if ( ($lg=strlen($_time)) < 4 ) $_time = str_repeat("0",4-$lg).$_time;
    else $_time = substr($_time,0,4);
// echo "CreateFromFormat Time= \"$_time\"<br/>";
      // creation DateTime
    $date = DateTime::createFromFormat('Gi', $_time);
    if ($date === false) return -1;
      // Ajout/retrait de $_value
    $dv = new DateInterval('PT' . abs($_value) . 'M');
		if ($_value > 0) $date->add($dv);
    else $date->sub($dv);
    $dat = $date->format('Gi');
    if (($min == -1 && $max == -1) || ($min != -1 && $max != -1)) return $dat;
    if ( $min != -1 ) return min($dat,$min);
    if ( $max != -1 ) return max($dat,$max);
  }
C'est une copie de time_op avec l'ajout et le traitement des paramètres min et max
J'ai utilisé cette solution pendant plusieurs mois.

Ou encore plus simple (uniquement essayé dans le testeur d'expression), vous pouvez mettre dans le A du scénario:

Code : Tout sélectionner

max(time_op(#[Météo][Heliotrope Maison][Lever du Soleil]#,rand(60,80)),730)   

crunchy59
Timide
Messages : 185
Inscription : 23 juil. 2018, 18:42

Re: ouverture volet roulant au levé du soleil si time > 7h30

Message par crunchy59 » 03 mai 2019, 11:31

Super un grand merci du retour,
donc si je comprend bien je dois modifier le user.function.class.php pour ajouter après le range l'heure?

Cdt,
C.

jpty
Timide
Messages : 333
Inscription : 01 juin 2018, 10:54
Localisation : Nancy

Re: ouverture volet roulant au levé du soleil si time > 7h30

Message par jpty » 03 mai 2019, 11:35

Ajouter la fonction Mytime_op complète dans le fichier ou essayer la fin de mon post ci-dessus que j'ai édité pour le compléter.

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

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