debug
This commit is contained in:
		
							
								
								
									
										84
									
								
								class/db.php
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								class/db.php
									
									
									
									
									
								
							@@ -40,60 +40,68 @@ class db extends mysqli
 | 
			
		||||
		global $mohaDB, $properties2log, $testMode;
 | 
			
		||||
		$precision = 0;
 | 
			
		||||
		//echo "############## logProperty ################\nproperty => " . $propertyTree .EOL;
 | 
			
		||||
		if (array_key_exists($property, $properties2log))
 | 
			
		||||
		//echo "logging in database";
 | 
			
		||||
		//var_dump($device);
 | 
			
		||||
		$ieeeAddress = $device->ieeeAddress;
 | 
			
		||||
		//print_r($ieeeAddress);
 | 
			
		||||
		$query = "INSERT INTO logs (device, property, value) VALUES('" . $this->protect($ieeeAddress) . "', '" . $this->protect($property) . "', '" . $this->protect(bool2string($value)) . "')";
 | 
			
		||||
		//echo $query . EOL;
 | 
			
		||||
		if (is_numeric($value) and !empty($properties2log[$property]))
 | 
			
		||||
		{
 | 
			
		||||
			//echo "logging in database";
 | 
			
		||||
			//var_dump($device);
 | 
			
		||||
			$ieeeAddress = $device->ieeeAddress;
 | 
			
		||||
			//print_r($ieeeAddress);
 | 
			
		||||
			$query = "INSERT INTO logs (device, property, value) VALUES('" . $this->protect($ieeeAddress) . "', '" . $this->protect($property) . "', '" . $this->protect(bool2string($value)) . "')";
 | 
			
		||||
			//echo $query . EOL;
 | 
			
		||||
			if (is_numeric($value) and !empty($properties2log[$property]))
 | 
			
		||||
			// calculate a min/max value for storing data
 | 
			
		||||
			$r = $properties2log[$property];
 | 
			
		||||
			if (is_callable($r))
 | 
			
		||||
			{
 | 
			
		||||
				// calculate a min/max value for storing data
 | 
			
		||||
				$minMax = $properties2log[$property];
 | 
			
		||||
				if (is_callable($minMax))
 | 
			
		||||
				{
 | 
			
		||||
					$minMax = $minMax($value);
 | 
			
		||||
				}
 | 
			
		||||
				var_dump($value) . EOL;
 | 
			
		||||
				var_dump($minMax) . EOL;
 | 
			
		||||
				var_dump($oldValue) . EOL;
 | 
			
		||||
				if ( !is_numeric($oldValue))	$oldValue = 0;
 | 
			
		||||
				//echo "minMax = " .$minMax . EOL;
 | 
			
		||||
				//echo "oldValue = " . $oldValue . EOL;
 | 
			
		||||
				//echo "Value = " . $value . EOL;
 | 
			
		||||
				if ($value >= $oldValue - $minMax and $value <= $oldValue + $minMax)
 | 
			
		||||
				{
 | 
			
		||||
					//echo "========>>>>>>>>>not changed" . EOL;
 | 
			
		||||
					return true;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			if ($testMode)
 | 
			
		||||
			{
 | 
			
		||||
				logger(INFO, _("Test mode on: not storing in DB "), __FILE__ . ":" . __LINE__);
 | 
			
		||||
				$minMax = $r($value);
 | 
			
		||||
			}else
 | 
			
		||||
			{
 | 
			
		||||
				if(!$this->result = $this->query($query))
 | 
			
		||||
				{
 | 
			
		||||
					logger(ERROR, _("mysql query errror: ") . $this->error, __FILE__ . ":" . __LINE__);
 | 
			
		||||
				}
 | 
			
		||||
				$minMax = $r;
 | 
			
		||||
			}
 | 
			
		||||
			logger(DEBUG, _("minMax = " . $minMax), __FILE__ . ":" . __LINE__);
 | 
			
		||||
			var_dump($value) . EOL;
 | 
			
		||||
			var_dump($minMax) . EOL;
 | 
			
		||||
			var_dump($oldValue) . EOL;
 | 
			
		||||
			if ( !is_numeric($oldValue))	$oldValue = 0;
 | 
			
		||||
			//echo "minMax = " .$minMax . EOL;
 | 
			
		||||
			//echo "oldValue = " . $oldValue . EOL;
 | 
			
		||||
			//echo "Value = " . $value . EOL;
 | 
			
		||||
			if ($value >= $oldValue - $minMax and $value <= $oldValue + $minMax)
 | 
			
		||||
			{
 | 
			
		||||
				//echo "========>>>>>>>>>not changed" . EOL;
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
			logger(INFO, sprintf(_("New value (%s) of property: '%s' of device: %s stored in database"), bool2string($value), $property, $device->friendlyName), __FILE__ . ":" . __LINE__);
 | 
			
		||||
		}
 | 
			
		||||
		if ($testMode)
 | 
			
		||||
		{
 | 
			
		||||
			logger(INFO, _("Test mode on: not storing in DB "), __FILE__ . ":" . __LINE__);
 | 
			
		||||
		}else
 | 
			
		||||
		{
 | 
			
		||||
			if(!$this->result = $this->query($query))
 | 
			
		||||
			{
 | 
			
		||||
				logger(ERROR, _("mysql query errror: ") . $this->error, __FILE__ . ":" . __LINE__);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		logger(INFO, sprintf(_("New value (%s) of property: '%s' of device: %s stored in database"), bool2string($value), $property, $device->friendlyName), __FILE__ . ":" . __LINE__);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function moyenne($deviceObject, $property, $time)
 | 
			
		||||
	{
 | 
			
		||||
		$query = "SELECT AVG(value) as value FROM logs WHERE device='" . $deviceObject->ieeeAddress . "' AND property='" . $property . "' AND TIMEDIFF(NOW(), date) < '00:" . $time . "'";
 | 
			
		||||
		logger(DEBUG, _("query is: ") . $query, __FILE__ . ":" . __LINE__);
 | 
			
		||||
		if(!$this->result = $this->query($query))
 | 
			
		||||
		{
 | 
			
		||||
			logger(ERROR, _("mysql query errror: ") . $this->error, __FILE__ . ":" . __LINE__);
 | 
			
		||||
			return 1;
 | 
			
		||||
		}else
 | 
			
		||||
		{
 | 
			
		||||
			$value = $this->result->fetch_array(MYSQLI_NUM);
 | 
			
		||||
			//var_dump($value);
 | 
			
		||||
			logger(DEBUG, _("result is: ") . print_r($value, true), __FILE__ . ":" . __LINE__);
 | 
			
		||||
			return $value[0];
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$value = $this->result->fetch_array(MYSQLI_NUM);
 | 
			
		||||
		//var_dump($value);
 | 
			
		||||
		return $value[0];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
class hook
 | 
			
		||||
{
 | 
			
		||||
	public $hookName = "";
 | 
			
		||||
	public $active = true;
 | 
			
		||||
	public $active;
 | 
			
		||||
	public $initialized = false;
 | 
			
		||||
	protected $devicelist;
 | 
			
		||||
	protected $propertyInitialized;
 | 
			
		||||
 
 | 
			
		||||
@@ -26,8 +26,8 @@ $properties2log = array(
 | 
			
		||||
	"dewptc" => 0.5,
 | 
			
		||||
	"windchillc" => 0.5,
 | 
			
		||||
	"winddir" => 40,
 | 
			
		||||
	"windspeedkmh" => 10,
 | 
			
		||||
	"windgustkmh" => 10,
 | 
			
		||||
	"windspeedkmh" => 5,
 | 
			
		||||
	"windgustkmh" => 5,
 | 
			
		||||
	"rainin" => 0.5,
 | 
			
		||||
	//"dailyrainin" => null,
 | 
			
		||||
	//"weeklyrainin" => null,
 | 
			
		||||
 
 | 
			
		||||
@@ -275,12 +275,16 @@ function getDevicesValues($topic)
 | 
			
		||||
 | 
			
		||||
function changeValue(&$property, $value, &$parentDevice, $propertyTree, $key)
 | 
			
		||||
{
 | 
			
		||||
	global $mohaDB;
 | 
			
		||||
	global $mohaDB, $properties2log;
 | 
			
		||||
	//$changed[$fn]["key"] = $key;
 | 
			
		||||
	//$changed[$fn]["value"] = $value;
 | 
			
		||||
	logger(INFO, sprintf(_("Logging Device property %s, %s"), $propertyTree . $key, bool2string($value)), __FILE__ . ":" . __LINE__);
 | 
			
		||||
	$mohaDB->logProperty($parentDevice, $key, $value, $property["value"]);
 | 
			
		||||
	logger(DEBUG, sprintf(_("old value was %s, new is %s" ), bool2string($property["value"]), bool2string($value)), __FILE__ . ":" . __LINE__);
 | 
			
		||||
 | 
			
		||||
	if (array_key_exists($key, $properties2log))
 | 
			
		||||
	{
 | 
			
		||||
		logger(INFO, sprintf(_("Logging Device property %s, %s"), $propertyTree . $key, bool2string($value)), __FILE__ . ":" . __LINE__);
 | 
			
		||||
		$mohaDB->logProperty($parentDevice, $key, $value, $property["value"]);
 | 
			
		||||
		logger(DEBUG, sprintf(_("old value was %s, new is %s" ), bool2string($property["value"]), bool2string($value)), __FILE__ . ":" . __LINE__);
 | 
			
		||||
	}
 | 
			
		||||
	$property["value"] = $value;
 | 
			
		||||
	if (!empty($property["functions"]))
 | 
			
		||||
	{
 | 
			
		||||
@@ -289,7 +293,15 @@ function changeValue(&$property, $value, &$parentDevice, $propertyTree, $key)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				$function($parentDevice, $key, $value);
 | 
			
		||||
				logger(INFO, print_r($function, true), __FILE__ . ":" . __LINE__);
 | 
			
		||||
				if ( $function[0]->active === true )
 | 
			
		||||
				{
 | 
			
		||||
					$function($parentDevice, $key, $value);
 | 
			
		||||
				}else
 | 
			
		||||
				{
 | 
			
		||||
					logger(INFO, $function . _(" is disabled"), __FILE__ . ":" . __LINE__ );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			}catch (Exception $e)
 | 
			
		||||
			{
 | 
			
		||||
				$s = 'Exception reçue : ' .  $e->getMessage();
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ class notificationFreemobile
 | 
			
		||||
	{
 | 
			
		||||
		global $curlErr;
 | 
			
		||||
		$result = false;
 | 
			
		||||
		if ($this->active == true)
 | 
			
		||||
		if ($this->active === true)
 | 
			
		||||
		{
 | 
			
		||||
			$ch = curl_init();
 | 
			
		||||
			// set url
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
class rdc_store extends hook
 | 
			
		||||
{
 | 
			
		||||
	public $hookName = "rdc_store";
 | 
			
		||||
	public $active = true;			//enable/disable hook (true => enabled)
 | 
			
		||||
	public $active = false;			//enable/disable hook (true => enabled)
 | 
			
		||||
	public $timer = 0;
 | 
			
		||||
	public $luminance_min = 60;
 | 
			
		||||
	public $luminance_max = 3000;
 | 
			
		||||
@@ -74,7 +74,7 @@ class rdc_store extends hook
 | 
			
		||||
				$rainTmp = $indexDevices[METEO]->properties["rainin"]["value"];
 | 
			
		||||
				$rain = $rainTmp - $rainS;
 | 
			
		||||
				$rainS = $rainTmp;
 | 
			
		||||
				logger(DEBUG, "rain=" . var_dump($rain), __FILE__ . ":" . __LINE__);
 | 
			
		||||
				logger(DEBUG, "rain=" . $rain, __FILE__ . ":" . __LINE__);
 | 
			
		||||
			}
 | 
			
		||||
			if (array_key_exists("windgustkmh", $indexDevices[METEO]->properties))
 | 
			
		||||
			{
 | 
			
		||||
@@ -82,7 +82,7 @@ class rdc_store extends hook
 | 
			
		||||
				{
 | 
			
		||||
					logger(ALERT, "Vent fort :" . $indexDevices[METEO]->properties["windgustkmh"]["value"], __FILE__ . ":" . __LINE__);
 | 
			
		||||
				}
 | 
			
		||||
				$rafale = $mohaDB->moyenne($indexDevices[METEO], "windgustkmh", 7);
 | 
			
		||||
				$rafale = $indexDevices[METEO]->properties["windgustkmh"]["value"];  //$mohaDB->moyenne($indexDevices[METEO], "windgustkmh", 6);
 | 
			
		||||
				logger(DEBUG, "rafale=" . $rafale, __FILE__ . ":" . __LINE__);
 | 
			
		||||
			}
 | 
			
		||||
			if (array_key_exists("solarradiation", $indexDevices[METEO]->properties))
 | 
			
		||||
@@ -92,7 +92,7 @@ class rdc_store extends hook
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		logger(DEBUG, sprintf(_("property=%s, value=%s"), $property, $value), __FILE__ . ":" . __LINE__);
 | 
			
		||||
		if ($rafale >= 60 or $rain != 0)
 | 
			
		||||
		if ($rafale >= 50 or $rain != 0)
 | 
			
		||||
		{
 | 
			
		||||
			$this->maxLevel = 0;
 | 
			
		||||
			logger(DEBUG, sprintf("rafale = %s  and rain = %s",$rafale, $rain), __FILE__ . ":" . __LINE__);
 | 
			
		||||
@@ -100,7 +100,7 @@ class rdc_store extends hook
 | 
			
		||||
			return 0;
 | 
			
		||||
		}elseif ($rafale != 0)
 | 
			
		||||
		{
 | 
			
		||||
			$this->maxLevel = ($r = 100 - round(($rafale-10)/5, 0, PHP_ROUND_HALF_UP)*20)<0 ? 0 : $r;
 | 
			
		||||
			$this->maxLevel = ($r = 100 - round($rafale/5, 0, PHP_ROUND_HALF_UP)*10)<0 ? 0 : $r;
 | 
			
		||||
			//$this->maxLevel = 100 / $rafale;
 | 
			
		||||
			logger(DEBUG, "rafale=" . $rafale, __FILE__ . ":" . __LINE__);
 | 
			
		||||
		}
 | 
			
		||||
@@ -110,7 +110,7 @@ class rdc_store extends hook
 | 
			
		||||
		{
 | 
			
		||||
			case "illuminance_lux":
 | 
			
		||||
			logger(DEBUG, "CASE: illuminance_lux:" . $value, __FILE__ . ":" . __LINE__);
 | 
			
		||||
			if ($exterieur_lux > 30000)
 | 
			
		||||
			if ($exterieur_lux > 30000 or $salon_lux >600)
 | 
			
		||||
			{
 | 
			
		||||
				logger(DEBUG, "exterieur_lux > 30000", __FILE__ . ":" . __LINE__);
 | 
			
		||||
				if ($this->maxLevel != 0 and $salon_lux > 100)
 | 
			
		||||
@@ -126,7 +126,7 @@ class rdc_store extends hook
 | 
			
		||||
						$this->set($store2level);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}elseif ($exterieur_lux < 15000 and $salon_lux < 110)
 | 
			
		||||
			}elseif ($exterieur_lux < 12000 and $salon_lux < 150)
 | 
			
		||||
			{
 | 
			
		||||
				logger(DEBUG, "exterieur_lux < 15000", __FILE__ . ":" . __LINE__);
 | 
			
		||||
				$this->close("Luminosité faible");
 | 
			
		||||
@@ -140,19 +140,14 @@ class rdc_store extends hook
 | 
			
		||||
			logger(DEBUG, "CASE: windgustkmh:" . $rafale, __FILE__ . ":" . __LINE__);
 | 
			
		||||
		//case "windspeedkmh":
 | 
			
		||||
		//	logger(DEBUG, "CASE: windspeedkmh:" . $value, __FILE__ . ":" . __LINE__);
 | 
			
		||||
 | 
			
		||||
			logger(DEBUG, "maxLevel = " . $this->maxLevel . ' result => $r = ' . $r, __FILE__ . ":" . __LINE__);
 | 
			
		||||
			if ($this->storeLevel > $this->maxLevel)
 | 
			
		||||
			{
 | 
			
		||||
				$this->set($this->maxLevel);
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
		default:
 | 
			
		||||
		}
 | 
			
		||||
		/*if ($store2level <= $this->storeLevel)
 | 
			
		||||
		logger(DEBUG, "maxLevel = " . $this->maxLevel . ' result => $r = ' . $r, __FILE__ . ":" . __LINE__);
 | 
			
		||||
		if ($this->storeLevel > $this->maxLevel)
 | 
			
		||||
		{
 | 
			
		||||
			$this->set($store2level);
 | 
			
		||||
		}*/
 | 
			
		||||
			$this->set($this->maxLevel);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private function set ($level)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user