Agent skill
hubitat-install
Create, install, and configure a Hubitat app or driver from a local Groovy file
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/hubitat-install
SKILL.md
Hubitat Install Skill
Create a new app or driver on the hub from a local Groovy file, install an instance, and open configuration.
Instructions
Follow these steps exactly:
Step 1: Read Configuration
Read .hubitat.json from the project root to get hub_ip.
Step 2: Identify the File
- If
$ARGUMENTScontains a filepath, use that file. - Otherwise, find the most recently modified
.groovyfile using:ls -t apps/*.groovy drivers/**/*.groovy 2>/dev/null | head -1 - Confirm the file exists and read its contents.
Step 3: Determine Type (App vs Driver)
- If the file path contains
apps/→ it's an app - If the file path contains
drivers/→ it's a driver
Step 4: Extract Name from Source
Read the file and extract the name value from the definition() block.
Step 5: Check if Already Exists
Query the hub to see if this code already exists:
- Apps:
curl -s "http://{hub_ip}/hub2/userAppTypes" - Drivers:
curl -s "http://{hub_ip}/hub2/userDeviceTypes"
Search for a matching name. If found, report the existing ID and ask the user whether to:
- Skip creation and just install a new instance of the existing app/driver
- Abort
Step 6: Create on Hub (if new)
Create the app or driver code on the hub:
python3 -c "
import json
with open('{FILEPATH}') as f:
source = f.read()
payload = json.dumps({'source': source, 'version': 1})
with open('/tmp/hubitat_payload.json', 'w') as f:
f.write(payload)
"
curl -s -X POST "http://{hub_ip}/{type}/saveOrUpdateJson" \
-H "Content-Type: application/json" \
-d @/tmp/hubitat_payload.json
Where {type} is app or driver.
Expected response: {"success":true, "message":"", "id":..., "version":1}
If success is false, report the error and stop.
Step 7: Install Instance (Apps only)
For apps, create an installed instance:
curl -s "http://{hub_ip}/installedapp/create/{appTypeId}"
Parse the response to get the installed app ID.
Then report the configuration link:
http://{hub_ip}/installedapp/configure/{installedAppId}
For drivers, there is no instance to install — the driver becomes available for device assignment. Report that the driver is now available and link to the device creation page:
http://{hub_ip}/device/create
Step 8: Report Result
Summarize what was done:
- App/driver name and hub ID
- Whether it was newly created or already existed
- For apps: the installed instance ID and configuration link
- For drivers: that it's available for device assignment
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?