netatmo-exporter/README.md
2020-06-21 15:09:49 +02:00

73 lines
2.7 KiB
Markdown

# netatmo-exporter [![Docker Build Status](https://img.shields.io/docker/build/xperimental/netatmo-exporter.svg?style=flat-square)](https://hub.docker.com/r/xperimental/netatmo-exporter/)
Simple [prometheus](https://prometheus.io) exporter for getting sensor values [NetAtmo](https://www.netatmo.com) sensors into prometheus.
## Installation
### Run docker container
The exporter is available as a Docker image: [`xperimental/netatmo-exporter`](https://hub.docker.com/r/xperimental/netatmo-exporter/)
The `latest` tag is built from the current master, tags tagged since the Docker support was added are also available as a tag in Docker.
### Build from source
Because this program uses the "Go Module" feature introduced in Go 1.11, you'll need at least that version of Go for building it.
If you have a working Go installation, getting the binary should be as simple as
```bash
git clone https://github.com/xperimental/netatmo-exporter
cd netatmo-exporter
make
```
If you want to build the exporter for a different OS or architecture, you can specify arguments to the Makefile:
```bash
# For 32-bit ARM on Linux
make GO_ARCH=arm
# For 64-bit ARM on Linux
make GO_ARCH=arm64
```
## NetAtmo client credentials
This application tries to get data from the NetAtmo API. For that to work you will need to create an application in the [NetAtmo developer console](https://dev.netatmo.com/apps/), so that you can get a Client ID and secret.
## Usage
```plain
$ netatmo-exporter --help
Usage of netatmo-exporter:
-a, --addr string Address to listen on. (default ":9210")
-i, --client-id string Client ID for NetAtmo app.
-s, --client-secret string Client secret for NetAtmo app.
-p, --password string Password of NetAtmo account.
-u, --username string Username of NetAtmo account.
```
After starting the server will offer the metrics on the `/metrics` endpoint, which can be used as a target for prometheus.
### Passing secrets
You can pass credentials either via command line arguments (see next section) or by populating the following environment variables:
* `NETATMO_EXPORTER_ADDR` Address to listen on
* `NETATMO_CLIENT_ID` Client ID for NetAtmo app
* `NETATMO_CLIENT_SECRET` Client secret for NetAtmo app
* `NETATMO_CLIENT_USERNAME` Username of NetAtmo account
* `NETATMO_CLIENT_PASSWORD` Password of NetAtmo account
### Scrape interval
The exporter will query the Netatmo API every time it is scraped by prometheus. It does not make sense to scrape the Netatmo API with a small interval as the sensors only update their data every few minutes, so don't forget to set a slower scrape interval for this exporter:
```yml
scrape_configs:
- job_name: 'netatmo'
scrape_interval: 90s
static_configs:
- targets: ['localhost:9210']
```