Scénario - Ajouter un évènement dans Agenda avec un bloc code

Bonjour,

j’avais déjà posté dans un autre sujet:Scénario ajouter une date - #28 par Picapau67 mais étant hors sujet, j’en ai créé un nouveau.

J’avais récupéré un code (merci archange84) sur le forum et un peu modifié pour l’adapter à mon jeedom et ca marcher très bien sous V3 mais depuis V4, ca ne marche plus.

// Variables pour le début et la fin de l`évenement:
$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' . ' +30 minutes'));
$scenario->setLog($dateFinSQL);
$values = "'$IdCalendrier','{\"eventName\":\"$titre\"\,\"icon\":\"\"\,\"color\":\"#2980b9\"\,\"transparent\":\"0\"\,\"text_color\":\"#ffffff\"\,\"noDisplayOnDashboard\":\"0\"\,\"start\":{\"options\":\"enable\":\"1\"\,\"background\":\"0\"}\,\"cmd\":\"#[Salle de bain][Thermostat SDB][Se Laver]#\"}]\,\"end\":[{\"options\":{\"enable\":\"1\"\,\"background\":\"0\"}\,\"cmd\":\"#[Salle de bain][Thermostat SDB][Eco]#\"}]\,\"in_progress\":0}',$dateDebutSQL,$dateFinSQL";
$sql = "INSERT INTO calendar_event (eqLogic_id, cmd_param, startDate, endDate) VALUES ($values)";
$db = DB::Prepare($sql);

J’ai cherché, cherché, cherché, regardé la fonction DB:prepare, DB.class.php, calendar.class.php et fait plusieurs essais mais là je suis vraiment bloqué.

Merci d’avance.

Bonjour,

Les bloc code comme les logs doivent être placé dans un Texte préformaté ainsi :

saisir ou coller le code ici

Dans le cas contraire, de un c’est illisible, de deux certains caractères sont modifiés lors de la copie.

J’ai édité votre post pour mettre les balises mais malgré tout cela reste illisible.
Pourriez-vous éditer votre message et recoller le code d’origine ?

Un vrai boulet !!! J’ai recollé le code mais j’ai l’impression que le guillement simple (’) pose problème.

Hello, il y a beaucoup de choses qui ne vont pas dans le code,
Test ceci sans oublier de changer les valeurs des variables !

///////// Initialisation des variables pour le test ///////////////
$Date = "21-11-21";
$Time = "18:00";
$IdCalendrier = '496';
$titre = 'MonTitre';
$cmdOn = '#[Salle de bain][Thermostat SDB][Se Laver]#';
$cmdOff = '#[Salle de bain][Thermostat SDB][Eco]#';

///////////////////// 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' . ' +30 minutes'));
$scenario->setLog($dateFinSQL);

$values = '{"eventName":"' . $titre . '","icon":"","color":"#2980b9","transparent":"0","text_color":"#ffffff","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());

Bonne journée.

2 « J'aime »

WOUUW ca fonctionne !
image
Un grand merci, je vais de nouveau pouvoir retravaillé les scénarios et design pour finaliser le passage de V3 à V4 pour cette partie.

Si ca intéresse, voici le design mobile. J’ai encore du boulot mais en V3 ca marché déjà pas mal.

image

Il y a 2 grosses différences:

  • Suppression du slash inversé => ne prend plus en compte en V4 ?
  • l’ajout de la fonction array() => les différents paramètres sont stockés dans un tableau de la base de données ? (Dsl mais je découvre la partie SQL / Base de donné Jeedom qui est peut documenté à mon gout ou bien c’est plutôt accessible au développeur Jeedom…).

Merci, merci, merci !!!

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.