A Simple Ecoflow JSON REST API -> prometheus metrics converter

Overview

ecoflow-prometheus-exporter

A Simple Ecoflow JSON REST API -> prometheus metrics converter

Disclaimers

Disclaimer: This project is in no way connected to Ecoflow the company, and is entirely developed as a fun project (with no guarantees of anything)

Other disclaimer: this has only been tested with a post kickstarter Delta Pro

About

A very simple implementation of a prometheus exporter for Ecoflow (https://https://www.ecoflow.com/) products that support the EcoFlow IOT backend.

I wanted to monitor and alert (not on a mobile app) on the status of my Delta Pro , and could not find any existing solutions. This project is what I came up with...

The project provides:

All metrics produced are prefixed with ecoflow , for instance ecoflow_watts_out While this was developed to run on premises in a small kubernetes cluster, with the end goal of visualizing the data in grafana, the exporter/docker image are not dependent on grafana.

Usage

  1. get your unit's serial number (displayed on inside of IOT port cover)
  2. email [email protected] with the serial number and request IOT REST api access
  3. Support will respond with an app key and secret key. save them (and don't share with anyone)
  4. clone this repo (or docker run the image).
  5. The program is parameterized via environment variables:

required:

DEVICE_SN - the device serial number

APP_KEY - the app key provided by support

SECRET_KEY - the secret key provided by support

optional:

ARRAY_CAPACITY - (default 1000) the nominal production capacity of the charging source in watts (for example 1000 for a 1000 watt solar array)

POLLING_INTERVAL_SECONDS - (default 30 seconds) the interval to poll the Ecoflow APIs

example of running docker image:

docker run -e DEVICE_SN=<your device SN> -e APP_KEY=<your app key provided by support> -e SECRET_KEY=<your secret key provided by support> -it -p 9090:9090 --network=host brendanobra/ecoflow-prometheus-exporter

will run the image with the exporter running on :9090

Example dashboard (dashboard source not currently included, but shows what can be made with the data):

You might also like...

This is a JSON editor which can new, load, save and edit JSON files, in both code browser and content table views.

This is a JSON editor which can new, load, save and edit JSON files, in both code browser and content table views.

JSON_Editor_Py Watch the video demo: https://youtu.be/BbvcT_QJDS8 This is a JSON editor which can new, load, save and edit JSON files, in both code br

Apr 29, 2022

JSON, but with a lisp. Some stuff to make JSON easier to work with.

Jthon This is a utility to make working with JSON files easier. Installation pip install jthon Usage import jthon a_new_dict = { 'fruits': {

Sep 5, 2022

Projeto referente ao curso "Crie APIs REST com Python e Django REST Framework: Essencial" da Geek University

Primeira--API-com-Django-Rest-Framework Projeto referente a Seção 3 do curso "Crie APIs REST com Python e Django REST Framework: Essencial" da Geek Un

Jun 13, 2022

A sample project, demonstrating the usage of Django, Django REST Framework, Django-rest-knox

A sample project, demonstrating the usage of Django, Django REST Framework, Django-rest-knox

It's only a sample project with a funny name. Tagarela in Portuguese means Chatterbox (FYI - That's the funny part). It's a minified backed-RESTFul API, of a twitter-like application.

Jul 4, 2022

🪛 A simple pydantic to Form FastAPI model converter.

🪛 A simple pydantic to Form FastAPI model converter.

pyfa-converter Makes it pretty easy to create a model based on Field [pydantic] and use the model for www-form-data. How to simplify your life? What d

Nov 17, 2022

A Simple Python Text To Speech Converter Which Supports Voice Types .

from github import readme def project(self): self.name = 'Text To Speech' self.description = 'A Simple Python Text To Speech Converator With

Aug 15, 2022

This is a very simple temperature converter tool.

Temperature Converter Most countries around the world use the Celcius scale to indicate temperatures, but the United Stated still use the Fahrenheit s

Aug 22, 2022

developersIndia community metrics/stats API

developersIndia community metrics/stats API

metrics 📈 Generate devsIndia Community Stats from Subreddit Currently the stats are generated in following JSON format: { "totalMembers": 66600,

Oct 7, 2022

Prometheus Service Discovery for Tailscale (Python Edition)

TailscaleSD - Prometheus Service Discovery for Tailscale (Python) Serves Prometheus HTTP Service Discovery for devices on a Tailscale Tailnet. This is

Sep 29, 2022
Comments
  • Dashboard

    Dashboard

    Hi Brendan - Thanks for this great manual for the setup of Docker. Are you able to share how to create the dashboard? I am struggling to use the Data in Home assistant. Your help is really appreciated. Thanks.

    opened by stefan-b-b 0
Owner
Brendan O'Bra
Code all the things.
Brendan O'Bra
Optional service for the TubeArchivist project to export metrics for users who run prometheus/grafana

Tube Archivist Metrics Provide Tube Archivist metrics in Prometheus/OpenMetrics format This is an optional service as part of the Tube Archivist stack

Tube Archivist 1 Apr 15, 2022
Telemetry FastAPI application with three pillars of observability: Traces (Tempo), Metrics (Prometheus), Logs (Loki) on Grafana through OpenTelemetry and OpenMetrics.

FastAPI with Observability Telemetry FastAPI application with three pillars of observability on Grafana: Traces with Tempo and OpenTelemetry Python SD

Blueswen 72 Nov 22, 2022
An OCR based monitor for UK smart meters based upon the Raspberry Pi that provides metrics via a Prometheus endpoint.

Smart Meter OCR Monitor An OCR based monitor for UK smart meters based upon the Raspberry Pi that provides metrics via a Prometheus endpoint. Licence

Sidings Media 1 Jun 12, 2022
S.M.A.R.T. Prometheus Metrics Exporter

S.M.A.R.T. Prometheus Metrics Exporter This is a simple exporter for the Prometheus metrics using Python and smartctl. The script uses port 9902 by de

Philip May 1 Jun 16, 2022
Observe FastAPI app with three pillars of observability: Traces (Tempo), Metrics (Prometheus), Logs (Loki) on Grafana through OpenTelemetry and OpenMetrics.

FastAPI with Observability Observe FastAPI application with three pillars of observability on Grafana: Traces with Tempo and OpenTelemetry Python SDK

Blueswen 72 Nov 22, 2022
A modern `Json-Rpc` implementation, compatible with `Json-Rpc 2.0` and `Json-Rpc X`, supports multiple network protocols and backend frameworks and supports bidirectional calls.

Lacia A modern Json-Rpc implementation, compatible with Json-Rpc 2.0 and Json-Rpc X, supports multiple network protocols and backend frameworks and su

luxuncang 5 Jul 25, 2022
Simple Json File Descriptor built using Python that can describe simple or nested JSON file.

Json File Descriptor in Python This is a simple json file descriptor. It can describe the the simple and nested json file. Basic Usage from dot_json i

Dipak Niroula 1 Aug 29, 2022
Build API with ASGI in AWS Lambda with API Gateway HTTP API or REST API, or with Function URL ✨

asgi-aws Build API with ASGI in AWS Lambda with API Gateway HTTP API or REST API, or with Function URL ✨ Installation pip install asgi_aws Example Cre

Yasser Tahiri 20 Sep 23, 2022
A script to cover value with same key from source.json to target.json

JSON键值覆盖器 (自动抄值脚本) 用于把 source.json 的值覆盖到 target.json 的同名键上,非同名键所对应的值不进行操作。 人话翻译:这脚本帮你把source.json里面的键值对,拿去target.json里面搜一下看看能不能找到同名的键名,找到了就把source.jso

null 6 Sep 3, 2022
Minimal Python server that takes a JSON input and returns a JSON

Minimal Python server that takes a JSON input and returns a JSON. Useful to create a communication interface of a Python application with applications in other platforms and languages.

Henrique Emanoel Viana 1 Mar 23, 2022