Files
prometheus-sensors/README.md

150 lines
5.2 KiB
Markdown

# Prometheus Sensors
This is a library that implements a set of sensor types, reading their values
periodically and exposing them to Prometheus using the `prometheus-metrics`
library.
## Supported Sensors
### DHT
This is using `dht` library; each sensor reading takes approximately 32ms (28ms
if there is no sensor on the GPIO in). They are placed on timers so as to
minimize pre-emption of the main application. DHT sensors are polled in order
based on `sensors.dht_gpio` pins and with a period of `sensors.dht_period`
which defaults to 3 seconds.
Please see the upstream [source](https://github.com/mongoose-os-libs/dht)
for more information on the driver.
Reported values (all types are gauges):
```
temperature{sensor="0",type="DHT"} 3.5
temperature{sensor="1",type="DHT"} 6.2
humidity{sensor="0",type="DHT"} 43.900002
humidity{sensor="1",type="DHT"} 35.599998
```
### VEML6075
This is using `veml6075-i2c` library; one sensor is allowed based on I2C
address on the bus, normally `0x10`, but configurable with `sensors.veml6075_i2caddr`
in `mos.yml`. The chip is polled with a period of `sensors.veml6075_period`
which defaults to 3 seconds, each sensor reading takes approximately 15ms.
Please see the upstream [source](https://github.com/mongoose-os-libs/veml6075-i2c)
for more information on the driver.
Reported values (all types are gauges):
```
UV{band="UVA",sensor="0",type="VEML6075"} 0
UV{band="UVB",sensor="0",type="VEML6075"} 2
UVIndex{sensor="0",type="VEML6075"} 0.00125
```
### BME280
This is using `bme280` library; one sensor is allowed based on I2C
address on the bus, normally `0x10`, but configurable with `sensors.bme280_i2caddr`
in `mos.yml`. The chip is polled with a period of `sensors.bme280_period`
which defaults to 3 seconds, each sensor reading takes approximately 4ms.
Note that there are several versions of this popular barometer chip: BME280
is fully fledged and includes a hygrometer (measuring the relative humidity),
while BMP280 does not.
Please see the upstream [source](https://github.com/mongoose-os-libs/bme280)
for more information on the driver.
Reported values (all types are gauges):
```
temperature{sensor="0",type="BME280"} 18.4
humidity{sensor="0",type="BME280"} 77.4
pressure{sensor="0",type="BME280"} 96720.4
```
### MCP9808
This is using `mcp9808-i2c` library; one sensor is allowed based on I2C
address on the bus, normally `0x18`, but configurable with `sensors.mcp9808_i2caddr`
in `mos.yml`. The chip is polled with a period of `sensors.mcp9808_period`
which defaults to 3 seconds, each sensor reading takes approximately 3ms.
Please see the upstream [source](https://github.com/mongoose-os-libs/mcp9808-i2c)
for more information on the driver.
Reported values (all types are gauges):
```
temperature{sensor="0",type="MCP9808"} 18.6
```
### Si7021
This is using `si7021-i2c` library; one sensor is allowed based on I2C
address on the bus, normally `0x40`, but configurable with `sensors.si7021_i2caddr`
in `mos.yml`. The chip is polled with a period of `sensors.si7021_period`
which defaults to 3 seconds, each sensor reading takes approximately 54ms.
Please see the upstream [source](https://github.com/mongoose-os-libs/si7021-i2c)
for more information on the driver.
Reported values (all types are gauges):
```
temperature{sensor="0",type="SI7021"} 18.6
humidity{sensor="0",type="SI7021"} 56.4
```
### SHT31
This is using `sht31-i2c` library; one sensor is allowed based on I2C
address on the bus, normally `0x44`, but configurable with `sensors.sht31_i2caddr`
in `mos.yml`. The chip is polled with a period of `sensors.sht31_period`
which defaults to 3 seconds, each sensor reading takes approximately 18ms.
Please see the upstream [source](https://github.com/mongoose-os-libs/si7021-i2c)
for more information on the driver.
Reported values (all types are gauges):
```
temperature{sensor="0",type="SHT31"} 18.6
humidity{sensor="0",type="SHT31"} 56.4
```
### HTU21D-F
This is using `htu21df-i2c` library; one sensor is allowed based on I2C
address on the bus, normally `0x40`, but configurable with `sensors.htu21df_i2caddr`
in `mos.yml`. The chip is polled with a period of `sensors.htu21df_period`
which defaults to 3 seconds, each sensor reading takes approximately 105ms.
Please see the upstream [source](https://github.com/mongoose-os-libs/htu21df-i2c)
for more information on the driver.
Reported values (all types are gauges):
```
temperature{sensor="0",type="HTU21DF"} 18.5
humidity{sensor="0",type="HTU21DF"} 55.8
```
### CCS811
This is using `ccs811-i2c` library; one sensor is allowed based on I2C
address on the bus, normally `0x5A`, but configurable with `sensors.ccs811_i2caddr`
in `mos.yml`. The chip is polled with a period of `sensors.ccs811_period`
which defaults to 3 seconds, each sensor reading takes approximately 5ms.
Please see the upstream [source](https://github.com/mongoose-os-libs/ccs811-i2c)
for more information on the driver.
Reported values (all types are gauges):
```
eco2{sensor="0",type="CCS811"} 7992
tvoc{sensor="0",type="CCS811"} 1156
```
# Disclaimer
This project is not an official Google project. It is not supported by Google
and Google specifically disclaims all warranties as to its quality,
merchantability, or fitness for a particular purpose.