homebridge-denon-tv 6.1.21 → 6.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -21,6 +21,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21
21
  - For plugin < v6.1.0 use Homebridge UI <= v5.5.0
22
22
  - For plugin >= v6.1.0 use Homebridge UI >= v5.13.0
23
23
 
24
+ ## [6.1.22] - (20.08.2026)
25
+
26
+ ### Fixed
27
+
28
+ - Regression from 6.1.21: forcing HTTPS for all generation 2 devices broke devices that serve their API over plain HTTP on generation 2 (e.g. Marantz/Denon Cinema series on port 80/8080) with `TLS wrong version number`; fixed by deriving the scheme from the configured port instead of `generation` alone — HTTPS is now only used when generation is 2 **and** port is 443, otherwise HTTP is used as before; fix [#390](https://github.com/grzegorz914/homebridge-denon-tv/issues/390)
29
+ - fix [#390](https://github.com/grzegorz914/homebridge-denon-tv/issues/390)
30
+
24
31
  ## [6.1.21] - (20.08.2026)
25
32
 
26
33
  ### Fixed
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Denon TV",
3
3
  "name": "homebridge-denon-tv",
4
- "version": "6.1.21",
4
+ "version": "6.1.22",
5
5
  "description": "Homebridge plugin to control Denon/Marantz AV Receivers.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
package/src/denon.js CHANGED
@@ -16,14 +16,17 @@ class Denon extends EventEmitter {
16
16
  this.firstRun = true;
17
17
  this.functions = new Functions();
18
18
 
19
- const protocol = this.generation === 2 ? 'https' : 'http';
19
+ // Some gen 2 (2023+) models front their API with HTTPS on port 443 (e.g. self-signed nginx),
20
+ // others still serve plain HTTP on 80/8080 (e.g. Cinema series) - use the port as the signal.
21
+ const useHttps = this.generation === 2 && Number(config.port) === 443;
22
+ const protocol = useHttps ? 'https' : 'http';
20
23
  const baseUrl = `${protocol}://${config.host}:${config.port}`;
21
24
  const commonConfig = {
22
25
  baseURL: baseUrl,
23
26
  timeout: 20000
24
27
  };
25
28
 
26
- const httpsConfig = this.generation === 2 ? { httpsAgent: new HttpsAgent({ rejectUnauthorized: false, keepAlive: false }) } : {};
29
+ const httpsConfig = useHttps ? { httpsAgent: new HttpsAgent({ rejectUnauthorized: false, keepAlive: false }) } : {};
27
30
  this.client = axios.create({
28
31
  ...commonConfig,
29
32
  ...httpsConfig,