Agent skill
hubitat-publish
Publish a driver or app to other Hubitat hubs on the same account
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/hubitat-publish
SKILL.md
Hubitat Publish Skill
Publish a driver or app's code to all other Hubitat hubs linked to the same account, and report distribution status.
Instructions
Follow these steps exactly:
Step 1: Read Configuration
Read .hubitat.json from the project root to get hub_ip.
Step 2: Identify the Code and Type
Check $ARGUMENTS:
- If a numeric ID — use it directly. You'll need to determine the type (driver or app) by checking both
userDeviceTypesanduserAppTypes. - If a filepath — determine the type from the path:
- Path contains
drivers/→ it's a driver - Path contains
apps/→ it's an app - Extract the
namefrom the file'sdefinition()block and resolve to an ID.
- Path contains
- If a name — search both
userDeviceTypesanduserAppTypesfor a case-insensitive match. Get theidand determine the type from which list matched. - If no argument — find the most recently modified
.groovyfile usingls -t apps/*.groovy drivers/**/*.groovy 2>/dev/null | head -1, then resolve as above.
To resolve names to IDs:
- Drivers:
curl -s "http://{hub_ip}/hub2/userDeviceTypes" - Apps:
curl -s "http://{hub_ip}/hub2/userAppTypes"
If no match is found on the hub, report the error and stop.
Step 3: Publish the Code
Initiate publishing by calling:
curl -s "http://{hub_ip}/hub/publishCode/{type}/{id}"
Where {type} is driver or app.
Report the initial response to the user. The response is JSON like:
{"success":true,"completed":false,"hubs":[{"id":"...","name":"Chalet","status":"Pending"},...]}
Step 4: Check Distribution Status
Poll the publish status endpoint:
curl -s "http://{hub_ip}/hub/publishCode/status"
The response is JSON:
{"success":true,"completed":false,"hubs":[{"id":"...","name":"Chalet","status":"Pending"},{"id":"...","name":"Maison","status":"Done"}]}
- If
completedisfalse, wait 2 seconds and poll again (up to 15 attempts). - Once
completedistrue(or on error/timeout), report the final status.
Step 5: Report Result
Summarize what happened:
- Name, type (driver/app), and ID that was published
- A markdown table of target hubs with columns: Hub Name, Status
- Any errors encountered
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?