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:
parent
a789d913d7
commit
b3c6334f0c
10 changed files with 255 additions and 147 deletions
11
plejd/types/ApiSite.d.ts
vendored
11
plejd/types/ApiSite.d.ts
vendored
|
|
@ -260,6 +260,7 @@ export interface OutputSetting {
|
|||
deviceParseId: string;
|
||||
siteId: string;
|
||||
predefinedLoad: OutputSettingPredefinedLoad;
|
||||
colorTemperature: OutputSettingColorTemperature;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
dimMin: number;
|
||||
|
|
@ -322,6 +323,16 @@ export interface OutputSettingPredefinedLoad {
|
|||
filters?: Filters;
|
||||
}
|
||||
|
||||
export interface OutputSettingColorTemperature {
|
||||
"minTemperature": number,
|
||||
"maxTemperature": number,
|
||||
"slewRate": number,
|
||||
"minTemperatureLimit": number,
|
||||
"maxTemperatureLimit": number,
|
||||
"behavior": "adjustable" | "UNKNOWN", // Todo: Fill with alternate values after finding more site jsons. UNKNOWN is placeholder for now.
|
||||
"startTemperature": number
|
||||
}
|
||||
|
||||
export interface PredefinedLoadACL {
|
||||
'*': Empty;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue