Title: H.A.C.S.
1H.A.C.S.
- The Home Appliance Control System
Presented by The Awesome Group
Presented by The Awesome Group
2What is HACS?
- A home appliance control system which uses a
remote system such as a mobile phone or PDA to
monitor, control, and coordinate home appliances
such as your security system, oven, TV, etc.
3Assumptions and Dependencies
- Infallibility
- No Power Failures
- No Network Failures
- Each Appliance has Sufficient Power and a
Dedicated CPU - Wireless Network is the same as LAN
- HACS has an Internet Connection
- Perfect Cellular Reception
- Sufficient Hardware
4Requirements
- HACS should
- Allow users to check the status of their
appliances, even when not at home - Activate and deactivate appliances
- Alert users and emergency departments to critical
malfunctions - Be able to accept any HACS compatible appliance
5Requirements List
- (1) Appliance Control Appliances, devices such
as an oven, microwave, air conditioner, or
sprinkler, can be controlled by a home owner in a
remote location. That is the user may set the
different attributes (e.g. oven temp, AC fan
speed, sprinkler settings etc.) for each
appliance from a wireless device - (2) Adaptability/Detection The system will be
able to detect changes within the home and
maintain the user settings. - (3) Manually Adaptable The user can set system
set the status of different appliances manually
and user commands have precedence over automatic
commands. - (4) Communication HACS should be able to
communicate with all appliances. - (5) Safety HACS should maintain the safety of
the users home and person at all times. Devices
should be maintained in non-hazardous states.
6The Big Picture
User Interface
HACS
User
7Use Case Diagrams(for traceability)
8Use Case Diagram Over All
Use Case Diagram for Hacs
Register Wireless
ltltextendsgtgt
Add Appliance
ltltextendsgtgt
Register Appliance
Remove Appliance
ltltusesgtgt
User
Login
ltltusesgtgt
Get Status
ltltextendsgtgt
ltltextendsgtgt
PoliceDept
Set Status
Manage Status
Appliance
FireDept
Emergency Alert
9Use Case Log In
- Nobody other than the owner should be able to
modify an appliances status
- What if your neighbor down the street decided to
play a joke and turn on your oven!
10Sequence Diagrams Log In
UserInterface
HACS
UserRecord
User User
issuesCommand
connect(id)
verify(id)
returnVerification
11Use Case Get Status
Manage Status
ltltextendsgtgt
User
Appliance
GetStatus
- Is the garage door open?
- Did you leave the oven on?
- The user wants to know how the appliances are
operating at any given time!
12Sequence Diagrams Get Status
In general, this should represent a simple
sequence of events
13Sequence Diagrams Get Status
But what if access is denied?
14Use Case Set Status
Manage Status
ltltextendsgtgt
User
Appliance
Set Status
- Now that you know what the appliance is up to,
dont you want to change what it is doing?
15Sequence Diagrams Set Status
HACS
UserInterface
Appliance
User
selectApp
setStatus(app,uid,attribute, value)
Login
setStatus(attribute,value)
returnStatus
returnStatus
displayStatus
16Use Case Register Appliance
Add Appliance
Register Appliance
ltltextendsgtgt
ltltextendsgtgt
Appliance
Remove Appliance
User
- Register Appliance is extended by Add/Remove
appliance use cases to handle registration
interactions within the HACS system.
17Sequence Diagram Add Appliance
Interface
HACS
xyzAppliance
User User
setup appliance
provide appliance identification details
configure appliance settings
detect appliance
provide ACK
add appliance
provide response
set range limits
store range limits
18Sequence Diagram Remove Appliance
appliance
UserInterface
Hacs
User User
request remove appliance
request remove appliance
remove appliance
notify
Send new status
notify
19Use Case Register Wireless
register wireless
Wireless
User
- The user registers a wireless device with HACS.
20Sequence Diagram Register Wireless
HACS
xyzAppliance
User User
add user
provide identification details
add device
send confirmation
21Use Case Emergency Alert
notify
Fire_Department
Intruder_Detector
Alert_controller
Emergency_Dept
Fire_Detector
Police_Department
22Use Case Evolved Emergency Alert
PoliceDept
Emergency Alert
Appliance
FireDept
23Sequence Diagram Alert System
abcAlert_contr
emergency
Police
Fire
Hacs
Device_interfac
oller
Emergency_dept
e
create_sockets()
Here it is
assumed devices
start_threads()
communicate on
sockets
start_sensing()
Hacs notified on socket
forward request on socket
Demultiplex_request()
Hacs notified on socket
connect to data base
connect to data base
Notify_request()
will use some api
or sockets for
communication
wid specific
department
24Class Diagram Alert System
25CRC Cards Appliance
Appliance
Object
- Interface between HACS and specific appliances
26CRC Cards Oven
Oven
Appliance
- Report Exceptions
- Change Temperature
- Change Mode
- Set Timer
- Turn On/Off
27CRC Cards Garage Door
Garage Door
Appliance
- Open
- Close
- Report Exceptions
28CRC Cards Light
Light
Appliance
- On
- Off
- Set Intensity
- Report Exceptions
29CRC Cards Alert Controller
Alert Controller
Object
- Control Alerts
- Pass Exceptions to HACS
- Alert Emergency Departments
- HACS
- Appliance
- Appliance subclasses
- Emergency Department
30Class Diagram HACS System
Note hid will contain perhaps an
internet address for the Hacs
system
HACS
hid
UserInterface
userRecords
currentWindow
apps
uid
EMservices
UserRecord
hid
connections
user_id
Connect(uid)
displayWindow(window)
setId(user_id)
getStatus()
getStatus(hid, appliance)
getId()
setStatus()
setStatus(hid, appliance, attribute, value)
addAppliance()
getAppliances(hid)
delAppliance()
notify()
Login()
ltltactorgtgt
appliance
appId
attributes
hid
get(attribute)
set(attribute, value)
alert(hid)
lights
Windows
GarageDoor
FireAlarm
open()
on()
setSecurity(on_off)
close()
detect()
off()
detectMotion()
setIntensity(value)
31The END!
- Questions?
- Comments?
- Praise for our greatness?