Weather service for the Lunatico AAG CloudWatcher.
Project description
aag-weather
Weather service for the Lunatico AAG CloudWatcher.
This is a simple weather service for the Lunatico AAG CloudWatcher. It is intended to be used with the aag-cloudwatcher.
There are two main components to this project:
- The
aag-weather
command line tool. - FastAPI web service.
The aag-weather
command line tool is used to read the weather data from the
CloudWatcher and store it in a file.
The web service is used to serve the weather data to a web browser as json, which can be read by various tools. If
using POCS you can use the pocs sensor monitor
command to read the weather data continuously.
Installation
Install with pip
:
pip install panoptes-aag
Or from a local repository:
git clone https://github.com/panoptes/aag-weather
cd aag-weather
pip install -e .
Usage
You can use either the aag-weather
command line tool or the web service to
read the weather data.
Web service
Starting
The web service can be run with the aag-weather
command line tool:
aag-weather serve
The host
and port
can be specified with the --host
and --port
options.
Reading
The web service will serve the weather data as json. The data can be accessed
by going to the /weather
endpoint. For example, if the web service is
running on localhost
on port 8080
then the weather data can be accessed at
http://localhost:8000/weather
.
The httpie is installed with this package and can be used to read the weather data from the command line:
http :8080/weather
Command line
Starting
The aag-weather
command line tool can be used to read the weather data from
the CloudWatcher and store it in a file. The aag-weather
command line tool
can be run with:
aag-weather capture
See aag-weather capture --help
for more options.
Reading
When the aag-weather
command line tool is running it will write the weather
data to a file. The default file is weather.csv
in the current directory. You
can change the format by specifying a different output file when capturing, for
example:
aag-weather capture --output-file weather.json
Configuration
The aag-weather
command line tool and web service
are pydantic settings and can be configured with
environment variables or a config.env
file in the directory from which the command is run.
The environment variables are prepended with AAG_
. The main configuration options are:
Environment variable | Default | Description |
---|---|---|
AAG_SERIAL_PORT |
/dev/ttyUSB0 |
The serial port to use to connect to the CloudWatcher. |
AAG_SAFETY_DELAY |
15 |
Minutes after an unsafe reading before the system is safe again. |
AAG_CAPTURE_DELAY |
30 |
Seconds between readings. |
AAG_NUM_READINGS |
10 |
Number of readings to use for averaging. |
AAG_IGNORE_UNSAFE |
None |
None, otherwise can be a list, e.g. 'rain','cloud','gust','wind' |
Additionally, you can set the thresholds
options as well as options to control the heater
. These options
are "nested" and so use a double underscore (e.g. __
) to separate the levels.
Environment variable | Default | Description |
---|---|---|
AAG_THRESHOLDS__CLOUDY |
-25 |
Difference between sky and ambient temperatures in Celsius. |
AAG_THRESHOLDS__VERY_CLOUDY |
-15 |
Difference between sky and ambient temperatures in Celsius. |
AAG_THRESHOLDS__WINDY |
50 |
Wind speed in km/h. |
AAG_THRESHOLDS__VERY_WINDY |
75 |
Wind speed in km/h. |
AAG_THRESHOLDS__GUSTY |
100 |
Wind gust speed in km/h. |
AAG_THRESHOLDS__VERY_GUSTY |
125 |
Wind gust speed in km/h. |
AAG_THRESHOLDS__WET |
2200 |
Wetness in Ohms. |
AAG_THRESHOLDS__RAINY |
1800 |
Rain in Ohms. |
AAG_HEATER__MIN_POWER |
0 |
Minimum power to use for the heater. |
AAG_HEATER__LOW_TEMP |
0 |
Temperature in Celsius. |
AAG_HEATER__LOW_DELTA |
6 |
Difference between sky and ambient temperatures in Celsius. |
AAG_HEATER__HIGH_TEMP |
20 |
Temperature in Celsius. |
AAG_HEATER__HIGH_DELTA |
4 |
Difference between sky and ambient temperatures in Celsius. |
AAG_HEATER__IMPULSE_TEMP |
10 |
Temperature in Celsius. |
AAG_HEATER__IMPULSE_DURATION |
60 |
Duration in seconds. |
AAG_HEATER__IMPULSE_CYCLE |
600 |
Cycle in seconds. |
Misc
This project has been set up using PyScaffold 4.4.1. For details and usage information on PyScaffold see https://pyscaffold.org/.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file panoptes-aag-0.0.1.tar.gz
.
File metadata
- Download URL: panoptes-aag-0.0.1.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b6555a6615f350ac62a6cefafa98f4448ff4a8a4b013c8be0a61fa420cbb50e |
|
MD5 | 82b6e234c581055a45ec3f8527ff38bb |
|
BLAKE2b-256 | 8c4357da345390b13cdf0d959228a8636bed418a47ede261f5d268b86b434479 |
File details
Details for the file panoptes_aag-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: panoptes_aag-0.0.1-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a52538ae4de34c237fcdac3ed55914de946380e042ef85116dc5257d8c9057b9 |
|
MD5 | b108b55359a416280cdf2e73f6624b17 |
|
BLAKE2b-256 | e26d8575c9c0135020568834d442582ba87976463d7c38965bd936194bc8e5fd |