Some Interesting Questions - TeamPracticalProjects/SISProject GitHub Wiki
Q: How do the different configurations in the Javascript affect the SIS operation?
A: The SIS associates a label with each sensor that is configured. We created the predefined modes in the client to make it easier for us to customize a web page to suit some particular home setting. This makes it easier for the user to understand what each sensor is reporting. However, the operation of the SIS itself is not affected by the labels that are assigned to each sensor.
Q: How does the SIS learn patterns of behavior?
A: One thing that SIS does not do, at present, is to analyze the meaning of patterns of logged sensor trip events. Basically, SIS just logs events and leaves it up to the user of the client to determine what these events mean. For example, if the SIS is installed in the home of a single, elderly person, and that person’s pattern is to rise early, eat breakfast, and then leave the house for a walk, this can be seen in the SIS log. If a user logs in and examines the log and sees that the resident did not leave the bedroom until noon, then they would infer that something may be wrong. However, this requires the user to log in at least once or twice per day and examine the log to see if the resident’s normal activity pattern is happening. It would be really nice to have some AI software to do this on behalf of the user and just alert the user that the resident has made some significant change to their “normal” activity pattern. This would be a very interesting enhancement indeed.
Q: Why doesn't the SIS log every sensor trip?
A: We have implemented four levels of reporting in the firmware.
At the lowest level a sensor is detected.
At the next level, a sensor code detection is only reported once in any five second period. We must do this because any one sensor trip will send its code several times - perhaps 20 times - to give the hub the best chance of receiving the code. This is, of course, because the radio protocol is just one way.
At the next level up we apply some rules to modify these reports. For instance, a passive infrared motion sensor is only reported the first time it is tripped. We do not log additional detections until another sensor has been tripped. This way we hope to have the log indicate the person moving around the home. On the other hand, every door detection is reported in the log.
At the highest level we have a few inferences that are reported. For example, if two PIR sensors are tripped within a short period of time then we log “multiple people home” and do no more sensor reports until a door is tripped. Also, if there is no motion detected from any sensor for a long period of time then the SIS will log, “no motion”.
These operations are described in greater detail on the document: https://github.com/TeamPracticalProjects/SISProject/blob/master/SISDocs/SIS_Theory_of_Operation_and_Installation.pdf
Q: If the SIS detects something is wrong, how is a person alerted?
A: First, we must stress that the SIS is not any kind of emergency alarm system. We have found that the connection between the sensors, the SIS Hub, the Particle.io cloud, and Internet services are all too unreliable to be used in an emergency. The current SIS concept is for the user (caregiver) to read out the log once or twice per day and use their own knowledge and judgement to determine if the resident is doing activities that are close enough to their normal activity pattern to say that everything is OK, or not OK, as the case may be. We did allow for one “alarm/alert” sensor to send a text message to the user, thinking that the resident might have a key fob to press when they want the caregiver’s attention for some reason (but not for true emergencies, as mentioned above).
Q: The SIS doesn't have the concept of door open/close. Why?
A: The cheap sensors that we tested only offer one state; they transmit their code when the separation sensor is tripped.
Q: The Arduino open_close.ino code sends two codes, why?
A: We think that some users might want to make their own sensors. We provide open_close.ino as a sample for how an Arduino could be used to sense its local environment and send a code that the SIS hub would pick up.
Q: What software development environment do you use?
A: First, our code uses a 4 character indent for a leading Tab. If you're going to contribute code, please use that too. We use both the particle.io web development page and the Particle Dev desktop environment. The web site and Javascript code was written using the free Atom text editor.