mirror of
https://github.com/nickustinov/itsyhome-macos.git
synced 2026-04-26 04:15:56 +03:00
[PR #42] [MERGED] feat: add fan speed control via webhooks/CLI #89
Labels
No labels
bug
enhancement
pending release
pull-request
wip
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/itsyhome-macos#89
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/nickustinov/itsyhome-macos/pull/42
Author: @loganprit
Created: 2/16/2026
Status: ✅ Merged
Merged: 2/16/2026
Merged by: @nickustinov
Base:
main← Head:feature/fan-speed-control📝 Commits (1)
20f20f5feat: add fan speed control via webhooks/CLI📊 Changes
3 files changed (+40 additions, -0 deletions)
View changed files
📝
Itsyhome/Shared/URLSchemeHandler.swift(+3 -0)📝
macOSBridge/ActionEngine/ActionEngine.swift(+20 -0)📝
macOSBridge/ActionEngine/ActionParser.swift(+17 -0)📄 Description
Summary
Adds fan speed control through webhooks and URL schemes, bringing fan control in line with other percentage-based controls like brightness and position.
Changes
ActionEngine.swift
case setSpeed(Int)to theActionenumexecuteSpeed()function usingservice.rotationSpeedIdrotationSpeedMin/rotationSpeedMaxlimits when set by the deviceActionParser.swift
speedcase inparseSetCommandswitchparseSpeedCommand()function for parsingset speed <value> <target>URLSchemeHandler.swift
speedcase using existingparseValueAction()helperUsage
Notes
CLI support (
itsyhome speed 50 Room/Fan) would require a one-line addition to the itsyhome-cli repo:The
rotationSpeedIdcharacteristic was already being read for state display; this PR wires up the write path.Thanks for a great app! 🏠
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.