mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-14 17:25:47 +00:00
1270 lines
42 KiB
Dart
1270 lines
42 KiB
Dart
import 'package:syncrow_app/features/devices/model/function_model.dart';
|
|
import 'package:syncrow_app/features/scene/enum/ac_values.dart';
|
|
import 'package:syncrow_app/features/scene/model/scene_details_model.dart';
|
|
import 'package:syncrow_app/features/scene/model/scene_static_function.dart';
|
|
import 'package:syncrow_app/generated/assets.dart';
|
|
import 'package:syncrow_app/utils/resource_manager/constants.dart';
|
|
|
|
mixin SceneOperationsDataHelper {
|
|
List<SceneStaticFunction> getFunctionsWithIcons({
|
|
DeviceType? type,
|
|
required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
}) {
|
|
switch (type) {
|
|
case DeviceType.LightBulb:
|
|
return lightBulbFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
case DeviceType.CeilingSensor:
|
|
return ceilingSensorFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
case DeviceType.WallSensor:
|
|
return wallSensorFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
case DeviceType.AC:
|
|
return acFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
case DeviceType.DoorLock:
|
|
return doorLockFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
case DeviceType.Curtain:
|
|
return curtainFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
case DeviceType.ThreeGang:
|
|
return threeGangFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
case DeviceType.Gateway:
|
|
return gatewayFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
default:
|
|
return lightBulbFunctions(
|
|
functions: functions,
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
functionValue: null,
|
|
);
|
|
}
|
|
}
|
|
|
|
String getTitle({DeviceType? type}) {
|
|
switch (type) {
|
|
case DeviceType.LightBulb:
|
|
return 'Light Bulb Functions';
|
|
case DeviceType.CeilingSensor:
|
|
return 'Presence Sensor Functions';
|
|
case DeviceType.WallSensor:
|
|
return 'Human Presence Sensor Functions';
|
|
case DeviceType.AC:
|
|
return 'AC Functions';
|
|
case DeviceType.DoorLock:
|
|
return 'Door Lock Functions';
|
|
case DeviceType.Curtain:
|
|
return 'Curtain Functions';
|
|
case DeviceType.ThreeGang:
|
|
return '3G Light Switch Functions';
|
|
case DeviceType.Gateway:
|
|
return 'Gateway Functions';
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
|
|
/// presence sensor
|
|
List<SceneStaticFunction> ceilingSensorFunctions({
|
|
required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
required dynamic functionValue,
|
|
}) {
|
|
return [
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsSensitivityFunction,
|
|
operationName: 'Sensitivity',
|
|
code: 'sensitivity',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 1,
|
|
description: 1.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 2,
|
|
description: 2.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 3,
|
|
description: 3.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 4,
|
|
description: 4.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 5,
|
|
description: 5.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 6,
|
|
description: 6.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 7,
|
|
description: 7.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 8,
|
|
description: 8.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 9,
|
|
description: 9.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 10,
|
|
description: 10.toString(),
|
|
),
|
|
],
|
|
),
|
|
];
|
|
}
|
|
|
|
List<SceneStaticFunction> curtainFunctions(
|
|
{required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
required functionValue}) {
|
|
return [];
|
|
}
|
|
|
|
List<SceneStaticFunction> doorLockFunctions({
|
|
required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
required functionValue,
|
|
}) {
|
|
return [
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsIconsDoorLock,
|
|
operationName: 'Set Door lock Normal Open',
|
|
functionValue: functionValue,
|
|
code: 'normal_open_switch',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
|
|
],
|
|
),
|
|
];
|
|
}
|
|
|
|
List<SceneStaticFunction> wallSensorFunctions({
|
|
required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
required functionValue,
|
|
}) {
|
|
return [
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsFarDetection,
|
|
operationName: 'Far Detection',
|
|
code: 'far_detection',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 75,
|
|
description: '75cm',
|
|
iconValue: '75',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 150,
|
|
description: '150cm',
|
|
iconValue: '150',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 225,
|
|
description: '225cm',
|
|
iconValue: '225',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 300,
|
|
description: '300cm',
|
|
iconValue: '300',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 375,
|
|
description: '375cm',
|
|
iconValue: '375',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 450,
|
|
description: '450cm',
|
|
iconValue: '450',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 525,
|
|
description: '525cm',
|
|
iconValue: '525',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 600,
|
|
description: '600cm',
|
|
iconValue: '600',
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsMotionDetection,
|
|
operationName: 'Motion Detection Sensitivity',
|
|
code: 'motion_sensitivity_value',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 1,
|
|
description: 1.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 2,
|
|
description: 2.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 3,
|
|
description: 3.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 4,
|
|
description: 4.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 5,
|
|
description: 5.toString(),
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsMotionlessDetection,
|
|
operationName: 'Motionless Detection Sensitivity',
|
|
code: 'motionless_sensitivity',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
iconValue: '1',
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 1,
|
|
description: '1',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 2,
|
|
description: '2',
|
|
iconValue: '2',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 3,
|
|
description: '3',
|
|
iconValue: '3',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 4,
|
|
description: '4',
|
|
iconValue: '4',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 5,
|
|
description: '5',
|
|
iconValue: '5',
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsIndicator,
|
|
operationName: 'Indicator',
|
|
code: 'indicator',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsNobodyTime,
|
|
operationName: 'Nobody Time',
|
|
code: 'presence_time',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(icon: '', value: 0),
|
|
],
|
|
),
|
|
];
|
|
}
|
|
|
|
List<SceneStaticFunction> lightBulbFunctions(
|
|
{required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
required functionValue}) {
|
|
return [];
|
|
}
|
|
|
|
List<SceneStaticFunction> gatewayFunctions({
|
|
required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
required functionValue,
|
|
}) {
|
|
return [
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsSwitchAlarmSound,
|
|
operationName: 'Switch Alarm Sound',
|
|
code: 'switch_alarm_sound',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsMasterState,
|
|
operationName: 'Master State',
|
|
code: 'master_state',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower,
|
|
description: "Alarm",
|
|
value: 'alarm',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "Normal",
|
|
value: 'normal',
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsFactoryReset,
|
|
operationName: 'Factory Reset',
|
|
code: 'factory_reset',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneRefresh, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsResetOff, description: "OFF", value: false),
|
|
],
|
|
),
|
|
];
|
|
}
|
|
|
|
List<SceneStaticFunction> threeGangFunctions({
|
|
required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
required functionValue,
|
|
}) {
|
|
return [
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsAcPower,
|
|
operationName: 'Light 1 Switch',
|
|
code: 'switch_1',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneRefresh,
|
|
description: "Reverse Switch",
|
|
value: null,
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsAcPower,
|
|
operationName: 'Light 2 Switch',
|
|
code: 'switch_2',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneRefresh,
|
|
description: "Reverse Switch",
|
|
value: null,
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsAcPower,
|
|
operationName: 'Light 3 Switch',
|
|
code: 'switch_3',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneRefresh,
|
|
description: "Reverse Switch",
|
|
value: null,
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsLightCountdown,
|
|
operationName: 'Light 1 CountDown',
|
|
code: 'countdown_1',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(icon: '', value: 0),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsLightCountdown,
|
|
operationName: 'Light 2 CountDown',
|
|
code: 'countdown_2',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(icon: '', value: 0),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsLightCountdown,
|
|
operationName: 'Light 3 CountDown',
|
|
code: 'countdown_3',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(icon: '', value: 0),
|
|
],
|
|
),
|
|
];
|
|
}
|
|
|
|
/// smart ac thermostat
|
|
List<SceneStaticFunction> acFunctions({
|
|
required List<FunctionModel> functions,
|
|
required String deviceId,
|
|
required String deviceName,
|
|
required functionValue,
|
|
}) {
|
|
return [
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsAcPower,
|
|
operationName: 'Power',
|
|
code: 'switch',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower,
|
|
description: "ON",
|
|
value: true,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "OFF",
|
|
value: false,
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsFreezing,
|
|
operationName: 'Mode',
|
|
code: 'mode',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcCooling,
|
|
description: AcValuesEnums.Cooling.name,
|
|
value: TempModes.cold.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcHeating,
|
|
description: AcValuesEnums.Heating.name,
|
|
value: TempModes.hot.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFanSpeed,
|
|
description: AcValuesEnums.Ventilation.name,
|
|
value: TempModes.wind.name,
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsTempreture,
|
|
operationName: 'Set Temperature',
|
|
code: 'temp_set',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsCelsiusDegrees,
|
|
value: 0,
|
|
description: 'COOL TO',
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsFanSpeed,
|
|
operationName: 'Fan Speed',
|
|
code: 'level',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcFanLow,
|
|
description: ValueACRange.LOW.name,
|
|
value: FanSpeeds.low.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcFanMiddle,
|
|
description: ValueACRange.MIDDLE.name,
|
|
value: FanSpeeds.middle.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcFanHigh,
|
|
description: ValueACRange.HIGH.name,
|
|
value: FanSpeeds.high.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcFanAuto,
|
|
description: ValueACRange.AUTO.name,
|
|
value: FanSpeeds.auto.name,
|
|
),
|
|
],
|
|
),
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: deviceName,
|
|
icon: Assets.assetsChildLock,
|
|
operationName: 'Child Lock',
|
|
code: 'child_lock',
|
|
functionValue: functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneChildLock,
|
|
description: 'Lock',
|
|
value: true,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneChildUnlock,
|
|
description: 'Unlock',
|
|
value: false,
|
|
),
|
|
],
|
|
),
|
|
];
|
|
}
|
|
|
|
List<SceneStaticFunction> getTaskListFunctionsFromApi({
|
|
required List<Action> actions,
|
|
required String deviceId,
|
|
}) {
|
|
List<SceneStaticFunction> functions = [];
|
|
|
|
for (var action in actions) {
|
|
ExecutorProperty executorProperty = action.executorProperty;
|
|
|
|
switch (executorProperty.functionCode) {
|
|
case 'sensitivity':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Presence Sensor',
|
|
deviceIcon: Assets.assetsIconsSensors,
|
|
icon: Assets.assetsSensitivityFunction,
|
|
operationName: 'Sensitivity',
|
|
code: 'sensitivity',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 1,
|
|
description: 1.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 2,
|
|
description: 2.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 3,
|
|
description: 3.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 4,
|
|
description: 4.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 5,
|
|
description: 5.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 6,
|
|
description: 6.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 7,
|
|
description: 7.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 8,
|
|
description: 8.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 9,
|
|
description: 9.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 10,
|
|
description: 10.toString(),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'normal_open_switch':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'WIFI LOCK PRO',
|
|
deviceIcon: Assets.assetsIconsDoorLock,
|
|
icon: Assets.assetsIconsDoorLock,
|
|
operationName: 'Set Door lock Normal Open',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'normal_open_switch',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "OFF",
|
|
value: false,
|
|
),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'far_detection':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Human Presence Sensor',
|
|
deviceIcon: Assets.assetsIconsSensors,
|
|
icon: Assets.assetsFarDetection,
|
|
operationName: 'Far Detection',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'far_detection',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 75,
|
|
description: '75cm',
|
|
iconValue: '75',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 150,
|
|
description: '150cm',
|
|
iconValue: '150',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 225,
|
|
description: '225cm',
|
|
iconValue: '225',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 300,
|
|
description: '300cm',
|
|
iconValue: '300',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 375,
|
|
description: '375cm',
|
|
iconValue: '375',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 450,
|
|
description: '450cm',
|
|
iconValue: '450',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 525,
|
|
description: '525cm',
|
|
iconValue: '525',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 600,
|
|
description: '600cm',
|
|
iconValue: '600',
|
|
),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'motion_sensitivity_value':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Human Presence Sensor',
|
|
deviceIcon: Assets.assetsIconsSensors,
|
|
icon: Assets.assetsMotionDetection,
|
|
operationName: 'Motion Detection Sensitivity',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'motion_sensitivity_value',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 1,
|
|
description: 1.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 2,
|
|
description: 2.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 3,
|
|
description: 3.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 4,
|
|
description: 4.toString(),
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSensitivityOperationIcon,
|
|
value: 5,
|
|
description: 5.toString(),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'motionless_sensitivity':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Human Presence Sensor',
|
|
deviceIcon: Assets.assetsIconsSensors,
|
|
icon: Assets.assetsMotionlessDetection,
|
|
operationName: 'Motionless Detection Sensitivity',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'motion_sensitivity_value',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
iconValue: '1',
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 1,
|
|
description: '1',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 2,
|
|
description: '2',
|
|
iconValue: '2',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 3,
|
|
description: '3',
|
|
iconValue: '3',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 4,
|
|
description: '4',
|
|
iconValue: '4',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFarDetectionFunction,
|
|
value: 5,
|
|
description: '5',
|
|
iconValue: '5',
|
|
),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'indicator':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Human Presence Sensor',
|
|
deviceIcon: Assets.assetsIconsSensors,
|
|
icon: Assets.assetsIndicator,
|
|
operationName: 'Indicator',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'indicator',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "OFF",
|
|
value: false,
|
|
),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'presence_time':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Human Presence Sensor',
|
|
deviceIcon: Assets.assetsIconsSensors,
|
|
icon: Assets.assetsNobodyTime,
|
|
operationName: 'Nobody Time',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'presence_time',
|
|
operationalValues: [
|
|
SceneOperationalValue(icon: '', value: 0),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'switch_alarm_sound':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Multi-Mode Gateway Z-W-B',
|
|
deviceIcon: Assets.assetsIconsGateway,
|
|
icon: Assets.assetsSwitchAlarmSound,
|
|
operationName: 'Switch Alarm Sound',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'switch_alarm_sound',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower,
|
|
description: "ON",
|
|
value: true,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "OFF",
|
|
value: false),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'master_state':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Multi-Mode Gateway Z-W-B',
|
|
deviceIcon: Assets.assetsIconsGateway,
|
|
icon: Assets.assetsMasterState,
|
|
operationName: 'Master State',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'master_state',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower,
|
|
description: "Alarm",
|
|
value: 'alarm',
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "Normal",
|
|
value: 'normal',
|
|
),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'factory_reset':
|
|
functions.add(
|
|
SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Multi-Mode Gateway Z-W-B',
|
|
deviceIcon: Assets.assetsIconsGateway,
|
|
icon: Assets.assetsFactoryReset,
|
|
operationName: 'Reset Factory',
|
|
functionValue: executorProperty.functionValue,
|
|
code: 'factory_reset',
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneRefresh,
|
|
description: "ON",
|
|
value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsResetOff,
|
|
description: "OFF",
|
|
value: false,
|
|
),
|
|
],
|
|
),
|
|
);
|
|
break;
|
|
case 'switch_1':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: '3 Gang Button Switch L-L',
|
|
deviceIcon: Assets.assetsIcons3GangSwitch,
|
|
icon: Assets.assetsAcPower,
|
|
operationName: 'Light 1 Switch',
|
|
code: 'switch_1',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower,
|
|
description: "ON",
|
|
value: true,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "OFF",
|
|
value: false),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneRefresh,
|
|
description: "Reverse Switch",
|
|
value: null,
|
|
),
|
|
],
|
|
));
|
|
break;
|
|
case 'switch_2':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: '3 Gang Button Switch L-L',
|
|
deviceIcon: Assets.assetsIcons3GangSwitch,
|
|
icon: Assets.assetsAcPower,
|
|
operationName: 'Light 2 Switch',
|
|
code: 'switch_2',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "OFF",
|
|
value: false),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneRefresh,
|
|
description: "Reverse Switch",
|
|
value: null,
|
|
),
|
|
],
|
|
));
|
|
break;
|
|
case 'switch_3':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: '3 Gang Button Switch L-L',
|
|
deviceIcon: Assets.assetsIcons3GangSwitch,
|
|
icon: Assets.assetsAcPower,
|
|
operationName: 'Light 3 Switch',
|
|
code: 'switch_3',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower, description: "ON", value: true),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "OFF",
|
|
value: false),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneRefresh,
|
|
description: "Reverse Switch",
|
|
value: null,
|
|
),
|
|
],
|
|
));
|
|
break;
|
|
case 'countdown_1':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: '3 Gang Button Switch L-L',
|
|
deviceIcon: Assets.assetsIcons3GangSwitch,
|
|
icon: Assets.assetsLightCountdown,
|
|
operationName: 'Light 1 CountDown',
|
|
code: 'countdown_1',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(icon: '', value: 0),
|
|
],
|
|
));
|
|
break;
|
|
case 'countdown_2':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: '3 Gang Button Switch L-L',
|
|
deviceIcon: Assets.assetsIcons3GangSwitch,
|
|
icon: Assets.assetsLightCountdown,
|
|
operationName: 'Light 2 CountDown',
|
|
code: 'countdown_2',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(icon: '', value: 0),
|
|
],
|
|
));
|
|
break;
|
|
case 'countdown_3':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: '3 Gang Button Switch L-L',
|
|
deviceIcon: Assets.assetsIcons3GangSwitch,
|
|
icon: Assets.assetsLightCountdown,
|
|
operationName: 'Light 3 CountDown',
|
|
code: 'countdown_3',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(icon: '', value: 0),
|
|
],
|
|
));
|
|
break;
|
|
case 'switch':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Smart AC Thermostat - Grey - Model A',
|
|
deviceIcon: Assets.assetsIconsAC,
|
|
icon: Assets.assetsAcPower,
|
|
operationName: 'Power',
|
|
code: 'switch',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPower,
|
|
description: "ON",
|
|
value: true,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcPowerOFF,
|
|
description: "OFF",
|
|
value: false,
|
|
),
|
|
],
|
|
));
|
|
break;
|
|
case 'temp_set':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Smart AC Thermostat - Grey - Model A',
|
|
deviceIcon: Assets.assetsIconsAC,
|
|
icon: Assets.assetsTempreture,
|
|
operationName: 'Set Temperature',
|
|
code: 'temp_set',
|
|
functionValue: executorProperty.functionValue != null
|
|
? ((executorProperty.functionValue / 10) as double).toInt()
|
|
: null,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsCelsiusDegrees,
|
|
value: 0,
|
|
description: 'COOL TO',
|
|
),
|
|
],
|
|
));
|
|
break;
|
|
case 'mode':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Smart AC Thermostat - Grey - Model A',
|
|
deviceIcon: Assets.assetsIconsAC,
|
|
icon: Assets.assetsFreezing,
|
|
operationName: 'Mode',
|
|
code: 'mode',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcCooling,
|
|
description: AcValuesEnums.Cooling.name,
|
|
value: TempModes.cold.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcHeating,
|
|
description: AcValuesEnums.Heating.name,
|
|
value: TempModes.hot.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsFanSpeed,
|
|
description: AcValuesEnums.Ventilation.name,
|
|
value: TempModes.wind.name,
|
|
),
|
|
],
|
|
));
|
|
break;
|
|
case 'level':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Smart AC Thermostat - Grey - Model A',
|
|
deviceIcon: Assets.assetsIconsAC,
|
|
icon: Assets.assetsFanSpeed,
|
|
operationName: 'Fan Speed',
|
|
code: 'level',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcFanLow,
|
|
description: ValueACRange.LOW.name,
|
|
value: FanSpeeds.low.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcFanMiddle,
|
|
description: ValueACRange.MIDDLE.name,
|
|
value: FanSpeeds.middle.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcFanHigh,
|
|
description: ValueACRange.HIGH.name,
|
|
value: FanSpeeds.high.name,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsAcFanAuto,
|
|
description: ValueACRange.AUTO.name,
|
|
value: FanSpeeds.auto.name,
|
|
),
|
|
],
|
|
));
|
|
break;
|
|
case 'child_lock':
|
|
functions.add(SceneStaticFunction(
|
|
deviceId: deviceId,
|
|
deviceName: 'Smart AC Thermostat - Grey - Model A',
|
|
deviceIcon: Assets.assetsIconsAC,
|
|
icon: Assets.assetsChildLock,
|
|
operationName: 'Child Lock',
|
|
code: 'child_lock',
|
|
functionValue: executorProperty.functionValue,
|
|
operationalValues: [
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneChildLock,
|
|
description: 'Lock',
|
|
value: true,
|
|
),
|
|
SceneOperationalValue(
|
|
icon: Assets.assetsSceneChildUnlock,
|
|
description: 'Unlock',
|
|
value: false,
|
|
),
|
|
],
|
|
));
|
|
break;
|
|
default:
|
|
}
|
|
}
|
|
|
|
return functions;
|
|
}
|
|
}
|