OK, that’s a pretty solid explanation, thanks. It’s actually the right time to bring up connector suggestion, as we are in the process of redesigning OpenSprinkler and prepare the next version 3.0, based on ESP8266 WiFi chip. Due to the small number of GPIO pins on ESP8266, it will make use of several I2C devices (RTC, LCD, PCF8574 IO expander), so the plan is compatible with what you mentioned, which is to rely on I2C devices. Another important design decision is that it will adopt modularized design — there will be a ESP8266-based main processor board, that contains the WiFi chip, LCD, buttons, RTC, RF transmitter-receiver headers; and a power+driver board that contains the power conversion circuitry, IO expander, and solenoid drivers. The main processor board will be plugged into the driver board. So the whole assembly will be slightly taller, but the footprint will be roughly half the size as before, so it looks every smaller than the current OS. The main purpose of this ‘split’ design is such that the ESP8266 main processor board can be used standalone, as a USB-powered gadget, but also it can be plugged into different driver board, like a thermostat driver board to make a new product, OpenThermostat. This will make it easy for us to manage stock and new products, without having to redesign the whole circuit from scratch over and over again.
Anyways, the reason I mentioned this is that to allow the main processor to be used as a standalone USB-powered gadget, I considered some possibilities of additional sensors. For example, there is a 1×4 I2C pin header reserved for a temperature/humidity sensor (like AM2320), and there is an on-board light sensor. This will make it possible to use the main processor board as a light / temperature / humidity sensor board, which doesn’t drive anything, but can sense, log, and transmit sensor values. It does also have the capability to remotely control RF power sockets (the RF transmitter and receiver pin headers are on the board).
It would be pretty easy, certainly, to duplicate this 1×4 I2C a couple times, to allow even more sensors, like you said. And I may vary the order of the pins too because the ordering of the pins is sometimes not consistent on different sensors (like some do VCC GND SDA SCL, but some will do VCC SDA SCL GND). If you have some particular sensors in mind, feel free to let me know. I think there may be just two or three common pin orderings.
But in the end, these will probably still require some small amount of soldering to connect additional sensors, unless if we know pretty sure which particular sensors will be used (in which case we can design dedicated enclosure cutouts). For now the enclosure isn’t a huge issue because we will continue using acrylic enclosure like what we’ve done on OSPi, OpenGarage and OSBee. The acrylic enclosure is much easier to redesign without paying a huge upfront mold cost.