mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 07:07:19 +00:00
finished AC
This commit is contained in:
@ -5,83 +5,114 @@ enum TempModes { hot, cold, wind }
|
||||
enum FanSpeeds { auto, low, middle, high }
|
||||
|
||||
class AcStatusModel {
|
||||
String uuid;
|
||||
bool acSwitch;
|
||||
String modeString;
|
||||
int tempSet;
|
||||
int currentTemp;
|
||||
String fanSpeedsString;
|
||||
bool childLock;
|
||||
late TempModes acMode;
|
||||
late FanSpeeds acFanSpeed;
|
||||
final String uuid;
|
||||
final bool acSwitch;
|
||||
final String modeString;
|
||||
final int tempSet;
|
||||
final int currentTemp;
|
||||
final String fanSpeedsString;
|
||||
final bool childLock;
|
||||
final TempModes acMode;
|
||||
final FanSpeeds acFanSpeed;
|
||||
|
||||
AcStatusModel(
|
||||
{required this.uuid,
|
||||
required this.acSwitch,
|
||||
required this.modeString,
|
||||
required this.tempSet,
|
||||
required this.currentTemp,
|
||||
required this.fanSpeedsString,
|
||||
required this.childLock}) {
|
||||
acMode = getACMode(modeString);
|
||||
acFanSpeed = getFanSpeed(fanSpeedsString);
|
||||
}
|
||||
AcStatusModel({
|
||||
required this.uuid,
|
||||
required this.acSwitch,
|
||||
required this.modeString,
|
||||
required this.tempSet,
|
||||
required this.currentTemp,
|
||||
required this.fanSpeedsString,
|
||||
required this.childLock,
|
||||
}) : acMode = getACMode(modeString),
|
||||
acFanSpeed = getFanSpeed(fanSpeedsString);
|
||||
|
||||
factory AcStatusModel.fromJson(String id, List<Status> jsonList) {
|
||||
late bool _acSwitch;
|
||||
late String _mode;
|
||||
late int _tempSet;
|
||||
late int _currentTemp;
|
||||
late String _fanSpeeds;
|
||||
late bool _childLock;
|
||||
for (int i = 0; i < jsonList.length; i++) {
|
||||
if (jsonList[i].code == 'switch') {
|
||||
_acSwitch = jsonList[i].value ?? false;
|
||||
} else if (jsonList[i].code == 'mode') {
|
||||
_mode = jsonList[i].value ?? TempModes.cold;
|
||||
} else if (jsonList[i].code == 'temp_set') {
|
||||
_tempSet = jsonList[i].value ?? 210;
|
||||
} else if (jsonList[i].code == 'temp_current') {
|
||||
_currentTemp = jsonList[i].value ?? 210;
|
||||
} else if (jsonList[i].code == 'level') {
|
||||
_fanSpeeds = jsonList[i].value ?? 210;
|
||||
} else if (jsonList[i].code == 'child_lock') {
|
||||
_childLock = jsonList[i].value ?? false;
|
||||
late bool acSwitch;
|
||||
late String mode;
|
||||
late int tempSet;
|
||||
late int currentTemp;
|
||||
late String fanSpeeds;
|
||||
late bool childLock;
|
||||
|
||||
for (var status in jsonList) {
|
||||
switch (status.code) {
|
||||
case 'switch':
|
||||
acSwitch = status.value ?? false;
|
||||
break;
|
||||
case 'mode':
|
||||
mode = status.value ?? 'cold'; // default to 'cold' if null
|
||||
break;
|
||||
case 'temp_set':
|
||||
tempSet = status.value ?? 210; // default value if null
|
||||
break;
|
||||
case 'temp_current':
|
||||
currentTemp = status.value ?? 210; // default value if null
|
||||
break;
|
||||
case 'level':
|
||||
fanSpeeds = status.value ?? 'low'; // default value if null
|
||||
break;
|
||||
case 'child_lock':
|
||||
childLock = status.value ?? false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return AcStatusModel(
|
||||
uuid: id,
|
||||
acSwitch: _acSwitch,
|
||||
modeString: _mode,
|
||||
tempSet: _tempSet,
|
||||
currentTemp: _currentTemp,
|
||||
fanSpeedsString: _fanSpeeds,
|
||||
childLock: _childLock);
|
||||
uuid: id,
|
||||
acSwitch: acSwitch,
|
||||
modeString: mode,
|
||||
tempSet: tempSet,
|
||||
currentTemp: currentTemp,
|
||||
fanSpeedsString: fanSpeeds,
|
||||
childLock: childLock,
|
||||
);
|
||||
}
|
||||
|
||||
AcStatusModel copyWith({
|
||||
String? uuid,
|
||||
bool? acSwitch,
|
||||
String? modeString,
|
||||
int? tempSet,
|
||||
int? currentTemp,
|
||||
String? fanSpeedsString,
|
||||
bool? childLock,
|
||||
}) {
|
||||
return AcStatusModel(
|
||||
uuid: uuid ?? this.uuid,
|
||||
acSwitch: acSwitch ?? this.acSwitch,
|
||||
modeString: modeString ?? this.modeString,
|
||||
tempSet: tempSet ?? this.tempSet,
|
||||
currentTemp: currentTemp ?? this.currentTemp,
|
||||
fanSpeedsString: fanSpeedsString ?? this.fanSpeedsString,
|
||||
childLock: childLock ?? this.childLock,
|
||||
);
|
||||
}
|
||||
|
||||
static TempModes getACMode(String value) {
|
||||
if (value == 'cold') {
|
||||
return TempModes.cold;
|
||||
} else if (value == 'hot') {
|
||||
return TempModes.hot;
|
||||
} else if (value == 'wind') {
|
||||
return TempModes.wind;
|
||||
} else {
|
||||
return TempModes.cold;
|
||||
switch (value) {
|
||||
case 'cold':
|
||||
return TempModes.cold;
|
||||
case 'hot':
|
||||
return TempModes.hot;
|
||||
case 'wind':
|
||||
return TempModes.wind;
|
||||
default:
|
||||
return TempModes.cold;
|
||||
}
|
||||
}
|
||||
|
||||
static FanSpeeds getFanSpeed(String value) {
|
||||
if (value == 'low') {
|
||||
return FanSpeeds.low;
|
||||
} else if (value == 'middle') {
|
||||
return FanSpeeds.middle;
|
||||
} else if (value == 'high') {
|
||||
return FanSpeeds.high;
|
||||
} else if (value == 'auto') {
|
||||
return FanSpeeds.auto;
|
||||
} else {
|
||||
return FanSpeeds.auto;
|
||||
switch (value) {
|
||||
case 'low':
|
||||
return FanSpeeds.low;
|
||||
case 'middle':
|
||||
return FanSpeeds.middle;
|
||||
case 'high':
|
||||
return FanSpeeds.high;
|
||||
case 'auto':
|
||||
return FanSpeeds.auto;
|
||||
default:
|
||||
return FanSpeeds.auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user