Linux INSTEON scene management software

bpwwer

Member
Since INSTEON scene management software seems to be a hot topic, I'm announcing my Linux software for scene management. Currently, I'm not trying to create a complete HA package, I just wanted the ability to easily create and edit complex scenes.

I have two versions of the program. One is a command line only verstion and the other is a full GUI version. They both use the same codebase for interacting with the INSTEON PowerLinc USB interface and at some point I'll merge them into one source tree. Both versions are available as source only and are GPL licensed.

The source is available here: http://www.bobsplace.com/ilinks/

Both versions require a USB driver for the PowerLinc. I've been using Neil Cherry's driver and have included a slightly modified version with the command line version source. You can also get the driver directly from his site http://www.linuxha.com/athome/common/iplcd/

The command line version should work on pretty much any distribution.

The GUI version requires GTK+ 2.4 or later and libglade 2.10 or later. I've been developing it on a Fedora Core 3 box so I expect it would work on any recent distribution.

It's pretty easy to build and I'll gladly help with any problems. If anyone does try it out, please give me some feedback.

Bob
 

ginigma

Active Member
Wow. Way Cool. I've been looking for something like this. Ordering my PowerLinc now.

I'm an "enthuiast" right now, just starting with Insteon, but let me know if I can help you.

c.
 

johnnynine

Active Member
This looks nice, but I don't have linux.

Is there anything capable of the same functionality for windows?
 

pavlov70

Member
johnnynine said:
This looks nice, but I don't have linux.

Is there anything capable of the same functionality for windows?
Over on accessx10.com a guy has written Group Commander for Windows which should do exactly that. Personally I've been using Powerhome with great success in managing my links. I don't know about the others but Powerhome has the ability to easily rebuild links for failed devices.
 

bpwwer

Member
ginigma said:
Wow. Way Cool. I've been looking for something like this. Ordering my PowerLinc now.

I'm an "enthuiast" right now, just starting with Insteon, but let me know if I can help you.

c.
Great!, I'm mainly interested in more feedback. Of course, bug fixes are always welcome :D

I do have a couple of new features mostly working. I added the ability to do device replacement (mainly to reprogram everything if you have to replace a failed device). I added a device control dialog box so you can see the status of devices and do some basic control of them. I added the ability to read/write links in the PLC but there isn't any real use for that yet. I Also have some mostly working code to query all devices and build an initial set of scenes. I need to finish up the scene discovery code and then I'll publish a new version.

--
Bob
 

johnnynine

