matterbridge-dyson-robot 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/LICENSE +14 -0
- package/README.md +365 -0
- package/dist/async-eventemitter.d.ts +9 -0
- package/dist/async-eventemitter.d.ts.map +1 -0
- package/dist/async-eventemitter.js +35 -0
- package/dist/async-eventemitter.js.map +1 -0
- package/dist/check-configuration.d.ts +5 -0
- package/dist/check-configuration.d.ts.map +1 -0
- package/dist/check-configuration.js +35 -0
- package/dist/check-configuration.js.map +1 -0
- package/dist/check-versions.d.ts +3 -0
- package/dist/check-versions.d.ts.map +1 -0
- package/dist/check-versions.js +31 -0
- package/dist/check-versions.js.map +1 -0
- package/dist/config-types.d.ts +48 -0
- package/dist/config-types.d.ts.map +1 -0
- package/dist/config-types.js +4 -0
- package/dist/config-types.js.map +1 -0
- package/dist/decorator-changed.d.ts +16 -0
- package/dist/decorator-changed.d.ts.map +1 -0
- package/dist/decorator-changed.js +62 -0
- package/dist/decorator-changed.js.map +1 -0
- package/dist/dyson-360-msg-types.d.ts +113 -0
- package/dist/dyson-360-msg-types.d.ts.map +1 -0
- package/dist/dyson-360-msg-types.js +4 -0
- package/dist/dyson-360-msg-types.js.map +1 -0
- package/dist/dyson-360-types.d.ts +76 -0
- package/dist/dyson-360-types.d.ts.map +1 -0
- package/dist/dyson-360-types.js +72 -0
- package/dist/dyson-360-types.js.map +1 -0
- package/dist/dyson-air-msg-types.d.ts +99 -0
- package/dist/dyson-air-msg-types.d.ts.map +1 -0
- package/dist/dyson-air-msg-types.js +4 -0
- package/dist/dyson-air-msg-types.js.map +1 -0
- package/dist/dyson-air-sensor-types.d.ts +59 -0
- package/dist/dyson-air-sensor-types.d.ts.map +1 -0
- package/dist/dyson-air-sensor-types.js +4 -0
- package/dist/dyson-air-sensor-types.js.map +1 -0
- package/dist/dyson-air-state-types.d.ts +96 -0
- package/dist/dyson-air-state-types.d.ts.map +1 -0
- package/dist/dyson-air-state-types.js +4 -0
- package/dist/dyson-air-state-types.js.map +1 -0
- package/dist/dyson-air-types.d.ts +325 -0
- package/dist/dyson-air-types.d.ts.map +1 -0
- package/dist/dyson-air-types.js +382 -0
- package/dist/dyson-air-types.js.map +1 -0
- package/dist/dyson-device-360-base.d.ts +35 -0
- package/dist/dyson-device-360-base.d.ts.map +1 -0
- package/dist/dyson-device-360-base.js +233 -0
- package/dist/dyson-device-360-base.js.map +1 -0
- package/dist/dyson-device-360-commands.d.ts +7 -0
- package/dist/dyson-device-360-commands.d.ts.map +1 -0
- package/dist/dyson-device-360-commands.js +129 -0
- package/dist/dyson-device-360-commands.js.map +1 -0
- package/dist/dyson-device-360-faults-table.d.ts +20 -0
- package/dist/dyson-device-360-faults-table.d.ts.map +1 -0
- package/dist/dyson-device-360-faults-table.js +161 -0
- package/dist/dyson-device-360-faults-table.js.map +1 -0
- package/dist/dyson-device-360-faults.d.ts +10 -0
- package/dist/dyson-device-360-faults.d.ts.map +1 -0
- package/dist/dyson-device-360-faults.js +123 -0
- package/dist/dyson-device-360-faults.js.map +1 -0
- package/dist/dyson-device-360.d.ts +38 -0
- package/dist/dyson-device-360.d.ts.map +1 -0
- package/dist/dyson-device-360.js +45 -0
- package/dist/dyson-device-360.js.map +1 -0
- package/dist/dyson-device-air-base.d.ts +41 -0
- package/dist/dyson-device-air-base.d.ts.map +1 -0
- package/dist/dyson-device-air-base.js +446 -0
- package/dist/dyson-device-air-base.js.map +1 -0
- package/dist/dyson-device-air-heat.d.ts +52 -0
- package/dist/dyson-device-air-heat.d.ts.map +1 -0
- package/dist/dyson-device-air-heat.js +71 -0
- package/dist/dyson-device-air-heat.js.map +1 -0
- package/dist/dyson-device-air-quality.d.ts +7 -0
- package/dist/dyson-device-air-quality.d.ts.map +1 -0
- package/dist/dyson-device-air-quality.js +101 -0
- package/dist/dyson-device-air-quality.js.map +1 -0
- package/dist/dyson-device-air.d.ts +216 -0
- package/dist/dyson-device-air.d.ts.map +1 -0
- package/dist/dyson-device-air.js +80 -0
- package/dist/dyson-device-air.js.map +1 -0
- package/dist/dyson-device-base.d.ts +49 -0
- package/dist/dyson-device-base.d.ts.map +1 -0
- package/dist/dyson-device-base.js +46 -0
- package/dist/dyson-device-base.js.map +1 -0
- package/dist/dyson-device.d.ts +5 -0
- package/dist/dyson-device.d.ts.map +1 -0
- package/dist/dyson-device.js +43 -0
- package/dist/dyson-device.js.map +1 -0
- package/dist/dyson-mqtt-360.d.ts +16 -0
- package/dist/dyson-mqtt-360.d.ts.map +1 -0
- package/dist/dyson-mqtt-360.js +83 -0
- package/dist/dyson-mqtt-360.js.map +1 -0
- package/dist/dyson-mqtt-air.d.ts +48 -0
- package/dist/dyson-mqtt-air.d.ts.map +1 -0
- package/dist/dyson-mqtt-air.js +216 -0
- package/dist/dyson-mqtt-air.js.map +1 -0
- package/dist/dyson-mqtt-config.d.ts +6 -0
- package/dist/dyson-mqtt-config.d.ts.map +1 -0
- package/dist/dyson-mqtt-config.js +47 -0
- package/dist/dyson-mqtt-config.js.map +1 -0
- package/dist/dyson-mqtt-connect.d.ts +22 -0
- package/dist/dyson-mqtt-connect.d.ts.map +1 -0
- package/dist/dyson-mqtt-connect.js +145 -0
- package/dist/dyson-mqtt-connect.js.map +1 -0
- package/dist/dyson-mqtt-filter.d.ts +10 -0
- package/dist/dyson-mqtt-filter.d.ts.map +1 -0
- package/dist/dyson-mqtt-filter.js +25 -0
- package/dist/dyson-mqtt-filter.js.map +1 -0
- package/dist/dyson-mqtt-parse.d.ts +16 -0
- package/dist/dyson-mqtt-parse.d.ts.map +1 -0
- package/dist/dyson-mqtt-parse.js +100 -0
- package/dist/dyson-mqtt-parse.js.map +1 -0
- package/dist/dyson-mqtt-subscribe.d.ts +28 -0
- package/dist/dyson-mqtt-subscribe.d.ts.map +1 -0
- package/dist/dyson-mqtt-subscribe.js +85 -0
- package/dist/dyson-mqtt-subscribe.js.map +1 -0
- package/dist/dyson-mqtt.d.ts +51 -0
- package/dist/dyson-mqtt.d.ts.map +1 -0
- package/dist/dyson-mqtt.js +138 -0
- package/dist/dyson-mqtt.js.map +1 -0
- package/dist/dyson-types.d.ts +18 -0
- package/dist/dyson-types.d.ts.map +1 -0
- package/dist/dyson-types.js +20 -0
- package/dist/dyson-types.js.map +1 -0
- package/dist/endpoint-360-behavior.d.ts +55 -0
- package/dist/endpoint-360-behavior.d.ts.map +1 -0
- package/dist/endpoint-360-behavior.js +156 -0
- package/dist/endpoint-360-behavior.js.map +1 -0
- package/dist/endpoint-360-rvc.d.ts +14 -0
- package/dist/endpoint-360-rvc.d.ts.map +1 -0
- package/dist/endpoint-360-rvc.js +149 -0
- package/dist/endpoint-360-rvc.js.map +1 -0
- package/dist/endpoint-360.d.ts +35 -0
- package/dist/endpoint-360.d.ts.map +1 -0
- package/dist/endpoint-360.js +197 -0
- package/dist/endpoint-360.js.map +1 -0
- package/dist/endpoint-air-purifier.d.ts +24 -0
- package/dist/endpoint-air-purifier.d.ts.map +1 -0
- package/dist/endpoint-air-purifier.js +97 -0
- package/dist/endpoint-air-purifier.js.map +1 -0
- package/dist/endpoint-air-quality.d.ts +11 -0
- package/dist/endpoint-air-quality.d.ts.map +1 -0
- package/dist/endpoint-air-quality.js +104 -0
- package/dist/endpoint-air-quality.js.map +1 -0
- package/dist/endpoint-air-thermostat.d.ts +358 -0
- package/dist/endpoint-air-thermostat.d.ts.map +1 -0
- package/dist/endpoint-air-thermostat.js +67 -0
- package/dist/endpoint-air-thermostat.js.map +1 -0
- package/dist/endpoint-air.d.ts +125 -0
- package/dist/endpoint-air.d.ts.map +1 -0
- package/dist/endpoint-air.js +459 -0
- package/dist/endpoint-air.js.map +1 -0
- package/dist/endpoint-base.d.ts +36 -0
- package/dist/endpoint-base.d.ts.map +1 -0
- package/dist/endpoint-base.js +137 -0
- package/dist/endpoint-base.js.map +1 -0
- package/dist/error-360.d.ts +35 -0
- package/dist/error-360.d.ts.map +1 -0
- package/dist/error-360.js +105 -0
- package/dist/error-360.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/logger-filter.d.ts +23 -0
- package/dist/logger-filter.d.ts.map +1 -0
- package/dist/logger-filter.js +104 -0
- package/dist/logger-filter.js.map +1 -0
- package/dist/logger-options.d.ts +18 -0
- package/dist/logger-options.d.ts.map +1 -0
- package/dist/logger-options.js +41 -0
- package/dist/logger-options.js.map +1 -0
- package/dist/logger-prefix.d.ts +12 -0
- package/dist/logger-prefix.d.ts.map +1 -0
- package/dist/logger-prefix.js +37 -0
- package/dist/logger-prefix.js.map +1 -0
- package/dist/periodic.d.ts +31 -0
- package/dist/periodic.d.ts.map +1 -0
- package/dist/periodic.js +102 -0
- package/dist/periodic.js.map +1 -0
- package/dist/platform.d.ts +18 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +138 -0
- package/dist/platform.js.map +1 -0
- package/dist/settings.d.ts +9 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +28 -0
- package/dist/settings.js.map +1 -0
- package/dist/ti/config-types-ti.d.ts +16 -0
- package/dist/ti/config-types-ti.d.ts.map +1 -0
- package/dist/ti/config-types-ti.js +65 -0
- package/dist/ti/config-types-ti.js.map +1 -0
- package/dist/ti/config-types.d.ts +37 -0
- package/dist/ti/config-types.d.ts.map +1 -0
- package/dist/ti/config-types.js +11 -0
- package/dist/ti/config-types.js.map +1 -0
- package/dist/ti/dyson-360-msg-types-ti.d.ts +22 -0
- package/dist/ti/dyson-360-msg-types-ti.d.ts.map +1 -0
- package/dist/ti/dyson-360-msg-types-ti.js +134 -0
- package/dist/ti/dyson-360-msg-types-ti.js.map +1 -0
- package/dist/ti/dyson-360-msg-types.d.ts +55 -0
- package/dist/ti/dyson-360-msg-types.d.ts.map +1 -0
- package/dist/ti/dyson-360-msg-types.js +13 -0
- package/dist/ti/dyson-360-msg-types.js.map +1 -0
- package/dist/ti/dyson-360-types-ti.d.ts +17 -0
- package/dist/ti/dyson-360-types-ti.d.ts.map +1 -0
- package/dist/ti/dyson-360-types-ti.js +94 -0
- package/dist/ti/dyson-360-types-ti.js.map +1 -0
- package/dist/ti/dyson-360-types.d.ts +40 -0
- package/dist/ti/dyson-360-types.d.ts.map +1 -0
- package/dist/ti/dyson-360-types.js +11 -0
- package/dist/ti/dyson-360-types.js.map +1 -0
- package/dist/ti/dyson-air-msg-types-ti.d.ts +19 -0
- package/dist/ti/dyson-air-msg-types-ti.d.ts.map +1 -0
- package/dist/ti/dyson-air-msg-types-ti.js +115 -0
- package/dist/ti/dyson-air-msg-types-ti.js.map +1 -0
- package/dist/ti/dyson-air-msg-types.d.ts +46 -0
- package/dist/ti/dyson-air-msg-types.d.ts.map +1 -0
- package/dist/ti/dyson-air-msg-types.js +15 -0
- package/dist/ti/dyson-air-msg-types.js.map +1 -0
- package/dist/ti/dyson-air-sensor-types-ti.d.ts +9 -0
- package/dist/ti/dyson-air-sensor-types-ti.d.ts.map +1 -0
- package/dist/ti/dyson-air-sensor-types-ti.js +68 -0
- package/dist/ti/dyson-air-sensor-types-ti.js.map +1 -0
- package/dist/ti/dyson-air-sensor-types.d.ts +16 -0
- package/dist/ti/dyson-air-sensor-types.d.ts.map +1 -0
- package/dist/ti/dyson-air-sensor-types.js +12 -0
- package/dist/ti/dyson-air-sensor-types.js.map +1 -0
- package/dist/ti/dyson-air-state-types-ti.d.ts +9 -0
- package/dist/ti/dyson-air-state-types-ti.d.ts.map +1 -0
- package/dist/ti/dyson-air-state-types-ti.js +105 -0
- package/dist/ti/dyson-air-state-types-ti.js.map +1 -0
- package/dist/ti/dyson-air-state-types.d.ts +16 -0
- package/dist/ti/dyson-air-state-types.d.ts.map +1 -0
- package/dist/ti/dyson-air-state-types.js +12 -0
- package/dist/ti/dyson-air-state-types.js.map +1 -0
- package/dist/ti/dyson-air-types-ti.d.ts +59 -0
- package/dist/ti/dyson-air-types-ti.d.ts.map +1 -0
- package/dist/ti/dyson-air-types-ti.js +385 -0
- package/dist/ti/dyson-air-types-ti.js.map +1 -0
- package/dist/ti/dyson-air-types.d.ts +166 -0
- package/dist/ti/dyson-air-types.d.ts.map +1 -0
- package/dist/ti/dyson-air-types.js +11 -0
- package/dist/ti/dyson-air-types.js.map +1 -0
- package/dist/ti/dyson-types-ti.d.ts +10 -0
- package/dist/ti/dyson-types-ti.d.ts.map +1 -0
- package/dist/ti/dyson-types-ti.js +29 -0
- package/dist/ti/dyson-types-ti.js.map +1 -0
- package/dist/ti/dyson-types.d.ts +19 -0
- package/dist/ti/dyson-types.d.ts.map +1 -0
- package/dist/ti/dyson-types.js +11 -0
- package/dist/ti/dyson-types.js.map +1 -0
- package/dist/utils.d.ts +24 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +150 -0
- package/dist/utils.js.map +1 -0
- package/matterbridge-dyson-robot.schema.json +359 -0
- package/package.json +93 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// Matterbridge plugin for Dyson robot vacuum and air treatment devices
|
|
2
|
+
// Copyright © 2025 Alexander Thoukydides
|
|
3
|
+
import { FanControl, ResourceMonitoring } from 'matterbridge/matter/clusters';
|
|
4
|
+
import { ActivatedCarbonFilterMonitoringServer, FanControlServer, HepaFilterMonitoringServer } from 'matterbridge/matter/behaviors';
|
|
5
|
+
import { MatterbridgeOnOffServer } from 'matterbridge';
|
|
6
|
+
// Create the On/Off cluster
|
|
7
|
+
export function createOnOffClusterServer({ behaviors }) {
|
|
8
|
+
behaviors.require(MatterbridgeOnOffServer, {
|
|
9
|
+
// Variable attributes
|
|
10
|
+
onOff: false
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
// Create the Fan Control cluster
|
|
14
|
+
export function createFanControlClusterServer({ behaviors }, options) {
|
|
15
|
+
const { directionSupport } = options;
|
|
16
|
+
let { rockSupport, windSupport } = options;
|
|
17
|
+
const features = [
|
|
18
|
+
FanControl.Feature.MultiSpeed,
|
|
19
|
+
FanControl.Feature.Auto
|
|
20
|
+
];
|
|
21
|
+
if (directionSupport)
|
|
22
|
+
features.push(FanControl.Feature.AirflowDirection);
|
|
23
|
+
if (!rockSupport?.rockLeftRight && !rockSupport?.rockUpDown && !rockSupport?.rockRound)
|
|
24
|
+
rockSupport = undefined;
|
|
25
|
+
else
|
|
26
|
+
features.push(FanControl.Feature.Rocking);
|
|
27
|
+
if (!windSupport?.sleepWind && !windSupport?.naturalWind)
|
|
28
|
+
windSupport = undefined;
|
|
29
|
+
else
|
|
30
|
+
features.push(FanControl.Feature.Wind);
|
|
31
|
+
behaviors.require(FanControlServer.withFeatures(...features), {
|
|
32
|
+
// Constant attributes
|
|
33
|
+
rockSupport,
|
|
34
|
+
windSupport,
|
|
35
|
+
speedMax: 10,
|
|
36
|
+
fanModeSequence: FanControl.FanModeSequence.OffLowMedHighAuto,
|
|
37
|
+
// Variable attributes
|
|
38
|
+
fanMode: FanControl.FanMode.Off,
|
|
39
|
+
percentSetting: 0,
|
|
40
|
+
percentCurrent: 0,
|
|
41
|
+
speedSetting: 0,
|
|
42
|
+
speedCurrent: 0,
|
|
43
|
+
rockSetting: rockSupport && {},
|
|
44
|
+
windSetting: windSupport && {},
|
|
45
|
+
airflowDirection: directionSupport ? FanControl.AirflowDirection.Forward : undefined
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
// Create the HEPA Filter Monitoring cluster
|
|
49
|
+
export function createHepaFilterMonitoringClusterServer({ behaviors }, options) {
|
|
50
|
+
const { features, replacementProductList } = makeFeaturesAndReplacements(options);
|
|
51
|
+
behaviors.require(HepaFilterMonitoringServer.withFeatures(...features), {
|
|
52
|
+
// Constant attributes
|
|
53
|
+
degradationDirection: ResourceMonitoring.DegradationDirection.Down,
|
|
54
|
+
replacementProductList,
|
|
55
|
+
// Variable attributes
|
|
56
|
+
condition: 0,
|
|
57
|
+
changeIndication: ResourceMonitoring.ChangeIndication.Ok,
|
|
58
|
+
inPlaceIndicator: true,
|
|
59
|
+
// Unsupported attributes
|
|
60
|
+
lastChangedTime: undefined
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Create the Activated Carbon Filter Monitoring cluster
|
|
64
|
+
export function createActivatedCarbonFilterMonitoringClusterServer({ behaviors }, options) {
|
|
65
|
+
const { features, replacementProductList } = makeFeaturesAndReplacements(options);
|
|
66
|
+
behaviors.require(ActivatedCarbonFilterMonitoringServer.withFeatures(...features), {
|
|
67
|
+
// Constant attributes
|
|
68
|
+
degradationDirection: ResourceMonitoring.DegradationDirection.Down,
|
|
69
|
+
replacementProductList,
|
|
70
|
+
// Variable attributes
|
|
71
|
+
condition: 0,
|
|
72
|
+
changeIndication: ResourceMonitoring.ChangeIndication.Ok,
|
|
73
|
+
inPlaceIndicator: false,
|
|
74
|
+
// Unsupported attributes
|
|
75
|
+
lastChangedTime: undefined
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// Prepare features and replacement products for a Filter Monitoring cluster
|
|
79
|
+
function makeFeaturesAndReplacements(options) {
|
|
80
|
+
// Default features that are always supported
|
|
81
|
+
const features = [
|
|
82
|
+
ResourceMonitoring.Feature.Condition,
|
|
83
|
+
ResourceMonitoring.Feature.Warning
|
|
84
|
+
];
|
|
85
|
+
let replacementProductList;
|
|
86
|
+
// Add a ReplacementProductList if filter part numbers were provided
|
|
87
|
+
const { filterPartNumbers } = options;
|
|
88
|
+
if (filterPartNumbers?.length) {
|
|
89
|
+
features.push(ResourceMonitoring.Feature.ReplacementProductList);
|
|
90
|
+
replacementProductList = filterPartNumbers.map(identifier => ({
|
|
91
|
+
productIdentifierType: ResourceMonitoring.ProductIdentifierType.Oem,
|
|
92
|
+
productIdentifierValue: identifier.substring(0, 20)
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
return { features, replacementProductList };
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=endpoint-air-purifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-air-purifier.js","sourceRoot":"","sources":["../src/endpoint-air-purifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Endpoint } from 'matterbridge/matter';
|
|
2
|
+
export declare function createAirQualityClusterServer({ behaviors }: Endpoint): void;
|
|
3
|
+
export declare function createTemperatureMeasurementClusterServer({ behaviors }: Endpoint): void;
|
|
4
|
+
export declare function createRelativeHumidityMeasurementClusterServer({ behaviors }: Endpoint): void;
|
|
5
|
+
export declare function createTotalVolatileOrganicCompoundsConcentrationMeasurementClusterServer({ behaviors }: Endpoint): void;
|
|
6
|
+
export declare function createCarbonDioxideConcentrationMeasurementClusterServer({ behaviors }: Endpoint): void;
|
|
7
|
+
export declare function createNitrogenDioxideConcentrationMeasurementClusterServer({ behaviors }: Endpoint): void;
|
|
8
|
+
export declare function createFormaldehydeConcentrationMeasurementClusterServer({ behaviors }: Endpoint): void;
|
|
9
|
+
export declare function createPm25ConcentrationMeasurementClusterServer({ behaviors }: Endpoint): void;
|
|
10
|
+
export declare function createPm10ConcentrationMeasurementClusterServer({ behaviors }: Endpoint): void;
|
|
11
|
+
//# sourceMappingURL=endpoint-air-quality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-air-quality.d.ts","sourceRoot":"","sources":["../src/endpoint-air-quality.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,wBAAgB,6BAA6B,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAU3E;AAGD,wBAAgB,yCAAyC,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CASvF;AAGD,wBAAgB,8CAA8C,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAS5F;AAGD,wBAAgB,wEAAwE,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAWtH;AAGD,wBAAgB,wDAAwD,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAatG;AAGD,wBAAgB,0DAA0D,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAWxG;AAGD,wBAAgB,uDAAuD,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAarG;AAGD,wBAAgB,+CAA+C,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAa7F;AAGD,wBAAgB,+CAA+C,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAa7F"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// Matterbridge plugin for Dyson robot vacuum and air treatment devices
|
|
2
|
+
// Copyright © 2025 Alexander Thoukydides
|
|
3
|
+
import { AirQuality, ConcentrationMeasurement } from 'matterbridge/matter/clusters';
|
|
4
|
+
import { AirQualityServer, CarbonDioxideConcentrationMeasurementServer, FormaldehydeConcentrationMeasurementServer, NitrogenDioxideConcentrationMeasurementServer, Pm10ConcentrationMeasurementServer, Pm25ConcentrationMeasurementServer, RelativeHumidityMeasurementServer, TemperatureMeasurementServer, TotalVolatileOrganicCompoundsConcentrationMeasurementServer } from 'matterbridge/matter/behaviors';
|
|
5
|
+
// Create the Air Quality cluster
|
|
6
|
+
export function createAirQualityClusterServer({ behaviors }) {
|
|
7
|
+
behaviors.require(AirQualityServer.withFeatures(AirQuality.Feature.Fair, AirQuality.Feature.Moderate, AirQuality.Feature.VeryPoor, AirQuality.Feature.ExtremelyPoor), {
|
|
8
|
+
// Variable attributes
|
|
9
|
+
airQuality: AirQuality.AirQualityEnum.Unknown
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
// Create the Temperature Measurement cluster
|
|
13
|
+
export function createTemperatureMeasurementClusterServer({ behaviors }) {
|
|
14
|
+
behaviors.require(TemperatureMeasurementServer, {
|
|
15
|
+
// Constant attributes
|
|
16
|
+
minMeasuredValue: -30.15 * 100, // centi-°C
|
|
17
|
+
maxMeasuredValue: 79.85 * 100, // centi-°C
|
|
18
|
+
tolerance: 0.50 * 100, // centi-°C (5 deci-K steps)
|
|
19
|
+
// Variable attributes
|
|
20
|
+
measuredValue: null
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
// Create the Relative Humidity Measurement cluster
|
|
24
|
+
export function createRelativeHumidityMeasurementClusterServer({ behaviors }) {
|
|
25
|
+
behaviors.require(RelativeHumidityMeasurementServer, {
|
|
26
|
+
// Constant attributes
|
|
27
|
+
minMeasuredValue: 0.00 * 100, // centi-%
|
|
28
|
+
maxMeasuredValue: 100.00 * 100, // centi-%
|
|
29
|
+
tolerance: 1.00 * 100, // centi-% (Dyson measures %)
|
|
30
|
+
// Variable attributes
|
|
31
|
+
measuredValue: null
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
// Create the Total Volatile Organic Compounds Concentration Measurement cluster
|
|
35
|
+
export function createTotalVolatileOrganicCompoundsConcentrationMeasurementClusterServer({ behaviors }) {
|
|
36
|
+
behaviors.require(TotalVolatileOrganicCompoundsConcentrationMeasurementServer.withFeatures(ConcentrationMeasurement.Feature.LevelIndication, ConcentrationMeasurement.Feature.MediumLevel, ConcentrationMeasurement.Feature.CriticalLevel), {
|
|
37
|
+
// Constant attributes
|
|
38
|
+
measurementMedium: ConcentrationMeasurement.MeasurementMedium.Air,
|
|
39
|
+
// Variable attributes
|
|
40
|
+
levelValue: ConcentrationMeasurement.LevelValue.Unknown
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
// Create the Carbon Dioxide Concentration Measurement cluster
|
|
44
|
+
export function createCarbonDioxideConcentrationMeasurementClusterServer({ behaviors }) {
|
|
45
|
+
behaviors.require(CarbonDioxideConcentrationMeasurementServer.withFeatures(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
46
|
+
// Constant attributes
|
|
47
|
+
minMeasuredValue: 0, // ppm
|
|
48
|
+
maxMeasuredValue: 9999, // ppm
|
|
49
|
+
measurementMedium: ConcentrationMeasurement.MeasurementMedium.Air,
|
|
50
|
+
measurementUnit: ConcentrationMeasurement.MeasurementUnit.Ppm,
|
|
51
|
+
uncertainty: 1,
|
|
52
|
+
// Variable attributes
|
|
53
|
+
measuredValue: null
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// Create the Nitrogen Dioxide Concentration Measurement cluster
|
|
57
|
+
export function createNitrogenDioxideConcentrationMeasurementClusterServer({ behaviors }) {
|
|
58
|
+
behaviors.require(NitrogenDioxideConcentrationMeasurementServer.withFeatures(ConcentrationMeasurement.Feature.LevelIndication, ConcentrationMeasurement.Feature.MediumLevel, ConcentrationMeasurement.Feature.CriticalLevel), {
|
|
59
|
+
// Constant attributes
|
|
60
|
+
measurementMedium: ConcentrationMeasurement.MeasurementMedium.Air,
|
|
61
|
+
// Variable attributes
|
|
62
|
+
levelValue: ConcentrationMeasurement.LevelValue.Unknown
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
// Create the Formaldehyde Concentration Measurement cluster
|
|
66
|
+
export function createFormaldehydeConcentrationMeasurementClusterServer({ behaviors }) {
|
|
67
|
+
behaviors.require(FormaldehydeConcentrationMeasurementServer.withFeatures(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
68
|
+
// Constant attributes
|
|
69
|
+
minMeasuredValue: 0, // µg/m³
|
|
70
|
+
maxMeasuredValue: 999, // µg/m³ (99 for v1 sensors)
|
|
71
|
+
measurementMedium: ConcentrationMeasurement.MeasurementMedium.Air,
|
|
72
|
+
measurementUnit: ConcentrationMeasurement.MeasurementUnit.Ugm3,
|
|
73
|
+
uncertainty: 1,
|
|
74
|
+
// Variable attributes
|
|
75
|
+
measuredValue: null
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// Create the PM2.5 Concentration Measurement cluster
|
|
79
|
+
export function createPm25ConcentrationMeasurementClusterServer({ behaviors }) {
|
|
80
|
+
behaviors.require(Pm25ConcentrationMeasurementServer.withFeatures(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
81
|
+
// Constant attributes
|
|
82
|
+
minMeasuredValue: 0, // µg/m³
|
|
83
|
+
maxMeasuredValue: 999, // µg/m³ (149 for v1 sensors)
|
|
84
|
+
measurementMedium: ConcentrationMeasurement.MeasurementMedium.Air,
|
|
85
|
+
measurementUnit: ConcentrationMeasurement.MeasurementUnit.Ugm3,
|
|
86
|
+
uncertainty: 1,
|
|
87
|
+
// Variable attributes
|
|
88
|
+
measuredValue: null
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
// Create the PM10 Concentration Measurement cluster
|
|
92
|
+
export function createPm10ConcentrationMeasurementClusterServer({ behaviors }) {
|
|
93
|
+
behaviors.require(Pm10ConcentrationMeasurementServer.withFeatures(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
94
|
+
// Constant attributes
|
|
95
|
+
minMeasuredValue: 0, // µg/m³
|
|
96
|
+
maxMeasuredValue: 999, // µg/m³ (149 for v1 sensors)
|
|
97
|
+
measurementMedium: ConcentrationMeasurement.MeasurementMedium.Air,
|
|
98
|
+
measurementUnit: ConcentrationMeasurement.MeasurementUnit.Ugm3,
|
|
99
|
+
uncertainty: 1,
|
|
100
|
+
// Variable attributes
|
|
101
|
+
measuredValue: null
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=endpoint-air-quality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-air-quality.js","sourceRoot":"","sources":["../src/endpoint-air-quality.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { Endpoint, MaybePromise } from 'matterbridge/matter';
|
|
2
|
+
import { Thermostat } from 'matterbridge/matter/clusters';
|
|
3
|
+
import { ThermostatServer } from 'matterbridge/matter/behaviors';
|
|
4
|
+
declare const ThermostatServerAir_base: import("matterbridge/matter").ClusterBehavior.Type<import("matterbridge").ClusterComposer.WithFeatures<import("matterbridge").ClusterType.Of<{
|
|
5
|
+
readonly id: 513;
|
|
6
|
+
readonly name: "Thermostat";
|
|
7
|
+
readonly revision: 8;
|
|
8
|
+
readonly features: {
|
|
9
|
+
readonly heating: import("matterbridge").BitFlag;
|
|
10
|
+
readonly cooling: import("matterbridge").BitFlag;
|
|
11
|
+
readonly occupancy: import("matterbridge").BitFlag;
|
|
12
|
+
readonly scheduleConfiguration: import("matterbridge").BitFlag;
|
|
13
|
+
readonly setback: import("matterbridge").BitFlag;
|
|
14
|
+
readonly autoMode: import("matterbridge").BitFlag;
|
|
15
|
+
readonly localTemperatureNotExposed: import("matterbridge").BitFlag;
|
|
16
|
+
readonly matterScheduleConfiguration: import("matterbridge").BitFlag;
|
|
17
|
+
readonly presets: import("matterbridge").BitFlag;
|
|
18
|
+
};
|
|
19
|
+
readonly attributes: {
|
|
20
|
+
readonly localTemperature: import("matterbridge").Attribute<number | null, any>;
|
|
21
|
+
readonly outdoorTemperature: import("matterbridge").OptionalAttribute<number | null, any>;
|
|
22
|
+
readonly hvacSystemTypeConfiguration: import("matterbridge").OptionalWritableAttribute<import("matterbridge").TypeFromPartialBitSchema<{
|
|
23
|
+
coolingStage: import("matterbridge").BitField;
|
|
24
|
+
heatingStage: import("matterbridge").BitField;
|
|
25
|
+
heatingIsHeatPump: import("matterbridge").BitFlag;
|
|
26
|
+
heatingUsesFuel: import("matterbridge").BitFlag;
|
|
27
|
+
}>, any>;
|
|
28
|
+
readonly remoteSensing: import("matterbridge").OptionalWritableAttribute<import("matterbridge").TypeFromPartialBitSchema<{
|
|
29
|
+
localTemperature: import("matterbridge").BitFlag;
|
|
30
|
+
outdoorTemperature: import("matterbridge").BitFlag;
|
|
31
|
+
occupancy: import("matterbridge").BitFlag;
|
|
32
|
+
}>, any>;
|
|
33
|
+
readonly controlSequenceOfOperation: import("matterbridge").WritableAttribute<Thermostat.ControlSequenceOfOperation, any>;
|
|
34
|
+
readonly systemMode: import("matterbridge").WritableAttribute<Thermostat.SystemMode, any>;
|
|
35
|
+
readonly temperatureSetpointHold: import("matterbridge").OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>;
|
|
36
|
+
readonly temperatureSetpointHoldDuration: import("matterbridge").OptionalWritableAttribute<number | null, any>;
|
|
37
|
+
readonly thermostatProgrammingOperationMode: import("matterbridge").OptionalWritableAttribute<import("matterbridge").TypeFromPartialBitSchema<{
|
|
38
|
+
scheduleActive: import("matterbridge").BitFlag;
|
|
39
|
+
autoRecovery: import("matterbridge").BitFlag;
|
|
40
|
+
economy: import("matterbridge").BitFlag;
|
|
41
|
+
}>, any>;
|
|
42
|
+
readonly thermostatRunningState: import("matterbridge").OptionalAttribute<import("matterbridge").TypeFromPartialBitSchema<{
|
|
43
|
+
heat: import("matterbridge").BitFlag;
|
|
44
|
+
cool: import("matterbridge").BitFlag;
|
|
45
|
+
fan: import("matterbridge").BitFlag;
|
|
46
|
+
heatStage2: import("matterbridge").BitFlag;
|
|
47
|
+
coolStage2: import("matterbridge").BitFlag;
|
|
48
|
+
fanStage2: import("matterbridge").BitFlag;
|
|
49
|
+
fanStage3: import("matterbridge").BitFlag;
|
|
50
|
+
}>, any>;
|
|
51
|
+
readonly setpointChangeSource: import("matterbridge").OptionalAttribute<Thermostat.SetpointChangeSource, any>;
|
|
52
|
+
readonly setpointChangeAmount: import("matterbridge").OptionalAttribute<number | null, any>;
|
|
53
|
+
readonly setpointChangeSourceTimestamp: import("matterbridge").OptionalAttribute<number, any>;
|
|
54
|
+
readonly emergencyHeatDelta: import("matterbridge").OptionalWritableAttribute<number, any>;
|
|
55
|
+
readonly acType: import("matterbridge").OptionalWritableAttribute<Thermostat.AcType, any>;
|
|
56
|
+
readonly acCapacity: import("matterbridge").OptionalWritableAttribute<number, any>;
|
|
57
|
+
readonly acRefrigerantType: import("matterbridge").OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>;
|
|
58
|
+
readonly acCompressorType: import("matterbridge").OptionalWritableAttribute<Thermostat.AcCompressorType, any>;
|
|
59
|
+
readonly acErrorCode: import("matterbridge").OptionalWritableAttribute<import("matterbridge").TypeFromPartialBitSchema<{
|
|
60
|
+
compressorFail: import("matterbridge").BitFlag;
|
|
61
|
+
roomSensorFail: import("matterbridge").BitFlag;
|
|
62
|
+
outdoorSensorFail: import("matterbridge").BitFlag;
|
|
63
|
+
coilSensorFail: import("matterbridge").BitFlag;
|
|
64
|
+
fanFail: import("matterbridge").BitFlag;
|
|
65
|
+
}>, any>;
|
|
66
|
+
readonly acLouverPosition: import("matterbridge").OptionalWritableAttribute<Thermostat.AcLouverPosition, any>;
|
|
67
|
+
readonly acCoilTemperature: import("matterbridge").OptionalAttribute<number | null, any>;
|
|
68
|
+
readonly acCapacityFormat: import("matterbridge").OptionalWritableAttribute<Thermostat.AcCapacityFormat, any>;
|
|
69
|
+
readonly setpointHoldExpiryTimestamp: import("matterbridge").OptionalAttribute<number | null, any>;
|
|
70
|
+
};
|
|
71
|
+
readonly commands: {
|
|
72
|
+
readonly setpointRaiseLower: import("matterbridge").Command<import("matterbridge").TypeFromFields<{
|
|
73
|
+
mode: import("matterbridge").FieldType<Thermostat.SetpointRaiseLowerMode>;
|
|
74
|
+
amount: import("matterbridge").FieldType<number>;
|
|
75
|
+
}>, void, any>;
|
|
76
|
+
};
|
|
77
|
+
readonly extensions: readonly [{
|
|
78
|
+
readonly flags: {
|
|
79
|
+
readonly occupancy: true;
|
|
80
|
+
};
|
|
81
|
+
readonly component: {
|
|
82
|
+
readonly attributes: {
|
|
83
|
+
readonly occupancy: import("matterbridge").Attribute<import("matterbridge").TypeFromPartialBitSchema<{
|
|
84
|
+
occupied: import("matterbridge").BitFlag;
|
|
85
|
+
}>, any>;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
}, {
|
|
89
|
+
readonly flags: {
|
|
90
|
+
readonly heating: true;
|
|
91
|
+
};
|
|
92
|
+
readonly component: {
|
|
93
|
+
readonly attributes: {
|
|
94
|
+
readonly absMinHeatSetpointLimit: import("matterbridge").OptionalFixedAttribute<number, any>;
|
|
95
|
+
readonly absMaxHeatSetpointLimit: import("matterbridge").OptionalFixedAttribute<number, any>;
|
|
96
|
+
readonly piHeatingDemand: import("matterbridge").OptionalAttribute<number, any>;
|
|
97
|
+
readonly occupiedHeatingSetpoint: import("matterbridge").WritableAttribute<number, any>;
|
|
98
|
+
readonly minHeatSetpointLimit: import("matterbridge").OptionalWritableAttribute<number, any>;
|
|
99
|
+
readonly maxHeatSetpointLimit: import("matterbridge").OptionalWritableAttribute<number, any>;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
}, {
|
|
103
|
+
readonly flags: {
|
|
104
|
+
readonly cooling: true;
|
|
105
|
+
};
|
|
106
|
+
readonly component: {
|
|
107
|
+
readonly attributes: {
|
|
108
|
+
readonly absMinCoolSetpointLimit: import("matterbridge").OptionalFixedAttribute<number, any>;
|
|
109
|
+
readonly absMaxCoolSetpointLimit: import("matterbridge").OptionalFixedAttribute<number, any>;
|
|
110
|
+
readonly piCoolingDemand: import("matterbridge").OptionalAttribute<number, any>;
|
|
111
|
+
readonly occupiedCoolingSetpoint: import("matterbridge").WritableAttribute<number, any>;
|
|
112
|
+
readonly minCoolSetpointLimit: import("matterbridge").OptionalWritableAttribute<number, any>;
|
|
113
|
+
readonly maxCoolSetpointLimit: import("matterbridge").OptionalWritableAttribute<number, any>;
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
}, {
|
|
117
|
+
readonly flags: {
|
|
118
|
+
readonly localTemperatureNotExposed: false;
|
|
119
|
+
};
|
|
120
|
+
readonly component: {
|
|
121
|
+
readonly attributes: {
|
|
122
|
+
readonly localTemperatureCalibration: import("matterbridge").OptionalWritableAttribute<number, any>;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
}, {
|
|
126
|
+
readonly flags: {
|
|
127
|
+
readonly cooling: true;
|
|
128
|
+
readonly occupancy: true;
|
|
129
|
+
};
|
|
130
|
+
readonly component: {
|
|
131
|
+
readonly attributes: {
|
|
132
|
+
readonly unoccupiedCoolingSetpoint: import("matterbridge").WritableAttribute<number, any>;
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
}, {
|
|
136
|
+
readonly flags: {
|
|
137
|
+
readonly heating: true;
|
|
138
|
+
readonly occupancy: true;
|
|
139
|
+
};
|
|
140
|
+
readonly component: {
|
|
141
|
+
readonly attributes: {
|
|
142
|
+
readonly unoccupiedHeatingSetpoint: import("matterbridge").WritableAttribute<number, any>;
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
}, {
|
|
146
|
+
readonly flags: {
|
|
147
|
+
readonly autoMode: true;
|
|
148
|
+
};
|
|
149
|
+
readonly component: {
|
|
150
|
+
readonly attributes: {
|
|
151
|
+
readonly minSetpointDeadBand: import("matterbridge").WritableAttribute<number, any>;
|
|
152
|
+
readonly thermostatRunningMode: import("matterbridge").OptionalAttribute<Thermostat.ThermostatRunningMode, any>;
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
}, {
|
|
156
|
+
readonly flags: {
|
|
157
|
+
readonly scheduleConfiguration: true;
|
|
158
|
+
};
|
|
159
|
+
readonly component: {
|
|
160
|
+
readonly attributes: {
|
|
161
|
+
readonly startOfWeek: import("matterbridge").FixedAttribute<Thermostat.StartOfWeek, any>;
|
|
162
|
+
readonly numberOfWeeklyTransitions: import("matterbridge").FixedAttribute<number, any>;
|
|
163
|
+
readonly numberOfDailyTransitions: import("matterbridge").FixedAttribute<number, any>;
|
|
164
|
+
};
|
|
165
|
+
readonly commands: {
|
|
166
|
+
readonly setWeeklySchedule: import("matterbridge").Command<import("matterbridge").TypeFromFields<{
|
|
167
|
+
numberOfTransitionsForSequence: import("matterbridge").FieldType<number>;
|
|
168
|
+
dayOfWeekForSequence: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
169
|
+
sunday: import("matterbridge").BitFlag;
|
|
170
|
+
monday: import("matterbridge").BitFlag;
|
|
171
|
+
tuesday: import("matterbridge").BitFlag;
|
|
172
|
+
wednesday: import("matterbridge").BitFlag;
|
|
173
|
+
thursday: import("matterbridge").BitFlag;
|
|
174
|
+
friday: import("matterbridge").BitFlag;
|
|
175
|
+
saturday: import("matterbridge").BitFlag;
|
|
176
|
+
away: import("matterbridge").BitFlag;
|
|
177
|
+
}>>;
|
|
178
|
+
modeForSequence: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
179
|
+
heatSetpointPresent: import("matterbridge").BitFlag;
|
|
180
|
+
coolSetpointPresent: import("matterbridge").BitFlag;
|
|
181
|
+
}>>;
|
|
182
|
+
transitions: import("matterbridge").FieldType<import("matterbridge").TypeFromFields<{
|
|
183
|
+
transitionTime: import("matterbridge").FieldType<number>;
|
|
184
|
+
heatSetpoint: import("matterbridge").FieldType<number | null>;
|
|
185
|
+
coolSetpoint: import("matterbridge").FieldType<number | null>;
|
|
186
|
+
}>[]>;
|
|
187
|
+
}>, void, any>;
|
|
188
|
+
readonly getWeeklySchedule: import("matterbridge").Command<import("matterbridge").TypeFromFields<{
|
|
189
|
+
daysToReturn: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
190
|
+
sunday: import("matterbridge").BitFlag;
|
|
191
|
+
monday: import("matterbridge").BitFlag;
|
|
192
|
+
tuesday: import("matterbridge").BitFlag;
|
|
193
|
+
wednesday: import("matterbridge").BitFlag;
|
|
194
|
+
thursday: import("matterbridge").BitFlag;
|
|
195
|
+
friday: import("matterbridge").BitFlag;
|
|
196
|
+
saturday: import("matterbridge").BitFlag;
|
|
197
|
+
away: import("matterbridge").BitFlag;
|
|
198
|
+
}>>;
|
|
199
|
+
modeToReturn: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
200
|
+
heatSetpointPresent: import("matterbridge").BitFlag;
|
|
201
|
+
coolSetpointPresent: import("matterbridge").BitFlag;
|
|
202
|
+
}>>;
|
|
203
|
+
}>, import("matterbridge").TypeFromFields<{
|
|
204
|
+
numberOfTransitionsForSequence: import("matterbridge").FieldType<number>;
|
|
205
|
+
dayOfWeekForSequence: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
206
|
+
sunday: import("matterbridge").BitFlag;
|
|
207
|
+
monday: import("matterbridge").BitFlag;
|
|
208
|
+
tuesday: import("matterbridge").BitFlag;
|
|
209
|
+
wednesday: import("matterbridge").BitFlag;
|
|
210
|
+
thursday: import("matterbridge").BitFlag;
|
|
211
|
+
friday: import("matterbridge").BitFlag;
|
|
212
|
+
saturday: import("matterbridge").BitFlag;
|
|
213
|
+
away: import("matterbridge").BitFlag;
|
|
214
|
+
}>>;
|
|
215
|
+
modeForSequence: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
216
|
+
heatSetpointPresent: import("matterbridge").BitFlag;
|
|
217
|
+
coolSetpointPresent: import("matterbridge").BitFlag;
|
|
218
|
+
}>>;
|
|
219
|
+
transitions: import("matterbridge").FieldType<import("matterbridge").TypeFromFields<{
|
|
220
|
+
transitionTime: import("matterbridge").FieldType<number>;
|
|
221
|
+
heatSetpoint: import("matterbridge").FieldType<number | null>;
|
|
222
|
+
coolSetpoint: import("matterbridge").FieldType<number | null>;
|
|
223
|
+
}>[]>;
|
|
224
|
+
}>, any>;
|
|
225
|
+
readonly clearWeeklySchedule: import("matterbridge").Command<void, void, any>;
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
}, {
|
|
229
|
+
readonly flags: {
|
|
230
|
+
readonly setback: true;
|
|
231
|
+
};
|
|
232
|
+
readonly component: {
|
|
233
|
+
readonly attributes: {
|
|
234
|
+
readonly occupiedSetback: import("matterbridge").WritableAttribute<number | null, any>;
|
|
235
|
+
readonly occupiedSetbackMin: import("matterbridge").FixedAttribute<number | null, any>;
|
|
236
|
+
readonly occupiedSetbackMax: import("matterbridge").FixedAttribute<number | null, any>;
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
}, {
|
|
240
|
+
readonly flags: {
|
|
241
|
+
readonly setback: true;
|
|
242
|
+
readonly occupancy: true;
|
|
243
|
+
};
|
|
244
|
+
readonly component: {
|
|
245
|
+
readonly attributes: {
|
|
246
|
+
readonly unoccupiedSetback: import("matterbridge").WritableAttribute<number | null, any>;
|
|
247
|
+
readonly unoccupiedSetbackMin: import("matterbridge").FixedAttribute<number | null, any>;
|
|
248
|
+
readonly unoccupiedSetbackMax: import("matterbridge").FixedAttribute<number | null, any>;
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
}, {
|
|
252
|
+
readonly flags: {
|
|
253
|
+
readonly presets: true;
|
|
254
|
+
};
|
|
255
|
+
readonly component: {
|
|
256
|
+
readonly attributes: {
|
|
257
|
+
readonly presetTypes: import("matterbridge").FixedAttribute<import("matterbridge").TypeFromFields<{
|
|
258
|
+
presetScenario: import("matterbridge").FieldType<Thermostat.PresetScenario>;
|
|
259
|
+
numberOfPresets: import("matterbridge").FieldType<number>;
|
|
260
|
+
presetTypeFeatures: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
261
|
+
automatic: import("matterbridge").BitFlag;
|
|
262
|
+
supportsNames: import("matterbridge").BitFlag;
|
|
263
|
+
}>>;
|
|
264
|
+
}>[], any>;
|
|
265
|
+
readonly numberOfPresets: import("matterbridge").FixedAttribute<number, any>;
|
|
266
|
+
readonly activePresetHandle: import("matterbridge").Attribute<Uint8Array<ArrayBufferLike> | null, any>;
|
|
267
|
+
readonly presets: import("matterbridge").WritableAttribute<import("matterbridge").TypeFromFields<{
|
|
268
|
+
presetHandle: import("matterbridge").FieldType<Uint8Array<ArrayBufferLike> | null>;
|
|
269
|
+
presetScenario: import("matterbridge").FieldType<Thermostat.PresetScenario>;
|
|
270
|
+
name: import("matterbridge").OptionalFieldType<string | null>;
|
|
271
|
+
coolingSetpoint: import("matterbridge").OptionalFieldType<number>;
|
|
272
|
+
heatingSetpoint: import("matterbridge").OptionalFieldType<number>;
|
|
273
|
+
builtIn: import("matterbridge").FieldType<boolean | null>;
|
|
274
|
+
}>[], any>;
|
|
275
|
+
};
|
|
276
|
+
readonly commands: {
|
|
277
|
+
readonly setActivePresetRequest: import("matterbridge").Command<import("matterbridge").TypeFromFields<{
|
|
278
|
+
presetHandle: import("matterbridge").FieldType<Uint8Array<ArrayBufferLike> | null>;
|
|
279
|
+
}>, void, any>;
|
|
280
|
+
};
|
|
281
|
+
};
|
|
282
|
+
}, {
|
|
283
|
+
readonly flags: {
|
|
284
|
+
readonly matterScheduleConfiguration: true;
|
|
285
|
+
};
|
|
286
|
+
readonly component: {
|
|
287
|
+
readonly attributes: {
|
|
288
|
+
readonly scheduleTypes: import("matterbridge").FixedAttribute<import("matterbridge").TypeFromFields<{
|
|
289
|
+
systemMode: import("matterbridge").FieldType<Thermostat.SystemMode>;
|
|
290
|
+
numberOfSchedules: import("matterbridge").FieldType<number>;
|
|
291
|
+
scheduleTypeFeatures: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
292
|
+
supportsPresets: import("matterbridge").BitFlag;
|
|
293
|
+
supportsSetpoints: import("matterbridge").BitFlag;
|
|
294
|
+
supportsNames: import("matterbridge").BitFlag;
|
|
295
|
+
supportsOff: import("matterbridge").BitFlag;
|
|
296
|
+
}>>;
|
|
297
|
+
}>[], any>;
|
|
298
|
+
readonly numberOfSchedules: import("matterbridge").FixedAttribute<number, any>;
|
|
299
|
+
readonly numberOfScheduleTransitions: import("matterbridge").FixedAttribute<number, any>;
|
|
300
|
+
readonly numberOfScheduleTransitionPerDay: import("matterbridge").FixedAttribute<number | null, any>;
|
|
301
|
+
readonly activeScheduleHandle: import("matterbridge").Attribute<Uint8Array<ArrayBufferLike> | null, any>;
|
|
302
|
+
readonly schedules: import("matterbridge").WritableAttribute<import("matterbridge").TypeFromFields<{
|
|
303
|
+
scheduleHandle: import("matterbridge").FieldType<Uint8Array<ArrayBufferLike> | null>;
|
|
304
|
+
systemMode: import("matterbridge").FieldType<Thermostat.SystemMode>;
|
|
305
|
+
name: import("matterbridge").OptionalFieldType<string>;
|
|
306
|
+
presetHandle: import("matterbridge").OptionalFieldType<Uint8Array<ArrayBufferLike>>;
|
|
307
|
+
transitions: import("matterbridge").FieldType<import("matterbridge").TypeFromFields<{
|
|
308
|
+
dayOfWeek: import("matterbridge").FieldType<import("matterbridge").TypeFromPartialBitSchema<{
|
|
309
|
+
sunday: import("matterbridge").BitFlag;
|
|
310
|
+
monday: import("matterbridge").BitFlag;
|
|
311
|
+
tuesday: import("matterbridge").BitFlag;
|
|
312
|
+
wednesday: import("matterbridge").BitFlag;
|
|
313
|
+
thursday: import("matterbridge").BitFlag;
|
|
314
|
+
friday: import("matterbridge").BitFlag;
|
|
315
|
+
saturday: import("matterbridge").BitFlag;
|
|
316
|
+
away: import("matterbridge").BitFlag;
|
|
317
|
+
}>>;
|
|
318
|
+
transitionTime: import("matterbridge").FieldType<number>;
|
|
319
|
+
presetHandle: import("matterbridge").OptionalFieldType<Uint8Array<ArrayBufferLike>>;
|
|
320
|
+
systemMode: import("matterbridge").OptionalFieldType<Thermostat.SystemMode>;
|
|
321
|
+
coolingSetpoint: import("matterbridge").OptionalFieldType<number>;
|
|
322
|
+
heatingSetpoint: import("matterbridge").OptionalFieldType<number>;
|
|
323
|
+
}>[]>;
|
|
324
|
+
builtIn: import("matterbridge").FieldType<boolean | null>;
|
|
325
|
+
}>[], any>;
|
|
326
|
+
};
|
|
327
|
+
readonly commands: {
|
|
328
|
+
readonly setActiveScheduleRequest: import("matterbridge").Command<import("matterbridge").TypeFromFields<{
|
|
329
|
+
scheduleHandle: import("matterbridge").FieldType<Uint8Array<ArrayBufferLike>>;
|
|
330
|
+
}>, void, any>;
|
|
331
|
+
};
|
|
332
|
+
};
|
|
333
|
+
}, {
|
|
334
|
+
readonly flags: {
|
|
335
|
+
readonly autoMode: true;
|
|
336
|
+
readonly heating: false;
|
|
337
|
+
};
|
|
338
|
+
readonly component: false;
|
|
339
|
+
}, {
|
|
340
|
+
readonly flags: {
|
|
341
|
+
readonly autoMode: true;
|
|
342
|
+
readonly cooling: false;
|
|
343
|
+
};
|
|
344
|
+
readonly component: false;
|
|
345
|
+
}, {
|
|
346
|
+
readonly flags: {
|
|
347
|
+
readonly heating: false;
|
|
348
|
+
readonly cooling: false;
|
|
349
|
+
};
|
|
350
|
+
readonly component: false;
|
|
351
|
+
}];
|
|
352
|
+
}>, readonly [Thermostat.Feature.Heating]>, typeof ThermostatServer, import("matterbridge/matter/behaviors").ThermostatInterface>;
|
|
353
|
+
export declare class ThermostatServerAir extends ThermostatServerAir_base {
|
|
354
|
+
setpointRaiseLower(request: Thermostat.SetpointRaiseLowerRequest): MaybePromise;
|
|
355
|
+
}
|
|
356
|
+
export declare function createThermostatClusterServer({ behaviors }: Endpoint): void;
|
|
357
|
+
export {};
|
|
358
|
+
//# sourceMappingURL=endpoint-air-thermostat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-air-thermostat.d.ts","sourceRoot":"","sources":["../src/endpoint-air-thermostat.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIjE,qBAAa,mBAAoB,SAAQ,wBAExC;IAEY,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,yBAAyB,GAAG,YAAY;CAI3F;AAGD,wBAAgB,6BAA6B,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,IAAI,CAqD3E"}
|