You may want to look at something like MisterHouse, which is a free open source home automation package. Something like this would require setting up a web server and such but if you're comfortable with that it may be a suitable program for your needs.
http://misterhouse.net/
Another possibility for your cameras might be ZoneMinder, although I believe it is only available for Linux. Misterhouse has a multiple video camera monitoring portion as well though.
http://www.zoneminder.com/
Setting up the Apache web server on a windows machine:
http://lifehacker.com/124212/geek-to-live--how-to-set-up-a-personal-home-web-server
Home web server security:
http://www.htmlgoodies.com/beyond/security/article.php/3626491
Another general resource that you may find useful is:
http://www.homeautomationindex.com/
Edit:
To access the devices remotely you would need to do something like port forwarding at the router. This would generally require that you have a static IP address from your ISP to connect to across the internet.
Since most of the devices we're talking about are probably accessible via a web page (port 80) you would have to set up port forwards like:
internet.ip:port 180 --> thermostat.ip:80
internet.ip:port 181 --> cam1ip:80
internet.ip:port 182 --> cam2ip:80
etc.
Of course this would make those devices directly accessible to anyone on the internet assuming there isn't some method of restricting access on each device or the use of a firewall to only allow access from where you connect from. So security could be a concern with this method.
Another (better) solution would be to setup a VPN that way you connect to the VPN and then access the individual devices just like you would if you were connected to the network at the shore home.
One main issue is that many routers do not offer such advanced features required to do something like this. The use of another machine could make things easier overall, but it all depends on what you have to work with.