I received my Arduino about two weeks ago and tried out your sketch and it works good. One question, I reduced the sketch down to a bare minimum so that I could understand how it works and there is one command that I do not understand. In the variable declaration section the following variable is declared:
volatile byte sensorstate = LOW; //Start with sensor in LOW
Then at the end of the sensortick function it reads:
sensorstate = LOW;
I can't figure out what this does, maybe somebody could explain it to me. I assume that it should reset the sensor pin state but I can not find a place where it refers to the sensor pin.
Thanks
edit: Once I'm done I will put together a write up in the exhibition section. For now, I will put a couple pictures of what I've done so far here. It took me a while to find a good meter cover to protect the sensor from ambient sunlight. The cover is a 2.5 quart plastic bucket I bought at ACE hardware. I painted the inside black and the outside gray. I first cut the bottom of the bucket off but it was still getting too much light so I taped the bottom back on and made a little window to view the meter.
One small change I made to the sketch was to change the Interrupt condition from RISING to HIGH because the sensor would go crazy when I opened the little door to look at the meter.
The sensor I used is a light to voltage TAOS Photodiode mfg part number TSL267-LF that I purchased from Mouser. Right now the sensor is taped to the top of the meter with the bucket covereing it. Later I will chage it so that the sensor is mounted on the outside of the bucket so that removing the bucket will remove the entire assembly.


