Aller au contenu

Zibase Avec Ds 710+


Messages recommandés

  • 1 mois après...

bonjour

je voudrais recuperer les donnees de ma zibase sur mon syno

les donnees de mes sondes oregon

je possede un ds 710+

comment faire

cordialement

Bonjour,

J' ai un script en php qui récupére les données sur la Zibase, Il est lancé toutes les 15 minutes via Cron.

Voici ce script:


<?php

// ============================ connection base de donnée

$host	  = 'localhost';   //

$login	 = 'username';  //  utilisateur

$pass	  = 'Password';  //  mot de passe de l'utilisateur

$base	  = 'MaBase';	  //  Nom de la base de données

$table	 = 'MaTable';   //  Nom de la table

// =====================================================

$IPZibase = 'XXX.XXX.XXX.XXX';

$chemin = '';	// Chemin pour écrire un fichier rappelant la derniere mesure du total de pluie.

// =====================================================

// Liste des sondes

// Identifiant de la sonde, Type de la sonde, Type de Relevé, Champs de la base de données.

// =====================================================

$Sondes = array(

  array('4196953345','OS','THG','TmpExt','HumExt'),	  // Sonde THG810

  array('4196963842','OS','THG','TmpInt','HumInt'),	  // Sonde THG810

  array('3930873857','OS','TP','TmpExt2'),		// Sonde THN132N

  array('445247488','OS','Vents','Vents','Direction'),	 // Sonde WGR800

  array('706329600','OS','Pluie','PluTot','PluInt','PluRel'),   // Sonde PCR800

  array('1517101056','OS','Pression','TmpInt2','Pression')	// Sonde THGR918N

);

$old = $chemin.'Rain.txt';			//

$url = "http://".$IPZibase ."/sensors.xml";

$date = date('Y-m-d H:i:s');  // Date et Heure du relevé

// =====================================================

global $sql_connect;

$sql_connect = mysql_connect($host,$login,$pass);

if (!$sql_connect)

{

	die('Impossible de se connecter : ' . mysql_error());

	}

// selection de la base

mysql_select_db($base, $sql_connect);

// =====================================================

function getSensorData($zxml, $idSensor, $type)

{


$node = $zxml->xpath("//ev[@id='".$idSensor."' and @pro='".$type."']");

if ($node != null && $node[0])

  {  

   $info = array();

  $attributes = $node[0]->attributes();

  $info['v1'] = intval($attributes["v1"]);

   $info['v2'] = intval($attributes["v2"]);

  //$info['Bat'] = intval($attributes["lowbat"]);	

   return $info;

   }

  else

   return null;  

  }

// =====================================================

// Initialise la requéte

// =====================================================

$sql1 = "INSERT INTO `".$base."`.`".$table."` (`ID`, `Date`";

$sqlval = "VALUES ( '', '".$date."'";

$handle = fopen($url, "rb");

$xmlContent = stream_get_contents($handle);

$xmlDoc = simplexml_load_string($xmlContent);

fclose($handle);

// =====================================================

// relevé des sondes

// =====================================================

foreach($Sondes as $value)

{

$info = getSensorData($xmlDoc,$value[0],$value[1]);

switch ($value[2]) {

  case 'THG':

	$sql1 .= ", `".$value[3]."`, `".$value[4]."`";

	$sqlval.= ", '".$info['v1']."', '".$info['v2']."'";

	break;

  case 'TP':

	$sql1 .= ", `".$value[3]."`";

	$sqlval.= ", '".$info['v1']."'";

	break;

  case 'Vents':

	$sql1 .= ", `".$value[3]."`, `".$value[4]."`";

	$sqlval.= ", '".$info['v1']."', '".$info['v2']."'";

	break;

  case 'Pluie':

	if(file_exists($old))

	 {

	 $ff = file ($old);

	 $plurel = $info['v1'] - $ff[0];

	 if ($plurel < 0) // la sonde a été remise à zero

	  {

	  $plurel = $info['v1'];

	  }

	 }

	else

	 {

	 $plurel = 0;

	 }

	$sql1 .= ", `".$value[3]."`, `".$value[4]."`, `".$value[5]."`";

	$sqlval.= ", '".$info['v1']."', '".$info['v2']."', '".$plurel."'";

	$fp = fopen( $old, "w+");

	fputs ($fp,$info['v1']);

	fclose ($fp);

	break;

  case 'Pression':

	$sql1 .= ", `".$value[3]."`, `".$value[4]."`";

	$pression = $info['v2']+856;

	$sqlval.= ", '".$info['v1']."', '".$pression."'";

	break;

  }

}

$sql = $sql1." ) ".$sqlval." )";

//echo $sql;

$result = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

?>

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.