A python CLI client for accessing Bioto data
Project description
PyClient
Python Client for retrieving Bioto sensor data
Goals
Auth0 login
- As a user I can login via auth0 to get a valid access token
Both of these steps can be accomplished by enabling device authentication.
Retrieving sensor data
- As a user I can find a garden
- As a user I can subscribe to that garden
- As a user I can see my subscribtion state for that garden (pending/approved/declined)
- As a user I can get an overview of "my gardens"
- As a user I can retrieve sensor data from my gardens
- current
- raw data up to 7 days ago
- downsampled data when more than 7 days ago
Getting started
Software is installed via make (see below), this will setup a virtual python
environments managed via poetry
% pip install --user bioto-client
How to use
When not installed as a python package but via make install
run poetry shell
from the root of the project first. Otherwise the first step can be skipped.
Start a user session
A user session is valid for 24h. When expired you're requested to create a new session. This can be done as follows:
# Call the client with the `user` command to assert a valid session
% bioto-client user
Loading session
Not logged in, please take the following steps:
1. On your computer or mobile device navigate to: https://biotoco.eu.auth0.com/activate?user_code=NEWT-OKEN
2. Enter the following code: NEWT-OKEN
Succesfully logged in.
Bioto CLI client: 1.2.3
Environment: prod
Session token ***5OFd09w
Find a garden
Gardens can be found by name, the command to do this is:
% bioto-client search-garden {name}
Subscribe to a garden
To gain access to the data of this garden you need to subscribe to this garden
using its ID
:
% bioto-client subscribe-garden {garden_id}
This will create a subscription request which only the mainter(s) can approve. To check the state of your subscription see:
% bioto-client subscriptions
Read device data
Reading a device is done by device ID
, these can be found via the garden
command. Note that a garden might contain multiple devices.
To get the latest hourly readings for the last 24h issue the following command:
% bioto-client device {device_id}
To get these readings for a sepecific date this can be added as the second argument whith these formats allowed: [%Y-%m-%d | %Y-%m-%dT%H:%M:%S | %H:%M:%S]:
% bioto-client device {device_id} {date}
And to limit or increase the number of hours returned add this as a last argument:
% bioto-client device {device_id} {date} {hours_limit}
Tip Use
bioto-client --help
to see other available commands
Improve the client
If you want to improve the client or add something which you think is missing to the project you can either open an issue or develop the feature yourself and open a pull request with your changes.
To get started clone this project and create a branch. Now fix the bug or create the feature you want and write some tests for it to prove it works. This can be done by executing:
% make check
Note This will run both tests and linters, use
make test
when you're inred - green - refactor
mode
When the checks are all passing, please open a PR
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
Hashes for bioto_client-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b8c224e004837d43d65fae6e28a7afac67b3722da9629bb05d81a5269ace963 |
|
MD5 | f7ca7c3a2997391841d6bd5d31cb22ee |
|
BLAKE2b-256 | c5d7caf19212c3ebebbd75bc5936b0df0c5432bc7a429ce465df67d90d74db13 |