mirror of
https://github.com/steinhobelgruen/netatmo-exporter.git
synced 2024-11-24 02:13:55 +00:00
73 lines
2.7 KiB
Markdown
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']
|
|
```
|