Recent Releases of vessim

vessim - 0.12.0

0.12.0

Release 0.12.0 transforms Vessim from a pure simulation tool into a Software-in-the-Loop platform that can:

  • Monitor real energy consumption from production systems
  • React to live carbon intensity data for sustainability optimization
  • Expose simulated microgrids to external applications via REST APIs
  • Integrate with monitoring and alerting systems via Prometheus
  • Support hybrid simulations mixing real and simulated components

🚀 New Features

Software-in-the-Loop (SiL) Signals

  • vs.SilSignal: Abstract base class for signals that depend on external data sources
    • Eliminates blocking API calls during simulation steps through unified background polling with configurable update intervals
    • Thread-safe cached value storage with automatic cleanup
  • vs.PrometheusSignal: Signal for pulling energy usage data from Prometheus instances
    • Support for HTTP Basic Authentication
    • PromQL query support with automatic connection validation
  • vs.WatttimeSignal: Real-time marginal carbon intensity signals provided by the WattTime Data API
    • Automatic token management
    • Support for location-based region detection via latitude/longitude coordinates
    • Implements new user registration with interactive prompts

REST API and Monitoring

  • vs.Api: Api controller for exposing microgrids via REST API
    • Runs embedded FastAPI server in separate process
    • Real-time data streaming to external applications
    • Optional Prometheus exporter endpoint (by default http:localhost:8700/metrics) via export_prometheus=True
  • Preliminary dashboard which connects to the REST API, available via streamlit run gui/app.py

Grid Signals Support

  • support for external grid-level signals (carbon intensity, pricing, etc.)
  • Per-microgrid Interface: grid_signals parameter in add_microgrid()
  • Enables integration with vs.WatttimeSignal and vs.PrometheusSignal for real-time data and vs.Trace for historical datasets

🔧 Breaking Changes

  • BREAKING: Moved from vessim.cosim to separate vessim.environment and vessim.microgrid modules
  • BREAKING: Removed vs.CollectorSignal in favor of new vs.SilSignal
  • BREAKING: Replaced vs.ConstantSignal with vs.StaticSignal

🏗️ Bug Fixes and Architectural Improvements

  • Fixed Python 3.13 compatibility issues with docopt dependency
  • Improved error handling and validation, especially regarding real-time simulations and SiL dependencies
  • Better separation of concerns across modules
  • Improved type hints and documentation
  • Performance optimizations and thread-safe implementations for concurrent access

Full Changelog: https://github.com/dos-group/vessim/compare/0.11.0...0.12.0

- Python
Published by birnbaum 7 months ago

vessim - 0.11.0

Major Changes

🔧 Controller Architecture Overhaul

  • Multi-microgrid support: Controllers can now manage multiple microgrids simultaneously
  • Centralized controller management: Controllers are now managed at the Environment level rather than per-microgrid

📊 Enhanced Plotting

  • Simplified plotting functions: Reworked plotmicrogridtrace() with cleaner, more consistent output
  • Plotting utilities in public API: Added plottrace and plotmicrogrid_trace to the main API

🏗️ Architecture Simplifications

  • Removed ActorBase class
  • Simplified Monitor class
  • Switched from energy (e) to power reporting (p_grid) for consistency

Documentation Updates

  • Updated first two tutorials to demonstrate new controller interface
  • Added third tutorial covering advanced controller usage

- Python
Published by birnbaum 8 months ago

vessim - 0.10.0

Breaking Changes

  • Removed ComputingSystem actor (use the generic Actor class instead)
  • Renamed vs.HistoricalSignal to vs.Trace
  • Renamed MockSignal to ConstantSignal

New Features

  • Enhanced plotting facilities with new vs.plot module
  • Added plot_microgrid_trace() function for visualizating simulation results
  • Improved Plotly-based interactive plots for better data exploration
  • Support for both detailed and overview plot layouts

Documentation & Examples

  • Restructured tutorials - Examples moved from examples/ to docs/tutorials/
  • Updated first three tutorials with improved plotting and clearer explanations
  • Enhanced Signal tutorial with new plotting capabilities
  • Added CLAUDE.md with development guidelines for AI assistance

Full Changelog: https://github.com/dos-group/vessim/compare/0.9.3...0.10.0

- Python
Published by birnbaum 8 months ago

vessim - 0.9.3

What's Changed

  • Migrated from Poetry to uv by @birnbaum in https://github.com/dos-group/vessim/pull/239

