The Tchibo Ecobutton is a small USB-powered device / button which acts as a HID device (and also has three fancy green LEDs). The use-case is that you press the button to suspend your PC in order to save power.
How it works
It's a USB HID device. When you press the button, the HID devices "presses" the Windows+R keys on your (Windows) PC, which openes the standard Windows "Run" dialog, then it presses the keys ecobutton and Enter, i.e. it executes a Windows program called ecobutton, which in turn does the rest of the work.
This device can easily be abused for other tasks, just provide an application named ecobutton which does whatever you want to happen at the button press. It's equally simple to do it on Linux or Mac OS X, of course. Just go into a console (or position the cursor in an xterm) and press the button. It'll invoke a program named recobutton (sic!) which must be in your path, as the Windows key is usually ignored on Linux.
$ lsusb -vvv Bus 003 Device 005: ID 3412:7856 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x3412 idProduct 0x7856 bcdDevice 0.01 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 34 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.00 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 63 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0x0000 (Bus Powered)