diff --git a/lib/features/scene/helper/scene_operations_data_helper.dart b/lib/features/scene/helper/scene_operations_data_helper.dart index 5746840..91dd409 100644 --- a/lib/features/scene/helper/scene_operations_data_helper.dart +++ b/lib/features/scene/helper/scene_operations_data_helper.dart @@ -259,6 +259,7 @@ mixin SceneOperationsDataHelper { for (var condition in conditions) { // Create a dummy Action from Condition to reuse _mapExecutorPropertyToSceneFunction Action dummyAction = Action( + productType: condition.productType, actionExecutor: 'device_report', entityId: condition.entityId, executorProperty: ExecutorProperty( @@ -833,6 +834,7 @@ mixin SceneOperationsDataHelper { SceneStaticFunction _createSwitch1Function(Action action, bool isAutomation, String? comparator, String? uniqueCustomId) { + print('action.productType1=${action.productType}'); switch (action.productType) { case "3G": return _createSceneFunction( @@ -858,12 +860,24 @@ mixin SceneOperationsDataHelper { comparator, uniqueCustomId, ); - default: + case "1G": return _createSceneFunction( action, '1 Gang Button Switch L-L', Assets.oneGang, - 'Light Switch', + 'Light 1 Switch', + OperationDialogType.onOff, + _createOnOffOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); + default: + return _createSceneFunction( + action, + 'None', + Assets.assetsRemoteUnlockReq, + 'None', OperationDialogType.onOff, _createOnOffOptions(), isAutomation, @@ -1434,6 +1448,7 @@ mixin SceneOperationsDataHelper { return [ _mapExecutorPropertyToSceneFunction( Action( + productType: '', entityId: deviceId, executorProperty: ExecutorProperty( functionCode: taskItem.code, diff --git a/lib/features/scene/model/scene_details_model.dart b/lib/features/scene/model/scene_details_model.dart index 5d392fb..b5760d3 100644 --- a/lib/features/scene/model/scene_details_model.dart +++ b/lib/features/scene/model/scene_details_model.dart @@ -74,7 +74,7 @@ class Action { ExecutorProperty? executorProperty; String? name; String? type; - String? productType; + final String productType; Action({ required this.actionExecutor, @@ -82,7 +82,7 @@ class Action { this.executorProperty, this.name, this.type, - this.productType, + required this.productType, }); String toRawJson() => json.encode(toJson()); @@ -94,7 +94,7 @@ class Action { entityId: json["entityId"] as String, name: json['name'] as String?, type: json['type'] as String?, - productType: json['productType'] as String?, + productType: json['productType'] as String, ); } if (json["executorProperty"] == null) { @@ -105,7 +105,7 @@ class Action { actionExecutor: json["actionExecutor"] as String, entityId: json["entityId"] as String, executorProperty: ExecutorProperty.fromJson(json["executorProperty"]), - productType: json['productType'] as String?, + productType: json['productType'] as String, ); } @@ -146,12 +146,14 @@ class Condition { final String entityId; final String entityType; final Expr expr; + final String productType; Condition({ required this.code, required this.entityId, required this.entityType, required this.expr, + required this.productType, }); factory Condition.fromRawJson(String str) => @@ -164,6 +166,7 @@ class Condition { entityId: json["entityId"], entityType: json["entityType"], expr: Expr.fromJson(json["expr"]), + productType: json['productType'] as String, ); Map toJson() => {