Full Changelog: https://github.com/dos-group/vessim/compare/0.9.2...0.9.3

- Python
Published by birnbaum 10 months ago

vessim - 0.9.2

Maintenance update - dropped support for Python 3.8

Full Changelog: https://github.com/dos-group/vessim/compare/0.9.1...0.9.2

- Python
Published by birnbaum 10 months ago

vessim - 0.9.1

What's Changed

  • Finalize Actos when Microgrid Finalizes https://github.com/dos-group/vessim/pull/237

Full Changelog: https://github.com/dos-group/vessim/compare/0.9.0...0.9.1

- Python
Published by marvin-steinke over 1 year ago

vessim - 0.9.0

What's Changed

  • Storage improvements https://github.com/dos-group/vessim/pull/231:
    • Added new ClcBattery storage based on the "C-L-C model" along with a new tutorial
    • Fixed floating point inaccuracies and stability issues in the SimpleBattery
  • SilController refactoring https://github.com/dos-group/vessim/pull/233:
    • Current sim time is now exposed in the broker
    • Renamed attributes of broker for clarity
  • Added new tutorial for adding other simulators as actors https://github.com/dos-group/vessim/pull/236
  • Bug fixes in HistoricalSignal https://github.com/dos-group/vessim/pull/232 https://github.com/dos-group/vessim/pull/235

Full Changelog: https://github.com/dos-group/vessim/compare/0.8.0...0.9

- Python
Published by marvin-steinke over 1 year ago

vessim - 0.8.0

What's Changed

  • Added Collector Signal #227
  • Fixed Increasing Real-Time Factor Offset #228

Full Changelog: https://github.com/dos-group/vessim/compare/0.7.0...0.8.0

- Python
Published by marvin-steinke over 1 year ago

vessim - 0.7.0

What's Changed

  • Vessim now exposes all classes and utility methods on top-level. We recommend importing vessim as import vessim as vs (similar to import pandas as pd) to be able to then reference components via e.g. vs.Environment https://github.com/dos-group/vessim/pull/210
  • The co-simulation infrastructure was updated to ensure the correct order of simulator execution and allow setting storage/policy parameters through self.set_parameters. The storage API now uses Wh instead of Ws, and SimpleBattery SOC and min_SOC are now robust against floating point operations https://github.com/dos-group/vessim/pull/213
  • Changed the Actor-Signal Interface: The Actor class is not an abstract base class anymore and uses a Signal to define its behavior. This replaces the need for many custom implementations like the old Generator and PowerMeter classes and allows for more flexibility as most functionality can be defined through a Signal. Custom Actors are now to be subclassed from ActorBase https://github.com/dos-group/vessim/pull/211
  • Simulator names are now properly logged to allow for better identification in logging https://github.com/dos-group/vessim/pull/216

Full Changelog: https://github.com/dos-group/vessim/compare/0.6.0...0.7.0

- Python
Published by marvin-steinke over 1 year ago

vessim - 0.6.0

What's Changed

  • Replaced the Redis+Docker implementation for the SiL module with native Python multiprocessing.Queue and reworked the vessim.sil.broker interface #195 #199 #206 #207
  • Rewrite of the Storage/StoragePolicy modules #198
  • Clock and sim_time have been removed from the public interface #193
  • Added dataset documentation #202 and updated Usage Examples #194 #200
  • Bugfixes related to the Microgrid initialization #196
  • Wattime dataset update #201

Full Changelog: https://github.com/dos-group/vessim/compare/0.5.0...0.6.0

- Python
Published by marvin-steinke almost 2 years ago

vessim - 0.5.0

What's Changed

  • Several API changes to Environment #175 #176 #183
  • Bugfix for infinitely running co-simulation #179
  • GridSim is now time-based by #181
  • HistoricalSignal rewrite and documentation #184
  • Website Rework #190

Full Changelog: https://github.com/dos-group/vessim/compare/0.4.0...0.5.0

- Python
Published by birnbaum almost 2 years ago

vessim - 0.4.0

What's Changed

  • Entirely reworked scenario API
  • HistoricalSignal.from_dataset(...) can now load read-to-use datasets. So far we included datasets provided by Solcast and Watttime

Full Changelog: https://github.com/dos-group/vessim/compare/0.3.2...0.4.0

- Python
Published by birnbaum about 2 years ago