Improve MQTT behavior and add experimental parsing for color temp support from Plejd API (#298)

* Update underlying docker containers and dependencies.
* Minor linting and code issues fixes
* Update supported devices section
* Improve Mqtt message properties - retain, etc.
- Retain discovery messages
- Don't retain others
- Set QoS to 1 consistently to ensure at least once delivery
- Set session timeout to ensure a reasonable TTL on messages
* Code and logic to remove any retained mqtt messages for SET/STATE/AVAILABILITY
* Temporary restructure of init flow for mqtt.
- No longer wait for HA birth message
- Don't listen to incoming messages until old retained messages have been purged.
- More details in https://github.com/icanos/hassio-plejd/issues/218
* Fix lingering incorrect access of connectedDevice.id
* Fix to avoid Home Assistant setting retain flag on MQTT SET STATE messages
* Parse new TRAIT=15, assuming this means dimmable and tunable white
* Clarify TRAITS bitmask values
* Add experimental parsing for color temp support from Plejd API
* Lint fixes
* Remove null coalescing operator since we don't compile code
* Handle case where outputSettings is null in PlejdApi
* Solve MQTT errors due to deprecated api color_temp and unsupported removal of retained state messages
This commit is contained in:
Victor 2025-08-05 19:55:50 +02:00 committed by GitHub
parent a789d913d7
commit b3c6334f0c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 255 additions and 147 deletions

View file

@ -1,22 +1,22 @@
{
"dependencies": {
"@abandonware/bluetooth-hci-socket": "~0.5.3-7",
"axios": "~0.21.1",
"@abandonware/bluetooth-hci-socket": "~0.5.3-10",
"axios": "~1.6.1",
"buffer-xor": "~2.0.2",
"dbus-next": "~0.9.2",
"dbus-next": "~0.10.2",
"fs": "0.0.1-security",
"jspack": "~0.0.4",
"mqtt": "~4.2.6",
"winston": "~3.3.3"
"mqtt": "~5.1.2",
"winston": "~3.11.0"
},
"devDependencies": {
"babel-eslint": "~10.1.0",
"eslint": "~7.23.0",
"eslint-config-airbnb": "~18.2.1",
"eslint-config-prettier": "~8.1.0",
"eslint-plugin-import": "~2.22.1",
"eslint-plugin-prettier": "~3.3.1",
"prettier": "~2.2.1"
"@babel/eslint-parser": "~7.23.3",
"eslint": "~8.53.0",
"eslint-config-airbnb": "~19.0.4",
"eslint-config-prettier": "~9.0.0",
"eslint-plugin-import": "~2.29.0",
"eslint-plugin-prettier": "~5.0.1",
"prettier": "~3.0.3"
},
"scripts": {
"lint": "npm run lint:prettier & npm run lint:scripts",