Required libraries: libhidapi-dev
Since version 4.0 clewarecontrol uses this library to abstract the interfacing with the kernel. That way it may work on other OSes and new(er) kernel as well.
If you get errors, try replacing -lhidapi by -lhidraw-libusb or hidapi-hidraw. If you still get errors, contact me.
Installation: make install
Please see the man-page for help on how to use it: make clewarecontrol
or run the program with the -h switch: clewarecontrol -h
Please also check the website for tips and help.
Note that you can combine multiple commands in one invocation of clewarecontrol.
temperature sensor clewarecontrol -rt
humidity sensor This device needs to be "started" first, then you can read sensor readings clewarecontrol -ag -rh
2 channel AD converter (analog to digital) First you need to know what it range it works: 5v, 13v or 24v then you must select the channel to read from - the device has 2 channels after selecting the channel, you can keep reading clewarecontrol -ai x where x is 0 or 1 (selects channel) clewarecontrol -ra y where y is 0 voor 5v, 1 for 13v, etc.
Ampel ("Switch1 (8)") The traffic light is, from clewarecontrol seen, a device with 3 switches in it that can be individiually switched on and off clewarecontrol -as x y where x is 0, 1 or 2 (0=red, 2=green) and y is 0 or 1 (0 is off)
IO16 ("Contact 00 device (48)") The IO16 is a 16 port I/O interface. You can configure each pin to be either input or output. This setting is stored in an eprom so that a pin cannot become accidently output while you expected an input. Set the direction with: clewarecontrol -ad x where x is a hex value representing a 1 or 0 selecting the direction After that you can set the output pins to 1 or 0 with: clewarecontrol -am x where is a hex value
Luminus This is in fact an AD converter with integrated hardware which measures the amount of light. It has 1 chnanel, so you don't need to select it (like the generic ADC). Reading values (in version 2.5) can be perfomed like his: clewarecontrol -ra 0 This gives a value between 0 and 5. I (developer of this Linux program) need to buy a lux meter to scale this correctly.
USB-cutter This is a device which is at its heart a switch like the other switches. To use it, you need to start it: clewarecontrol -ag then, you can toggle the USB status like this: clewarecontrol -as 0 1 this will "cut" the USB device (switching it off) clewarecontrol -as 0 0 this will enable the USB device again(!) indeed, the logic is inverted.
-mintrig / -maxtrig
Run the program with -c 0 so that it keeps running forever (unless you want to have it monitor the value for a shorter time). Also start it with -F so that it runs in the background. Then set the -mintrig or -maxtrig switches. As the last parameter, set the sensor to monitor: -rh (humidity), -rt (temperature), etc. For example: clewarecontrol -c 0 -maxtrig 0.5 ./myscript.sh -ra 0 If the ADC tells us that the voltage is over 0.5 volts, then "myscript.sh" is invoked. As a parameter, the script will get the measured value.
I would be delighted if you share your experiences with me!
please see readme-python.txt for details on how to create and use the python library.
please see readme-perl.txt for details on how to create and use the perl library.
If you encounter any problems when using clewarecontrol with Cleware devices, DO NOT contact Cleware but please contact me: firstname.lastname@example.org
Of course you can always write me when you have questions/suggestions/etc. email@example.com
Q1. Values retrieved are invalid A1. Occasionally the values retrieved are invalid. E.g. a temperature of 170 degrees and such. In that case you can reset the device (might need to reset it multiple times!) and then it'll work
Q2. It does not compile on SuSE Enterprise Linux 10 A2. Insert in file USBaccessBasic.c at line 17 (that is BEFORE the line including usbdevice_fs.h!) the following line: #define __user
Q3. clewarecontrol -l doesn't list any devices A3. The Cleware USB library expects the following files to exist: crw-rw-rw- 1 root root 180, 96 May 9 2005 /dev/usb/hiddev0 crw-rw-rw- 1 root root 180, 97 May 9 2005 /dev/usb/hiddev1 ... crw-rw-rw- 1 root root 180, 110 May 9 2005 /dev/usb/hiddev14 crw-rw-rw- 1 root root 180, 111 May 9 2005 /dev/usb/hiddev15
Since version 1.2 you can use -p to select a different path, eg.: clewarecontrol -p /dev -l Make sure the user you're running clewarecontrol from has enought rights to access the devices. For starters, to see if it works at all, run it as root.
Q4. clewarecontrol still can't find any devices A4. If that still does not give any output then please e-mail me the output of the following commands: uname -a lsusb lsmod strace clewarecontrol -l ps -deaf | grep udev find /dev -name hiddev*
Please also tell me what distribution (e.g. redhat/suse/ubuntu) and what version you're using
Folkert van Heusden