Connected Devices/Projects/Project Cue: Difference between revisions

Jump to navigation Jump to search
Deleted Link references, moved status table up
(quick save)
(Deleted Link references, moved status table up)
Line 16: Line 16:
  | content7 = TBD  <!-- Project Website -->
  | content7 = TBD  <!-- Project Website -->
}}
}}
'''Project Cue''' makes use of an always-on voice-enabled smart screen device to keep track of activities, events, and to-do lists of the family members.


== Project Overview ==
== Project Overview ==
'''Project Cue''' makes use of an always-on voice-enabled smart screen device to keep track of activities, events, and to-do lists of the family members.
*Busy families have to manage and remember many to do’s, scheduled events, and activities related to the management of their households. Often, disorganized or ad hoc methods or tools are used to manage these, including post-its, reminders stuck on the refrigerator, various digital apps, or overloaded memories. This leads to stress and chaos, and it’s time consuming and cumbersome.
*Busy families have to manage and remember many to do’s, scheduled events, and activities related to the management of their households. Often, disorganized or ad hoc methods or tools are used to manage these, including post-its, reminders stuck on the refrigerator, various digital apps, or overloaded memories. This leads to stress and chaos, and it’s time consuming and cumbersome.
*Project Cue saves time and brings peace of mind to the entire family with its simple and intuitive solution to turn the daily coordination chaos across the family members to organized control.  
*Project Cue saves time and brings peace of mind to the entire family with its simple and intuitive solution to turn the daily coordination chaos across the family members to organized control.  
Line 26: Line 26:


==Early Exploration==
==Early Exploration==
===Initial Experimentation===
'''Initial Experimentation'''
*Project Cue grew out of the study and research conducted by the Project Link team. Initially, the team looked at a hub that would manage smart devices in the home. They evaluated what was desirable from a hub angle, if it was going to be viable from a Mozilla perspective, and desirable for customer.  The team used the "Design Thinking" innovation approach by IDEO, where the philosophy of Product Innovation is at the center of technology (feasibility), person (desirability) & business (viability). After prototyping certain fundamental elements like first time user experience, device discovery, interoperability, and a rules engine, and evaluating the market and competitor landscape, the team concluded that a hub was not where we should be.  
*Project Cue grew out of the study and research conducted by the Project Link team. Initially, the team looked at a hub that would manage smart devices in the home. They evaluated what was desirable from a hub angle, if it was going to be viable from a Mozilla perspective, and desirable for customer.  The team used the "Design Thinking" innovation approach by IDEO, where the philosophy of Product Innovation is at the center of technology (feasibility), person (desirability) & business (viability). After prototyping certain fundamental elements like first time user experience, device discovery, interoperability, and a rules engine, and evaluating the market and competitor landscape, the team concluded that a hub was not where we should be.  


===Project Study===
'''Project Study'''
*While the team was concluding its hub experimentation and research, it considered the following initial target segments for further study:
*While the team was concluding its hub experimentation and research, it considered the following initial target segments for further study:
**Busy families
**Busy families
Line 40: Line 40:
**Well educated parents in the medium to high income bracket
**Well educated parents in the medium to high income bracket


===Synthesis of Study Data===
'''Synthesis of Study Data'''
*These families are leading an extremely busy & demanding lifestyle constantly juggling many different aspects of their daily life spanning home, work, kids, shopping, hobbies etc.
*These families are leading an extremely busy & demanding lifestyle constantly juggling many different aspects of their daily life spanning home, work, kids, shopping, hobbies etc.
*In majority of the cases, the mother is the one who typically orchestrates the communication across the members of the household/caretakers, organizes schedule & essentially responsible for a smooth running household!
*In majority of the cases, the mother is the one who typically orchestrates the communication across the members of the household/caretakers, organizes schedule & essentially responsible for a smooth running household!
Line 60: Line 60:
**The busy families want a way to create to-do lists & shopping lists that is accessible from anywhere
**The busy families want a way to create to-do lists & shopping lists that is accessible from anywhere


==Pivot to Family Organizer==
'''Pivot to Family Organizer'''
The results of the study led the team to the conclusion that it should pivot to a smart digital assistant, or more commonly called a family organizer.  This family organizer could include scheduling, list management, and reminders. We don’t know yet if all these possible tracks will result in one product.  That’s what we need to research/test. Integration or convergence of the scheduling and list management aspects of the family organizer could come later, but we don’t know that yet. The team decided to focus initially on reminders to provide the who, when, what, where, and whether recurring for the busy family members' to do's, events, and activities, and Project Cue was born.  
The results of the study led the team to the conclusion that it should pivot to a smart digital assistant, or more commonly called a family organizer.  This family organizer could include scheduling, list management, and reminders. We don’t know yet if all these possible tracks will result in one product.  That’s what we need to research/test. Integration or convergence of the scheduling and list management aspects of the family organizer could come later, but we don’t know that yet. The team decided to focus initially on reminders to provide the who, when, what, where, and whether recurring for the busy family members' to do's, events, and activities, and Project Cue was born.  


