correction de bugs
This commit is contained in:
		@@ -2,7 +2,7 @@
 | 
			
		||||
// script to prevent when exterior temperature become inferior or superior to interior one
 | 
			
		||||
class rdc_temperature_int_ext extends hook
 | 
			
		||||
{
 | 
			
		||||
	public $hookName = "rdc_wc_eclairage";
 | 
			
		||||
	public $hookName = "rdc_temperature_int_ext";
 | 
			
		||||
	public $active = true;			//enable/disable hook (true => enabled)
 | 
			
		||||
	public $tempSup = 25;
 | 
			
		||||
	public $tempInf = 20;
 | 
			
		||||
@@ -12,6 +12,13 @@ class rdc_temperature_int_ext extends hook
 | 
			
		||||
				METEO=> "tempc",
 | 
			
		||||
				);
 | 
			
		||||
 | 
			
		||||
	protected $portesList = array(
 | 
			
		||||
		ENTREE_PORTE => "contact",
 | 
			
		||||
		//GARAGE_PORTE => "contact",
 | 
			
		||||
		RDC_CHAMBRE_BAIE => "contact",
 | 
			
		||||
		RDC_SALON_BAIE => "contact"
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	function installHooks(&$indexDevices)
 | 
			
		||||
	{
 | 
			
		||||
		return $this->installHooksFunction($indexDevices);
 | 
			
		||||
@@ -26,51 +33,60 @@ class rdc_temperature_int_ext extends hook
 | 
			
		||||
		$status = -1;
 | 
			
		||||
		$msg = "";
 | 
			
		||||
 | 
			
		||||
		logger(DEBUG, _("rdc_temperature_int_ext hook"), null ,$device);
 | 
			
		||||
 | 
			
		||||
		if (empty($time))	$time = now();
 | 
			
		||||
		$indoorTemp = $device->properties["indoortempc"]["value"];
 | 
			
		||||
		//echo  "Time is " . var_dump($time) . EOL;
 | 
			
		||||
		//echo "minutes since time :" . now()->format("U") - $time->format("U");
 | 
			
		||||
		if ((now()->format("U") - $time->format("U")) > 300)
 | 
			
		||||
		{
 | 
			
		||||
 | 
			
		||||
			$indoorTemp = $device->properties["indoortempc"]["value"];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		if ( $value > $indoorTemp)
 | 
			
		||||
		{
 | 
			
		||||
			if( ($indoorTemp <= $this->tempSup) and empty($portes))
 | 
			
		||||
			if ( $value > $indoorTemp)
 | 
			
		||||
			{
 | 
			
		||||
				$status = 1;
 | 
			
		||||
				//logger(ALERT, _("Open doors to climate"), null ,$device);
 | 
			
		||||
			}elseif($indoorTemp >= $this -> tempSup and ! empty($portes))
 | 
			
		||||
			{
 | 
			
		||||
				$status = 0;
 | 
			
		||||
				//logger(ALERT, _("Close doors to climate"), null, $device);
 | 
			
		||||
			}
 | 
			
		||||
		}elseif ( $value < $indoorTemp )
 | 
			
		||||
		{
 | 
			
		||||
			if (($indoorTemp >= $this->tempSup) and empty($portes) )
 | 
			
		||||
			{
 | 
			
		||||
				$status = 1;
 | 
			
		||||
				//logger(ALERT, _("Open doors to climate"), null ,$device);
 | 
			
		||||
			}elseif ($indoorTemp <= $this->tempSup)
 | 
			
		||||
			{
 | 
			
		||||
				$status = 0;
 | 
			
		||||
				//logger(ALERT, _("Close doors to climate"), null, $device);
 | 
			
		||||
			}
 | 
			
		||||
			logger (INFO, sprintf(_("%s: notification received from MQTT from %s => parameter: %s value: %s"), $this->hookName, $device->friendlyName, $property, bool2string($value)), __FILE__ . ":" . __LINE__, $device);
 | 
			
		||||
		}
 | 
			
		||||
		$portes = $hooks["alerte_intrusion"]->testPortes(false, true);
 | 
			
		||||
		if ($status == 1)
 | 
			
		||||
		{
 | 
			
		||||
			if (empty($portes) and ($time->diff(now())->format("i")) > 5)
 | 
			
		||||
			{
 | 
			
		||||
				logger(ALERT, _("Open doors to climate"), null, $device);
 | 
			
		||||
				$time = now();
 | 
			
		||||
			}
 | 
			
		||||
		}else
 | 
			
		||||
		{
 | 
			
		||||
			//$portes = $hooks["alerte_intrusion"]->testPortes(false, true);
 | 
			
		||||
			if (!empty($portes) and ($time.diff(now()).format("i") > 5))
 | 
			
		||||
			{
 | 
			
		||||
				$time = now();
 | 
			
		||||
				foreach($portes as $porte)
 | 
			
		||||
				if( ($indoorTemp <= $this->tempSup) and empty($portes))
 | 
			
		||||
				{
 | 
			
		||||
					$msg .= $porte . "\n";
 | 
			
		||||
					$status = 1;
 | 
			
		||||
					//logger(ALERT, _("Open doors to climate"), null ,$device);
 | 
			
		||||
				}elseif($indoorTemp >= $this -> tempSup and ! empty($portes))
 | 
			
		||||
				{
 | 
			
		||||
					$status = 0;
 | 
			
		||||
					//logger(ALERT, _("Close doors to climate"), null, $device);
 | 
			
		||||
				}
 | 
			
		||||
			}elseif ( $value < $indoorTemp )
 | 
			
		||||
			{
 | 
			
		||||
				if (($indoorTemp >= $this->tempSup) and empty($portes) )
 | 
			
		||||
				{
 | 
			
		||||
					$status = 1;
 | 
			
		||||
					//logger(ALERT, _("Open doors to climate"), null ,$device);
 | 
			
		||||
				}elseif ($indoorTemp <= $this->tempSup)
 | 
			
		||||
				{
 | 
			
		||||
					$status = 0;
 | 
			
		||||
					//logger(ALERT, _("Close doors to climate"), null, $device);
 | 
			
		||||
				}
 | 
			
		||||
				logger (INFO, sprintf(_("%s: notification received from MQTT from %s => parameter: %s value: %s"), $this->hookName, $device->friendlyName, $property, bool2string($value)), __FILE__ . ":" . __LINE__, $device);
 | 
			
		||||
			}
 | 
			
		||||
			$portes = $hooks["alerte_intrusion"]->testPortes($this->portesList, false, true);
 | 
			
		||||
			print_r($portes);
 | 
			
		||||
			if ($status == 1)
 | 
			
		||||
			{
 | 
			
		||||
				if (empty($portes))
 | 
			
		||||
				{
 | 
			
		||||
					logger(ALERT, _("Open doors to climate"), null, $device);
 | 
			
		||||
					$time = now();
 | 
			
		||||
				}
 | 
			
		||||
			}else
 | 
			
		||||
			{
 | 
			
		||||
				//$portes = $hooks["alerte_intrusion"]->testPortes(false, true);
 | 
			
		||||
				if (!empty($portes))
 | 
			
		||||
				{
 | 
			
		||||
					$time = now();
 | 
			
		||||
					foreach($portes as $porte)
 | 
			
		||||
					{
 | 
			
		||||
						$msg .= $porte . "\n";
 | 
			
		||||
					}
 | 
			
		||||
					logger(ALERT, _("Close doors to climate\n") . $msg, null, $device);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user