si ca peut aider, j’ai ajouté une commande Ajouter une date spéciale dans la prochaine version
qui prend en param une ou N dates, format AAAA-MM-JJ séparées par une virgule
tomitomas aime bien voir des « résolus » sur l’ensemble de ses plugins, et il a bien raison ! Déformation professionnel surment, il doit avoir un chef casse pied
C est surtout + pratique pour savoir ce qui te reste a faire !!
Et ici l idee est bonne et c est quand meme + simple d avoir une commande qui fait tout, plutot qu un bloc code que les utilisateurs copieront mal, ne comprendront pas, etc…!
L objectif c est justement bien de progresser ensemble !
C est moi le chef casse pied qui enquiquine tout le monde …!
Du coup j essaie d appliquer a moi meme ce que je demande a mes equipes !
dateBin, 1 february 2023
N, 3
tag_01, strtotime(tag(dateBin))
tag_02, intdiv(strtotime("now")-strtotime(tag(dateBin)),86400*tag(N))+1
tag_03, tag(tag_02)*86400*tag(N)
tag_04, tag(tag_01)+tag(tag_03)
tag_05, "date('Y-m-d',tag(tag_04))"
specific_day, str_replace('"','',"tag(tag_05)")
[2023-02-08 19:28:44][SCENARIO] -- Start : Scenario lance manuellement.
[2023-02-08 19:28:44][SCENARIO] - Exécution du sous-élément de type [action] : action
[2023-02-08 19:28:44][SCENARIO] Mise à jour du tag #dateBin# => 1 february 2023
[2023-02-08 19:28:44][SCENARIO] Mise à jour du tag #N# => 3
[2023-02-08 19:28:44][SCENARIO] Mise à jour du tag #tag_01# => 1675206000
[2023-02-08 19:28:44][SCENARIO] Mise à jour du tag #tag_02# => 3
[2023-02-08 19:28:44][SCENARIO] Mise à jour du tag #tag_03# => 777600
[2023-02-08 19:28:44][SCENARIO] Mise à jour du tag #tag_04# => 1675983600
[2023-02-08 19:28:44][SCENARIO] Mise à jour du tag #tag_05# => "2023-02-10"
[2023-02-08 19:28:44][SCENARIO] Mise à jour du tag #specific_day# => 2011
[2023-02-08 19:28:44][SCENARIO] Exécution de la commande [Aucun][Poubelle Test][Ajouter une date spéciale] avec comme option(s) : {"background":"0","title":"","message":"2011"}
EDIT - Une solution serait que la commande action accepte les dates cotées.
dans mon précédent msg, je ne pensais pas forcément à supprimer tout le bloc code, mais peut etre juste le simplifier qu’il fasse un peu moins peur à des moins expérimentés
// Une semaine sur N, X fois
$maPoubelleID = '1624'; // l'identifiant de l'équipement My Bin
$dernierRamassage = '2023-01-11';
$cycleRamassage = 3; // N
$nombreRamassage = 6; // X prochaines fois
// ------------------------------------
$dateEncombrants = array();
for ($i = 0; $i < $nombreRamassage; $i++) {
$timestamp = strtotime($dernierRamassage) + (intdiv(strtotime("now") - strtotime($dernierRamassage), 7 * 86400 * $cycleRamassage ) + 1) * 7 * 86400 * $cycleRamassage * ($i+1);
$dateEncombrants[] = date('Y-m-d', $timestamp);
}
$scenario->setLog('All next dates : ' . json_encode($dateEncombrants));
$cmdAdd = cmd::byEqLogicIdAndLogicalId($maPoubelleID, 'addSpecificDay');
if (!is_object($cmdAdd)) {
$scenario->setLog('La fonctionnalité n\'existe pas');
return;
}
$cmdAdd->execCmd(array('message' => implode(',', $dateEncombrants)));
(pas certain de la formule, que je n’ai pas épluchée en détail, puisque j’ai des dates en double, mais tu as compris l’idée )
en mode one shot, ca suffirait ?
genre mettre 3 input au niveau de la conf de la poubelle : dernière date / cycle / nombre + 1 bouton « générer » → ca ajoute les dates en spécifique et basta
Le plus efficace serait (à mon avis) 2 inputs, la date de référence et un nombre.
Le nombre étant un nombre de jours. Cela permet de faire un jour sur deux, sur trois, etc… et avec un multiple de sept de faire une semaine sur deux, sur trois, etc…
Le plugin calculant chaque jour la prochaine date et l’ajoute au specific_day si elle n’existe pas.
Lorsque l’on calcule une date avant le changement d’heure et que cette future date est après le changement d’heure, il peut y avoir un décalage d’un jour (suivant le sens du changement d’heure) car le timestamp de la date est à minuit. Afin d’éviter ce décalage, il vaut mieux choisir la date de référence à midi.
Béta en service.
Dans mon scénario myBin, désactivation du bloc code gérant mon équipement "une semaine sur trois".
Les specific_day générés sont ok.
Je laisse tourner pour voir les renouvellement de dates.
Lors de la sauvegarde de l’équipement le 24 juillet, il y avait bien les 5 dates.
La première date étant le 26 juillet qui a bien été supprimée le 27 juillet.
Mais à ce jour, aucune nouvelle date n’a été ajouté.