UNPKG

matterbridge-dyson-robot

Version:

A Matterbridge plugin that connects Dyson robot vacuums and air treatment devices to the Matter smart home ecosystem via their local or cloud MQTT APIs.

28 lines 1 kB
// Matterbridge plugin for Dyson robot vacuum and air treatment devices // Copyright © 2025 Alexander Thoukydides import { isDeepStrictEqual } from 'node:util'; // Filter received Dyson MQTT messages for reordering and duplication export class DysonMQTTFilter { log; // The most recent message of each type (indexed by msg) lastMsg = new Map; // Create a new message filter constructor(log) { this.log = log; } // Filter a received message filter(msg) { const lastMsg = this.lastMsg.get(msg.msg); if (lastMsg) { if (msg.time && lastMsg.time && msg.time < lastMsg.time) { return 'reordered'; } if ((msg.time || lastMsg.time) && isDeepStrictEqual(msg, lastMsg)) { // (don't filter messages without timestamps) return 'duplicate'; } } this.lastMsg.set(msg.msg, structuredClone(msg)); } } //# sourceMappingURL=dyson-mqtt-filter.js.map