==Validation==
==Validation==
===Hypothesis===
'''Hypothesis'''
The initial focus on Reminders would test the following hypothesis:
The initial focus on Reminders would test the following hypothesis:
*We believe that there are:
*We believe that there are:
Line 73: Line 73:
**by building a friction-free simple way to organize and keep track of the daily activities that are needed for the management of the household
**by building a friction-free simple way to organize and keep track of the daily activities that are needed for the management of the household
**we will provide them with more peace of mind and a sense of being more in control of their household and on top of their needs.
**we will provide them with more peace of mind and a sense of being more in control of their household and on top of their needs.
===Prototype===
'''Prototype'''
*A prototype is being developed within a month-long time frame to test how the use of a voice interface for reminders might provide a friction free, easy and better way to help busy family members manage the activities and events related to their household management, and provide them with more peace of mind and a sense of control.
*A prototype is being developed within a month-long time frame to test how the use of a voice interface for reminders might provide a friction free, easy and better way to help busy family members manage the activities and events related to their household management, and provide them with more peace of mind and a sense of control.
* Specifically, the Project Cue team will build and test with the target market a web app prototype that provides the ability to:
* Specifically, the Project Cue team will build and test with the target market a web app prototype that provides the ability to:
Line 86: Line 86:
*if we can differentiate the reminders functionality by making it available for the entire family  
*if we can differentiate the reminders functionality by making it available for the entire family  


