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.
59 lines • 2.27 kB
JavaScript
// Matterbridge plugin for Dyson robot vacuum and air treatment devices
// Copyright © 2025-2026 Alexander Thoukydides
import { Thermostat } from 'matterbridge/matter/clusters';
import { ThermostatServerAir } from './endpoint-air-behaviour.js';
// Create the Thermostat cluster
export const thermostatBehavior = ThermostatServerAir.withFeatures(Thermostat.Feature.Heating).enable({
commands: {
setpointRaiseLower: true
}
});
export function createThermostatClusterServer({ behaviors }) {
behaviors.require(thermostatBehavior, {
// Constant attributes
absMinHeatSetpointLimit: 1.00 * 100, // centi-°C
absMaxHeatSetpointLimit: 37.00 * 100, // centi-°C
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation.HeatingOnly,
hvacSystemTypeConfiguration: {
heatingStage: 0,
heatingIsHeatPump: false,
heatingUsesFuel: false
},
remoteSensing: {
localTemperature: false
},
// Variable attributes
localTemperature: null,
piHeatingDemand: 0, // %
occupiedHeatingSetpoint: 21.00 * 100, // centi-°C
systemMode: Thermostat.SystemMode.Off,
thermostatRunningState: {
heat: false,
fan: false,
fanStage2: false,
fanStage3: false
},
// Unsupported attributes
acCapacity: undefined,
acCapacityFormat: undefined,
acCoilTemperature: undefined,
acCompressorType: undefined,
acErrorCode: undefined,
acLouverPosition: undefined,
acRefrigerantType: undefined,
acType: undefined,
emergencyHeatDelta: undefined,
localTemperatureCalibration: undefined,
maxHeatSetpointLimit: undefined,
minHeatSetpointLimit: undefined,
outdoorTemperature: undefined,
setpointChangeAmount: undefined,
setpointChangeSource: undefined,
setpointChangeSourceTimestamp: undefined,
setpointHoldExpiryTimestamp: undefined,
temperatureSetpointHold: undefined,
temperatureSetpointHoldDuration: undefined,
thermostatProgrammingOperationMode: undefined
});
}
//# sourceMappingURL=endpoint-air-thermostat.js.map