Fixes logbook (#12740)

This commit is contained in:
Paulus Schoutsen 2022-05-20 11:25:19 -07:00 committed by GitHub
parent 9a9eec40b2
commit fae1bcf0e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 10 deletions

View File

@ -10,6 +10,7 @@ const LOGBOOK_LOCALIZE_PATH = "ui.components.logbook.messages";
export const CONTINUOUS_DOMAINS = ["proximity", "sensor"];
export interface LogbookEntry {
// Python timestamp. Do *1000 to get JS timestamp.
when: number;
name: string;
message?: string;

View File

@ -19,7 +19,12 @@ import "./ha-logbook-renderer";
export class HaLogbook extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@property() public time!: { range: [Date, Date] } | { recent: number };
@property() public time!:
| { range: [Date, Date] }
| {
// Seconds
recent: number;
};
@property() public entityIds?: string[];
@ -211,17 +216,19 @@ export class HaLogbook extends LitElement {
let startTime: Date;
let endTime: Date;
let appendData = false;
let purgeBeforePythonTime: number | undefined;
if ("range" in this.time) {
[startTime, endTime] = this.time.range;
} else {
// Recent data
appendData = true;
} else if ("recent" in this.time) {
purgeBeforePythonTime =
new Date(new Date().getTime() - this.time.recent * 1000).getTime() /
1000;
startTime =
this._lastLogbookDate ||
new Date(new Date().getTime() - 24 * 60 * 60 * 1000);
this._lastLogbookDate || new Date(purgeBeforePythonTime * 1000);
endTime = new Date();
} else {
throw new Error("Unexpected time specified");
}
let newEntries: LogbookEntry[];
@ -251,8 +258,13 @@ export class HaLogbook extends LitElement {
newEntries = [...newEntries].reverse();
this._logbookEntries =
appendData && this._logbookEntries
? newEntries.concat(...this._logbookEntries)
// If we have a purgeBeforeTime, it means we're in recent-mode and fetch batches
purgeBeforePythonTime && this._logbookEntries
? newEntries.concat(
...this._logbookEntries.filter(
(entry) => entry.when > purgeBeforePythonTime!
)
)
: newEntries;
this._lastLogbookDate = endTime;
}

View File

@ -70,7 +70,7 @@ export class HuiLogbookCard extends LitElement implements LovelaceCard {
...config,
};
this._time = {
recent: this._config!.hours_to_show! * 60 * 60 * 1000,
recent: this._config!.hours_to_show! * 60 * 60,
};
this._entityId = processConfigEntities<EntityConfig>(config.entities).map(
(entity) => entity.entity