Skip to content

Add silent command support via Buzzer_ON_OFF - #15

Closed
rasmusbe wants to merge 6 commits into
anaryk:mainfrom
rasmusbe:feature/silent-commands
Closed

Add silent command support via Buzzer_ON_OFF#15
rasmusbe wants to merge 6 commits into
anaryk:mainfrom
rasmusbe:feature/silent-commands

Conversation

@rasmusbe

Copy link
Copy Markdown

Summary

  • Append undocumented Gree Buzzer_ON_OFF=1 to each cmd packet when silent mode is enabled so the unit applies changes without beeping.
  • Add Silent commands integration option (default on); changing it reloads the entry. Non-technical description in en/cs translations.
  • Extend tools/probe.py set with --silent (opt-in; default keeps the confirmation beep for manual testing).

Blocked by

Do not merge until #13 and #14 are merged. This branch is stacked on the hybrid-firmware fix and switch entities. After those land, I will rebase so the diff shows the silent-command commit only.

Design notes

Setting Location Default
Silent commands Config entry options (silent_commands) on
Wire param Buzzer_ON_OFF in same cmd as other opt/p value 1 = silent
Probe probe.py set … --silent off (beeps unless flag set)
  • Omit Buzzer_ON_OFF entirely when silent mode is off (do not send =0 on every command).
  • set_state() returns only keys the caller passed; transport param is not surfaced to entities.
  • Best-effort: no capability detection; if a model ignores the param, behavior falls back to beeping.

Test plan

  • pytest tests/ — 52 passed
  • Change a climate setting in HA with silent commands on — unit should not beep
  • Disable Silent commands in options, reload — unit should beep again
  • python3 tools/probe.py set <ip> --key … --mac … Quiet=1 — beeps (default)
  • python3 tools/probe.py set <ip> --key … --mac … --silent Quiet=1 — no beep

rasmusbe added 6 commits May 29, 2026 08:34
Some units reply to discovery with a V1-style envelope but only accept bind
over AES-GCM. Match greeclimate by aligning wire-format details and falling
back from V1 to V2 bind on the same UDP session.
Retry encrypted requests on the alternate protocol version when the
stored version times out or fails to decrypt, then write the working
version back to the config entry so existing setups upgrade without
re-adding the device.
Expose sleep, turbo, quiet, X-fan, health, display light, energy save,
and fresh air as switches when the device reports the param in status.
Extend probe.py with status/set subcommands for hardware testing.
Add status/set subcommands with auto protocol-version fallback, and
test that unsupported switch params are omitted from mock status replies.
Home Assistant can suppress the unit beep per config entry (options,
default on). probe set gains --silent for manual testing.
Some Gree units return opt/p on res packets instead of opt/val,
which caused set_state to fail after a successful command.
@rasmusbe

Copy link
Copy Markdown
Author

Closing: Buzzer_ON_OFF silent mode did not work on tested hardware.

@rasmusbe rasmusbe closed this May 31, 2026
@rasmusbe
rasmusbe deleted the feature/silent-commands branch May 31, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant