This is the final delivery for the Autonomous Software Agents project.
First run npm install to install all dependencies.
The main scenario can be executed from the Project folder with:
node src/project/scenarios/main_Scenario.js
There are 3 other additional scenarios where specific goals can be tested.
There are two type of devices: (normal) device and washing device (both extend the Observable class). Washing devices have specific methods which simulate a washing cycle.
DeviceLightDeviceRoller_shutterWashingDeviceDishwasherWashingDeviceWashing_machineDeviceTelevisionDeviceSpeakerDeviceOvenDeviceFridge
Sensors observe the world and update the beliefs of the agents:
ActivitySensorobserves the people of the hosueDeviceStatusSensorobserves the status of devicesFridgeSensorkeeps track of the supplies of the fridgePowerSensorobserves the global power consumption and checks if a washing device is safe to startShutterSensorobserves the status of the roller shuttersSunIlluminationSensorobserves the illumination from the outsideVacuumCleanerSensorchecks if rooms are clean, the location of the vacuum cleaner robot and its battery statusWashingDeviceSensorchecks if washing devices are ready to begin/resume a washing cycle
Househere all the rooms and devices are initializedRoomPersonmapthis class is used to check the correct movement of the vacuum cleaner robotdatacontains the configuration of power consumption for each device. It contains also all the facts which are used by the agents.
LightGoalsturn on/off the lightsShutterGoalsset the shutters up/half/downTelevisionGoalsswitch off the television when not neededWashingMachineGoalsstart/resume/pause the washing machineDishWasherGoalsstart/resume/pause the dishwasherNotificationGoalsnotify when a washing device finished and when the supplies of the fridge are low
To save a log file, run a scenario with:
node src/project/scenarios/main_Scenario.js > app.log
then run node pretty_log.js to obtain a better output.log