UNPKG

homebridge-sony-adcp-projector

Version:

Homebridge accessory to control Sony projectors over ADCP (IP). Exposes a HomeKit Television tile with input sources.

124 lines (91 loc) 5.71 kB
# Changelog ## v2.3.2 – 2026-02-17 - chore: fmt CHANGELOG.md (fa24fc4) - docs: remove uiLayout from example config in README (52dfd16) - docs: remove stale Known Gaps section — state machine already implemented (b1f7cc1) - docs: update CLAUDE.md — remove fixed bugs, note remaining state machine gap (8064421) - chore: update dev dependencies to resolve js-yaml Dependabot alerts (dbfb499) [Compare changes](https://github.com/steven-ward/Homebridge-Sony-ADCP-Projector-Plugin/compare/v2.3.1...v2.3.2) ## v2.3.1 – 2026-02-17 - fix: include README.md and CHANGELOG.md in npm package (7315ede) - chore: remove internal files from git tracking, fix types and schema (62e9cc9) - fix: prevent polling from overriding Active during power transitions (8417475) - docs: update README for v2.3.0 platform plugin architecture (90bf12b) - fix: remove self-referential dependency from package.json (253235e) [Compare changes](https://github.com/steven-ward/Homebridge-Sony-ADCP-Projector-Plugin/compare/v2.3.0...v2.3.1) ## v2.3.0 – 2026-02-17 ### Added - `CurrentMediaState` / `TargetMediaState` characteristics on TV service — projector now shows warm-up (LOADING) and cool-down (INTERRUPTED) states in HomeKit during power transitions, then settles to PLAY/STOP - Background 30-second post-power poll to track warm-up / cool-down completion - Remote key support for REWIND, FAST_FORWARD, NEXT_TRACK, PREVIOUS_TRACK - ADCP command constants: `MODEL_QUERY`, `SERIAL_QUERY`, `IPV4_ADDRESS`, `IPV4_NETWORK_SETTING` - Test infrastructure: `adcp.test.js` (44 tests), `adcp-commands.test.js` (30 tests), `tests/helpers/` - `_refreshActiveIdentifier()` — polling now syncs active input from projector to HomeKit - `.gitignore` (was missing — `.tgz` archives and log files were untracked) ### Fixed - `Brightness` service `On.onSet` was accidentally calling `setPowerState`; now a no-op (matches `Contrast` behaviour) - `powerState` now resets to `false` and pushes `Active = 0` to HomeKit when ADCP socket disconnects - `VolumeControlType` changed from `ABSOLUTE` to `NONE` — projector has no volume control - `getContrast()` now uses `ADCP_COMMANDS.CONTRAST_QUERY` instead of hardcoded string - `enableHdrSelector` default corrected from `false` to `true` - ESLint config: removed incorrect `eslint-plugin-react` dependency, added Node + Jest globals - Removed unused `ADCP_COMMANDS` import and `PLATFORM_NAME` constant from `platform.js` --- ## v2.1.0 – 2025-12-07 ### Breaking Changes - **Converted from accessory to platform plugin** - Required for proper TV icon in HomeKit - You must remove the old accessory config and add a new platform config - The projector will appear as a new accessory and need to be re-added to HomeKit ### Added - Publishes as external accessory with `TELEVISION` category (proper TV icon in Home app) - New `platform.js` architecture for proper TV accessory support ### Fixed - Added missing `_beginPowerTransition` and `_completePowerTransition` methods - Fixed Blank Screen switch `onGet` handler blocking on network calls - Added 10-second connection cooldown after failures to prevent hammering offline projectors --- ## v2.0.3 – 2025-12-07 ### Fixed - Added missing `_beginPowerTransition` and `_completePowerTransition` methods that caused runtime errors - Fixed Blank Screen switch `onGet` handler blocking on network calls (caused "slow to respond" warnings) - Added 10-second connection cooldown after failures to prevent hammering offline projectors - Changed connection/socket error logging from `error` to `warn` level for cleaner logs ## v2.0.x (legacy) – 2025-12-07 ### Added - Command queue with debouncing to prevent ADCP overloads plus centralized `adcp-commands.js` constants. - Connection lifecycle events (connect/auth/disconnect/error) exposed to the accessory and surfaced via logging. - Background polling with configurable interval, on-device telemetry refresh (power/input/brightness/error/lamp). - HomeKit UI layout alignment, input/mode validation, and metadata persistence across restarts. - TypeScript definitions (`index.d.ts`) and GitHub Actions CI (Node 18/20/22) running lint + Jest. - Quick Start, compatibility matrix, ADCP cheat sheet, and troubleshooting table in `README.md`. ### Changed - HomeKit Television service now reports warm-up/cool-down states via media characteristics for better UX. - Package scripts now run strict lint/test (no `|| true`) so CI failures surface correctly. ### Fixed - Error & lamp sensors now cache last values and refresh silently during polling to avoid stale states. ## v2.0.0 – 2025-08-10 - feat: Add publish script for Homebridge Sony ADCP Projector (529c70f) - feat: Update config schema and add input source management for Sony projectors (f793bc6) - Additional updates (32c105a) - Added additional debug code. (f076ebf) - version update (1916adc) - Modified (23d4ae9) - Modifications (83a7d62) - Minor fixes (573e5e1) - Modified accessory.js to stop crash when no serial returned (4064fc8) - Removed lint (992313d) - Removed jest (4a27c0d) - Updated version to 1.1.0 (014f437) - feat: Enhance ADCP projector plugin with improved control and configuration (d1761dd) - Updated version (5504245) - Added config for connection timeout setting. Updated the default port. (bb4d0f4) - Fixes (70c14fa) - Fixed package.json dependencies (dfb3582) - Version Updated (170bf9f) - Made corrections (ee89515) - Modified dependency config per homebridge Removed SNMP Corrected default port setting for adcp (107b3a0) - Version updated (723d5cb) - Removed SNMP reference (29a2210) - Regenerated package.json (7a36bfa) - Updated github url (153430c) - Initial commit (8c329cc)