Friday, March 30, 2007

Palm Treo 700WX - A Mixed Bag

We've had our Treos now for about 5 months. It's been great having them but at the same time, I've had problems with mine. We've been taking full advantage of the unlimited Power Vision internet access provided with our plan. We have a few apps we use all the time on our phones:

imov Messenger Basic - this is the free version of their jabber chat client. It also has hooks to Yahoo!/AIM/ICQ transports so you can communicate with people on those networks too. I use it with my Google chat account (which is built into Gmail). It seems more reliable with Jabber (which Google chat is based) than with the other transports. Directions to configure it with Google chat.

Google Maps - it's now available as a CAB file to install directly on your phone! We use this all the time. We can easily look up a store, etc. while we're on the road and call them directly from gmaps!

Slingplayer Mobile - of course, what good is unlimited internet on your phone if you can't watch TV? We've been trialing the software and will likely cough up the $30 each. It is so convenient to watch TV while you're waiting in line, etc. - especially with two kids around running amuck. We may have to spring for a 2nd Slingbox for the other DirecTiVo so we aren't fighting for the 1 Slingbox.

Now for the bad things about the phone. The camera SUCKS! There is a problem with Bluetooth and 700WX that causes Bluetooth to stop working. The Treo needs to be reset to restore Bluetooth. It seems there is a fix from MSFT but there is no download available from Palm. Finally, to top it off, there is apparently a problem with the headset jack that dates back to previous Treos (650, 600). It's starting to affect my phone. It's pathetic that Palm has known about this problem for 2 or 3 generations and they still make the same mistakes. Can you say class action lawsuit? People have sued for less (scratches on their iPod for example). I really like the phone, but this may be my last Palm device unless these problems are fixed.

Sunday, March 25, 2007

starCOMUltra and Clearing up the RF Airspace

One of the new features of sCU is the addition of 32 software timers! This makes using the Hawkeye motion sensors with the WGL800 much more reliable. Now, I can start a software timer when a motion sensor is triggered, and rather than relying on receiving the OFF signal from the sensor, my system just waits until the timer has expired. This increases accuracy of turning off lights in rooms with no motion since there's no chance the OFF signal got lost colliding with another sensor's signal (especially since there are over 30 sensors in our system). Furthermore, since I'm not relying on the OFF signal, this allows me to change the timeout period of the sensors to their maximum (or near maximum) values. This reduces the amount of RF traffic since OFF signals won't be coming back every 1, 2, 4 or 8 minutes - especially in areas of high activity where the sensors could be triggering ON and OFF a lot. The end result is less RF traffic and better reliability for the X10 wireless part of our system.

Setting up software timers is easy in sCU. First, define them:
    ScriptTimers.Item(4).Name = "KitchenMotion";

Set them upon detection of motion:

function AUXPorts::AUX1_LineIn(Line) {
switch(Line) {
case KitchenMotionOn :
if (DarkCheck(KitchenDark)!=0 &&
Devices.X10Devices.Item("SinkLight").State==0) {
Devices.X10Devices.Item("SinkLight").State=1;
}
MotionChange(KitchenMotion,1);
ScriptTimers.Item("KitchenMotion").Time = 90;
break;
}
}

Finally, do something when the timer expires:

function ScriptTimers::Trigger(Index) {
switch(Index) {
case 4: // KitchenMotion
if (Devices.X10Devices.Item("SinkLight").State==1 &&
Devices.Flags.Item("DarkOutside").State==1) {
Devices.X10Devices.Item("SinkLight").State=0;
}
MotionChange(KitchenMotion,0);
break;
}
}

Saturday, March 24, 2007

RFID update

The minor reception problem I was having is gone. I just moved the receiver slightly and all 3 transmitters are coming in perfectly. It's just sitting on my office desk - no need for a fancy antenna. Everything's great except I read that the battery life on these things is about 2-3 months! I'll find out soon enough and maybe I'll have to figure out a new way to power these things...

Friday, March 23, 2007

Cleaning out the DirecTiVo

The chassis fan on one our free DirecTiVos started sputtering before its imminent death. Fortunately, I had a spare fan in my junk box so it should have been a quick 10 minute job to remove the old fan, splice & solder the old fan connector onto the new one & put everything back. It took a little longer though as I had to vacuum out the chassis.




I never would need a Sharper Image air cleaner as long as I have my DirecTiVos to filter the air! ;)

Anyway, did I mention they were free? DirecTV gave them to us when I told them we were going to switch to Dish (but we really weren't!) So for the price of a 1 year commitment, they coughed up two of these and some monthly discounts. Calling DirecTV to get discounts has become an annual ritual around this time of year. I just called yesterday since our last 1 year term ended, and they offered to take $10 off/month and to waive the DVR fee of $5.99/month for a year. They also threw in all the movie channels free for 2 months. Not the best deal people have gotten, but not bad for 10 minutes on the phone. Just call DirecTV and ask for retentions and tell them you want to switch to Dish ;)

Wednesday, March 21, 2007

RFID tracking going well

It took about 15 minutes to pop the batteries in the transmitters, throw them in the 3 cars and write up some code in starCOMUltra to do the vehicle tracking. They send out a beacon about every 2.5 seconds which the receiver picks up and sends a 4 character string to a serial port that sCU is watching. This code tracks the arrival of cars:

function AUXPorts::AUX2_LineIn(Line) {
var TempLine;
if (Line.substr(0,4)=="2xyz") {
if (CarsCheck(Car1)==0) {
TempLine ="# AUX 2:\tCar 1 Home";
LogDevice(TempLine);
CarsChange(Car1,1);
Speech.speak("R is home");
} else {
CarsInTime[0]=TimeSecs();
}
}
}


To track the departure of cars, my sCU script checks every 2 minutes if a car hasn't been heard from in a little while:

function ScriptTimers::Trigger(Index) {
var secs;
Site.LogDevice("# sCU Timer: " + ScriptTimers.Item(Index).Name +
" ("+ Index + ") expired");

switch(Index) {
...
case 1: // 2 minute
ScriptTimers.Item("TwoMinuteTimer").Continuous = -1;
ScriptTimers.Item("TwoMinuteTimer").Time = 120;
secs=TimeSecs();
if ((secs-CarsInTime[0])>90 && CarsCheck(Car1)==1) {
CarsChange(Car1,0);
LogDevice("# Cars:\tCar 1 Away");
}
break;
...


I haven't done any fine tuning of the placement of the receiver or of the transmitters in the cars. I have noticed that the car parked outside has occasional dropouts so I'll definitely be looking at re-positioning and possibly adding an antenna to the receiver. Overall, it was a very smooth install and I got right back to sCU beta testing.

Monday, March 19, 2007

RFID kit coming

I ordered an RFID receiver and 3 transmitters from http://wingsnwakes.com and I think I'll finally get them today. They've been downstairs in the mailroom of the company below us since Thursday morning. For whatever reason, we don't get USPS delivery directly since we occupy the 2nd floor of a building. It has to go through the downstairs company and they have to sort it out for us, but the guy who sorts it has been sick for a week. I guess nobody at my company gets anything important via mail because nobody else complained about not getting mail all week.

In any case, the transmitters will be put in our cars to replace the DS10A's I've been using for vehicle tracking. This will be much more accurate and a good test run to see if I'll "need" to add more transmitters to the system.

On a side note, starCOMUltra testing has gone full speed ahead. I've shut off starCOM and switched over completely to Ultra. I've spent the past week converting over piles of scripts and ASP pages to use Ultra and it's been very stable. It's been a good exercise as it's giving me a reason to clean up and streamline a bunch of scripts. I've been making good progress but I think the RFID stuff will sidetrack me this week.

Sunday, March 11, 2007

starCOMUltra beta testing

Just got my hands on the first beta copies of starCOMUltra, the follow on to the HA software I use. This is going to keep me busy for a while, but my testing won't be as hardcore as it was when starCOMPlus was in beta. My HA system is rock solid and I'm doing the beta on my main server, so I can only test it when I want to take the system offline.

Friday, March 2, 2007

Google study on hard drive failures

Some people at Google wrote up a paper on hard drive failures based on data from their server farms. One surprising finding they found was that cooler drives actually fail more often! Download the pdf here.

Media server shutdown

With the extra horsepower and memory on the new HA server, I've moved all the media serving back from the Sempron to the HA box.




In about April of last year, I started putting all the media serving onto the HA server. You can see in the graph of the CPU utilization that over time, the usage increased (ignoring all the glitches in data collection - the long flat spots). That along with xlobby started to bog everything down. Last December, I migrated all the media serving to the Sempron box and you can see the drop in CPU utilization.

When I cut in this new HA server in early February, the CPU use didn't change much. I've since added back all the media serving and it's been running very well for the last 2-3 weeks. The CPU utilization hasn't changed much since the the HA server has been serving media. Maybe I'll even add back xlobby.