mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2024-11-16 02:18:31 -07:00
Fix last seen not published when changed. https://github.com/Koenkk/zigbee2mqtt/issues/7423
This commit is contained in:
parent
0282011255
commit
c28731957a
@ -150,6 +150,10 @@ class Controller {
|
||||
|
||||
// Call extensions
|
||||
await this.callExtensions('start', this.extensions);
|
||||
|
||||
if (settings.get().advanced.last_seen && settings.get().advanced.last_seen !== 'disable') {
|
||||
this.eventBus.onLastSeenChanged(this, (data) => this.publishEntityState(data.device, {}));
|
||||
}
|
||||
}
|
||||
|
||||
@bind async enableDisableExtension(enable: boolean, name: string): Promise<void> {
|
||||
|
@ -632,4 +632,16 @@ describe('Controller', () => {
|
||||
expect(settings.get().advanced.homeassistant_legacy_entity_attributes).toBeFalsy();
|
||||
expect(settings.get().advanced.legacy_api).toBeFalsy();
|
||||
});
|
||||
|
||||
it('Should publish last seen changes', async () => {
|
||||
settings.set(['advanced', 'last_seen'], 'epoch');
|
||||
await controller.start();
|
||||
await flushPromises();
|
||||
MQTT.publish.mockClear();
|
||||
const device = zigbeeHerdsman.devices.remote;
|
||||
await zigbeeHerdsman.events.lastSeenChanged({device});
|
||||
expect(MQTT.publish).toHaveBeenCalledTimes(1);
|
||||
expect(MQTT.publish).toHaveBeenCalledWith(
|
||||
'zigbee2mqtt/remote', stringify({"brightness":255,"last_seen":1000}), { qos: 0, retain: true }, expect.any(Function));
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user