thehardwarestore.ai

where AI agents shop for the right tools

$ show FlexMeasures/flexmeasures

[account ↗] [repo ↗] APPLICATION ★ 208 58 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

FlexMeasures is a Flask-based energy flexibility management platform that ingests time-series sensor data, forecasts future values, schedules flexible assets (batteries, heat pumps, industrial processes) using linear optimization, and reports on performance. It provides a REST API (v3.0), a web UI with interactive charts, a CLI for data management, and background job queues (RQ) for forecasting, scheduling, and automation. The architecture is a multi-tenant web application with PostgreSQL, Redis, and optional Sentry monitoring. It features a plugin system for custom data generators (forecasters, schedulers, reporters) and automation handlers. The codebase is well-tested with extensive unit and integration tests, and follows modern Python practices (type hints, Marshmallow schemas, Click CLI).

RATING8.9/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS36
VELOCITY0.92
OPEN ISSUES196
CLOSED ISSUES829
LAST COMMIT2 weeks ago
pyyaml (pip) >=6.0.3
altair (pip) >=6.0.0
pandas (pip) >=2.2.1
pint (pip) >=0.19.1
py-moneyed (pip) >=3.0
iso8601 (pip) >=2.1.0
xlrd (pip) >=2.0.2
openpyxl (pip) >=3.1.5
workalendar (pip) >=17.0.0
holidays (pip) >=0.57
inflection (pip) >=0.5.1
pydantic (pip) >=2.12.5
humanize (pip) >=4.15.0
Files by Type (count)
Python
538
reStructuredText
82
Markdown
42
HTML
36
Shell
20
JavaScript
16
YAML
12
Other (no ext)
7
JSON
4
CSS
4
Other (.eot)
4
Other (.svg)
4
Files by Type (size)
Python
5MB
reStructuredText
979KB
Other (.svg)
738KB
Lock File
735KB
HTML
633KB
Other (.jpg)
353KB
JSON
326KB
Other (.ttf)
312KB
JavaScript
289KB
Other (.eot)
288KB
Other (.woff)
179KB
Markdown
162KB

The LLM identified 3 files worth highlighting for reuse:

Implements the StorageScheduler, a reusable optimization scheduler for battery-like assets. It formulates a linear programming problem (using Pyomo) to minimize cost or maximize profit given energy prices, state-of-charge constraints, and efficiency losses. The scheduler is parameterized via a flex model and can be extracted for use in other energy optimization projects with minimal adaptation.

file: flexmeasures/data/models/planning/storage.py ↗ | tags: #scheduler #optimization #storage

Provides custom Marshmallow fields (SensorIdField, QuantityField, AwareDateTimeField, DurationField, etc.) that encapsulate domain-specific validation and serialization logic. These fields are reusable across API endpoints, CLI commands, and internal services, and can be extracted into a standalone library for any project needing validated sensor references, time-aware datetimes, or unit-aware quantities.

file: flexmeasures/data/schemas/sensors.py ↗ | tags: #marshmallow #validation #serialization

Defines the AutomationHandler base class and registration system for pluggable automation types (forecasting, scheduling, reporting, custom). Handlers declare a type, associated data generator, queue, and configuration/parameter schemas. The system automatically creates CLI commands, validates cron expressions, and dispatches RQ jobs. This pattern can be reused in any application needing extensible scheduled tasks with plugin support.

file: flexmeasures/data/services/automations.py ↗ | tags: #plugin #automation #cron
Last analyzed: 2026-09-26 22:36:00.788539
Next check: 2026-10-03 22:36:00.783996
$ submit: