-
-
Notifications
You must be signed in to change notification settings - Fork 15
Philosophy
When I started project Alice I made myself some rules.
- My satellites have the room name. The satellite in bedroom has "bedroom" as siteId, the one in the living room has "living_room"
- All my smart home hardware, be it Netatmo, Philips Hue, Sonos and others always follow the same rule
- All modules that give the user the possibility to specify a room for services like rule number 2 do react as follow (let's say we speak about Philips Hue lights):
- If the user asks to turn on the lights, without specifying a room in the request, in a room that has smart lights, the lights in the room where the intent was captured shall turn on.
- If the user asks to turn on the lights and specifies the room in the request, the lights in that said room shall turn on if available or the request shall be denied by Alice.
- If the user asks to turn on the lights while being in a room without smart lights, without specifying the room in the request, the request shall be denied
- If the user wants to turn on every lights in the house, he should use "everywhere" as room in the request
It seems quite ridiculous to write this down, but there are many different ways to handle this and trust me it quickly becomes a nightmare to remember what modules needs what info for what action. If we all follow the same rules that are natural, there will never be a problem about thinking how to ask for an action in a room
I know some might not enjoy Alice babbling all the time or answering with long sentences. But don't forget that you, as a module dev, are not the majority or the minority, but you have your own mind. Alice was thought and will evolve to something hopefully more like a friend than a dumb assistant everybody has at home. Therefor, make the effort to make your replies feel lively without forgetting the short form of it for those that absolutely don't want to listen to their assistant answering
To be continued....