Пример #1
0
	function IPSWatering_SetValue($ControlId, $Value) {
		$CircleId = get_CirclyIdByControlId($ControlId);
		if (GetValue($ControlId)<>$Value) {
			IPSWatering_SetActive(get_ControlId(c_Control_Active, $CircleId), false, c_Mode_StartManual);

			SetValue($ControlId, $Value);
			IPSWatering_CalcNextScheduleDateTime($CircleId);
			IPSWatering_LogChange($CircleId, $Value, $ControlId);
		}
	}
	$WaterConfig = get_WateringConfiguration();

	// Wert von Bewässerungs Sensor ermitteln
	$SensorLimit = GetValue(get_ControlId(c_Control_Sensor, $CircleId));
	$SensorValue = false;
	if (array_key_exists(c_Property_Sensor, $WaterConfig[$CircleName])) {
		$SensorPath  = $WaterConfig[$CircleName][c_Property_Sensor];
		if ($SensorPath <> '') {
			$SensorId    = IPSUtil_ObjectIDByPath($SensorPath);
			if ($SensorId===false) {
			   IPSLogger_Wrn(__file__, "Specified Sensor '$SensorPath' could NOT be found");
			} else {
				$SensorValue = GetValue($SensorId);
			}
		}
	}

	if ($SensorValue===false and $SensorLimit>0) {
		IPSLogger_Err(__file__, "Rainfall Sensor NOT defined for Circle '$CircleName'");
		Exit;
	}

	// Bewässerung Starten
	if ($SensorLimit > 0 and $SensorValue!==false and $SensorLimit<=$SensorValue) {
		IPSWatering_LogNoActivationByRainfall($CircleId, $SensorLimit, $Rainfall);
		IPSWatering_CalcNextScheduleDateTime($CircleId);
	} else {
		IPSWatering_SetActive($ControlId, true, c_Mode_StartAutomatic);
	}

?>