I'm committing kind of a jerk move to my 6 followers (Well, five... Thanks mom, but I know you don't know what a Raspberry Pi does, even though you've gotten me a couple for gifts...). I'm going to post up and talk about an update before it actually hits GitHub. I've got some time, and it's going through a burn test as we speak.
So... Changes. I've given up on "mainlining" the threading of sensors. I'm going to branch that on GitHub, and learn a bit there as well. I got target fixated on threading, and almost drove the project into the ground because of it. That's stupid, and so many projects fail because folks are overly fixated on solving problems that can be ironed out later.
Instead, the Node now polls sensors as fast as it can, tabulates the values over a minute, and then reports once a minute (once for each sensor). In the report is the name of the sensor, the min/max values for the last minute, the average value for the last minute, and the number of collected samples. This last value (the number of collected samples) is going to be used as a performance metric, so I can gauge how code and sensor changes impact the number of measurements per second. Currently, the system is measuring around 40 sensor reads per second. As an additional bonus, the system is still checking for alert values when it is polling sensors, and will issue alert reports if it detects a high value (I need to test this, but that's a simple matter of changing a test value.
But this means that I can start working on some more fun items. The network monitor is going to get ported over soon. The "Meat" of that project is already done, and works. What I need to do is take the basic functionality, and make it as a callable sensor that reports as new MAC/IP's are active on the network, or when new MAC's associate with the network. The next step of that project will be to include a WiFi sensor that uses a promiscuous mode to check out the non-affiliated traffic in the area. I would love to be able to "fingerprint" this kind of activity to get a better idea of who is in the vicinity.
The other sensor that I want to get "in the can" is a motion sensor. These range from cheap and easy (digital pin'd IR motion sensors) to slightly more complex (I2C and SPI range finders). I want to incorporate range sensors as motion sensors because of the number of dogs that I have in the house. Plus, it'll give me another method for determining if doors are open or closed. Finally, there are times where it would be really useful to know if someone is walking in a certain direction (say, towards my bedroom door in the middle of the night).