1
0
mirror of https://github.com/home-assistant/frontend.git synced 2025-12-20 02:38:53 +00:00

Fix logbook stream subscription (#25927)

This commit is contained in:
Eric Stern
2025-06-26 00:42:43 -07:00
committed by GitHub
parent b81cd37776
commit dd4cb1df72
2 changed files with 16 additions and 3 deletions

View File

@@ -114,9 +114,13 @@ const getLogbookDataFromServer = (
export const subscribeLogbook = (
hass: HomeAssistant,
callbackFunction: (message: LogbookStreamMessage) => void,
callbackFunction: (
message: LogbookStreamMessage,
subscriptionId: number
) => void,
startDate: string,
endDate: string,
subscriptionId: number,
entityIds?: string[],
deviceIds?: string[]
): Promise<UnsubscribeFunc> => {
@@ -140,7 +144,7 @@ export const subscribeLogbook = (
params.device_ids = deviceIds;
}
return hass.connection.subscribeMessage<LogbookStreamMessage>(
(message) => callbackFunction(message),
(message) => callbackFunction(message, subscriptionId),
params
);
};

View File

@@ -88,6 +88,8 @@ export class HaLogbook extends LitElement {
1000
);
private _logbookSubscriptionId = 0;
protected render() {
if (!isComponentLoaded(this.hass, "logbook")) {
return nothing;
@@ -278,13 +280,20 @@ export class HaLogbook extends LitElement {
}
try {
this._logbookSubscriptionId++;
this._unsubLogbook = subscribeLogbook(
this.hass,
(streamMessage) => {
(streamMessage, subscriptionId) => {
if (subscriptionId !== this._logbookSubscriptionId) {
// Ignore messages from previous subscriptions
return;
}
this._processOrQueueStreamMessage(streamMessage);
},
logbookPeriod.startTime.toISOString(),
logbookPeriod.endTime.toISOString(),
this._logbookSubscriptionId,
this.entityIds,
this.deviceIds
);