I have been using the IOBridge for almost a year now, and the thing that strikes me about it is that it's brilliant at what it does, but maddening in that if it doesn't do exactly what you need you're pretty much out of luck.
The logging is great -- unless you want to log something that's not supported, like digital state changes. Notifications are great -- unless you want the action to be something other than email. The API is great -- unless you want to do something it can't do, like push notification rather than pull.
I put together a setup that I'm very excited about, because it allows for almost endless flexibility. Hardwarewise, it consists of an IOBridge, a serial smart board, and a TeensyDuino. TeensyDuino is an Arduino implementation on a board called a Teensy that is a tiny-- 1.2 x 0.7 inches -- self-contained programmable microprocessor. It has a USB port and connects directly to a computer for programming. It has a serial port, and hooking it up to the IOBridge is a matter of connecting four wires -- power, ground, receive and transmit. It's really easy. The Teensy costs $18, the more powerful Teensy++ is $24. See
http://www.pjrc.com/teensy/index.html (I have no affiliation with the company that makes the Teensy).
Programming the teensyduino is really easy too. You write programs --arduino "sketches -- on your computer and download them using the USB port. Other than a USB cable no hardware is required, and all of the software needed is downloadable for free from the teensy website. The Arduino language is incredibly simple.
The teensy board has a lot of inputs and outputs -- 25 I/O pins, 12 analog in pins and 7 PWM analog out pins. But it's using the serial port and the IOBridge serial API that really unlocks the power of the IOBridge. The Serial API allows you to issue GET comamnds to a URL you specify. With a server-side programming language you can accept data from the teensyduino, send data back, and also manipulate the IOBridge using the API to control smart boards or digital outputs, or send more data to the teensy using the serial API.
So basically I have the IOBridge in the middle and a programmable device at either end. The IOBridge allows full bi-directional communications, which can be initiated from either end, and also gives a bunch of useful properties, like the X10 interface or the built-in logging, that can be used when they serve your purposes.
With a programmable device at each end I feel there's nothing I can't do!
Nick