mirror of
				https://github.com/bourquep/mysa2mqtt.git
				synced 2025-10-31 11:49:40 +00:00 
			
		
		
		
	Compare commits
	
		
			22 Commits
		
	
	
		
			v1.1.0
			...
			dependabot
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ![dependabot[bot]](/assets/img/avatar_default.png)  | bab6589979 | ||
|   | 3b5dafeda9 | ||
|   | 35f2effe9c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c29eae97ed | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6502b76b77 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 39d0e64dc0 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 49c7a0fd8e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 36539b17b1 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e1bd2e3a91 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | be163eddca | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8a8ab7ab07 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | a2f47220bd | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ec166cce61 | ||
|   | d2f7c73d84 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 1bfb7e3add | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e9f2335c38 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 96114d2e91 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 21bc257b22 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 16a82f93f4 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | a95aee6c27 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 20b2866ee4 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | dd23fca857 | 
| @@ -19,10 +19,10 @@ 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 | | ||||
| | `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)                                               | | ||||
|  | ||||
| @@ -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. | ||||
|   | ||||
							
								
								
									
										3838
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3838
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										38
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								package.json
									
									
									
									
									
								
							| @@ -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": "13.1.1", | ||||
|     "@types/node": "24.9.2", | ||||
|     "conventional-changelog-conventionalcommits": "9.1.0", | ||||
|     "eslint": "9.38.0", | ||||
|     "eslint-plugin-jsdoc": "61.1.11", | ||||
|     "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.5.0", | ||||
|     "prettier-plugin-organize-imports": "4.3.0", | ||||
|     "semantic-release": "25.0.1", | ||||
|     "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" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -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); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -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}`); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -8,6 +8,7 @@ | ||||
|     "noEmit": true, | ||||
|     "resolveJsonModule": true, | ||||
|     "module": "ESNext", | ||||
|     "lib": ["ES2022"], | ||||
|     "paths": { | ||||
|       "@/*": ["./src/*"] | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user