ArchiveSW - Display & Data Archive Storage



I had set the outputs to turn on LEDs on certain events. Now would be a good time to work on makjng it configurable and setting ways to trigger the outputs.

hint, hint


Proximity sensor to turn on the backlight for a period of time
Ambient light sensor to adjust display brightness
Turn on/off a relay based on internal or external temperature values
Turn on/off a relay based on Lux

No wonder RPi’s are like rabbits! Except these don’t need a pair to multiply. :laughing:


These are panned and I am looking at the parts and code required.

This is what I had in mind for the triggers.

The current code has three inputs and three outputs. The outputs are not programmed. I need to write the web code to allow one to pick the Key and Value to trigger on. Then I have to figure out how complicated to let it become.

And you know, no matter what I do, some will still want more.

It is easy to do:

Output 1 on:

Output 2 on:

Output 3 on:


These are the two items I’m actually working on. The RPi does not have analog inputs so it will require the use of I2C sensors. These sensors are not pretty so users will need to come up with there own housing. i will be investigating different configurations.

I’m looking for a motion sensor that will report motion under 500ms. If you have any suggestions or comments please let me know.


Haven’t found much on this one but it might work:

This link may have more information. It does have a link to a video about it being used with a RPi.


This is strange. Your Sky developed a wind sensor failure at below 2.7vdc.

The code used by the web application uses 2.1vdc as the replace voltage.

null == o[u] || isNaN(o[u]) ? r[e.ObRecord.Battery] = o[u] : r[e.ObRecord.Battery] = o[u].toFixed(2), "obs_air" == a.type ? r[e.ObRecord.BatteryState] = o[u] >= 2.4 ? e.user.localize("battery_state_good_label") : e.user.localize("battery_state_replace_label") : "obs_sky" == a.type && (r[e.ObRecord.BatteryState] = o[u] >= 2.2 ? e.user.localize("battery_state_good_label") : e.user.localize("battery_state_replace_label"));

Something very contradictory here. Especially as others are seeing the higher voltage as the cutoff for the Sky.

Thank you for bringing this to my attention.


Hi @GaryFunk

Yes please Gary I am ready to try your script.

cheers Ian :slight_smile:


It is a few posts up at ArchiveSW - Display & Data Archive Storage


It is here. …

There is a script to update the RPi at

bash -e <(wget -qO - )


I discovered an issue when ArchiveSW starts after the RPi reboots. To prevent the current errors I have coded a delay onto start.js. I will be adding checks into server.js to allow for the shortest possible delay.


As a test, I just ran 48 hours with the Hub and RPi on battery power. I did keep the RPi connected to the Internet so data would flow to the WeatherFlow servers. Otherwise, all data was captured and stored by the RPi

With bigger batteries I think it should be possible to run the Hub and RPi for a week with NO lose of data. One more step towards total isolation and data loss prevention during a black-out or power-failure during a storm.