Open Sourcing Altsteon

I spoke with Chris and he is willing to open source Altsteon for continued development as his time is pretty limited. He has asked for the following requirements (Mainly Just One):

He has asked that he have full access to the project.

I would like to get involved with the development, but I am not knowledgable in C, C++ and will need to learn the language. Chris is looking for anyone who is willing to take the lead on the project. I would be willing to do this if there are no takers as I want to see this project continue development and the fact that I want to add more insteon gear to my home. I am calling for people who would be interested in helping with development. Who would like to help out?

Chris will have to figure out the type of license to use and where to host the project. Does anyone have suggestions on hosting? SourceForge, GitHub, etc?

  • Garrett

I’m not a coder so I can only offer help testing - I have a lot of Insteon devices.

If you do take it on, here’s what I’d like to see…

X10 support for RF CM19a USB
Insteon device discovery and pairing

Hi all,

Just wanted to let you know that I pushed the source out to the Altsteon project on Sourceforge. The license is a creative commons license that forbids commercial use. In a nutshell, I want to allow people to use Altsteon, but if anyone is going to sell it they have to cut me in. ;D

I will warn that a lot of the code is very messy and chaotic. It was originally developed for something completely different, and then modified to work on the Vera. I think there is a lot that can be cleaned up and simplified, but I think it is fairly easy to add new devices and features.

I do plan to continue work on Altsteon as I have time. But, as you guys may have noticed it can be tough for me to find time to really get anything done. Hopefully opening up the source will allow people to build on when I am unable.

Hey guys,

I’m proficient in C and C++, so I can help out, in what limited time I have!

I just ordered a FanLinc, KeyPadLinc, and PLM. Hoping they will be here by the weekend. Then I came here and found this!

-Jacob

fba, I can’t thank you enough for open-sourcing the code! Great news. I have been wanting to get a number of changes in to support the older Insteon devices better but was getting stuck because of limits in the daemon.

Do you have a paypal account or similar? I would like you send you a Thank You donation :slight_smile:

Will you be taking patches or commits to be included in future releases? Would you be willing to give someone like myself commit access to the source-forge repository? I would like to become an active contributor to the code.

I’ve downloaded the code, and started going through the daemon code. Nothing too scary just yet. :slight_smile:

For others trying, I wanted to include a quick writeup:

For Mac OS and Ubuntu, I did the following: cd altsteon-daemon aclocal automake --add-missing ./configure make

On MacOS only, I get the following error: ld: library not found for -lcrt0.o
Removing the “static” from the linking line* and all is well.
(*Remove it by removing it from ./src/Makefile.in, then re-running ./configure and make.)

No errors compiling on Ubuntu.

I can’t actually run it yet, since my PLM is still on the truck for delivery!

I was able to get everything running from tool-chains built for the Vera units directly. The Vera2 tool-chain creation was documented very well on the wiki: http://wiki.micasaverde.com/index.php/Toolchain. The Vera3 was a little light on the details. I used the following configuration for the Vera3 tool-chain.

Note that the version of GCC, linux kernel, and uClibc do not match perfectly, but should all be ABI compatible. I used the following script to build the tool-chain:

#!/bin/bash

ExitOnError()
{
	ERRNO=$?
	if [ "${ERRNO}" -ne 0 ]; then
		echo "Error ${ERRNO} detected, exit!"
		exit ${ERRNO}
	fi
}

CTNG_VER="1.18.0"

wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-${CTNG_VER}.tar.bz2
ExitOnError

CTNG_DIR="`pwd`/ct-ng"
TOOLS_DIR="`pwd`/toolchain"

mkdir -p ${CTNG_DIR}
mkdir -p ${TOOLS_DIR}

tar xvjf crosstool-ng-${CTNG_VER}.tar.bz2
ExitOnError
cd crosstool-ng-${CTNG_VER}
ExitOnError

./configure --prefix ${CTNG_DIR}
ExitOnError
make
ExitOnError
make install
ExitOnError

