mirror of
				https://github.com/bourquep/mysa2mqtt.git
				synced 2025-10-31 11:49:40 +00:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 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 | 
| @@ -213,13 +213,11 @@ When using Home Assistant, devices will be automatically discovered and appear i | |||||||
| ### Common Issues | ### Common Issues | ||||||
|  |  | ||||||
| 1. **Authentication Failures** | 1. **Authentication Failures** | ||||||
|  |  | ||||||
|    - Verify your Mysa username and password |    - Verify your Mysa username and password | ||||||
|    - Check if session.json exists and is valid |    - Check if session.json exists and is valid | ||||||
|    - Try deleting session.json to force re-authentication |    - Try deleting session.json to force re-authentication | ||||||
|  |  | ||||||
| 2. **MQTT Connection Issues** | 2. **MQTT Connection Issues** | ||||||
|  |  | ||||||
|    - Verify MQTT broker hostname and port |    - Verify MQTT broker hostname and port | ||||||
|    - Check MQTT credentials if authentication is required |    - Check MQTT credentials if authentication is required | ||||||
|    - Ensure the MQTT broker is accessible from your network |    - 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 | ## Acknowledgments | ||||||
|  |  | ||||||
| - [mysa-js-sdk](https://github.com/bourquep/mysa-js-sdk) - Mysa API client library | - [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 |   - 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 |     [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. |     protocol which is being used by this library. | ||||||
|   | |||||||
							
								
								
									
										2248
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2248
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										36
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								package.json
									
									
									
									
									
								
							| @@ -46,29 +46,29 @@ | |||||||
|     "build": "tsup" |     "build": "tsup" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "commander": "14.0.0", |     "commander": "14.0.1", | ||||||
|     "dotenv": "17.2.1", |     "dotenv": "17.2.3", | ||||||
|     "mqtt2ha": "4.1.0", |     "mqtt2ha": "4.1.2", | ||||||
|     "mysa-js-sdk": "1.3.0", |     "mysa-js-sdk": "1.3.3", | ||||||
|     "pino": "9.7.0", |     "pino": "10.0.0", | ||||||
|     "pino-pretty": "13.0.0" |     "pino-pretty": "13.1.1" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@commander-js/extra-typings": "14.0.0", |     "@commander-js/extra-typings": "14.0.0", | ||||||
|     "@eslint/js": "9.34.0", |     "@eslint/js": "9.37.0", | ||||||
|     "@semantic-release/npm": "12.0.1", |     "@semantic-release/npm": "12.0.2", | ||||||
|     "@types/node": "24.0.3", |     "@types/node": "24.6.2", | ||||||
|     "conventional-changelog-conventionalcommits": "9.1.0", |     "conventional-changelog-conventionalcommits": "9.1.0", | ||||||
|     "eslint": "9.29.0", |     "eslint": "9.37.0", | ||||||
|     "eslint-plugin-jsdoc": "51.1.1", |     "eslint-plugin-jsdoc": "60.8.1", | ||||||
|     "eslint-plugin-tsdoc": "0.4.0", |     "eslint-plugin-tsdoc": "0.4.0", | ||||||
|     "prettier": "3.5.3", |     "prettier": "3.6.2", | ||||||
|     "prettier-plugin-jsdoc": "1.3.2", |     "prettier-plugin-jsdoc": "1.3.3", | ||||||
|     "prettier-plugin-organize-imports": "4.1.0", |     "prettier-plugin-organize-imports": "4.3.0", | ||||||
|     "semantic-release": "24.2.5", |     "semantic-release": "24.2.9", | ||||||
|     "tsup": "8.5.0", |     "tsup": "8.5.0", | ||||||
|     "tsx": "4.20.3", |     "tsx": "4.20.6", | ||||||
|     "typescript": "5.8.3", |     "typescript": "5.9.3", | ||||||
|     "typescript-eslint": "8.41.0" |     "typescript-eslint": "8.45.0" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ SOFTWARE. | |||||||
| */ | */ | ||||||
|  |  | ||||||
| import { Logger } from 'mqtt2ha'; | import { Logger } from 'mqtt2ha'; | ||||||
| import { pino } from 'pino'; | import pino from 'pino'; | ||||||
|  |  | ||||||
| export class PinoLogger implements Logger { | export class PinoLogger implements Logger { | ||||||
|   constructor(private readonly logger: pino.Logger) {} |   constructor(private readonly logger: pino.Logger) {} | ||||||
| @@ -32,7 +32,7 @@ export class PinoLogger implements Logger { | |||||||
|     if (obj) { |     if (obj) { | ||||||
|       this.logger.debug(obj, message, ...meta); |       this.logger.debug(obj, message, ...meta); | ||||||
|     } else { |     } else { | ||||||
|       this.logger.debug(message, ...meta); |       this.logger.debug(null, message, ...meta); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -41,7 +41,7 @@ export class PinoLogger implements Logger { | |||||||
|     if (obj) { |     if (obj) { | ||||||
|       this.logger.info(obj, message, ...meta); |       this.logger.info(obj, message, ...meta); | ||||||
|     } else { |     } else { | ||||||
|       this.logger.info(message, ...meta); |       this.logger.info(null, message, ...meta); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -50,7 +50,7 @@ export class PinoLogger implements Logger { | |||||||
|     if (obj) { |     if (obj) { | ||||||
|       this.logger.warn(obj, message, ...meta); |       this.logger.warn(obj, message, ...meta); | ||||||
|     } else { |     } else { | ||||||
|       this.logger.warn(message, ...meta); |       this.logger.warn(null, message, ...meta); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -59,7 +59,7 @@ export class PinoLogger implements Logger { | |||||||
|     if (obj) { |     if (obj) { | ||||||
|       this.logger.error(obj, message, ...meta); |       this.logger.error(obj, message, ...meta); | ||||||
|     } else { |     } else { | ||||||
|       this.logger.error(message, ...meta); |       this.logger.error(null, message, ...meta); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -76,7 +76,7 @@ async function main() { | |||||||
|         serialNumbers.set(deviceId, serial); |         serialNumbers.set(deviceId, serial); | ||||||
|       } |       } | ||||||
|     } catch (error) { |     } 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. |  * @param value - The value to parse. | ||||||
|  * @returns The parsed integer value. |  * @returns The parsed integer value. | ||||||
|  * @throws InvalidArgumentError if the value is not a valid integer. |  | ||||||
|  */ |  */ | ||||||
| function parseRequiredInt(value: string) { | function parseRequiredInt(value: string) { | ||||||
|   const parsedValue = parseInt(value, 10); |   const parsedValue = parseInt(value, 10); | ||||||
|   | |||||||
| @@ -8,6 +8,7 @@ | |||||||
|     "noEmit": true, |     "noEmit": true, | ||||||
|     "resolveJsonModule": true, |     "resolveJsonModule": true, | ||||||
|     "module": "ESNext", |     "module": "ESNext", | ||||||
|  |     "lib": ["ES2022"], | ||||||
|     "paths": { |     "paths": { | ||||||
|       "@/*": ["./src/*"] |       "@/*": ["./src/*"] | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user