A simple Prometheus exporter for SOLARMAN Smart metrics to Prometheus
878
A simple Prometheus exporter for SOLARMAN Smart (Solarman OpenAPI).
It polls Solarman Cloud on a fixed interval and exposes metrics for Prometheus + Grafana.
Each group exposes:
solarman_<group>_metric{device_sn,key,name,unit}Groups:
solarman_pv_metricsolarman_inverter_metricsolarman_grid_metricsolarman_battery_metricsolarman_bms_metricsolarman_gen_metricsolarman_load_metric β UPS/backup/outputsolarman_house_metric β house/home consumptionsolarman_metric{device_sn,key,name,unit}Enable/disable with --enable-generic / SOLARMAN_ENABLE_GENERIC.
β οΈ Label-heavy metrics can grow cardinality. Prefer grouped metrics + filters.
You typically need two things:
You must request OpenAPI credentials:
appIdappSecretThese are not normally visible in the Solarman Smart UI. How to request them β
You can find the datalogger/inverter SN:
Create docker-compose.yml in the repository root:
services:
solarman_exporter:
image: rcooler/solarman_exporter:latest
container_name: solarman_exporter
restart: unless-stopped
environment:
# --- Solarman OpenAPI ---
SOLARMAN_BASE_URL: "https://globalapi.solarmanpv.com"
SOLARMAN_API_VERSION: "v1.0"
SOLARMAN_LANGUAGE: "en"
SOLARMAN_APP_ID: "${SOLARMAN_APP_ID}"
SOLARMAN_APP_SECRET: "${SOLARMAN_APP_SECRET}"
SOLARMAN_EMAIL: "${SOLARMAN_EMAIL}"
# Use ONE of these:
SOLARMAN_PASSWORD_SHA256: "${SOLARMAN_PASSWORD_SHA256}"
# SOLARMAN_PASSWORD: "${SOLARMAN_PASSWORD}"
# Optional (if auto-discovery doesn't work):
# SOLARMAN_DEVICE_SN: "1234567890,0987654321"
# SOLARMAN_STATION_ID: "0"
# Exporter runtime
SOLARMAN_POLL_INTERVAL: "160s"
SOLARMAN_HTTP_TIMEOUT: "15s"
SOLARMAN_YEARLY_REQUEST_LIMIT: "200000"
SOLARMAN_DISCOVERY_REFRESH_INTERVAL: "24h"
SOLARMAN_ENABLE_GENERIC: "true"
SOLARMAN_EXPORTER_LOG_LEVEL: "info"
SOLARMAN_EXPORTER_METRICS_PATH: "/metrics"
SOLARMAN_EXPORTER_LISTEN: ":9876"
ports:
- "9876:9876"
Create prometheus/prometheus.yml:
global:
scrape_interval: 160s
scrape_configs:
- job_name: solarman
metrics_path: /metrics
static_configs:
- targets: ["solarman_exporter:9876"]
totals first).Content type
Image
Digest
sha256:5e1a58cc9β¦
Size
12.8 MB
Last updated
3 months ago
docker pull rcooler/solarman_exporter