This Repository was archived and can be used as starting point of an own p3exporter collector development
This module provides collector for FritzBox smarthome device data. It can be enabled with a default p3exporter installation via p3.yml
.
The collector is in a very early state and it provides temperature data from connected thermostat devices with temperature sensors.
Tested with:
- Comet DECT thermostat
You need to install p3exporter
first. It is available on pypi so you can use pip
to install the exporter and run it locally.
pip install p3exporter
Now you need to install p3exporter-fritzbox-smarthome
. Choose one method mentioned below.
We also provide a pypi.org package. You can install the collector with the following command:
pip install p3exporter-fritzbox-smarthome
You can install it from a local clone of our github repository.
$ git clone https://github.com/codeaffen/p3exporter-fritzbox-smarthome.git
Cloning into 'p3exporter-fritzbox-smarthome'...
...
$ cd p3exporter-fritzbox-smarthome
$ pip install -e .
To start p3exporter
you need a valid p3.yml
you can either edit an existing one or take the example from this repository.
curl --silent https://raw.githubusercontent.com/codeaffen/p3exporter-fritzbox-smarthome/develop/p3.yml.example --output ~/tmp/p3.yml
If you edit an existing p3.yml
add the following content to activate the collector.
exporter_name: "Python prammable Prometheus exporter /w FritzBox collector"
collectors:
- p3eFritzBox.collector.smarthome
collector_opts:
smarthome:
defaults:
hostname: https://fb.example.com # use this hostname as default (if never set hostname defaults to 'https://fritz.box')
username: smarthome # use this username as default
ssl_verify: false # disable ssl certificate verification by default
devices:
- name: FB@home
password: v3rys3cr3t
- name: FB@cottage
password: 4l5ov3rys3cr3t
hostname: https://myfritzbox.example.com
ssl_verify: true # enable ssl certificate verification for this device connection
After that you can start the p3exporter as usual:
$ p3exporter -c /tmp/p3.yml
INFO:root:Collector 'p3eFritzBox.collector.smarthome' was loaded and registred successfully
INFO:root:Start exporter, listen on 5876
To configure this collector you need to create a dict with the connection parameters within the devices
list.
There are some parameters avaiable to configure the collector. In the following table all parameters are listed.
Name | Default | Mandatory | Description |
---|---|---|---|
name | device_<NUM> | An arbitrary name to identify metrics according the device. If not given it will be generated as seen in default column. <NUM> stands for the list index, starting with 1. |
|
username | * | Username used to authenticate against FritzBox | |
password | * | Password used to authenticate against FritzBox | |
hostname | https://fritz.box | Hostname of FritzBox to connect to. Protocol can be http or https . If no protocol is given default will be https . |
|
device_types | List of device type to enable. If List is empty all device types are activated. Possible values are:
|
||
ssl_verify | True | Set to True to disable ssl certificate verfication. This is useful in case of using self signed certificates.Note: To use this parameter pyfritzhome from github is needed as the ssl_verify parameter is not yet available in pypi package. For details use requirements.txt . |
All parameters from the table above except name
can also be defined in defaults
dict. Parameters defined here will be used as defaults for each device in devices list if the corresponding parameter is not defined there.