def create_home_page(self):
	self.session.custom.covert = True
	fc = self.session.custom.fc 
	tag_provider = "[%s_SCADA_TAG_PROVIDER]" % (fc)
	data_to_read = system.tag.readBlocking([tag_provider+"Configuration/PLC"])
	data = system.util.jsonDecode(data_to_read[0].value)
	try: devices_list = sorted(data.keys())
	except: devices_list = []

	if len(devices_list)>0:
		instances = []
		dashboard_devices = {}
		for i in devices_list:
			area = data[i]['Area']
			if len(data[i]['Area'])>0:
				
				dashboard_devices.update({i:area})
			else:
				dashboard_devices.update({i:'unknown'})
			instances.append({
							    "instanceStyle": {
							      "classes": "",
							      "margin": "5px"
							    },
							    "instancePosition": {},
							    "tagProps": [
							      i,
							      "value",
							      "value",
							      "value",
							      "value",
							      "value",
							      "value",
							      "value",
							      "value",
							      "value"
							    ],"Counts":{"Diag":0, "High":0, "Low":0, "Medium":0},
							    "area":data[i]['Area'],
							    "subarea":data[i]['SubArea']
							  })
		self.custom.Devices = sorted(dashboard_devices.items(), key=lambda x:x[1], reverse = False)
		self.getChild("FlexRepeater").props.instances = sorted(instances, reverse = False)

def get_counters(alarm_counters, controller):
	counters = alarm_counters.get(controller,{"High":0, "Medium":0, "Low":0, "Diagnostic":0})
	return counters


def get_device_values(tag_provider, devices_list):
    tag_paths_to_read = []
    read_values = []
    for device in devices_list:
        tag_path = "%s%s/ALARMST" % (tag_provider, str(device[0]))
        tag_paths_to_read.append(tag_path)
    values = system.tag.readBlocking(tag_paths_to_read)
    for i,j in enumerate(values):
        value = values[i].value
        if value == None:
            read_values.append(0)
        else:    
            read_values.append(value)
    return read_values 


def update_home_status(self):
	orderBy = self.session.custom.alarm_filter.orderby
	fc = self.session.custom.fc
	tag_provider = "[%s_SCADA_TAG_PROVIDER]" % (fc)
	alarm_counters = system.tag.readBlocking([tag_provider + "System/device_count"])[0].value
	counters_decoded =  system.util.jsonDecode(alarm_counters)
	if not counters_decoded:
		counters_decoded = {}
	devices_list = self.custom.Devices
	values = get_device_values(tag_provider, devices_list)
	
	devices_only = []
	for device in devices_list:
		devices_only.append(str(device[0]))

	if orderBy == True:
		zipped_list = zip(values, devices_only)
	else:
		zipped_list = sorted(zip(values, devices_only), reverse = True)
		
	devices_sorted = [y for x, y in (zipped_list)]
	for i,j in enumerate(devices_sorted):
		counters = get_counters(counters_decoded, j)
		self.getChild("FlexRepeater").props.instances[i].tagProps[0] = j
		self.getChild("FlexRepeater").props.instances[i].Counts.Diag = counters.get("Diagnostic")
		self.getChild("FlexRepeater").props.instances[i].Counts.Low = counters.get("Low")
		self.getChild("FlexRepeater").props.instances[i].Counts.Medium = counters.get("Medium")
		self.getChild("FlexRepeater").props.instances[i].Counts.High = counters.get("High")
