Bonjour,
Pour ma part pour être plus précis.
Je chauffe mon ballon avec du solaire. Seulement, il arrive que le soleil ne soit pas assez vaillant. Donc j’ai la possibilité, de compléter avec un loadbalancer, et de le forcer en heures creuses.
Pour cela j’ai agrémenté le service, avec un aiguilleur (Shelly) qui active ou non, la prise en compte des HC.
Pour plus de services, j’ai ajouter Google dans la boucle.
Sur un « Hey Google, programme le ballon », un script se lance pour ajouter un événement dans l’agenda. Evenement unique sans répétition.
///////// Initialisation des variables ///////////////
$Date = date('Y-m-d',strtotime("+1 day"));
$Time = "01:35";
$IdCalendrier = '2389';
$titre = 'Programmation Manuel';
$cmdOn = '#[Shelly][Shelly InterBallonEauChaude][ON]#';
$cmdOff = '#[Shelly][Shelly InterBallonEauChaude][OFF]#';
///////////////////// CODE ///////////////////////////
$dateDebutSQL = date('Y-m-d H:i:s', strtotime($Date . ' ' . $Time . ':00'));
$scenario->setLog($dateDebutSQL);
$dateFinSQL = date('Y-m-d H:i:s', strtotime($Date . ' ' . $Time . ':00' . ' +240 minutes'));
$scenario->setLog($dateFinSQL);
$values = '{"eventName":"' . $titre . '","icon":"<i class=\\\"icon fas fa-water icon_red\\\"><\\\/i>","color":"#28A0E6","transparent":"0","text_color":"#000000","noDisplayOnDashboard":"0","start":[{"options":{"enable":"1","background":"0"},"cmd":"'.$cmdOn.'"}],"end":[{"options":{"enable":"1","background":"0"},"cmd":"'.$cmdOff.'"}],"in_progress":0}';
$sql = "INSERT INTO `calendar_event` (`eqLogic_id`,`cmd_param`,`startDate`,`endDate`) VALUES ('".$IdCalendrier."','".$values."','".$dateDebutSQL."','".$dateFinSQL."')";
$db = DB::Prepare($sql,array());
Un truc tout basique, pris de certaine lecture de @Phpvarious ou de @Bison, modifié, agrémenté à mon besoin. J’espère qu’ils ne m’en voudront pas …
Après l’exécution du script, je retrouve sur mon Design, l’événement et une lisibilité très WAF, permettant de confirmer que la commande est prise en compte …
Cependant, je vous l’accorde, par grande bêtise, ma femme commande cette action, et que je ne vérifie pas, je hèle de nouveau la commande à mon ami …
Je me retrouve alors avec 2 items identiques…
Par conséquent, comme je l’expliquais plus haut, je tente de cliquer sur la croix, mais aucun des deux ne disparait.
Il faut que j’ailles dans le plugin Agenda, pour supprimer un des 2 éléments.
Beaucoup, moins WAF.
Pour aller, plus loin, si je suis vraiment très con, je commande plusieurs dans la journée, et je me retrouve avec autant l’item dans l’agenda que de commande …
Donc après cette explication de fonctionnement, je ne sais pas associé les informations reçues précédemment.
-
l’agenda fonctionne par exclusion : comment je peux avoir une exclusion un événement qui est à la marge … Je connais ce système dans un agenda pour les poubelles, le tri, ou la dechett’ quand le jour de relève tombe un jour férié. Je fais un exclusion dans un autre agenda (poubelle sans passage par exemple).
-
peut être faire un vérif que l’événement existe (dans le script) avant de faire un ajout. Je trouve que ce serait une solution, mais mes connaissances ne sont pas aussi évoluées dans le scripting ou le PHP. Je ne refuse pas une aide, ou un MP au cas où.
-
Peut être un nouveau bug sur l’Agenda. Mais je ne sais pas le dire.
-
une autre idée ?
Merci d’avoir pris le temps de lire jusque là.
Je sais que c’était long, mais comme « ça ne fonctionne pas » c’est trop court, et que je ne sais pas donner des logs, des explications fonctionnelles pour comprendre le phénomène.
Merci pour l’aide apportée, et j’espère que cela motivera des idées.
Belle journée à vous,
Vincent.