switch-bot meters server
Project description
swb-meter
A cli tool to gather switchbot meters' data and writes to sqlite.
with streamlit app to visualize the data:
Installation
Install this tool using pip
:
pip install swb-meter
Usage
For help, run swb-meter --help
:
Usage: swb-meter [OPTIONS] COMMAND [ARGS]...
SwitchBot Meters Server CLI tool.
`swb-meter` allows you to listen for SwitchBot meters and insert the data into
a SQLite database.
By default the backend database is configured current directory with the name
`swb_meter.db` (created if not exists).
To change the database path by setting the environment variable
`SWB_METER_DB_PATH`:
$ export SWB_METER_DB_PATH=/path/to/db.sqlite
or:
$ SWB_METER_DB_PATH=/path/to/db.sqlite swb-meter listen
To get started, add a meter with an alias (typically the room name where the
meter is located) with its MAC address:
$ swb-meter add "Living Room" 12:34:56:78:90:AB
This will add a record to the `Meter` table.
$ swb-meter ls
Living Room 12:34:56:78:90:AB
Total: 1 meters
Then, start listening for the meters:
$ swb-meter listen
The data will be inserted into the `Temperature` table in the database.
To visualize the data, you can run the Streamlit app in another terminal. You
need optional dependencies [streamlit] installed:
$ pip install swb-meter[streamlit]
then run the Streamlit app:
$ swb-meter streamlit
By default, the log level is set to `INFO`.
To change log level, set environment variable `SWB_METER_LOG_LEVEL=DEBUG` for
verbose output.
$ export SWB_METER_LOG_LEVEL=DEBUG
or:
$ SWB_METER_LOG_LEVEL=DEBUG swb-meter listen
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
add Add a SwitchBot meter to the master table with an alias.
listen Listen for SwitchBot meters and insert data into the...
ls List all SwitchBot meters in the master table.
rm Remove a SwitchBot meter from the master table.
streamlit Run the Streamlit app for visualizing the temperature data.
You can also use:
python -m swb_meter --help
Commands
swb-meter add
Usage: swb-meter add [OPTIONS] ALIAS MAC_ADDRESS
Add a SwitchBot meter to the master table with an alias.
Example:
$ swb-meter add "Living Room" 12:34:56:78:90:AB
Options:
-u, --upsert Upsert the existing record's alias
--help Show this message and exit.
swb-meter ls
Usage: swb-meter ls [OPTIONS]
List all SwitchBot meters in the master table.
Example:
$ swb-meter ls
Options:
--help Show this message and exit.
swb-meter rm
Usage: swb-meter rm [OPTIONS] MAC_ADDRESS
Remove a SwitchBot meter from the master table.
Example:
$ swb-meter rm 12:34:56:78:90:AB
Options:
--help Show this message and exit.
swb-meter listen
Usage: swb-meter listen [OPTIONS]
Listen for SwitchBot meters and insert data into the temperature table.
This command listens for SwitchBot meters and inserts the data into the
temperature table. For each scan, wait for the specified timeout duration
until all data is found and inserted once for each meter. The interval option
specifies the time to wait between scans.
Example:
$ swb-meter listen
$ swb-meter listen -t 10 -i 60 # Timeout 10 seconds, Interval 60 seconds
Options:
-t, --timeout FLOAT Timeout in seconds for each scan
-i, --interval INTEGER Interval in seconds between scans
-s, --scans INTEGER Number of scans. Default is None (infinite)
--help Show this message and exit.
swb-meter streamlit
Usage: swb-meter streamlit [OPTIONS]
Run the Streamlit app for visualizing the temperature data.
Example: $ swb-meter app
Options:
--help Show this message and exit.
Development
To contribute to this tool, first checkout the code. Then create a new virtual environment:
cd swb-meter
python -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
swb_meter-0.1.0a1.tar.gz
(15.0 kB
view details)
Built Distribution
File details
Details for the file swb_meter-0.1.0a1.tar.gz
.
File metadata
- Download URL: swb_meter-0.1.0a1.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2118ad3689c48fc4a38e716e413d66023fe827f0547d1b97e95d9d4aa76bef9 |
|
MD5 | 0a580428e96d0f899a6fd86d025db525 |
|
BLAKE2b-256 | d4f015f855f63880a3b5cbfd3cf45796f3a67b08737d82a5170bbde1421e520d |
File details
Details for the file swb_meter-0.1.0a1-py3-none-any.whl
.
File metadata
- Download URL: swb_meter-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9eb26c53f5e7822266b627a45de0c63571419072cdc8f5c6823fff017b4b7874 |
|
MD5 | 52937ad62592a84934ece327d389ad4a |
|
BLAKE2b-256 | 29d68ec8536f507948ca5465b7fd0db351818058298e0ba692df6d66ade3d3d4 |