Private GIT
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
prometheus-dyson
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
vlbox
prometheus-dyson
Commits
47f77e11
Commit
47f77e11
authored
Dec 2, 2018
by
Sean Rees
Browse files
Options
Downloads
Patches
Plain Diff
Initial update of the README
parent
384254c6
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+69
-1
69 additions, 1 deletion
README.md
with
69 additions
and
1 deletion
README.md
+
69
−
1
View file @
47f77e11
# prometheus_dyson
Prometheus client for DysonLink fans (Pure Hot+Cool)
Prometheus client for DysonLink fans (e.g; Pure Hot+Cool).
This code only supports Pure Hot+Cool fans at the moment. It should be trivial
to extend to other fan types (I just don't have one to test).
## Dependencies
pip install libpurecoollink
pip install prometheus_client
## Metrics
### Environmental
Name | Type | Description
---- | ---- | -----------
humidity | gauge | relative humidity percentage
temperature | gauge | ambient temperature in celsius
voc | gauge | volatile organic compounds (range 0-10?)
dust | gauge | dust level (range 0-10?)
### Operational
Name | Type | Description
---- | ---- | -----------
fan_mode | enum | AUTO, FAN (what the fan is set to)
fan_state | enum | FAN, OFF (what the fan is actually doing)
fan_speed | gauge | 0-10 (or -1 if on AUTO)
oscillation | enum | ON, OFF
focus_mode | enum | ON, OFF
heat_mode | enum | HEAT, OFF (OFF means "in cooling mode")
heat_state | enum | HEAT, OFF (what the fan is actually doing)
heat_target | gauge | target temperature (celsius)
quality_target | gauge | air quality target (1, 3, 5?)
filter_life | gauge | hours of filter life remaining
## Usage
### Configuration
This script reads
`config.ini`
(or another file, specified with
`--config`
)
for your DysonLink login credentials.
### Args
```
% ./prometheus_dyson.py --help
usage: ./prometheus_dyson.py [-h] [--port PORT] [--config CONFIG]
optional arguments:
-h, --help show this help message and exit
--port PORT HTTP server port
--config CONFIG Configuration file (INI file)
```
### Scrape Frequency
I scrape at 15s intervals. Metrics are updated at approximately 30 second
intervals by libpurecoollink.
### Other Notes
libpurecoollink by default uses a flavour of mDNS to automatically discover
the Dyson fan. This is overridable (but this script doesn't at the moment).
The mDNS dependency makes Dockerising this script somewhat challenging at
the moment.
## Dashboard
I've provided a sample Grafana dashboard in
`grafana.json`
.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment