kasa_exporter

Prometheus exporter for TP-Link Kasa smart home products.

This is an experiment in learning Rust and tokio library.

Supported products

Smart wifi plug (HS-110)

HS-110

Exported metrics

All three as reported by API with device_id and device_alias labels:

Building

Install Rust, then from cloned repo:

$ cargo build

If you wish to see debug output with requests and responses to Kasa API, you can pass --features kasa_debug to cargo build:

$ cargo build --features kasa_debug

Usage

After Building, run the command to get help:

``` $ ./target/debug/kasaexporter --help kasaexporter 0.1.0 Ivan Babrou hello@ivan.computer

USAGE: kasa_exporter [OPTIONS] --kasa.password --kasa.username

FLAGS: -h, --help Prints help information -V, --version Prints version information

OPTIONS: --kasa.password Password to log into Kasa service --kasa.username Username to log into Kasa service --web.listen-address Address on which to expose metrics and web interface [default: [::1]:12345] ```

Note that web.listen-address expects <ip>:<port>, e.g.:

Example response:

``` $ curl http://localhost:12345/

HELP deviceelectriccurrent_amperes Corrent reading from device

TYPE deviceelectriccurrent_amperes gauge

deviceelectriccurrentamperes{devicealias="Banana",deviceid="800607035E84C0B634C36B7DF52CCEC3188C1BAB"} 0.256972 deviceelectriccurrentamperes{devicealias="Potato",deviceid="800691A498F774D60997B91E241EE2CC18D08921"} 0.031424

HELP deviceelectricpotential_volts Voltage reading from device

TYPE deviceelectricpotential_volts gauge

deviceelectricpotentialvolts{devicealias="Banana",deviceid="800607035E84C0B634C36B7DF52CCEC3188C1BAB"} 123.16094 deviceelectricpotentialvolts{devicealias="Potato",deviceid="800691A498F774D60997B91E241EE2CC18D08921"} 123.130631

HELP deviceelectricpower_watts Power reading from device

TYPE deviceelectricpower_watts gauge

deviceelectricpowerwatts{devicealias="Banana",deviceid="800607035E84C0B634C36B7DF52CCEC3188C1BAB"} 30.071476 deviceelectricpowerwatts{devicealias="Potato",deviceid="800691A498F774D60997B91E241EE2CC18D08921"} 0.750854 ```

License

MIT