CrestronHomeDevTools.Automation
1.29.0
dotnet add package CrestronHomeDevTools.Automation --version 1.29.0
NuGet\Install-Package CrestronHomeDevTools.Automation -Version 1.29.0
<PackageReference Include="CrestronHomeDevTools.Automation" Version="1.29.0" />
<PackageVersion Include="CrestronHomeDevTools.Automation" Version="1.29.0" />
<PackageReference Include="CrestronHomeDevTools.Automation" />
paket add CrestronHomeDevTools.Automation --version 1.29.0
#r "nuget: CrestronHomeDevTools.Automation, 1.29.0"
#:package CrestronHomeDevTools.Automation@1.29.0
#addin nuget:?package=CrestronHomeDevTools.Automation&version=1.29.0
#tool nuget:?package=CrestronHomeDevTools.Automation&version=1.29.0
CrestronHomeDevTools
Version 1.29.0 adds processor compatibility discovery, import receipts, managed-child monitoring and read-only dynamic-settings inspection, together with the reconciled driver-update and submission tooling. Validation scope and remaining limits are recorded separately from individual driver submissions.
Read-only processor capability discovery and version-aware I/O preparation support Official and Early Access Home connections without rewriting existing configuration inputs.
Optional import receipts, managed-child monitoring and read-only dynamic-settings inspection preserve compatibility with Home 4.12. Newer fields remain optional; property values are excluded from inspection output unless requested.
Processor compatibility: Configuration-management commands require a V2 Crestron Home processor. V1 Crestron Home processors do not support these commands. This refers to the processor platform, not the driver type: supported V2 processors can host V1 drivers, whose update workflow requires an explicitly authorized reboot.
An independent .NET 10 library, Windows driver-update desktop app, interactive console and automation CLI for Crestron Home configuration management. Discover processors, inspect installed devices, deploy driver packages, install or update Entity V2 driver instances, and verify their loaded versions without operating Configure Pro.
The configuration-management interface is unofficial and firmware-dependent, documented here from verified behavior. This is not an official Crestron API SDK. The library has no dependency on Crestron SDK assemblies, proprietary client binaries or NUnit.
This source includes initial driver configuration and read-only inspection of current settings. See driver configuration for the commands, private input format, masking rules and library API. Shared processor reservations continue to coordinate development operations.
Reviewed V1 removal can preserve other instances sharing the same driver code across an explicitly authorized Home reboot. See V1 installation and removal for the opt-in scope, preservation checks and validation limits.
The source-built driver-update desktop app provides a checklist, select-all, update/restart confirmation and per-driver progress/results using the same DevTools update manager. The console's corresponding commands are included in the Windows console download.
Contents
- What is included
- Get started
- PowerShell prerequisite for Windows automation
- Library example
- Driver configuration
- Cloud configuration backup listing and save APIs (validation limits; no historical archive download)
- Configuration capture and guarded managed-child repair APIs (supported scope and persistence checks)
- Installed-driver readiness before testing (requires 1.20.0)
- Managed-child validation lifecycle
- Moving drivers between rooms
- Associating Android tiles with installed drivers
- Mac and iPhone UI testing: scope and integration status
- Deployment and tests
- Submission preparation console (no Python setup)
- Submission runbook (normal path, expected results and resuming work)
- Single submission starting document (give an assistant this document and your driver repository; independent validation pending)
- Release-to-submission automation (source-preview intake/controller, tested scope and remaining integration)
- Reviewed evidence mapping (C# API and CLI, requires 1.11.0)
- Passive endurance health assessment (requires 1.12.0; no notification delivery)
- Optional endurance notifications (APIs require 1.12.0; unattended Windows setup requires 1.17.0; authorized SMTP destination required)
- Reusable private inputs (requires 1.17.0)
- Windows resource assessment (requires 1.17.0)
- Windows SSH setup and GitHub runner setup (require 1.17.0; installation validation limits documented)
- Automated Crestron submission plan and progress
- Development configurations (one PC and one processor, optional additional hardware)
- Submission workflow setup (dispatcher and protected stages for your own repository)
- Submission delivery journal and reconciliation (authorized upload, SMTP delivery and uncertain-outcome handling)
- Final submission delivery preparation (approved signed artifacts to a private plan; no sending)
- Bundled delivery settings (requires 1.10.0; generate protected settings without runtime paths)
- Combining submission evidence (requires 1.13.0)
- Reviewing prior candidate evidence (C# API and CLI)
- Requests with declared gaps and approval/delivery (review preparation requires 1.13.0; signed-form delivery requires 1.14.0)
- Documentation
- Build and validate
- Privacy and compatibility
- License and Crestron disclaimer
What is included
Search Crestron's published catalogue independently of processor installations with published-drivers --search "Neil Colvin". No processor or credentials are required. The general catalogue does not establish Crestron Home compatibility; see published driver search for scope, completeness checks and the difference from the processor's merged drivers search.
| Component | Purpose |
|---|---|
CrestronHomeDevTools |
Reusable .NET 10 configuration-management library; the NuGet package contains this library. |
CrestronHomeDevTools.Console |
Interactive ch> prompt and one-command CLI using the same library. Distributed separately from the library. |
CrestronHomeDevTools.Tests |
Offline NUnit regression tests for discovery parsing, authentication, command handling, update/removal guards, profiles and deployment validation. |
Supported operations include discovery by processor name, credentials and certificate validation, driver/device inventory, SFTP upload, catalogue import, reviewed updates, guarded install/update/reuse, targeted reload, guarded room moves for loaded childless drivers, and explicit instance removal. See room moves for scope and validation. Reboots require explicit authorization; submitted configuration changes are never replayed after a connection failure.
The reboot command supports interactive confirmation or explicit unattended authorization:
reboot --processor DEVELOPMENT --confirm-reboot DEVELOPMENT
The two target values must match; credentials and verified SSH trust still come from the selected profile/settings. Applications can supply their own confirmation dialog through the library API. The NUnit workflow supports reboot-required updates with allowProcessorReboot: true; see V1 development and reboot policy.
Driver updates across a system
Version 1.29.0 includes driver-updates to report available driver upgrades in the console (add --output updates.json to save the report) and update-drivers --plan updates.json --all true --journal NEW_DIRECTORY to apply a reviewed selection. Both use existing processor profiles or named encrypted credentials. Updates respect shared processor reservations; restarts require explicit authorization. See the driver update manager for selection, scope, restart and recovery behavior.
Get started
Version 1.8.0 adds an optional authorized delivery command, upload and SMTP providers, and Windows endurance scheduling. It also stops promptly when the requested driver version fails to load. These components do not establish a completed submission or endurance period. Version 1.7.0 added bounded processor uptime observations and a public plan-validation entry point for external endurance producers. These APIs support monitoring independently of optional submission. Version 1.6.0 added managed-child setup, validation and cleanup, resumable endurance collection and further offline submission preparation. It retains the package/evidence checks, guarded UI name binding and delivery journals introduced in 1.5.0. The console includes private evidence bundle creation and verification.
Version 1.9.0 provides submission preparation commands in the complete console download, including help generation, Android evidence auditing, self-test forms and private review. The console includes its isolated document runtime and validator; developers use documented commands, configuration and C# fixtures without installing or maintaining Python. DOCX-to-PDF rendering still needs the documented renderer and fonts. Preparation does not send anything or establish self-test completion.
The same console includes authorized image signing, the private signing stage and final delivery preparation. Complete candidate evidence, reviewed forms and exact signing/delivery authorization remain prerequisites. The optional submission roadmap distinguishes implemented tools from remaining end-to-end validation. The NuGet library does not include the document runtime.
Version 1.9.0 also adds read-only candidate payload comparison under the shared processor reservation and bounded recovery from transient delivery-journal file replacement refusals. It never retries a provider request because a file operation failed.
Version 1.11.0 adds reviewed evidence mapping and completed endurance snapshots. These preserve original evidence and explicitly report uncovered requirements; they do not turn a partial test run into submission approval. Existing running collectors can remain pinned to their original version.
Version 1.12.0 adds passive local/remote observation and authorized operational email notifications through C# APIs and the console. See endurance monitoring for configuration, supervision and validation limits.
Version 1.16.0 adds evidence-backed reviewer interpretations and numbered checklist endnotes. Original automatic outcomes remain recorded, and missing, failed or unperformed tests cannot be accepted as interpretations. Version 1.14.0 extends explicit requests with declared gaps to signed forms and approved delivery. Failed, partial and unperformed checks remain disclosed; a signature does not turn them into passes or imply Crestron acceptance. Start with the submission runbook; it links each stage's settings, expected outputs and recovery steps. Developers use the bundled console or C# API without editing the bundled document-processing scripts.
Install the library with dotnet add package CrestronHomeDevTools. Download the self-contained Windows x64 console from GitHub Releases, extract the complete ZIP, and run CrestronHomeDevTools.Console.exe. Its first run opens processor/profile setup; --help lists commands.
To build from source with the .NET 10 SDK:
dotnet build CrestronHomeDevTools.slnx -c Release
dotnet run --project CrestronHomeDevTools.Console -- configure
dotnet run --project CrestronHomeDevTools.Console -- devices
configure discovers local Crestron Home processors, offers a numbered selection, accepts a masked password, and verifies the processor certificate and SSH host key before saving a Windows account-encrypted profile. Each processor can have its own named profile and credentials. Starting the console without arguments opens setup followed by the interactive prompt.
The same commands work in both modes:
discover
drivers --search "Example"
deploy --package "C:/CI/Artifacts/Example.Driver.pkg"
activate --driver CATALOGUE_ID --name "Example Driver" --room ROOM_ID
Use actual IDs returned by inventory. Deploying imports a package; activating installs or updates its instance. See the command guide before automating changes.
Library example
using System.Net;
using CrestronHomeDevTools;
var options = new ProcessorConnectionOptions
{
Host = processorHost,
CertificateSha256 = verifiedCertificateFingerprint
};
await using var client = await ConfigurationClient.ConnectAsync(
options, new NetworkCredential(userName, password), cancellationToken);
var drivers = await client.GetDriversAsync("Example", cancellationToken);
var devices = await client.GetDevicesAsync(cancellationToken);
Credentials and trusted fingerprints come from the calling application. Device properties may contain private configuration; do not publish whole inventory responses. The API guide covers upload, activation, update plans, removal and operation outcomes.
Deployment and tests
DevTools handles configuration management. Crestron Home NUnit handles test discovery, inputs and execution. Its workflow backend combines them to run local tests, build and retain exact packages, deploy and activate a test host, run processor/live tests, optionally update the actual driver after the gates pass, inspect that installed driver, and optionally remove the test instance.
See the end-to-end CI guide. The released NUnit workflow CLI consumes the published DevTools NuGet package; a source checkout is optional for development. The workflow Test Explorer adapter is also published as CrestronHomeNUnit.TestAdapter, with VSTest and processor workflow validation; see adapter setup and validation limits.
Documentation
- User and CLI guide: setup, profiles, commands, exit codes and troubleshooting.
- Library API guide: component responsibilities and examples.
- Processor coordination and storage: shared reservations, build deployment, reboot waits and retained package inspection.
- Windows endurance worker: optional scheduled observations, private service-account setup, interruption handling and alert requirements. Console ZIPs include scheduler scripts under
scripts/endurance; 1.17.2 adds an optional preview/apply helper for a new monitor's directory permissions. - Remote processor logging: verified console queries, TCP/UDP/TLS choices and collector validation requirements; no automatic collector is included.
- Processor uptime observations: bounded, read-only SSH observations for consumer-owned monitoring; requires 1.7.0 or later.
- Configuration-management protocol reference: discovery packets, authentication, request/response formats, commands, events, V1/V2 lifecycle sequences and recovery rules.
- Compatibility and validation: tested environment, V1/V2 limits and failure semantics.
- Release procedure: versioning, packages, console distribution, documentation and validation.
- Changelog and release notes for packaged releases; development history for the development evidence and limitations behind those releases.
- Third-party notices and MIT license.
Build and validate
Open CrestronHomeDevTools.slnx in Visual Studio with .NET 10 support, or run:
dotnet test CrestronHomeDevTools.slnx -c Release
dotnet pack CrestronHomeDevTools/CrestronHomeDevTools.csproj -c Release -o artifacts
dotnet publish CrestronHomeDevTools.Console/CrestronHomeDevTools.Console.csproj -c Release -o artifacts/console
The offline suite needs no processor or credentials. CI compares executed tests with discovery, so new cases do not require maintaining a fixed test-count gate. Push/PR CI builds, runs the offline tests and packs the library. The separate release workflow validates the versioned library and self-contained Windows console, retains their checksums, then publishes NuGet and GitHub assets.
Privacy and compatibility
Connection profiles are stored outside the checkout under %LOCALAPPDATA%/CrestronHomeDevTools/Profiles, protected with Windows DPAPI for the current user. Other platforms can supply environment variables or a private settings file; encrypted profile persistence is Windows-only. No password command-line option is provided.
Real connection files, device bindings, update plans and logs stay outside source control or are locally excluded using .git/info/exclude. Do not commit those exclusions or private paths. Public examples use placeholders. A processor supplies its own Crestron runtime; this library does not need or redistribute Newtonsoft.Json.Compact.dll.
Development management operations were verified on MC4-R and CP4-R / Crestron Home 4.11.322. Both passed Entity V2 lifecycle and configuration reboot/recovery checks. The complete unattended V1 driver update/reboot/verification workflow was verified on MC4-R only. Discovery alone does not establish management compatibility with another processor. Read the validation limits. Cancellation stops waiting; it cannot undo a submitted processor operation.
License and Crestron disclaimer
Copyright (c) 2026 Neil Colvin. Original project code is licensed under the MIT License. Dependencies retain their own licenses; see third-party notices.
Crestron and Crestron Home are trademarks or registered trademarks of Crestron Electronics, Inc. This project is not affiliated with, endorsed by or sponsored by Crestron Electronics, Inc. It uses an independently implemented, unofficial configuration interface. The MIT license does not grant rights to Crestron's software or documentation. Software is provided as-is, without warranty, as specified in LICENSE.
Submission input setup (source preview)
The Windows setup app collects editable developer, driver and submission profiles in the encrypted private store. A submission uses a frozen input snapshot so subsequent edits do not alter earlier records. Complete console archives built from this source include the self-contained form at setup/CrestronHomeDevTools.Setup.exe; previously published versions may not include it. It prepares Rehearsal or Submit configuration without starting tests or authorizing signing and delivery.
| 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
- CrestronHomeDevTools (>= 1.29.0)
- CrestronHomeNUnit.TestAdapter (>= 2.3.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CrestronHomeDevTools.Automation:
| Package | Downloads |
|---|---|
|
CrestronHomeDevTools.SubmissionTests
Shared NUnit 5 submission fixture for running the same Crestron driver tests in IDEs and CI. |
GitHub repositories
This package is not used by any popular GitHub repositories.
# CrestronHomeDevTools 1.29.0
Adds authenticated processor capability discovery, correlated import receipts,
managed-child snapshots and bounded event monitoring, and read-only dynamic
device-settings inspection. The APIs preserve existing custom configuration
connections and Home 4.12 behaviour when newer fields or events are absent.
Property values are excluded from inspection output unless explicitly requested.
See [inspection commands and compatibility](https://github.com/oznetmaster/CrestronHomeDevTools/blob/main/docs/ImportReceiptsAndInspection.md).
Import receipts keep terminal-operation and dedicated-completion observations
separate, including unavailable versus empty imported-ID lists. Ended is not
treated as proof of import success; existing deployment catalogue verification
is unchanged. Managed-child monitors subscribe before reading baselines, mark
overlap without inventing server ordering, and fail explicitly on overflow or
lost continuity. Dynamic-settings inspection uses typed metadata and never
executes settings commands. System IDs, including zero, are supported by these
read-only operations.
Adds read-only, version-aware I/O connection preparation for legacy Home 4.7–4.12
and typed Home 4.13 formats, including Serial/Com normalization and CEC direction
checks. Unknown versions and unconfirmed selections stop before commands.
Existing raw configuration strings remain unchanged. Discovery and inspection
were checked on Official Home 4.012.0194 and EAP Home 4.013.0134. A no-transmit
SDK 29 serial probe on a physically disconnected EAP processor port restored
its channel and ready state after an isolated V2 reload; external-device
communication and other port types remain unqualified.
Includes the reconciled driver-update manager, console assessment/reviewed
sequential updates and source-built Windows checklist, plus independent public
driver-catalogue search. Update processing retains processor reservations,
explicit restart consent, version/readiness checks and durable recovery journals.
Actual multi-driver update/restart behaviour still requires controlled live
qualification. Portal search does not establish Crestron Home compatibility.
See [driver updates](https://github.com/oznetmaster/CrestronHomeDevTools/blob/main/docs/DriverUpdates.md)
and [published catalogue search](https://github.com/oznetmaster/CrestronHomeDevTools/blob/main/docs/PublishedDrivers.md).
Also incorporates retained submission evidence/review repairs, artifact
publication checks, pinned signing-plan preparation, complete bundled Python
import closure, bounded native output paths, and explicit worker-local versus
controller-share input/output contracts with private terminal diagnostics.
Existing frozen submissions and their evidence are unchanged. These tooling
changes do not establish new compliance passes or authorize signing, uploading,
emailing, hardware actions or processor reboots.
Validation includes all 2,708 discovered offline .NET tests and API compatibility
against public 1.28.0, with package-consumer, documentation and packaged-console
checks in release validation. Live empty-queue import receipts preserved device
configuration, programming and port settings on both firmware versions, with
reservations released. Neither lab processor advertised dynamic settings or
supplied non-null inline managed-child state, and no new child-state events
arrived during bounded observation. Positive settings/event paths have offline
protocol and connection-dispatch coverage rather than positive live server
qualification. See [validation scope](https://github.com/oznetmaster/CrestronHomeDevTools/blob/main/docs/DevelopmentStatus.md).
The SDK 30 video probe was rejected at import because its manifest declared
minimum SDK 30 while Home reported a maximum of 29. This establishes a
manifest-version gate, not general SDK 30 binary incompatibility. A shade probe
built with SDK 30 and declaring minimum SDK 29 imported but did not complete
configuration. Native SDK 30 video/shade support remains unqualified.
Requires .NET 10 and Crestron Home NUnit 2.3.0 for the existing
Automation/SubmissionTests consumer. The configuration interface is unofficial,
undocumented and firmware-dependent. No production driver or device-client
payload changes are included.
Copyright (c) 2026 Neil Colvin. MIT licensed. Crestron and Crestron Home are
trademarks of Crestron Electronics, Inc. This independent project is not
affiliated with, endorsed by or sponsored by Crestron Electronics, Inc.