Attestation Déplacement - Integration Jeedom PHP auto - creation fichier local et envoi telegram

merci j’ai corrigé et cette fois j’ai : scenario Expression non valide [réponse variable(motif)=‹ non ›] trouvée dans le scénario : [declencheur attestation], résultat : réponse « Loisirs »=‹ non ›

== et pas = ?
== c’est la comparaison
= c’est l’affectation

dsl @naboleo mais ou dois je modifier ?

Partout …

Réponse c’est pas du jeedom => à virer
== à la place de =
image
Bref, faut suivre l’exemple plus précisement

voici le nouveau scenario


et le message d’erreur

merci

Allez, un petit effort la ligne est indiquée … ça se situe vers la fin

ok vu " au lieu de ’
plus de message d’erreur mais rien ne se passe. je declenche mon scenarion j’ai bien le message sur telegram : Souhaites tu une attestation ? Si oui choisi le type ? les différentes possibilités sont bien en bas de l’ecran je cliques sur Loisirs ensuite je n’ai plus rien.

Bon ben maintenant, il faut regarder si tu as bien récupéré la réponse de telegram. C’est dans les logs du scénario

1 « J'aime »

A priori oui :


le probleme doit venir de l’autre scenario

require_once dirname(__FILE__) . '/../../script/customs_scripts/PDF_Gen/AttestGen.class.php';

// la liste des motif que j'utilise, 
//les nom des clé étant les valeurs de la variable retourné dans un ask telegram préalable transmis dans un tag 'motif'
$motifArray=array('Travail'=>ATTESTGEN::Travail,
                  'Ecole'=>ATTESTGEN::Enfant,
                  'Sortie'=>ATTESTGEN::Loisirs,
                  'Achats'=>ATTESTGEN::Achat,
                  'Soins'=>ATTESTGEN::Sante,
                  'Famille'=>ATTESTGEN::Famille             
  
  );

// les renseignements des utilisateurs,
// les clés sont les valeurs du tag 'Qui' que je passe au scénario
$infosArray=array(
  'Yann'=>array('nom'=>'XXXXX','prenom'=>'Yann', 'ddn'=>'XXXXXXX','lieu_naiss'=>'XXXXX','adresse'=>'XXXXXX','ville'=>'XXXXXX', 'code_postal'=>'XXXXXX'),
  'maFemme'=>array('nom'=>'SON NOM','prenom'=>'Jeluidemanderai', 'ddn'=>'çanesemdemandepas','lieu_naiss'=>'Pas ICI','adresse'=>'25 rue pas loin','ville'=>'poilauc', 'code_postal'=>'00001')
  );
  
$tags=$scenario->getTags();// récup des tag

if(!isset($tags['#qui#'])){// si le tag qui n'est pas renseigné, je me met moi, pour les tests principalement
  	$scenario->setLog('QUI non reconnu'.$tags['#qui#']);
	$tags['#qui#']='Yann';
}
if(!isset($tags['#motif#'])){// pour les motif, par défaut je met sortie, comme ça quand je ne répond pas au ask il m'envoi par défaut une attestation sortie
  	$scenario->setLog('motif non reconnu'.$tags['#motif#']);
	$tags['#motif#']='Sortie';
}
$qui=$tags['#qui#'];

// on valorise les variables selon les entrée des array au dessus
$nom=$infosArray[$qui]['nom'];
$prenom=$infosArray[$qui]['prenom'];
$date_naissance=$infosArray[$qui]['ddn'];
$lieu_naissance=$infosArray[$qui]['lieu_naiss'];
$adresse=$infosArray[$qui]['adresse'];
$code_postal=$infosArray[$qui]['code_postal'];
$ville=$infosArray[$qui]['ville'];

$motif=$motifArray[$tags['#motif#']];// selection du motif

$date_time=strftime("%d/%m/%G a %Hh%M");// récupération de la date+heure courante

// génération du pdf
$ag = new ATTESTGEN();
$pdfURL = $ag->generate_attest($nom, $prenom, $date_naissance,$lieu_naissance,$adresse,$code_postal,$ville, array($motif));
$pngURL = $ag->getPNGURL();

$scenario->setLog('PDF URL String : '.$pdfURL);
$scenario->setLog('PNG URL String : '.$pngURL);

//option fichier PNG pour le QR code et pdf
$strOption='file='.$pngURL.','.$pdfURL;
$scenario->setLog('Option String : '.$strOption);
$messCol= array('title'=>$strOption, 'message'=> 'Attestation COVID du '.$date_time.' / '.$motif);

if($qui=='Yann'){
	$cmd=cmd::byString("#[Maison][Telegram Yann][Yann - 825169940]#");
}elseif($qui=='maFemme'){
  	$cmd=cmd::byString("#[OBJET][TELEGRAM][User2]#");
}
$cmd->execCmd($messCol, $cache=0);

//suppression des fichiers sur le serveur
$success=$ag->deleteAllFiles();
$scenario->setLog('success delete all file :'.$success);

Probablement

du coup je l’ai posté pendant la réponse

Oui mais le contenu en soi c’est pas le plus important, c’est les logs qu’il faut regarder :

  • celui du scénario
  • celui du cron (quand il y a une erreur de syntaxe)
1 « J'aime »

voici le log il y a bien une erreur :


Oui, Tu es obliger de conserver le nom des constantes défini ds la classe.
L’erreur se situe ds l array des motifs.
Tu peux modifier les clés (premier termes) mais pas les valeurs (Après les =>)

c’est à dire ici , :

Travail'=>ATTESTGEN::TRAVAIL,
                  'Ecole'=>ATTESTGEN::ENFANT,
                  'Sortie'=>ATTESTGEN::LOISIR,
                  'Achats'=>ATTESTGEN::ACHAT,
                  'Soins'=>ATTESTGEN::SANTE,
                  'Famille'=>ATTESTGEN::FAMILLE

je ne dois rien modifer mais du coup ca ne colle pas avec les reponses de telegram ?

Ce que tu passe ds Télégrma ver le scénario est ds le tag ‹ motif ›, et doit correspondre au 1er terme. Le second est la correspondance ds la classe, utilisé par celle ci pour déterminer ou mettre la croix. Cest un terme propre a la classe

Donc par rapport à mon scenarion qui demande dans telegram : Non;Travail;Enfant;Loisirs;Achats;Soins;Famille
je dois modifier comme ça :

Travail'=>ATTESTGEN::TRAVAIL,
                  'Enfant'=>ATTESTGEN::ENFANT,
                  'Loisirs'=>ATTESTGEN::LOISIR,
                  'Achats'=>ATTESTGEN::ACHAT,
                  'Soins'=>ATTESTGEN::SANTE,
                  'Famille'=>ATTESTGEN::FAMILLE

?

Oui tout a fait.

Par exemple si tu voulais que telegram te demande ‹ boulot › a la place de ‹ Travail › il faudrait mettre :

'boulot'=>ATTESTGEN::TRAVAIL,
1 « J'aime »

J’avance cette fois j’ai cette erreur dans le log :

Est ce que le fichiervest bien crée ? Tu las ds lenrepertoire?

Si non. Essaie de virer les dernières lignes qui suppriment les fichiers.

Il faut vérifier les droits sur le dossier également (mais si le fichier est créé…)