21 Commits
v1.1.0 ... main

Author SHA1 Message Date
Pascal Bourque
3b5dafeda9 fix: Fatal error when starting realtime updates. (#64)
Via https://github.com/bourquep/mysa-js-sdk/pull/144
2025-10-05 15:08:07 -04:00
Pascal Bourque
35f2effe9c chore(deps): Updated all dependencies to their latest versions (#62) 2025-10-05 11:43:49 -04:00
dependabot[bot]
c29eae97ed chore(deps-dev): Bump the dev-dependencies group with 9 updates (#57) 2025-10-05 15:22:33 +00:00
dependabot[bot]
6502b76b77 chore(deps): Bump pino-pretty from 13.0.0 to 13.1.1 (#55) 2025-10-05 15:09:30 +00:00
dependabot[bot]
39d0e64dc0 chore(deps): Bump axios from 1.9.0 to 1.12.1 in the npm_and_yarn group across 1 directory (#60) 2025-10-05 15:08:44 +00:00
dependabot[bot]
49c7a0fd8e chore(deps-dev): Bump tsx from 4.20.3 to 4.20.6 (#61) 2025-10-05 15:08:29 +00:00
dependabot[bot]
36539b17b1 chore(deps-dev): Bump brace-expansion from 1.1.11 to 1.1.12 in the npm_and_yarn group (#54) 2025-08-29 12:36:55 +00:00
dependabot[bot]
e1bd2e3a91 chore(deps-dev): Bump conventional-changelog-conventionalcommits from 9.0.0 to 9.1.0 (#38) 2025-08-29 12:21:56 +00:00
dependabot[bot]
be163eddca chore(deps): Bump form-data from 4.0.2 to 4.0.4 in the npm_and_yarn group (#43) 2025-08-29 12:21:44 +00:00
dependabot[bot]
8a8ab7ab07 chore(deps): Bump dotenv from 16.5.0 to 17.2.1 (#45) 2025-08-29 12:21:29 +00:00
dependabot[bot]
a2f47220bd chore(deps-dev): Bump @eslint/js from 9.29.0 to 9.34.0 (#52) 2025-08-29 12:21:07 +00:00
dependabot[bot]
ec166cce61 chore(deps-dev): Bump typescript-eslint from 8.35.0 to 8.41.0 (#53) 2025-08-29 12:20:55 +00:00
Pascal Bourque
d2f7c73d84 docs(readme): Updated compatibility matrix for BB-V2 2025-08-25 11:40:39 -04:00
dependabot[bot]
1bfb7e3add chore(deps-dev): Bump typescript-eslint from 8.34.1 to 8.35.0 (#22) 2025-06-25 14:39:05 +00:00
dependabot[bot]
e9f2335c38 chore(deps): Bump mysa-js-sdk from 1.2.0 to 1.3.0 (#20) 2025-06-25 14:36:27 +00:00
dependabot[bot]
96114d2e91 chore(deps-dev): Bump the dev-dependencies group across 1 directory with 3 updates (#16) 2025-06-21 13:39:21 +00:00
dependabot[bot]
21bc257b22 chore(deps-dev): Bump tsx from 4.19.4 to 4.20.3 (#18) 2025-06-21 13:36:54 +00:00
dependabot[bot]
16a82f93f4 chore(deps-dev): Bump @eslint/js from 9.28.0 to 9.29.0 (#17) 2025-06-21 13:35:55 +00:00
dependabot[bot]
a95aee6c27 chore(deps-dev): Bump typescript-eslint from 8.34.0 to 8.34.1 (#19) 2025-06-21 13:33:57 +00:00
dependabot[bot]
20b2866ee4 chore(deps-dev): Bump @types/node from 22.15.30 to 24.0.0 in the dev-dependencies group (#10) 2025-06-10 11:41:44 +00:00
dependabot[bot]
dd23fca857 chore(deps-dev): Bump typescript-eslint from 8.33.1 to 8.34.0 (#11) 2025-06-10 11:41:35 +00:00
7 changed files with 1203 additions and 1197 deletions

View File

@@ -18,13 +18,13 @@ home automation platforms.
## Supported hardware
| Model Number | Description | Supported |
| ------------ | --------------------------------------------------------- | ---------------------------------------------------------------- |
| `BB-V1-X` | Mysa Smart Thermostat for Electric Baseboard Heaters V1 | ✅ Tested and working |
| `BB-V2-X` | Mysa Smart Thermostat for Electric Baseboard Heaters V2 | ⚠️ Should work but not tested |
| `BB-V2-X-L` | Mysa Smart Thermostat LITE for Electric Baseboard Heaters | ⚠️ Should work but not tested; does not report power consumption |
| `unknown` | Mysa Smart Thermostat for Electric In-Floor Heating | ⚠️ Should work but not tested |
| `AC-V1-X` | Mysa Smart Thermostat for Mini-Split Heat Pumps & AC | 🚫 Not supported (yet) |
| Model Number | Description | Supported |
| ------------ | --------------------------------------------------------- | -------------------------------------------------------------------- |
| `BB-V1-X` | Mysa Smart Thermostat for Electric Baseboard Heaters V1 | ✅ Tested and working |
| `BB-V2-X` | Mysa Smart Thermostat for Electric Baseboard Heaters V2 | ⚠️ Partially working, in progress |
| `BB-V2-X-L` | Mysa Smart Thermostat LITE for Electric Baseboard Heaters | ⚠️ Partially working, in progress; does not report power consumption |
| `unknown` | Mysa Smart Thermostat for Electric In-Floor Heating | ⚠️ Should work but not tested |
| `AC-V1-X` | Mysa Smart Thermostat for Mini-Split Heat Pumps & AC | 🚫 Not supported (yet) |
## Disclaimer
@@ -213,13 +213,11 @@ When using Home Assistant, devices will be automatically discovered and appear i
### Common Issues
1. **Authentication Failures**
- Verify your Mysa username and password
- Check if session.json exists and is valid
- Try deleting session.json to force re-authentication
2. **MQTT Connection Issues**
- Verify MQTT broker hostname and port
- Check MQTT credentials if authentication is required
- Ensure the MQTT broker is accessible from your network
@@ -364,7 +362,6 @@ copyright notice and license text in any copy of the software or substantial por
## Acknowledgments
- [mysa-js-sdk](https://github.com/bourquep/mysa-js-sdk) - Mysa API client library
- This library would not be possible without the amazing work by [@dlenski](https://github.com/dlenski) in his
[mysotherm](https://github.com/dlenski/mysotherm) repository. He's the one who reversed-engineered the Mysa MQTT
protocol which is being used by this library.

2331
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -46,29 +46,29 @@
"build": "tsup"
},
"dependencies": {
"commander": "14.0.0",
"dotenv": "16.5.0",
"mqtt2ha": "4.1.0",
"mysa-js-sdk": "1.2.0",
"pino": "9.7.0",
"pino-pretty": "13.0.0"
"commander": "14.0.1",
"dotenv": "17.2.3",
"mqtt2ha": "4.1.2",
"mysa-js-sdk": "1.3.3",
"pino": "10.0.0",
"pino-pretty": "13.1.1"
},
"devDependencies": {
"@commander-js/extra-typings": "14.0.0",
"@eslint/js": "9.28.0",
"@semantic-release/npm": "12.0.1",
"@types/node": "22.15.30",
"conventional-changelog-conventionalcommits": "9.0.0",
"eslint": "9.28.0",
"eslint-plugin-jsdoc": "50.7.1",
"@eslint/js": "9.37.0",
"@semantic-release/npm": "12.0.2",
"@types/node": "24.6.2",
"conventional-changelog-conventionalcommits": "9.1.0",
"eslint": "9.37.0",
"eslint-plugin-jsdoc": "60.8.1",
"eslint-plugin-tsdoc": "0.4.0",
"prettier": "3.5.3",
"prettier-plugin-jsdoc": "1.3.2",
"prettier-plugin-organize-imports": "4.1.0",
"semantic-release": "24.2.5",
"prettier": "3.6.2",
"prettier-plugin-jsdoc": "1.3.3",
"prettier-plugin-organize-imports": "4.3.0",
"semantic-release": "24.2.9",
"tsup": "8.5.0",
"tsx": "4.19.4",
"typescript": "5.8.3",
"typescript-eslint": "8.33.1"
"tsx": "4.20.6",
"typescript": "5.9.3",
"typescript-eslint": "8.45.0"
}
}

View File

@@ -22,7 +22,7 @@ SOFTWARE.
*/
import { Logger } from 'mqtt2ha';
import { pino } from 'pino';
import pino from 'pino';
export class PinoLogger implements Logger {
constructor(private readonly logger: pino.Logger) {}
@@ -32,7 +32,7 @@ export class PinoLogger implements Logger {
if (obj) {
this.logger.debug(obj, message, ...meta);
} else {
this.logger.debug(message, ...meta);
this.logger.debug(null, message, ...meta);
}
}
@@ -41,7 +41,7 @@ export class PinoLogger implements Logger {
if (obj) {
this.logger.info(obj, message, ...meta);
} else {
this.logger.info(message, ...meta);
this.logger.info(null, message, ...meta);
}
}
@@ -50,7 +50,7 @@ export class PinoLogger implements Logger {
if (obj) {
this.logger.warn(obj, message, ...meta);
} else {
this.logger.warn(message, ...meta);
this.logger.warn(null, message, ...meta);
}
}
@@ -59,7 +59,7 @@ export class PinoLogger implements Logger {
if (obj) {
this.logger.error(obj, message, ...meta);
} else {
this.logger.error(message, ...meta);
this.logger.error(null, message, ...meta);
}
}
}

View File

@@ -76,7 +76,7 @@ async function main() {
serialNumbers.set(deviceId, serial);
}
} catch (error) {
rootLogger.error(`Failed to retrieve serial number for device ${deviceId}`, error);
rootLogger.error(error, `Failed to retrieve serial number for device ${deviceId}`);
}
}

View File

@@ -54,7 +54,6 @@ function getPackageVersion(): string {
*
* @param value - The value to parse.
* @returns The parsed integer value.
* @throws InvalidArgumentError if the value is not a valid integer.
*/
function parseRequiredInt(value: string) {
const parsedValue = parseInt(value, 10);

View File

@@ -8,6 +8,7 @@
"noEmit": true,
"resolveJsonModule": true,
"module": "ESNext",
"lib": ["ES2022"],
"paths": {
"@/*": ["./src/*"]
}