homebridge-viessmann-vicare 2.0.3 โ 2.0.5
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/README.md +13 -1
- package/SETUP-GUIDE.md +1 -1
- package/dist/auth-manager.d.ts +1 -0
- package/dist/auth-manager.d.ts.map +1 -1
- package/dist/auth-manager.js +18 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -263,7 +263,7 @@ npm install -g homebridge-viessmann-vicare
|
|
|
263
263
|
"maxDelay": 300000,
|
|
264
264
|
"maxConsecutiveErrors": 5,
|
|
265
265
|
"deviceUpdateDelay": 1000,
|
|
266
|
-
"userAgent": "homebridge-viessmann-vicare/2.0.
|
|
266
|
+
"userAgent": "homebridge-viessmann-vicare/2.0.4"
|
|
267
267
|
},
|
|
268
268
|
"debug": false
|
|
269
269
|
}
|
|
@@ -841,6 +841,18 @@ For issues and questions:
|
|
|
841
841
|
|
|
842
842
|
## ๐ Changelog
|
|
843
843
|
|
|
844
|
+
### [2.0.4] - 2025-10-06
|
|
845
|
+
**Added**
|
|
846
|
+
- โจ `logEnvDiagnostics()` for better detection of graphical environment (X11, Wayland, systemd, headless).
|
|
847
|
+
- โจ New fallback page `/login` for authentication via another device on the same LAN.
|
|
848
|
+
- โจ Auto-authentication now supported even in headless environments (Raspberry Pi, systemd, Docker).
|
|
849
|
+
**Changed**
|
|
850
|
+
- โจ Default `authMethod` is now `"auto"` in all examples and documentation.
|
|
851
|
+
- โจ Improved resilience in `openBrowser()` on Linux with fallback to `xdg-open`, `gio`, and `xdg-desktop-portal`.
|
|
852
|
+
**Fixed**
|
|
853
|
+
- ๐ Timeout and fallback flow now properly logged when auto-auth fails.
|
|
854
|
+
- ๐ Documentation and setup guide reflect the new authentication behavior.
|
|
855
|
+
|
|
844
856
|
### v2.0.0
|
|
845
857
|
- โจ **Major Release**: Complete rewrite with advanced features
|
|
846
858
|
- โจ **Complete Localization Support**: Custom names for all accessories in any language
|
package/SETUP-GUIDE.md
CHANGED
package/dist/auth-manager.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../src/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAiB,MAAM,OAAO,CAAC;AAOrD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAkBD,qBAAa,WAAW;IAuBpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAzBzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;IAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAG1C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAW;IAEpD,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,WAAW,CAAC,CAAiB;IACrC,OAAO,CAAC,iBAAiB,CAAC,CAAiB;gBAGxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,aAAa,EACzB,MAAM,EAAE,MAAM;IAajC,OAAO,CAAC,yBAAyB;IAiCjC,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,UAAU;IAkDlB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,oBAAoB;IAgCf,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../src/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAiB,MAAM,OAAO,CAAC;AAOrD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAkBD,qBAAa,WAAW;IAuBpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAzBzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;IAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAG1C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAW;IAEpD,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,WAAW,CAAC,CAAiB;IACrC,OAAO,CAAC,iBAAiB,CAAC,CAAiB;gBAGxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,aAAa,EACzB,MAAM,EAAE,MAAM;IAajC,OAAO,CAAC,yBAAyB;IAiCjC,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,UAAU;IAkDlB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,oBAAoB;IAgCf,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAkD5C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,mBAAmB;YAuBX,eAAe;YAWf,gBAAgB;IAyC9B,OAAO,CAAC,YAAY;YAUN,eAAe;IAgD7B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,eAAe;IA6DvB,OAAO,CAAC,cAAc;IAcvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiCE;IACH,OAAO,CAAC,WAAW;YA8EH,qBAAqB;IAoCtB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqChD,OAAO,CAAC,SAAS;IA0BV,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,cAAc,IAAI;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,OAAO,CAAC;QACzB,qBAAqB,CAAC,EAAE,IAAI,CAAC;QAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,IAAI,CAAC;KACjB;IAeH,OAAO,CAAC,iBAAiB;IAgBhB,OAAO,IAAI,IAAI;CAiBvB"}
|
package/dist/auth-manager.js
CHANGED
|
@@ -275,6 +275,7 @@ class AuthManager {
|
|
|
275
275
|
}
|
|
276
276
|
async authenticate() {
|
|
277
277
|
try {
|
|
278
|
+
this.logEnvDiagnostics();
|
|
278
279
|
if (this.isTokenValid()) {
|
|
279
280
|
this.log.debug('โ
Using existing valid token');
|
|
280
281
|
return;
|
|
@@ -473,6 +474,8 @@ class AuthManager {
|
|
|
473
474
|
startAuthServer(callback) {
|
|
474
475
|
this.authServer = http.createServer((req, res) => {
|
|
475
476
|
const url = new URL(req.url, `http://localhost:${this.config.redirectPort || 4200}`);
|
|
477
|
+
this.log.warn(`๐ข Auth server listening on http://${this.hostIp}:${this.config.redirectPort || 4200}/`);
|
|
478
|
+
this.log.warn(`๐ If the browser does not open automatically, open this URL manually from another device:\nhttp://${this.hostIp}:${this.config.redirectPort || 4200}/login`);
|
|
476
479
|
if (url.pathname === '/') {
|
|
477
480
|
const code = url.searchParams.get('code');
|
|
478
481
|
const error = url.searchParams.get('error');
|
|
@@ -490,7 +493,7 @@ class AuthManager {
|
|
|
490
493
|
</html>
|
|
491
494
|
`);
|
|
492
495
|
callback(undefined, new Error(`OAuth error: ${errorDescription}`));
|
|
493
|
-
this.stopAuthServer();
|
|
496
|
+
//this.stopAuthServer();
|
|
494
497
|
return;
|
|
495
498
|
}
|
|
496
499
|
if (code) {
|
|
@@ -506,7 +509,7 @@ class AuthManager {
|
|
|
506
509
|
</html>
|
|
507
510
|
`);
|
|
508
511
|
callback(code);
|
|
509
|
-
this.stopAuthServer();
|
|
512
|
+
//this.stopAuthServer();
|
|
510
513
|
return;
|
|
511
514
|
}
|
|
512
515
|
}
|
|
@@ -753,6 +756,19 @@ class AuthManager {
|
|
|
753
756
|
issuedAt: this.tokenIssuedAt ? new Date(this.tokenIssuedAt) : undefined
|
|
754
757
|
};
|
|
755
758
|
}
|
|
759
|
+
logEnvDiagnostics() {
|
|
760
|
+
const env = process.env;
|
|
761
|
+
this.log.warn([
|
|
762
|
+
'๐งช ENV DIAGNOSTICS',
|
|
763
|
+
`platform=${process.platform}`,
|
|
764
|
+
`DISPLAY=${env.DISPLAY ?? '(unset)'}`,
|
|
765
|
+
`WAYLAND_DISPLAY=${env.WAYLAND_DISPLAY ?? '(unset)'}`,
|
|
766
|
+
`XDG_RUNTIME_DIR=${env.XDG_RUNTIME_DIR ?? '(unset)'}`,
|
|
767
|
+
`DBUS_SESSION_BUS_ADDRESS=${env.DBUS_SESSION_BUS_ADDRESS ? '(set)' : '(unset)'}`,
|
|
768
|
+
`SYSTEMD_EXEC_PID=${env.SYSTEMD_EXEC_PID ? '(set)' : '(unset)'}`,
|
|
769
|
+
`INVOCATION_ID=${env.INVOCATION_ID ? '(set)' : '(unset)'}`
|
|
770
|
+
].join(' | '));
|
|
771
|
+
}
|
|
756
772
|
cleanup() {
|
|
757
773
|
if (this.tokenRefreshTimer) {
|
|
758
774
|
clearTimeout(this.tokenRefreshTimer);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-viessmann-vicare",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "Complete Homebridge plugin for Viessmann ViCare heating systems with full control capabilities, advanced rate limiting protection, and intelligent cache management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|