cd ${TOOLS_DIR}
ExitOnError
${CTNG_DIR}/bin/ct-ng mips-unknown-linux-uclibc
ExitOnError
${CTNG_DIR}/bin/ct-ng build
ExitOnError

The tool-chain is installed in “~/x-tools”. To configure the application to build for the Vera3 tool-chain:

aclocal
automake --add-missing

CC=~/x-tools/mips-unknown-linux-uclibc/bin/mips-unknown-linux-uclibc-gcc CXX=~/x-tools/mips-unknown-linux-uclibc/bin/mips-unknown-linux-uclibc-g++ LD=~/x-tools/mips-unknown-linux-uclibc/bin/mips-unknown-linux-uclibc-ld ./configure --host=x86_64-unknown-linux

make

A question for those thinking about helping out…

Is anyone planning to get the developer kit: http://www.smarthome.com/dev-2600s.html

Developer PowerLinc Modem, Serial (Dual-Band)
Developer PowerLinc Modem, USB (Dual-Band)
Developer USB Portable Adapter 1.0
Developer LampLinc (Dual-Band)
Serial Cable (RJ45-to-RS232)
USB Cable
Small light bulb to be plugged into the bottom of the LampLinc (7.5 Watt utility light)
Adapter plug for bulb

I am seriously considering getting it, so my “production PLM” and “development PLM” could have the same Insteon ID. I could just never have both plugged in at the same time. Also, can the link database from one be replicated to the other? I really don’t want to have to do all the links twice!

Hi All,

Let me see if I can respond to everyone in this one reply.

Reply #4 - jimbo333 : I don’t have anything like PayPal. I have heard a few too many horror stories about them. However, you can send money to chsoftworks at gmail dot com using Google Wallet if you happen to use it. However, I am also happy to accept good karma, feelings, or any other good “vibes” sent my way. If money is sent, I’ll use it to purchase newer Insteon devices to add support for them.

Patches will absolutely be accepted. My view is that more people contributing will mean more ground gets covered. For instance, right now, I am pretty focused on getting the EzFlora to be solid so I can move my sprinklers over. But, I know there are several things other people would like to see done as well.

And yes, I am willing to give you commit access. PM (or e-mail me at the address above) me with your Sourceforge user name and I’ll add you. I’ll also send you a run-down of the processes I use to keep things documented and any other tidbits that pop in my mind. PurdueGuy, you may also have commit access. I don’t want to get a ton of people committing, but getting a few in there that can also accept patches from others seems like a good idea.

Reply #5 & #6 - The code is statically linked to avoid any issues with libraries differences on the various platforms. There is no reason it has to be built that way, it is just what I did to attempt to minimize problems.

Reply #7 - Well, now I am bummed out. When I bought the developer kit it only came with the serial PLM. I had to buy my own wireless and USB ones to have all the flavors. Link databases could be replicated if you want. The ALDB only contains the destination information in the database.

However, depending on what your development environment looks like, you may be better off with two PLMs with different addresses. For my dev tests, I have the USB PLM plugged in to my Vera, which is used to run everything in the house. The Serial PLM is plugged in to a Linux box that I use for the development. If you have a lot of devices it can be easier to have a PLM that you set up a link to only the device you are working against. It will save you from having a bunch of output to dig through when troubleshooting weird problems.

That said, depending on how far in to everything you want to get, the developer kit may be worth it for the documentation it provides. You can find a lot of the Insteon documentation out on the Internet. But, finding the documentation for the newest devices is a lot harder, and the documentation you can find may be out of date. If you have a developer license you can log in to the Insteon site and download the documentation directly.

I don’t seem to have “permission” to send a PM, but my Sourceforge username is “jimbo333”, I sent you a PM on source-forge (I think :)). I would love any notes you have on building or setup. I do seem to have it working and have made a couple of changes. I would like to make sure I keep with your styles and guidelines, so if you have anything specific please let me know, otherwise I will just try and follow what I see in the code already.

Jimbo - I sent you a PM, let me know if you didn’t get it.

Got it, thanks, I still can’t respond with PM’s yet, maybe this post will put me over the threshold :slight_smile: I look forward to working on this project.