Aller au contenu

Featured Replies

Posté(e)

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

Posté(e)

Elle se connecte en ethernet la Zibase il me semble! elle utilise quoi comme protocole de communication avec le PC ?

Patrick

Posté(e)

Une piste : http://www.abavala.com/2011/05/11/sauvegarde-des-mesures-recues-par-la-zibase-sur-le-nas-2/

  • 1 mois après...
Posté(e)

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());

?>

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…

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.