Skip to content

Collects power consumption from Shelly and transmits it to InfluxDB. Ready for use on a Raspberry Pi.

License

Notifications You must be signed in to change notification settings

solectrus/shelly-collector

Repository files navigation

Continuous integration Maintainability wakatime Test Coverage

Shelly Collector

Collects electricity consumption data from Shelly energy meters and transfers it to InfluxDB 2

Tested with these Shelly devices:

  • Shelly Pro 3EM
  • Shelly 3EM
  • Shelly Plus Plug S
  • Shelly EM

Untested, but should work with these devices:

  • Shelly Plug S

Requirements

Linux machine with Docker installed, InfluxDB 2 database

Getting started

  1. Prepare a Linux box (Raspberry Pi, Synology NAS, ...) with Docker installed

  2. Make sure your InfluxDB2 database is ready (not subject of this README)

  3. Prepare an .env file (see .env.example)

  4. Run the Docker container on your Linux box:

    docker compose up

The Docker image support multiple platforms: linux/amd64, linux/arm64, linux/arm/v7

Output

The Shelly Collector sends the following data to InfluxDB (stored as fields in the given measurement):

  • power_a (in W, if available)
  • power_b (in W, if available)
  • power_c (in W, if available)
  • power (in W, stores power_a + power_b + power_c if not available)
  • response_duration (in milliseconds)
  • temp (in °C, if available)

License

Copyright (c) 2024 Georg Ledermann, released under the MIT License