Advice on which Arduino for a Home Automation project

Hi,
I'm looking for advice on which Arduino I need for my project. I am creating a home automation system as project. I have enough pins on the Arduino Uno, which I already have, to do what I need to do (just barely and I might need to multiplex). However I am a little worried because I've never done anything big like this before with microcontrollers. Only little assignments for class like hooking up LEDs and switches. What I am worried about is the UNO only having 32KB of flash and 2kb of ram compared to the MEGAs 256kB/8kB. I'm just wondering how that works out in real life in terms of fitting my project onto it. Where I am living it will take me about a month to receive the MEGA if I decide to upgrade and I am already over budget. But that being said I don't want to wait until I have finished putting everything together and writing all the code and realize that it is too much for the UNO to handle.

So I was wondering if anyone had any advice on the upper limits of things I should be trying to accomplish with the UNO?
Some of the things I am planning on doing:
Running 4 or 5 relays
Two temperature sensors
1 water level sensors
1 photo sensor
Running 1 LED strip (just turning it on/off, seperate power source)
Some sort of display output either to an LCD screen or serially to a computer
Monitoring 4 reed switches
Real-Time Clock
1 GSM/GPRS shield
Possibly:
1 ethernet module
1 PIR sensor
1 Gas sensor (very remote possibility)

Depending on what your wanting to do with all the data you collect an UNO is a good starting point if you have enough pins. Connecting a GSM shield and an Ethernet shield may cause problem with both memory usage (UNO) & hardware conflicts (UNO/MEGA) but the other things your connecting should not be to taxing on memory if properly done.
You could always create the basic sketch you need and compile it to see what sort of memory use it requires.

Riva:
Depending on what your wanting to do with all the data you collect an UNO is a good starting point if you have enough pins. Connecting a GSM shield and an Ethernet shield may cause problem with both memory usage (UNO) & hardware conflicts (UNO/MEGA) but the other things your connecting should not be to taxing on memory if properly done.
You could always create the basic sketch you need and compile it to see what sort of memory use it requires.

Thanks for the well thought out answer. I don't think I will be using the internet shield so I am going to give it a try with just the UNO.

sketch out your needs. what sensors, inputs, outputs, etc
start writing your program and see how far you can get.

2 AI for temperature
1 A/I for water level
1 A/I for light

has you at 4 analog. add the gas sensor and you are at 5

4 D/I for reed switches
1 D/I for the PIR
1 D/I for LED

has 6 inputs.

you need to go serial for the display

you can port the code over to another Arduino and may have to change some pins, but it looks like you should be able to make it work.

I think you will regret getting a UNO. Yes, the temp sensors may be on a one-wire system, and the clock and LCD will probably share a bus, but you only have to look at all those sensors, relays, and reeds - without bothering to add them all up - and the idea of a Uno starts to look silly. And if the pins don't get you, the libraries surely will. This is one of those truths that is best learned before you buy a Uno. A Mega will give you all the wiggle room you need, without any extra fartarsing about, and only costs a few dollars more, so you might as well get it now and save yourself the grief - not to mention the expense.

One thing can be guaranteed, wiggle room is something you are sure to need with what you propose. There is always something else you want to do, that's the way it is with Arduinos. I think you are already proposing to do rather more than me, and I bet there is something you have forgotten.

Planning pin usage in a colourful spreadsheet can be very useful.

I will have to second that. I recently finished a gardening controller that monitors temperature, humidity, soil moisture. Lights, pumps and fans are controlled by a relay board. A 20x4 LCD on serial, displays a full menu with the time, date, all current data. 5 buttons scroll through the menu to set all the timers, clock and date. I probably didn't code it in the most memory saving way, but project quickly outgrew the capabilities of the UNO. If you really want to make something big, go for the MEGA.