$tags = $scenario->getTags(); $automatisme = $tags['#automatisme#']; $scenario->setLog('Automatisme :'.$automatisme); // if ($automatisme == "AUCUN") $automatisme = ""; $zone = $tags['#zone#']; $scenario->setLog('Zone :'.$zone); // Récupération du numéro de séquence qui servira à actionner l'électrovanne if (strpos($zone, '-') != false) { $zone_num = substr($zone, 0, strpos($zone, '-')-1); } else { $zone_num = 0; } if (strpos($zone, 'Fleurs') != false) $zone_name = substr($zone, strpos($zone, 'Fleurs') + 7); else if (strpos($zone, 'Pelouse') != false) $zone_name = substr($zone, strpos($zone, 'Pelouse') + 8); else $zone_name = $zone; $scenario->setLog('zone Num :'.$zone_num); $scenario->setLog('zone Name :'.$zone_name); $Relay_Name_On = '#[Extérieur][Relay 12CH - Arrosage][On '.$zone_num.']#'; $Relay_Name_Off = '#[Extérieur][Relay 12CH - Arrosage][Off '.$zone_num.']#'; $scenario->setLog('Relay Name On :'.$Relay_Name_On); $scenario->setLog('Relay Name Off:'.$Relay_Name_Off); $Temps_Initial = cmd::byString('#[Extérieur][Arrosage]['.$zone.']#')->execCmd(); $Temps_Adaptation = cmd::byString('#[Extérieur][Arrosage][Adaptation]#')->execCmd(); $Temps_Arrosage = round($Temps_Initial * ($Temps_Adaptation / 100),0); $scenario->setLog('Temps Initiale:'.$Temps_Initial.' min.'); $scenario->setLog('Adaptation :'.$Temps_Adaptation.'%'); $scenario->setLog('Temps Arrosage:'.$Temps_Arrosage.' min.'); if ($Temps_Arrosage != 0) { //Automatisme et Zone en cours cmd::byString('#[Extérieur][Arrosage][Automatisme]#')->event($automatisme); cmd::byString('#[Extérieur][Arrosage][En-Cours - Zone]#')->event($zone_name); //Activation du Relay de la zone d'arrosage, Attente du temps d'arrosage et Arrêt du Relay $scenario->setLog('Activation :'.$Relay_Name_On); //cmd::byString($Relay_Name_On)->execCmd(); // Boucle le temps de l'arrosage toutes les minutes afin d'afficher la zone et le temps restant // --> Cela va permettre également d'afficher en MQTT sur l'afficheur au sous-sol do { $scenario->setLog(' Attente :'.$Temps_Arrosage.' min.'); //Affiche le temps restant dans la zone cmd::byString('#[Extérieur][Arrosage][En-Cours - Tps Restant]#')->event($Temps_Arrosage); //Publication MQTT pour l'ESP32 cmd::byString('#[Extérieur][Arrosage - Zone pour ESP32][Arrosage]#')->execCmd(); sleep(60); //sleep(1); $Temps_Arrosage = $Temps_Arrosage - 1; } while ($Temps_Arrosage > 0); $scenario->setLog('Arrêt :'.$Relay_Name_Off); cmd::byString($Relay_Name_Off)->execCmd(); // Effacement des infos des arrosage en cours, et envoi MQTT cmd::byString('#[Extérieur][Arrosage][Automatisme]#')->event(''); cmd::byString('#[Extérieur][Arrosage][En-Cours - Zone]#')->event(''); cmd::byString('#[Extérieur][Arrosage][En-Cours - Tps Restant]#')->event(''); cmd::byString('#[Extérieur][Arrosage - Zone pour ESP32][Arrosage]#')->execCmd(); sleep(2); } else { $scenario->setLog('Temps arrosage à 0, pas prix en compte pour activer la zone'); }