Skip to main content

standard-packages

The standard-packages distribution contains the standard Energy Data Management (EDM) packages: pre-built, tested sets of platform configurations — flows, rules, transformation configurations, market adapters, dashboards, and more — that implement common meter-to-cash processes. Instead of building these processes from scratch, you install a package into a namespace and adapt it where needed.

For the functional description of the business processes these packages implement, see the Energy Data Management Module.

Separately licensed — access by agreement only

The standard packages are a paid add-on to the Energyworx platform and are not included in the standard platform subscription. They are distributed through a dedicated, access-restricted Artifact Registry repository (ewx-standard-packages), separate from the other shareable packages, and access is granted only to organizations that have a standard-packages agreement with Energyworx.

  • If your organization has an agreement, ask Service Desk to grant your Google Account access to the ewx-standard-packages repository.
  • If your organization does not have an agreement and you are interested in the standard packages, contact your Energyworx account manager.

Available packages

PackagePurposeFunctional documentation
veeValidation, Estimation and Editing (VEE) of meter readingsMeter Reads Processing – VEE
master_dataMaster data processing compliant with IEC 61968-9 (meters, metering points, meter-to-metering-point linkage, contracts)Master Data Processing
billingBilling determinants calculationBilling Determinants Calculation
device_controlDevice control transactions and meter event processingDevice Control Transactions
energy_communitiesEnergy community aggregations and calculationsAggregations and Calculations

Each package bundles the components it needs — rules (with their Python code), flows, transformation configurations, market adapters, channel families and classifiers, datasource classifiers, dashboards, taskboards, task types and statuses, trigger schedules, and namespace properties.

What is in the distribution

The standard-packages source distribution contains everything needed to assemble and deploy a package:

standard_packages-<version>/
├── packages/<package>/package_metadata.toml ← package manifest: which configurations belong to the package
├── packages/<package>/README.md ← per-package notes and limitations
└── src/standard_packages/
├── configurations/ ← all configuration files (shared between packages)
├── rules/ ← Python source code of the rules
└── scripts/package_creator.py ← assembles one package from its manifest
Use the source distribution

A Python wheel is also published, but it does not contain the packages/ manifests. Download the source distribution (.tar.gz) as shown below instead of running a plain pip install.

Versioning

Standard package versions track the platform release, using the same scheme as the other shareable packages — for platform release YY.MM the package version is YY.M.0. See Versioning for details. The examples below target platform release 26.07 (package version 26.7.0); replace the version to match the release your environment is on.

Prerequisites

  • Python 3.11 – 3.13
  • gcloud CLI
  • A Google Account with access granted to the ewx-standard-packages Artifact Registry repository (see the licensing note above)
  • ewx-cli for uploading the configurations — it can be installed into the same virtual environment

Authenticate with gcloud

gcloud auth application-default login

Download and install

mkdir ewx_standard_packages
cd ewx_standard_packages
python3.13 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install keyring keyrings.google-artifactregistry-auth
pip download standard-packages==26.7.0 --no-deps --no-binary :all: -d . --index-url https://europe-west1-python.pkg.dev/ewx-global/ewx-standard-packages/simple/ --extra-index-url https://pypi.org/simple/
tar -xzf standard_packages-26.7.0.tar.gz
cd standard_packages-26.7.0
pip install .

pip download fetches the source distribution from the restricted registry, and the final pip install . installs the standard_packages Python module with the dependencies that the packaging script below needs. A 403 or authorization error on the pip download step means your Google Account has no access to the ewx-standard-packages repository — see the licensing note at the top of this page.

If ewx-cli is not installed yet, install it into the same environment following the ewx-cli instructions.

Assemble a package

The configuration files in the distribution are shared between packages, so before uploading you assemble the package you licensed into its own folder using its manifest:

python src/standard_packages/scripts/package_creator.py \
packages/vee/package_metadata.toml \
src/standard_packages/configurations \
./vee_configurations

This copies the configurations listed in the manifest into ./vee_configurations, inlines the Python rule code into the rule configurations, generates the dashboard queries, and writes a METADATA.json so the folder follows the layout ewx-cli expects. Replace vee with the package you are installing.

Upload to your namespace

Upload the assembled folder to the destination namespace with ewx-cli:

ewx-cli config upload ./vee_configurations <project-prefix>/<namespace>
  • See Identifying a namespace for the <project-prefix>/<namespace> format.
  • Uploading requires owner-level access on the destination namespace — see Required permissions.
  • Review the overview the CLI prints before confirming: each configuration is labeled (New), (Update), or (Unchanged). If you customized configurations from an earlier package version on the destination, an upload overwrites them.

Dashboards are stored per user, not per namespace, so config upload does not ship them. For the packages that include a dashboard (vee, master_data, billing, device_control) upload it with a separate command, once per dashboard file:

ewx-cli config upload_dashboards ./vee_configurations/dashboards/vee_dashboards.json --dest-namespace <project-prefix>/<namespace>

With neither --user nor --group, the dashboard is uploaded to every user in the destination namespace, skipping service accounts. Pass --group <group-name> to restrict it to the members of a permission group, or --user <user-email> to target a single user, repeating --user for more than one.

The dashboard files are:

PackageDashboard file
veedashboards/vee_dashboards.json
master_datadashboards/master_data.json
billingdashboards/billing.json
device_controldashboards/device_events.json and dashboards/meter_events.json

Widgets whose query references a flow by ID carry a string replacement that ships empty -- billing_flow_id for billing and vee_flow_id for vee. Set it to the ID of the uploaded flow in the console after uploading, or pass --src-namespace so the CLI remaps it by matching flow names. Until it is set, those widgets render without data.

After uploading

  • Timezones: the transformation configurations ship with timezones set to Europe/Amsterdam. Change them in the configuration files before uploading, or in the console afterwards, if you need a different timezone.
  • Trigger schedules (energy_communities): trigger schedules are always disabled by an upload. Enable them in the console after uploading.
  • device_control: the taskboard parameter of the standard_annotate_critical_event_validation rule is not ID-mapped by the upload. Set it to the taskboard ID on the destination namespace after uploading.
  • master_data: acknowledging received MeterConfig messages requires a Pub/Sub topic named after the value of the master_data_pubsub_topic_name namespace property.

Each package's README.md in the packages/ folder of the distribution contains further notes and limitations.

Updating to a new release

To update a package after a platform release, download the matching new version of standard-packages, assemble the package, and upload it again. Existing configurations on the destination are updated in place; rules whose content did not change are skipped as (Unchanged). Review the upload overview before confirming, especially if you have customized any of the standard configurations.

Installation issues

See the shared Installation Issues section. For access errors specific to the ewx-standard-packages repository, verify with Service Desk that your Google Account is covered by your organization's standard-packages agreement.