Weather service for the Lunatico AAG CloudWatcher.
Project description
PANOPTES AAG weather reader
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-weathercommand 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
POCS
If you are using POCS you can use the remote sensor utilities:
pocs sensor monitor weather --endpoint http://localhost:8080
:information_source: If you installed POCS via the install script then this is all managed for you.
Command line
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:8080/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 csv 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file panoptes_aag-0.0.5.tar.gz.
File metadata
- Download URL: panoptes_aag-0.0.5.tar.gz
- Upload date:
- Size: 23.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9ec2a83b936773b671a6daade2fdd7551c7e5f5821d7012d4437d1d4a69b177
|
|
| MD5 |
997e64898127c8fb70ea0f47c57b2023
|
|
| BLAKE2b-256 |
66a5de169e7f7835b932076653d274f5678efef3aa39639d2ac6747e1d4dabcb
|
File details
Details for the file panoptes_aag-0.0.5-py3-none-any.whl.
File metadata
- Download URL: panoptes_aag-0.0.5-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd48d865f7043f4bc36b3dc90c97ed3c3cac56a4f53b4def5dfb894e10a26454
|
|
| MD5 |
ec92d6318d6e3f005f6c318a9fce80e2
|
|
| BLAKE2b-256 |
4dc266b33e7a5f886ac41031115bb53f6bf6e4dcc947361962dc59c95a8831c9
|