The latter is very cheap on fleabay and nice and small, but doesn't support TCP offloading, which means your code needs a plugin library which makes the sketch pretty big.
So I found a W5100 ethernet board which is almost as small (the red ones on ebay) and almost as cheap.
Anyone tried these?
I really want one with mounting holes (even if it makes it a little wider) - anyone seen them around?
The Ethernet Shield clone costs 7.50 dollars on Ebay, but they also have a level shifter for the signals plus a SD socket.
The small W5100 module costs 8.96 dollars on Ebay.
The ENC28J60 module costs 3.40 dollars on Ebay, but the cheapest ones don't have a 3.3V voltage regulator, so the Arduino should be able to supply enough 3.3V. They are small, but they still get hot.
I suggest to use the full Ethernet Shield. It is compatible with the Arduino libraries, and has less troubles with 3.3V power or heat, plus you get a SD socket.
If you own efforts do not account or cost then go ahead and tinker endlessly with this cheap stuff.
I'd sugest to go with a W5200 Ethernet solution. I've used a WIZ820io Ethernet module for ~$20 successfuly in several projects or you can buy the Seed Studio Ethernet Shield V2, which also hosts the W5200.
The advantage is that with the W5100/W5200 based solutions you can use the mature, tried and tested Ethernet library and the many other libraries that rely on it. Hook a little WiFi pocket router to it such as the Tp-Link TL WR703n (or 702 or 3020...) and you've got WiFi with AP functionality!
Thanks for the comments, I don't mind spending more money the problem is that when you buy 30 units for a home project you have to find the cheapest option. (Of course, cheapest option is to make your own boards, but that's not an option for me)
My biggest problem is size, I want to find something very small as I need to fit a lot of electronics in a small space (wall boxes). Of course the full size arduino and shield would fit, but I have other components that take up space too.
I don't need high speed, as only sending small data (MQTT messages), but I do need small package
My main point was to use an Ethernet Module, or shield that works with the Ethernet library. If you can get these eBay Ethernet modules with W5100 cheap enough that should work. Worth a try for that price.
Today your biggest problem is size, tomorrow your biggest problem could be heat
The ENC28J60 and the W5100 or W5200 get hot.
The ENC28J60 is without doubt the cheapest one. The W5100 has the best support for Arduino. The smallest option could be wireless, since some CC3000 modules are very small. Is it possible to use other wireless options ? Bluetooth, or RF communication ?
Heat could indeed become a problem, especially when the devices are mounted inside a wall box.
I'm wiring up arduino light switches to control remote, centrally-located dimmers, and whilst I'm sure wireless would be in the most part reliable, I really want something that will be rock solid, from a power and communication point of view. Wireless means I won't be able to turn the lights on when the wireless signal goes down (which sometimes happens due to cheap wireless router issues or other problems). Of course, network switch can be a single point of failure but IMO cheap switches can be 99.99% reliable as compared with wireless 98% or something...
I've ordered some of those red boards from Ebay. I will do some direct reliability and performance comparisons with a full ethernet shield which I already have for testing.
But - my Arduino sketches are a good 8k less with the ethernet library as opposed to the plugin version of the same that supports the ENC28J60 - so that's a win already!