Ok bien pris pour le deamon.
quand tu dis de ne pas mettre gestion automatique, il faut donc cocher "Bloquer la création automatique des compteurs" ?
Le script oui il me parait ok vu que je reçois bien les données...
Le module téléinfo je l'ai créé a la mano, j'ai pas vu cette notion de création automatique à la reception de données! Ok j'ai pris note.
Pour le N° du compteur je l'ai recupéré a la reception des données sur wifinfo et donc copier dans la configuration jeedom du wifinfo.
Peux tu me confirmer pour la clé API (Jeedom ou téléinfo) a mettre dans la confi jeedom du wifinfo ?
le script que j'ai installé :
Code : Tout sélectionner
<?php
// Les variables ci après sont à configurer
// IP Lock: si '1', la passerelle filtre toute autre IP (j'ai réalisé ce script à l'arrache, c'est une sécurité de base)
$IP_Wifinfo="192.168.1.10";
$IP_Lock = 1; // Si =1, seul le wifinfo indiquer au dessus peut appeler ce script
// votre Jeedom est sur la meme machine que ce script, en théorie, sinon adaptez ici
$Jeedom = "http://127.0.0.1";
// chemin vers le plugion téléinfo (ce qui se trouvait dans la config de votre wifinfo)
$URL_Jeedom = $Jeedom . "/plugins/teleinfo/core/php/jeeTeleinfo.php";
// plus rien à configurer à partir d'ici
///////////////////////////////////////////////////////////////////
if ($IP_Lock==1) {
$IP = $_SERVER['REMOTE_ADDR'];
if ($IP!=$IP_Wifinfo)
{
print_r("IP Lock !");
exit(1);
}
}
// lecture du GET provenant du wifinfo
// il faudra peut-être voir a sécuriser
$data = $_GET;
// extraction de la clé d'API qu'il faudra remettre dans l'URL
$api_key=htmlspecialchars($data["api"]);
// transformation des données en format json
// rajout de "device", comme voulu par la nouvelle API
$data["device"]=$data["ADCO"];
// suppression de "api" et "apikey" qui peuvent être sur la ligne de commande
if (isset($data["api"])) { unset($data["api"]); }
if (isset($data["apikey"])) { unset($data["apikey"]); }
$data_json= json_encode($data);
// on rajoute les infos demandées par le plugin teleinfo
$post_data = "{\"device\":{\"".htmlspecialchars($data["ADCO"])."\":".$data_json. "}}";
trigger_error($post_data);
// on renvoi en POST
$full_URL = $URL_Jeedom . "?apikey=". $api_key;
$ch = curl_init($full_URL);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($post_data)));
curl_setopt($ch, CURLOPT_TIMEOUT, 5); // pour ne pas attendre à l'infini
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
if (curl_exec($ch) === false)
{
trigger_error(curl_error($ch));
// les 3 lignes suivantes servent au debug et peuvent être commentées ou supprimées
print_r("Erreur: ".curl_error($ch)."<br>\r\n");
print_r(curl_getinfo($ch));
print_r("<br>\r\n");
}
curl_close($ch);
?>