Industry Packs and Profiles
How industry packs and quickstart profiles in spx-examples map to installer selections.
Industry packs are curated bundles of models, services, and quickstart profiles grouped around a domain (smart buildings, energy, labs, industrial IIoT). Packs are defined in spx-examples and used by the installer to generate ready-to-run bundles.
Source of truth (public repo): https://github.com/HammerHeads-Engineers/spx-examples
Definitions
Pack: an industry bundle of models and services (broad scope).
Profile: a concrete preset used for a specific scenario, demo, or CI run.
Pack overview
smart_building_pack
BMS/BAS demo stack
Protocols: mqtt, lwm2m/coap, http, modbus, opcua, knx, matter, bacnet Services: mqtt_broker, lwm2m_server, modbus_tcp_gateway, http_gateway, opcua_server, knx_gateway, bacnet_gateway, homeassistant_bridge, matter_server
energy_pack
e-mobility and DER
Protocols: http, mqtt, modbus, ocpp Services: mqtt_broker, modbus_tcp_gateway, http_gateway, ocpp_central_system
embedded_lab_pack
BLE and lab instruments
Protocols: ble, mqtt, lwm2m/coap, scpi, modbus Services: btvirt_adapter, mqtt_broker, lwm2m_server, scpi_tcp_stack, modbus_tcp_gateway
industrial_iiot_pack
industrial monitoring
Protocols: modbus, mqtt, http, scpi, opcua Services: modbus_tcp_gateway, mqtt_broker, http_gateway, scpi_tcp_stack, opcua_server
Examples (copy/paste)
Smart-building quickstart bundle:
python -m installer generate \
--packages smart_building_pack \
--profile-ids bms_quickstart \
--with-uiLab-only bundle for SCPI + Modbus:
For pack-specific details, see:
library/industries/<pack>/README.mdprofiles/<pack>/*.yaml
How packs and profiles map to the installer
For maintainers and developers, the installer builds its selection from:
library/catalog/industries.yaml(pack metadata, default instances, start instances)library/catalog/models.yaml(model catalog,packagesandprofilestags)library/catalog/services.yaml(service definitions and port mappings)profiles/<pack>/<profile>.yaml(model + service list for a quickstart)
Selecting a pack:
Includes all models tagged with that pack in
models.yaml.Adds services declared in the pack entry in
industries.yaml.Optionally creates and starts default instances listed in
industries.yaml.
Selecting a profile:
Adds models and services listed in the profile YAML.
Can be combined with a pack selection or used on its own.
How to verify (by role)
Integrator:
Pick a pack and profile, generate a bundle, then run
spx-start.Verify
curl -fsS http://localhost:8000/healthand connect a client to one selected protocol.
QA/CI:
python -m installer generate --packages <pack> --output build/ci/<pack> --no-startbuild/ci/<pack>/spx-start.shpoetry run pytest -q tests/packs/<pack>
Developer:
Update
library/catalog/*.yamlandprofiles/<pack>/*.yaml, then regenerate withpython -m installer generate --packages <pack> --output build/spx-generated.
Extending a pack (for contributors)
To extend or create a pack in spx-examples:
Add or update the model entry in
library/catalog/models.yamlwithpackagesandprofiles.Update
profiles/<pack>/<profile>.yamlto include the model and services.Update
library/catalog/industries.yamlwith default and start instances (if needed).Document the changes in
library/industries/<pack>/README.md.
Last updated

