J'ai récupéré un script PHP que j'ai réussi à paramétrer mais je ne comprend pas où placer ces 3 fichiers php sur mon serveur Raspbian (LAMP installé et fonctionnel).
J'ai trouvé où placer ce script pour que celui-ci s'exécute.
J'obtiens l'erreur suivante à l'exécution :
Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/script/Eedomus.php on line 58
Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/script/Eedomus.php on line 58
0 exportation des données de l'Eedomus. Fini.
<?php
// Créer par Fredy017
include ('parametre.php');
include ('fonction.php');
$nombreExportation = 0;
// nombres maxi d'API
$maxPeriphs = count($periphs);
// on se connecte à MySQL et on sélectionne la base
try {
$conn=new PDO('mysql:host=' .$phpIpServeur. ';port=' .$phpIpPort. ';dbname=' .$phpBaseD. ';charset=utf8', $phpUser, $phpPassword);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo 'Echec connection : ' .$e->getmessage();
}
// boucle pour les différents API
for ($i=0; $i<$maxPeriphs ; $i++)
{
$type=$periphs[$i]['type'];
$piece=$periphs[$i]['piece'];
$api=$periphs[$i]['api'];
$unite=unite($type);
$nomPeriphs=FNOMTable($type,$piece);
// Création des tables
$sql="CREATE table IF NOT EXISTS $nomPeriphs(
ID INT( 11 ) AUTO_INCREMENT PRIMARY KEY,
Nom VARCHAR( 250 ) NOT NULL,
Value VARCHAR(5) NOT NULL,
Unite VARCHAR( 50 ) NOT NULL,
Date_Heure DATETIME NOT NULL);" ;
$conn->exec($sql);
// Create a stream
$opts1=array('http' =>
array(
'method' =>"GET"
)
);
$context=stream_context_create($opts1);
// Récupére la derniere valeur du périphérique dans EEDOMUS
$req="https://api.eedomus.com/get?api_user=" .$eedomusUser. "&api_secret=" .$eedomusMDP. "&action=periph.history&periph_id=" .$api;
$file=file_get_contents($req, false, $context);
$json=json_decode($file,true);
//$jsonE = array_reverse($json['body']['history']);
//$json = $jsonE;
$maxReq=count($json['body']['history']);
// Dernière ligne de phpmyadmin
$reqPrepare = 'SELECT * FROM ' .$nomPeriphs. ' WHERE id=(SELECT max(id) FROM ' .$nomPeriphs. ')';
$reqSelect = $conn->prepare($reqPrepare);
$reqSelect->execute();
$dernier = $reqSelect->fetch(PDO::FETCH_ASSOC);
// modification pour la gestion de la date
$dernierDate= new DATETIME();
$dernierDate=$dernier['Date_Heure'];
// Boucle d'insertion de données
for ($j=$maxReq-1; $j>-1 ; --$j)
{
$periValue=$json['body']['history'][$j][0];
// Date et heure
$periDateHeure= new DateTime();
$periDateHeure=$json['body']['history'][$j][1];
// condition de gestion des dates pour les doublons
if ( $dernierDate < $periDateHeure)
{
// Insertion dans la base de données
$req=$conn->prepare('INSERT INTO '.$nomPeriphs.'(Nom, Value, Unite, Date_Heure)VALUES(:Nom, :Value, :Unite, :Dates)');
$req->execute(array(
'Nom' => $nomPeriphs,
'Value' => $periValue,
'Unite' => $unite,
'Dates' => $periDateHeure
));
$nombreExportation++;
}
}
}
// Envois info sur le nombre d'exportation de données sur un état sur Eedomus
$reqRetour = "https://api.eedomus.com/set?api_user=" .$eedomusUser. "&api_secret=" .$eedomusMDP. "&action=periph.value&periph_id=" .$periphsRetour. "&value=" .$nombreExportation;
file_get_contents($reqRetour);
Echo $nombreExportation. ' exportation des données de l\'Eedomus. Fini.';
$conn = NULL;
?>
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.