Source code for procsimulator.CommunitySpecificator

import json

"""
Fill json configuration house
(In the future should be replaced with a graphical user interface)
"""

[docs]class CommunitySpecificator: def __init__(self, configuration_file): """ This class creates the json configuration file Args: configuration_file: path of the JSON community configuration file """ self.configuration_file = configuration_file
[docs] def execute(self): """ Creates a json file with the configuration file (houses, people of each house, appliances, schedules and activities) """ self.num_houses = 5 self.community = [] self.people = ["Ann", "Billy"] self.appliances = ["Fridge", "Vaccuum cleaner", "Washing machine", "Drying machine"] self.schedules = [] self.activities = [ { "activity": "activity_tv", "model": "LEISURE/watch_tv.conf", "daily_runs": 2, "schedule": [ { "day": "monday", "schedule": ["16:00-23:30"] }, { "day": "tuesday", "schedule": ["16:00-23:30"] }, { "day": "wednesday", "schedule": ["16:00-23:30"] }, { "day": "thursday", "schedule": ["15:00-22:30"] }, { "day": "friday", "schedule": ["15:00-18:00"] }, { "day": "saturday", "schedule": ["13:00-24:00"] }, { "day": "sunday", "schedule": ["09:00-23:30"] } ] }, { "activity": "activity_computer", "model": "LEISURE/use_pc.conf", "daily_runs": 2, "schedule": [ { "day": "monday", "schedule": ["17:00-24:00"] }, { "day": "tuesday", "schedule": ["18:00-23:00"] }, { "day": "wednesday", "schedule": ["20:00-23:00"] }, { "day": "thursday", "schedule": ["15:00-22:00"] }, { "day": "friday", "schedule": ["15:00-19:00"] }, { "day": "saturday", "schedule": ["13:00-22:00"] }, { "day": "sunday", "schedule": ["09:00-23:30"] } ] }, { "activity": "activity_music", "model": "LEISURE/listen_music.conf", "daily_runs": 0.8, "schedule": [ { "day": "monday", "schedule": ["20:00-24:00"] }, { "day": "tuesday", "schedule": ["18:00-23:00"] }, { "day": "wednesday", "schedule": ["20:00-23:00"] }, { "day": "thursday", "schedule": ["15:00-22:00"] }, { "day": "friday", "schedule": ["15:00-19:00"] }, { "day": "saturday", "schedule": ["13:00-22:00"] }, { "day": "sunday", "schedule": ["09:00-23:30"] } ] }, { "activity": "activity_breakfast", "model": "KITCHEN/preparing_breakfast.conf", "daily_runs": 1, "schedule": [ { "day": "monday", "schedule": ["07:30-08:15"] }, { "day": "tuesday", "schedule": ["07:30-08:15"] }, { "day": "wednesday", "schedule": ["07:30-08:15"] }, { "day": "thursday", "schedule": ["07:30-08:15"] }, { "day": "friday", "schedule": ["07:30-08:15"] }, { "day": "saturday", "schedule": ["07:30-08:15"] }, { "day": "sunday", "schedule": ["08:30-09:15"] } ] }, { "activity": "activity_lunch", "model": "KITCHEN/heating_lunch.conf", "daily_runs": 1, "schedule": [ { "day": "saturday", "schedule": ["11:30-12:15"] }, { "day": "sunday", "schedule": ["12:00-13:15"] } ] }, { "activity": "activity_dinner", "model": "KITCHEN/preparing_dinner.conf", "daily_runs": 1, "schedule": [ { "day": "monday", "schedule": ["18:30-19:15"] }, { "day": "tuesday", "schedule": ["18:30-19:15"] }, { "day": "wednesday", "schedule": ["18:30-19:15"] }, { "day": "thursday", "schedule": ["18:30-19:15"] }, { "day": "friday", "schedule": ["18:30-19:15"] }, { "day": "saturday", "schedule": ["18:30-19:15"] }, { "day": "sunday", "schedule": ["18:30-20:15"] } ] }, { "activity": "activity_vacuum", "model": "HOUSEHOLD/vacuum.conf", "daily_runs": 0.7, "schedule": [ { "day": "monday", "schedule": ["11:00-18:00"] }, { "day": "tuesday", "schedule": ["11:00-18:00"] }, { "day": "wednesday", "schedule": ["11:00-18:00"] }, { "day": "thursday", "schedule": ["11:00-18:00"] }, { "day": "friday", "schedule": ["18:30-19:15"] }, { "day": "saturday", "schedule": ["11:00-14:00"] }, { "day": "sunday", "schedule": ["11:00-14:00"] } ] }, { "activity": "activity_laundry", "model": "HOUSEHOLD/wash_laundry.conf", "daily_runs": 0.3, "schedule": [ { "day": "monday", "schedule": ["07:00-12:00", "17:00-23:00"] }, { "day": "tuesday", "schedule": ["07:00-12:00", "18:00-22:00"] }, { "day": "wednesday", "schedule": ["07:00-12:00"] }, { "day": "thursday", "schedule": ["07:00-12:00,17:00-23:00"] }, { "day": "saturday", "schedule": ["09:00-22:00"] }, { "day": "sunday", "schedule": ["09:00-22:00"] } ] }, { "activity": "activity_dishwashing", "model": "KITCHEN/dishwasher.conf", "daily_runs": 0.3, "schedule": [ { "day": "monday", "schedule": ["18:00-22:00"] }, { "day": "tuesday", "schedule": ["07:00-12:00", "17:00-22:00"] }, { "day": "wednesday", "schedule": ["07:00-14:00"] }, { "day": "thursday", "schedule": ["07:00-12:00", "17:00-22:00"] }, { "day": "saturday", "schedule": ["09:00-22:00"] }, { "day": "sunday", "schedule": ["09:00-20:00"] } ] } ] for x in range(len(self.people)): self.schedules.append({ "presence": [ { "day": "monday", "schedule": [ "00:00-08:30", "14:00-24:00" ] }, { "day": "tuesday", "schedule": [ "00:00-08:30", "14:00-24:00" ] }, { "day": "wednesday", "schedule": [ "00:00-08:30", "14:00-24:00" ] }, { "day": "thursday", "schedule": [ "00:00-08:30", "14:00-24:00" ] }, { "day": "friday", "schedule": [ "00:00-08:30", "14:00-24:00" ] }, { "day": "saturday", "schedule": [ "00:00-08:30", "14:00-24:00" ] }, { "day": "sunday", "schedule": [ "00:00-24:00" ] } ], "activities": self.activities, }) house = { "house": "John House", "num_people": 2, "contracted_power": 7.4, "people": self.people, "appliances": self.appliances, "schedules": self.schedules } for x in range(1, self.num_houses): self.community.append(house) print(json.dumps(self.community)) with open(self.configuration_file, 'w') as outfile: json.dump(self.community, outfile)
if __name__ == '__main__': cs = CommunitySpecificator("../data.json") cs.execute();