Inclusion/exclusion improvements

This commit is contained in:
Adrian Jagielak
2025-07-28 16:57:57 +02:00
parent d131297f2a
commit 1aad80ed38
5 changed files with 121 additions and 108 deletions

View File

@@ -1,3 +1,61 @@
export type DeviceFunctionality =
| 'appliance'
| 'climate'
| 'energy'
| 'ev_charger'
| 'lighting'
| 'media'
| 'other'
| 'power'
| 'safety'
| 'security'
| 'shading'
| string;
export type DeviceType =
| 'appliance'
| 'battery'
| 'blinds'
| 'boiler'
| 'chargepoint'
| 'door_lock'
| 'energy_storage'
| 'fan'
| 'fire_detector'
| 'garage_door'
| 'gas_detector'
| 'gate'
| 'heat_detector'
| 'heat_pump'
| 'heater'
| 'input'
| 'inverter'
| 'leak_detector'
| 'light'
| 'media_player'
| 'meter'
| 'none'
| 'sensor'
| 'siren'
| 'thermostat'
| 'water_valve'
| string;
export type DeviceSubType =
| 'car_charger'
| 'door'
| 'door_lock'
| 'garage'
| 'lock'
| 'main_elec'
| 'none'
| 'other'
| 'presence'
| 'scene'
| 'window'
| 'window_lock'
| string;
export type VinculumPd7Device = {
client?: {
// User-defined device name
@@ -5,75 +63,29 @@ export type VinculumPd7Device = {
} | null;
// FIMP Device ID.
id: number;
fimp?: {
adapter?: 'zigbee' | 'zwave-ad' | string | null;
// FIMP Device address (ID) in the context of its adapter.
address?: string | null;
} | null;
// FIMP Thing Address (ID).
thing?: number | null;
thing?: string | null;
// "Model" string, e.g. "zb - _TZ3040_bb6xaihh - TS0202"
// The first one is the adapter, the second one is the manufacturer, the third one is the device model.
model?: string | null;
// Device model, e.g. "TS0202"
modelAlias?: string | null;
functionality?:
| 'appliance'
| 'climate'
| 'energy'
| 'ev_charger'
| 'lighting'
| 'media'
| 'other'
| 'power'
| 'safety'
| 'security'
| 'shading'
| string
| null;
functionality?: DeviceFunctionality | null;
services?: Record<string, VinculumPd7Service> | null;
type?: {
// User-defined device type
type?:
| 'appliance'
| 'battery'
| 'blinds'
| 'boiler'
| 'chargepoint'
| 'door_lock'
| 'energy_storage'
| 'fan'
| 'fire_detector'
| 'garage_door'
| 'gas_detector'
| 'gate'
| 'heat_detector'
| 'heat_pump'
| 'heater'
| 'input'
| 'inverter'
| 'leak_detector'
| 'light'
| 'media_player'
| 'meter'
| 'none'
| 'sensor'
| 'siren'
| 'thermostat'
| 'water_valve'
| string
| null;
type?: DeviceType | null;
// User-defined device subtype
subtype?:
| 'car_charger'
| 'door'
| 'door_lock'
| 'garage'
| 'lock'
| 'main_elec'
| 'none'
| 'other'
| 'presence'
| 'scene'
| 'window'
| 'window_lock'
| string
| null;
subtype?: DeviceSubType | null;
// Supported device types and subtypes for this device
supported?: {
[key: DeviceType]: DeviceSubType[];
} | null;
} | null;
};