Ahh, I knew there was something I forget to mention.
Sensor data is currently feed into to the program thru the same http api that you use for getting data out. The api expects the sensor data to be sent in a JSON format via an http POST method.
As for getting the sensor data in the first place, Cyclone will launch and monitor one sub-program for each weather station that has been specified in it's configuration.
Each sub-program is designed to read sensor data from a specific brand and\or model series of station and just one station at a time. For example, there's one sub-program designed for reading from a Davis station and a separate sub-program that's been designed for reading from a Peet Brothers station.
These sub-programs are designed to take weather station connection settings, such as serial port or tcp connection parameters, when they launch. So in the cases where you have say, 2 or more Davis weather stations, Cyclone will run multiple instances of the "Davis" sub-program but pass each one different connection settings to use. Cyclone handles mapping the configured stations to the appropriate sub-programs.
While not the most elegant solution, it does allow people to create their own sub-programs for reading from weather station(s) while still allowing full management of the configuration for it from the web gui\frontend.
If you wanted to get sensor data from off-the-air (via receiver) it would just be a matter of writing a sub-program for reading from the receiver and pushing that to the http api.
Since the Cyclone http api supports pushing archive type data to it, a similar type of sub-program can be written for converting and uploading say, a .csv file.
My plan is to have these "utilities" manually executable from the web gui\frontend. The idea here is that over time there could potentially be many utilities (even somewhat specialized ones) for manually doing various things.
Eventually these utility programs\scripts could be run on specified schedule. Which would be useful for stuff like uploading to weather networks, running reports, maybe sending weather info via email or SMS, posting to social media... the list is endless.