Active Member
bpwwer said:
The GUI version requires GTK+ 2.4 or later and libglade 2.10 or later. I've been developing it on a Fedora Core 3 box so I expect it would work on any recent distribution.
I have installed Fedora 4 in a virtual machine and was wondering if it already comes with GTK+ 2.4 or later and libglade 2.10? (Sorry I'm somewhat linus ignorant.)

If it does not contain them, can you please provide a link to them.

I went to compile/make it and I received some errors, I'm assuming I just don't have something installed (I will look into the "actual" error message tonight or tomorrow). I assume it's either Neil Cherry's driver and/or libglade.

Thanks
 

bpwwer

Member
johnnynine said:
I have installed Fedora 4 in a virtual machine and was wondering if it already comes with GTK+ 2.4 or later and libglade 2.10? (Sorry I'm somewhat linus ignorant.)

If it does not contain them, can you please provide a link to them.

I went to compile/make it and I received some errors, I'm assuming I just don't have something installed (I will look into the "actual" error message tonight or tomorrow). I assume it's either Neil Cherry's driver and/or libglade.

Thanks
Yes, Fedora Core 4 has all the required libraries, however, they might not be installed. It all depends on what you installed.

You'll need to have the GTK+ development packages and the libglade development packages. These probably get installed if you install all the software development packages.

I think you'll need

gtk2-devel-2.6.10-2.fc4.4
libglade2-devel-2.5.1-2

at a miminum.
 

johnnynine

Active Member
There's a typo in the source code link on your web page. It shows:
http://www.bobsplace.com/ilinks/ilink-0.1.1a.tgz
But it should be:
http://www.bobsplace.com/ilinks/ilink-0.1a.tgz

I was able to change it based on an earlier download and successfully redownloaded the source.

I found that Fedora 4 does install both GTK2-devel and libglade2-devel, although I do not know how to determine which versions they are as the installer does not indicate this.

I went to Neil Cherry's web site as you listed above to get the linux Insteon USB driver, however his page has many links on it and I have no idea which one is the driver I need.

Since this post is rather long, here is a summary:

I get errors when I compile, however an executable is still created. When I run the executable I get the nice window to come up but no button press or menu events will fire. I have included console output below.

Do I need the Insteon USB driver to successfully compile?

What files do I need to download off Neil's website do I need to run? And where do I put them?

What can I do to get the application to compile?

Thank you so much for the help.

Sorry for the loooong post.



I get the following console output errors when I compile:

[[email protected] ~]# cd Desktop
[[email protected] Desktop]# cd ilink1
[[email protected] ilink1]# make
cc -g `pkg-config --cflags libglade-2.0` -c ilink_signals.c
ilink_signals.c: In function ‘on_add_device_button_clicked’:
ilink_signals.c:64: warning: pointer targets in assignment differ in signedness
ilink_signals.c:65: warning: pointer targets in assignment differ in signedness
ilink_signals.c:79: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness
ilink_signals.c:80: warning: pointer targets in passing argument 2 of ‘strcpy’ differ in signedness
ilink_signals.c:84: warning: pointer targets in passing argument 1 of ‘str_id_to_hex’ differ in signedness
ilink_signals.c: In function ‘on_add_scene_clicked’:
ilink_signals.c:323: warning: pointer targets in assignment differ in signednessilink_signals.c:336: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness
ilink_signals.c:341: warning: pointer targets in passing argument 2 of ‘strcpy’ differ in signedness
ilink_signals.c:359: warning: pointer targets in passing argument 2 of ‘gtk_combo_box_append_text’ differ in signedness
ilink_signals.c: In function ‘on_link_list_cursor_changed’:
ilink_signals.c:861: warning: pointer targets in passing argument 1 of ‘find_device’ differ in signedness
cc -g `pkg-config --cflags libglade-2.0` -c scenes.c
scenes.c: In function ‘get_scene_info’:
scenes.c:267: warning: pointer targets in passing argument 1 of ‘find_device’ differ in signedness
scenes.c:284: warning: pointer targets in passing argument 1 of ‘find_device’ differ in signedness
scenes.c: In function ‘find_device’:
scenes.c:670: warning: pointer targets in passing argument 1 of ‘str_id_to_hex’ differ in signedness
cc -g `pkg-config --cflags libglade-2.0` -c insteon_msg.c
insteon_msg.c: In function ‘flags’:
insteon_msg.c:406: warning: incompatible implicit declaration of built-in function ‘memset’
insteon_msg.c:409: warning: incompatible implicit declaration of built-in function ‘strcat’
insteon_msg.c:413: warning: incompatible implicit declaration of built-in function ‘strcat’
insteon_msg.c:417: warning: incompatible implicit declaration of built-in function ‘strcat’
insteon_msg.c:421: warning: incompatible implicit declaration of built-in function ‘strcat’
cc -g `pkg-config --cflags libglade-2.0` -c idrv.c
idrv.c: In function ‘ibios_get_version’:
idrv.c:178: warning: pointer targets in passing argument 1 of ‘sprintf’ differ in signedness
cc -g `pkg-config --cflags libglade-2.0` -o ilink ilink.c ilink_signals.o scenes.o insteon_msg.o idrv.o `pkg-config --libs libglade-2.0`
[[email protected] ilink1]#


When I then run ./ilink the window shows up and looks good, but no button press or menu select events get fired. All I can do is close the application with the little X in the upper right corner. Here is the console output:


[[email protected] ilink1]# ./ilink
Version: 2.6.7

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_ping_device_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_about_closebutton_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_save1_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_program_device_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_program_all_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_link_list_cursor_changed'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_scene_controller_changed'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_quit1_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_list_links_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_replace_okbutton_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_add_device_button_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_delete_device_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_scene_selector_changed'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_add_scene_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_replace_cancelbutton_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_about1_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_scene_group_editing_done'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_scene_delete_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_open1_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_delete_scene_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_new1_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_save_as1_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_replace_device_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_device_tools_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_device_selector_changed'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_add_responder_clicked'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_replace_close'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_scene_menu_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_ilink_main_window_destroy'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_update_plc_activate'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_responder_list_cursor_changed'.

(ilink:3004): libglade-WARNING **: could not find signal handler 'on_query_devices_for_scenes_activate'.
Failed to open ilink_scene.inf
Error opening device
 

bpwwer

Member
johnnynine said:
There's a typo in the source code link on your web page. It shows:
http://www.bobsplace.com/ilinks/ilink-0.1.1a.tgz
Acutally, there was a typo in the new version's file name. I've fixed it. There is a new version of the code that merges all the command line code and gui code into one package. You can now build either version from the same source.

I also include a slightly modified version of the USB driver that fixes a problem I had running it on the latest kernel for Fedora Core 3.

I figured out the problem with Fedora Core 4, It doesn't set the linker flags properly to work with libglade. I manually added them to the make file so it should work now.

I added a link to Neil's web site and to the location of the USB driver on my web page.

johnnynine said:
I get errors when I compile, however an executable is still created. When I run the executable I get the nice window to come up but no button press or menu events will fire. I have included console output below.
Looks like you just got warnings. I've fixed those so it should compile clean on both Fedora Core 3 and 4.

johnnynine said:
Do I need the Insteon USB driver to successfully compile?
No, the program will run, but it won't be able to communicate with the PLC. To do anything that requires the PLC, you will need to have everything installed and started in the right order:

1. plug the PLC into a usb port.
2. run detach to detach it from the HID driver (must be root)
3. insmod the iplc usb driver to install it (must be root)
4. run my program

johnnynine said:
What files do I need to download off Neil's website do I need to run? And where do I put them?
You need the usb driver here http://www.linuxha.com/athome/common/iplcd/ it's the experimental iplc driver for the USB Insteon PowerLinc V2. For Fedora Core 4, you're probably better off using the version I include.

After you untar my program, go into the iplc subdirectory and type 'make' That should build the driver. Then, as root, type 'make node' to create the device node needed. Then follow the steps above.
 
Top