Sniffing Oregon Scientific Weather Sensor Data

A few years ago I bought an Oregon Scientific wireless weather station.  It’s a nice way to keep an eye on what’s going on outside.  The unit supports up to 3 of these remote sensors (shown here), and aggregates it at a base station.  It doesn’t have a computer interface, so while it displays nicely in the living room, I can’t get access to that data.

Once upon a time I bought some 1-wire thermo sensors that I was going to wire that into my computer for data collection.  After the house was hit by lightning, I got far more gun shy about running conductive cables from the outside to a computer.

It occurred to me recently that there was good odds that someone must have figured out to sniff that wireless communication.  These aren’t complicated devices, and Oregon Scientific seems to be letting different generations of sensors work with different generations of head units, implying that they have some pseudo standard protocol.  It would also solve my spark gap problem, as I could gather this data without any wires connected to the sensors.

After some googling I discovered that yes, these devices are operating in the 433 Mhz band, and yes, thanks to the folks at rfxcom, there is a unit out there which will receive this and spit it out in a reasonable usb interface.

Under Linux, this information can be very easily decoded with the heyu program.  This is really more of a command line system for home automation, but it also includes the rfxcom protocol and the decoders for just about everything Oregon Scientific makes.

After plugging in the rfxcom device, it took me about all of 30 minutes to get heyu compiled and configured for my devices.  The first time you run the heyu monitor you’ll actually get big hex strings which are the raw data.  Once you tell heyu what kinds of sensors they are, you’ll get it decoded in much more friendly units.  Here are the relevant lines in the heyu config file:

TTY	dummy
TTY_AUX  /dev/ttyUSB0  RFXCOM
ALIAS Sensor1 A1 ORE_TH1 0xB1
ALIAS Outside A2 ORE_TH1 0x83
ALIAS Sensor3 A3 ORE_TH1 0xCE
ORE_TSCALE Fahrenheit

After configured and running, I now have sensor data being collected continuously:

gallifrey:~> heyu monitor
02/25 21:49:54  Monitor started
02/25 21:50:11  rcva func      oreTemp : hu A3  Ch 3 Temp 58.6F (Sensor3)
02/25 21:50:11  rcva func        oreRH : hu A3  Ch 3 RH 42% (Sensor3)
02/25 21:50:20  rcva func      oreTemp : hu A1  Ch 1 Temp 43.7F LoBat (Sensor1)
02/25 21:50:20  rcva func        oreRH : hu A1  Ch 1 RH 54% LoBat (Sensor1)
02/25 21:50:22  rcva func      oreTemp : hu A2  Ch 2 Temp 34.3F (Outside)
02/25 21:50:22  rcva func        oreRH : hu A2  Ch 2 RH 87% (Outside)

The next steps here are going to be gathering this into something that I can use for graphing.  I’ve now got all the sensors I was looking for to be able to build my better thermostat brain.  Next steps will be tying this all together and starting my graphing.

Catching bad links with jquery

We’re 1 step closer to the launch of the new Poughkeepsie Farm Project website, so it’s down to some final edits before it gets flipped live.  While I was looking over the test site the other day, I realized we still had some links, and images that referred to the existing site, which would break once we did the final domain switcheroo.

I came up with the following snippet of jquery to highlight bad links and images client side so that editors would realize they needed to do something about them:

function highlight_bad() {
    $("div[id='content'] img[src^='http://farmproject.org']").css("border","9px solid red");
    $("div[id='content'] img[src^='http://www.farmproject.org']").css("border","9px solid red");
    $("div[id='content'] img[src^='http://test.farmproject.org']").css("border","9px solid red");
    $("div[id='content'] img[src^='http://pfp.dague.org']").css("border","9px solid red");
    $("div[id='content'] img[src^='http://farm.dague.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://farmproject.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://www.farmproject.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://test.farmproject.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://pfp.dague.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://farm.dague.org']").css("border","9px solid red");
}

So every time we find a link or image that starts with an absolute url to one of the addresses the site has had inside the content block, we highlight it. This has been incredibly effective so far in catching some things I didn’t even realize was an issue.  This with the combo of drupal’s broken link detector internally is helping us ensure the content is consistent prior to launch.

Curling Open House in Norfolk Connecticut

For folks in Dutchess County in NY, or Western Connecticut, that have been enjoying Curling, you should know that the Norfolk Curling Club is running an Open House this weekend. Today’s events are over, but tomorrow between 1 and 5 pm you can go and check out the sport.  We did this back in 2006 during the last Olympics.

As you can see, you will get to throw stones, which is just awesome.  This picture is of Pyg, one of the members of our Poughkeepsie contingent that came out out for the open house in 2006, we ended up taking a 2 week course, which was brilliant.  They seem to be running things a bit earlier this time around, I suspect in hopes of getting more play in for people before they close down the clubhouse for the year.

If you have any interest in Curling, you should check it out.

Audio Perception of Distorted Speech

Listening to the sine-wave speech sound again produces a very
different percept of a fully intelligible spoken sentence. This
dramatic change in perception is an example of “perceptual insight” or
pop-out. We have argued that this form of pop-out is an example of a
top-down perceptual process produced by higher-level knowledge and
expectations concerning sounds that can potentially be heard as speech:

There are audio samples at their website which demonstrate this.  It’s really neat to hack your perception.

IPCC Debacle from the horse’s mouth

There is a good posting on the Real Climate blog about the IPCC AR4 blow back that is happening.  I think this gets to the heart of it:

To those familiar with the science and the IPCC’s work, the current
media discussion is in large part simply absurd and surreal.
Journalists who have never even peeked into the IPCC report are now
outraged that one wrong number appears on page 493 of Volume 2. We’ve
met TV teams coming to film a report on the IPCC reports’ errors, who
were astonished when they held one of the heavy volumes in hand, having
never even seen it. They told us frankly that they had no way to make
their own judgment; they could only report what they were being told
about it. And there are well-organized lobby forces
with proper PR skills that make sure these journalists are being told
the “right” story. That explains why some media stories about what is
supposedly said in the IPCC reports can easily be falsified simply by
opening the report and reading. Unfortunately, as a broad-based
volunteer effort with only minimal organizational structure the IPCC is
not in a good position to rapidly counter misinformation.