===Assumptions and Risks===
'''Assumptions and Risks'''
{| class="wikitable"
{| class="wikitable"
! style="text-align: center;" | Assumptions
! style="text-align: center;" | Assumptions
Line 103: Line 103:
| 4. Latency   
| 4. Latency   
|-
|-
|}
'''Validation Status'''
{| class="wikitable"
|-
! Milestone !! Date !! Status
|-
| Gate 0 approval || 2016.1.11
! style="background:#00B2FF;" | Done
|-
| Project kickoff || 2016.2.1
! style="background:#00B2FF;" | Done
|-
| Integration Meetup || 2016.3.21
! style="background:#00B2FF;" | Done
|-
| [https://docs.google.com/presentation/d/1otXlJiy5uiOOZJI8IkWSI9YXspuJ6YHzk4taYGl-xrE/edit#slide=id.p19 Pilot Scene 1 End to End Integration] || 2016.4.15
! style="background:#00B2FF;" | Done
|-
| [https://docs.google.com/presentation/d/1otXlJiy5uiOOZJI8IkWSI9YXspuJ6YHzk4taYGl-xrE/edit#slide=id.p23 Pilot Scene 2 End to End Integration] || 2016.4.15
! style="background:#00B2FF;" | Done
|}
|}


=== Team Participants ===
==Team Participants==
* Sam Giles
* Sam Giles
* Francisco Jordano
* Francisco Jordano
Line 114: Line 135:
* Julien Wajsberg
* Julien Wajsberg


== Development ==
==Development==




=== Technical documentation ===
'''Technical documentation'''
*  
*  
*
*
*
*


=== Repositories ===
'''Repositories'''


All code is open source and hosted on https://github.com/fxbox. Please file bugs on Github issues for these repositories.
All code is open source and hosted on https://github.com/cue. Please file bugs on Github issues for these repositories.
*
*
*
*


* [https://github.com/fxbox/foxbox foxbox: foxbox daemon]
'''QA'''
* [https://github.com/fxbox/openzwave-adapter openzwave-adapter: the foxbox adapter for openzwave]
(NEED TO PROVIDE)
* [https://github.com/fxbox/openzwave-rust openzwave-rust: Rust wrapper for the open-zwave library]
* [https://github.com/fxbox/app app for Project Link]
* [https://github.com/fxbox/thinkerbell thinkerbell: scripting engine for the Foxbox ]
* [https://github.com/fxbox/openzwave-stateful-rust openzwave-stateful-rust]
* [https://github.com/fxbox/taxonomy taxonomy: shared implementation of the taxonomy data structures]
* [https://github.com/fxbox/registration_server registration-server: to help with foxbox discovery]
* [https://github.com/fxbox/users users: project Link user management and authentication lib]
* [https://github.com/fxbox/multicast-dns-utils multicast dns utils: basic command line utils that demonstate multicast-dns lib capabilities]
* [https://github.com/fxbox/multicast-dns multicast dns: experimental mDNS Rust wrapper around Avahi C libraries]
* [https://github.com/fxbox/RFC RFC: discussion about design decisions]
* [https://github.com/fxbox/dns-server dns server: server that helps the Box to announce its local IP address without relying on mDNS, and to register its LetsEncrypt cert for use on its local IP address]
* [https://github.com/fxbox/open-zwave open zwave: a C++ and DotNet library to control Z-Wave Networks via a Z-Wave Controller]
* [https://github.com/fxbox/iron-cors iron cors: helping to add CORS to an Iron server]
* [https://github.com/fxbox/adapters adapters: API for defining and registering adapters for the Foxbox
* [https://github.com/fxbox/standalone-ipcam standalone ipcam: standalone IP camera (uses USB camera or RPi camera) and also IP camera simulator]
* [https://github.com/fxbox/libxbee-rust libxbee-rust: A wrapper for libxbee]


Complex and/or breaking changes are discussed as [https://github.com/fxbox/RFC Requests For Comments].
==Participation==


== Participation ==
*Project Cue is at a very early stage, and we are still figuring out many things, including how to best accept contributions. But don't let this deter you!
*The core of Project Cue is developed in [https://www.rust-lang.org/ Rust]. The front-end is developed in HTML5/JS using REST/WebSocket.


Project Link is at a very early stage and we are still figuring out many thing, including how to best accept contributions. But don't let this deter you!
'''Help Wanted'''
 
The core of Project Link is developed in [https://www.rust-lang.org/ Rust]. The front-end is developed in HTML5/JS using REST/WebSocket.
 
=== Help Wanted ===


We maintain lists of issues for which we are looking for help.
We maintain lists of issues for which we are looking for help.
 
*
* [https://github.com/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22Help+wanted%22+user%3Afxbox+no%3Aassignee+-label%3AAssigned+-label%3A%22Help+wanted%3A+Help+found%22 Help Wanted].
*
* Help Wanted... [https://github.com/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22Help+wanted%22+user%3Afxbox+no%3Aassignee+-label%3A%22Help+wanted%3A+Help+found%22+label%3A%22Skill%3A+Rust%22+ in Rust].
*
* Help Wanted... [https://github.com/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22Help+wanted%22+user%3Afxbox+no%3Aassignee+-label%3A%22Help+wanted%3A+Help+found%22+label%3A%22Skill%3A+Web+App%22+ in HTML5/JS ].
* Help Wanted... [https://github.com/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22Help+wanted%22+user%3Afxbox+no%3Aassignee+-label%3A%22Help+wanted%3A+Help+found%22+label%3A%22Skill%3A+Story%22+ coming up with use cases and stories ]


We also maintain a full, unclassified, list of ongoing issues. If you wish to help, don't hesitate to look at them, but they may not be as easy or as detailed:
We also maintain a full, unclassified, list of ongoing issues. If you wish to help, don't hesitate to look at them, but they may not be as easy or as detailed:


* [https://github.com/issues?utf8=%E2%9C%93&q=user%3Afxbox+is%3Aissue+no%3Aassignee+-label%3A%22Help+wanted%3A+Help+found%22+ Other issues]
* URL for list to go here


And all our source code may be found on [https://github.com/fxbox/ GitHub repositories].
And all our source code may be found on [https://github.com/cue/ GitHub repositories]. (NEED TO CREATE THIS)


=== Getting In Touch ===
'''Getting In Touch'''


Please subscribe to our [https://lists.mozilla.org/listinfo/dev-project-link mailing-list].
Please subscribe to our [https://lists.mozilla.org/listinfo/dev-project-cue mailing-list]. (NEED TO CREATE THIS)


We've established [https://discourse.mozilla-community.org/c/connected-devices/project-link Project Link on Discourse]
We've established [https://discourse.mozilla-community.org/c/connected-devices/project-link Project Link on Discourse]


Otherwise, the best way to get in touch with us is to come and chat through irc. We can be found on [http://chat.mibbit.com/?channel=%23foxlink&server=irc.mozilla.org channel #foxlink of irc.mozilla.org].
Otherwise, the best way to get in touch with us is to come and chat through irc. We can be found on [http://chat.mibbit.com/?channel=%23foxlink&server=irc.mozilla.org channel #foxlink of irc.mozilla.org]. (NEED TO UPDATE THIS)


If you wish to file a bug, please visit our [https://github.com/fxbox/ GitHub repositories] and file an issue.
If you wish to file a bug, please visit our [https://github.com/cue/ GitHub repositories] and file an issue. (NEED TO CREATE THIS)


We also discuss our design decisions, improvements or radical new directions as [https://github.com/fxbox/RFC Requests For Comments]. Feel free to take a look and to participate.
We also discuss our design decisions, improvements or radical new directions as [https://github.com/fxbox/RFC Requests For Comments]. Feel free to take a look and to participate. (NEED TO UPDATE THIS)


=== IRC ===
'''IRC'''


You can find us on irc.mozilla.org, channel #foxlink.
You can find us on irc.mozilla.org, channel #cue. (NEED TO CREATE THIS)


=== Team Meetings ===
'''Team Meetings'''


We are using some agile practices:
We are using some agile practices:
* "Stand-up" meetings happen [https://public.etherpad-mozilla.org/p/foxlink-standup on etherpad] and on IRC every weekday between 5pm and 5:15pm UTC.
* "Stand-up" meetings happen [https://public.etherpad-mozilla.org/p/foxlink-standup on etherpad] and on IRC every weekday between 5pm and 5:15pm UTC.
* Weekly meetings happen in Vidyo and [https://public.etherpad-mozilla.org/p/foxlink-weekly on etherpad] every monday between 5pm and 6pm UTC.
* Weekly meetings happen in Vidyo and [https://public.etherpad-mozilla.org/p/foxlink-weekly on etherpad] every Thursday between 5:30pm and 6:30pm UTC.
 
=== QA ===
[https://docs.google.com/a/mozilla.com/document/d/1-3-CpYiiLYtZKKenjh5O_SdDxFB0ZMJBrXgTosX6mWE/edit?usp=sharing Project Link Test Plan]<br />
[https://docs.google.com/a/mozilla.com/spreadsheets/d/19l74YZVagQJTuWZpJ1ohmtNFR8p3AOo6YUpbv9A-LtU/edit?usp=sharing Project Link Test Cases]<br />
[https://docs.google.com/a/mozilla.com/document/d/1-HeFKZeO98-7RgFvE3KHwMuZGrGNBwDNx9V-GxwgmE0/edit?usp=sharing Integration Test Environment Design Document]<br />
 
== ARCHIVE ==
 
== Phase 1 ==
As the first step, we worked toward delivering a prototype that allows a user to -
# Setup "Link"
# Have their devices that use Z-wave/WiFi protocols be discovered by Link
# Interact & control their devices whether they are home or remote via a web-app.
# Configure rules around how these devices should automatically interact with each other for specific scenarios
# Receive notifications
 
=== Devices Supported in Phase 1 ===
 
{| class="wikitable"
! style="text-align: center;" | Device
! style="text-align: center;" | Standard
|-
| rowspan="1" | D-Link Pan & Tilt Wi-Fi Camera DCS-5020L
! style="text-align: center;" | WiFi 
|-
| rowspan="1" | Fibaro Motion Sensor
! style="text-align: center;" | Z-Wave 
|-
| rowspan="1" | Philips Hue Lights
! style="text-align: center;" | Zigbee (via Phillips Hue Bridge) 
|-
| rowspan="1" | Kwikset Door Lock SmartCode 910
! style="text-align: center;" | Z-Wave 
|-
| rowspan="1" | Schlage Door Lock BE469NXCAM619
! style="text-align: center;" | Z-Wave 
|-
|}
 
For more details, see [https://docs.google.com/presentation/d/1otXlJiy5uiOOZJI8IkWSI9YXspuJ6YHzk4taYGl-xrE/edit#slide=id.p4 Pilot Scenes]
 
=== Phase 1 Status - Completed ===
 
{| class="wikitable"
|-
! Milestone !! Date !! Status
|-
| Gate 0 approval || 2016.1.11
! style="background:#00B2FF;" | Done
|-
| Project kickoff || 2016.2.1
! style="background:#00B2FF;" | Done
|-
| Integration Meetup || 2016.3.21
! style="background:#00B2FF;" | Done
|-
| [https://docs.google.com/presentation/d/1otXlJiy5uiOOZJI8IkWSI9YXspuJ6YHzk4taYGl-xrE/edit#slide=id.p19 Pilot Scene 1 End to End Integration] || 2016.4.15
! style="background:#00B2FF;" | Done
|-
| [https://docs.google.com/presentation/d/1otXlJiy5uiOOZJI8IkWSI9YXspuJ6YHzk4taYGl-xrE/edit#slide=id.p23 Pilot Scene 2 End to End Integration] || 2016.4.15
! style="background:#00B2FF;" | Done
|}

Navigation menu