DMXCore.PluginSdk
0.6.0
Prefix Reserved
See the version list below for details.
dotnet add package DMXCore.PluginSdk --version 0.6.0
NuGet\Install-Package DMXCore.PluginSdk -Version 0.6.0
<PackageReference Include="DMXCore.PluginSdk" Version="0.6.0" />
<PackageVersion Include="DMXCore.PluginSdk" Version="0.6.0" />
<PackageReference Include="DMXCore.PluginSdk" />
paket add DMXCore.PluginSdk --version 0.6.0
#r "nuget: DMXCore.PluginSdk, 0.6.0"
#:package DMXCore.PluginSdk@0.6.0
#addin nuget:?package=DMXCore.PluginSdk&version=0.6.0
#tool nuget:?package=DMXCore.PluginSdk&version=0.6.0
DMXCore.PluginSdk
Contract SDK for building plugins for the DMX Core 100 lighting controller.
Getting started
- Create a .NET class library targeting
net10.0and reference this package. - Implement
IPluginin a public class with a parameterless constructor. - Package the build output as a
.dmxpluginarchive (zip with amanifest.jsonplus your assemblies) and upload it to the device from the admin UI.
public class MyPlugin : IPlugin
{
public PluginInfo Info { get; } = new()
{
Id = "my-plugin",
Name = "My Plugin",
Version = "1.0.0",
Settings =
[
new() { Key = "server-address", Label = "Server address", Type = PluginSettingType.String },
new() { Key = "poll-interval", Label = "Poll interval (s)", Type = PluginSettingType.Integer, DefaultValue = "5" },
new() { Key = "api-key", Label = "API key", Type = PluginSettingType.String, Secret = true },
],
};
public Task InitializeAsync(IPluginHost host, CancellationToken cancellationToken)
{
string? server = host.Settings.GetString("server-address");
host.Logger.LogInformation("Connecting to {Server}", server);
host.Mqtt.Subscribe("some/topic/#", async (msg, ct) =>
{
await host.Triggers.FireAsync("MY-TRIGGER");
});
return Task.CompletedTask;
}
public Task ShutdownAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}
Notes
- Plugins run with full trust inside the DMX Core 100 process and can only be installed by device administrators.
- Subscriptions take async handlers and return
IDisposable; handler exceptions are logged by the host and do not terminate the subscription. - Plugin changes are applied on device restart; there is no hot reload.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on DMXCore.PluginSdk:
| Package | Downloads |
|---|---|
|
DMXCore.PluginSdk.Testing
Test host for DMX Core 100 plugins: an in-memory IPluginHost that records publishes, trigger fires, and playback calls, and lets tests and dev harnesses simulate MQTT messages, cue events, and settings changes. |
|
|
DMXCore.Plugin.HomeAssistant
Home Assistant integration for the DMX Core 100 lighting controller: publishes the device (cues, presets, timelines, control values, status) to Home Assistant via MQTT Discovery, and fires Home Assistant scenes, scripts and automations from the device as output actions. |
|
|
DMXCore.Plugin.LIFX
LIFX output for the DMX Core 100 lighting controller: drives LIFX WiFi color bulbs and SuperColour / pixel fixtures from DMX channel data over the LIFX LAN protocol, no cloud account required. |
|
|
DMXCore.Plugin.Shelly
Shelly output for the DMX Core 100 lighting controller: drives Shelly Gen1 color devices (RGBW2 and similar) from DMX channel data over MQTT. |
|
|
DMXCore.Plugin.Symetrix
Symetrix DSP integration for the DMX Core 100 lighting controller: Control Values on the device read and write controller numbers on Symetrix Radius, Prism, Solus and similar DSPs over the Composer control protocol. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.8.3 | 44 | 8/21/2026 |
| 1.8.2 | 93 | 8/18/2026 |
| 1.8.1 | 114 | 8/18/2026 |
| 1.7.6 | 122 | 8/17/2026 |
| 1.7.5 | 101 | 8/17/2026 |
| 1.7.4 | 120 | 8/17/2026 |
| 1.7.3 | 99 | 8/17/2026 |
| 1.7.2 | 98 | 8/17/2026 |
| 1.7.1 | 154 | 8/15/2026 |
| 1.6.1 | 116 | 8/14/2026 |
| 1.6.0 | 126 | 8/14/2026 |
| 1.5.0 | 169 | 8/14/2026 |
| 1.4.0 | 101 | 8/14/2026 |
| 1.3.0 | 119 | 8/14/2026 |
| 1.2.0 | 99 | 8/14/2026 |
| 1.1.0 | 198 | 7/26/2026 |
| 0.8.0 | 128 | 7/26/2026 |
| 0.7.0 | 121 | 7/25/2026 |
| 0.6.0 | 121 | 7/24/2026 |
| 0.5.0 | 115 | 7/24/2026 |