Plugins¶
Schema¶
OpenAPI Docs¶
You can find the Open API Docs formatted by redoc here.
OpenAPI Definition¶
You can find the OpenAPI JSON definition here.
JSON Schema Definition¶
You can find the JSON Schema definition here.
Examples¶
Minimal¶
The minimal configuration for a plugin can be found below. The keys indicated here are the ones you absolutely have to fill in for this plugin to be validated by Queenbee.
metadata:
name: minimum-viable-plugin
tag: 0.0.1
config:
docker:
image: some/docker-image:latest
workdir: /some/absolute/directory
functions: []
Fully Configured¶
The plugin below shows example values for every possible key in the Plugin object.
metadata:
name: full-plugin
tag: 0.0.1
app_version: 3.4.3
description: A test plugin with every possible bit of metadata included
keywords:
- test
- full
maintainers:
- name: ladybugbot
email: ladybugbot@ladybug.tools
home: https://ladybug.tools/full-plugin
sources:
- https://github.com/ladybug-tools/full-plugin
- https://gihtub.com/ladybug-tools/queenbee
icon: https://www.ladybug.tools/assets/img/logo.png
deprecated: false
config:
docker:
image: some/docker-image:latest
registry: https://docker.pkg.github.com # Github Registry
workdir: /some/absolute/directory
functions:
- name: minimum-function
command: echo woop
Energy Plus¶
This plugin is the one created when following the Plugin Creation Guide.
annotations: {}
metadata:
annotations: {}
name: energy-plus
tag: 0.1.0
app_version: 9.0.1
keywords:
- energyplus
maintainers: null
home: https://energyplus.net
sources:
- https://github.com/nrel/energyplus
icon: https://energyplus.net/sites/default/files/eplus_logo.png
deprecated: null
description: A plugin to run EnergyPlus functions
license: null
config:
annotations: {}
docker:
annotations: {}
image: nrel/energyplus:9.0.1
registry: null
workdir: /var/simdata
local: null
functions:
- annotations: {}
inputs:
- annotations: {}
type: FunctionFileInput
name: idf
description: null
default: null
required: true
spec: null
path: input.idf
extensions: null
outputs:
- annotations: {}
type: FunctionFileOutput
name: outputs
description: null
path: simulation-outputs
name: design-day-simulation
description: Run an EnergyPlus Design Day simulation using a weather file and an
idf
command: energyplus -D -x -d simulation-outputs input.idf
- annotations: {}
inputs:
- annotations: {}
type: FunctionFileInput
name: idf
description: null
default: null
required: true
spec: null
path: input.idf
extensions: null
- annotations: {}
type: FunctionFileInput
name: weather
description: null
default: null
required: true
spec: null
path: weather.epw
extensions: null
outputs:
- annotations: {}
type: FunctionFolderOutput
name: outputs
description: null
path: simulation-outputs
name: run-simulation
description: Run an EnergyPlus simulation using a weather file and an idf
command: energyplus -w weather.epw -x -d simulation-outputs input.idf
Honeybee Radiance¶
This is an example plugin called honeybee-radiance
. This plugin uses the honeybee-radiance
CLI in a Docker container
which has radiance installed on it. Each function is templated with parameter inputs and explicitely indicates the artifacts (files)
it expects to find at a certain path.
Note
The app_version
matches the docker container release tag.
annotations: {}
metadata:
annotations: {}
name: honeybee-radiance
tag: 1.2.3
app_version: 2.3.2
keywords:
- honeybee
- radiance
- ladybug-tools
maintainers:
- annotations: {}
name: mostapha
email: mostapha@ladybug.tools
home: https://ladybug.tools/honeybee-radiance/docs
sources:
- https://github.com/ladybug-tools/honeybee-radiance
icon: https://www.ladybug.tools/assets/img/logo.png
deprecated: null
description: A plugin to run all things honeybee and radiance!
license: null
config:
annotations: {}
docker:
annotations: {}
image: ladybugtools/honeybee-radiance:2.3.2
registry: null
workdir: /opt/run/
local: null
functions:
- annotations: {}
inputs: []
outputs:
- annotations: {}
type: FunctionFileOutput
name: sky
description: The resulting sky object
path: sky.sky
name: 10000-lux-sky
description: Generates a 10000 lux sky
command: honeybee radiance sky illuminance 100000
- annotations: {}
inputs:
- annotations: {}
type: FunctionFileInput
name: model
description: null
default: null
required: true
spec: null
path: model.json
extensions: null
- annotations: {}
type: FunctionFileInput
name: sky
description: null
default: null
required: true
spec: null
path: sky.sky
extensions: null
outputs:
- annotations: {}
type: FunctionFileOutput
name: scene-file
description: null
path: scene.oct
name: create-octree
description: Generate an octree
command: honeybee radiance oconv -s sky.sky -m model.json --output scene.oct
- annotations: {}
inputs:
- annotations: {}
type: FunctionFileInput
name: raw-results-folder
description: null
default: null
required: true
spec: null
path: raw
extensions: null
outputs:
- annotations: {}
type: FunctionNumberOutput
name: daylight-factor-average
description: null
path: output/avg
- annotations: {}
type: FunctionNumberOutput
name: daylight-factor-max
description: null
path: output/max
- annotations: {}
type: FunctionFileOutput
name: post-process-folder
description: null
path: output
name: post-process
description: Post process your results and $$$
command: honeybee radiance grid merge raw --folder output
- annotations: {}
inputs:
- annotations: {}
type: FunctionFileInput
name: grid
description: null
default: null
required: true
spec: null
path: grid.pts
extensions: null
- annotations: {}
type: FunctionStringInput
name: radiance-parameters
description: a string of radiance parameters
default: -ab 5
spec: null
- annotations: {}
type: FunctionFileInput
name: scene-file
description: null
default: null
required: true
spec: null
path: scene.oct
extensions: null
outputs:
- annotations: {}
type: FunctionFileOutput
name: result-file
description: null
path: grid.res
name: ray-tracing
description: Run ray tracing using some input data!
command: rtrace -I -h {{inputs.radiance-parameters}} scene.oct < grid.pts > grid.res
- annotations: {}
inputs:
- annotations: {}
type: FunctionFileInput
name: grid
description: The input grid to split
default: null
required: true
spec: null
path: grid.pts
extensions: null
- annotations: {}
type: FunctionIntegerInput
name: grid-count
description: null
default: null
required: true
spec: null
outputs:
- annotations: {}
type: FunctionArrayOutput
name: grid-list
description: null
path: output/grids.txt
items_type: String
- annotations: {}
type: FunctionFolderOutput
name: output-grids-folder
description: null
path: output
name: split-grid
description: null
command: honeybee radiance grid split grid.pts --folder output --log-file output/grids.txt