In the software world we write user stories that cover how a feature will be used. They are usually along the lines of
“As a <something>, I want <feature> so that <something can happen> “
Each story defines an element of functionality. For example, “user can login”.
So I was thinking about the equivalent of user stories for building. Some are obvious: “A an authorised person, unlock the front door”.
But there are others that are more interesting and which we end up doing everyday without knowing about: can put dirty laundry into the washing basket. In the F17 case this would mean, a context of taking a shower and changing, and needing to put some dirty laundry into the washing basket. That would mean walking around to the laundry room, opening the laundry basket and then walking back to the bathroom.
So I thought it would make sense to list out the things that I do regularly and look at how each of them could be optimised or whether a compromise is necessary. For example in our “place dirty laundry into the washing basket” story, we ended up optimising by putting a chute into the bathroom that takes the dirty laundry directly to the washing basket in the laundry room.
So here’s my list of stories from the silly to the “perhaps this could be optimised” tasks.
Arriving home:
- Put down bags
- Sit
- Take off shoes
- Unlock door
- Pick up shoes
- Put shoes away inside
- Pick up bags
- Go inside
- Put bags down on counter top
- Take off coat
- Put house key away
- Put coat away
…and then go and put away shopping (probably another user story).
Wow – that’s actually a whole bunch of tasks that I generally overlook but that could be somewhat optimised.
For example “sit” implies having a bench or stool outside or just inside the door. And then there’s the whole notion of unlocking doors and searching for keys.
If I look through this there’s a lot of stopping and starting – sit, stand up, go inside, go outside again, put down bags to be able to unlock, pick up bags again.
Our arrive home user story is actually a plethora of new tasks.
But before listing them I think that it might be worth thinking about other optimisations that would make this arriving home moment a little more pleasant. If the door could unlock and open automatically that would reduce our list to:
Arriving home:
- Go inside
- Put bags on counter
- Sit
- Take off and directly put away shoes
- Put away coat
…finally fo and unpack shopping
The optimisations would be something like:
- We don’t need to have a key to unlock the front door. Instead the presence of someone with access could be detected by their mobile phone being nearby and a PIR sensor.
- The door can open and close a few moments later. Automatically
- And dirt that is brought into the house is automatically cleaned up by the imagiSuck™ vacuum.
- Finally we have a new event that could be fired off on the openhab software “arriving home” which would include turning on the lights (if it’s between sunset and sunrise) starting music streaming and playing into the main room.
Sensor states to monitor:
- Someone near the outside of the apartment front door
- PIR sensor
- Bluetooth/wifi/NFC
- Someone near the outside of the apartment front door with access
- Someone buzzing the downstairs intercom
- “Someone else already home”/presence (in which case, don’t start playing music – perhaps they want silence or are already listening to something)
- Sunrise/sunset time on this day
Potential rules to program:
- “Arriving home”
- Person outside the front door has access?
- Open the door
- Unlock the door
- Have the actuator swing the door open
- Close the door again after n seconds and nobody outside.
- “A guest arriving” – buzz them in downstairs and then automatically open the front door when they reach the top floor.
- (and the really pedantic rule) Tell imagiSuck™ to vacuum the stretch between the front door and the kitchen. At the risk of being labeled a germaphobe I’ll hold off programming this rule and install a doormat outside :).
Bringing this back to user stories, there are other ones that I find myself doing reguary that I’d like to think through and walk though:
- “Do the laundry”
- “Clean”
- Change the cat toilet
- Chage the bed linen
- Play music/podcast
- Go to bed
- Wake up
- Leave the house
- Leave the house for a longer time
- Nap
- Prepare food
- Shower
- Read in the lounge
- Let a friend stay over
- Receive a delivery
- Secure my bike
- Make coffee!
We could group a few of these into “starting the day” (in order):
- Wake up
- “Play music”
- Shower
- Coffee
- Prepare Breakfast.
I like waking up naturally. Light usually does the trick of activating my brain and getting a few thoughts firing. I’m also aware that I spend a lot of time on my laptop in bed in the morning and this isn’t perhaps the most productive time (I’m looking at you Reddit and Hackernews). So I’m thinking that the lure of freshly made coffee in the kitchen might do the trick of at least getting me out of bed. After that I’m rolling.
I’ve been experimenting with a Philips Hue system and having the brightness slowly ramp up over 30 minutes does a good job of wrapping up dreams and waking up. So to that end, perhaps the following sequence (assuming a variable of WakeUpTime)
- WakeUpTime – 30 minutes: begin slowly turning up the room brightness (I’m not sure if there’s any benefit to coloured light so we’ll just work with the white LEDs on the DALI system)
- WakeUpTime -26 minutes: start the coffee machine
- WakeUpTime -29 minutes: open the blinds
- WakeUpTime: fire the “Ok Google, Tell me about my day” event (latest news that I’m interested in)
- Then I have to actually shift my lazy ass out of bed.
- Pick up coffee, go and shower.
Rule runs until the “tell me about my day” is finished (this can be between 10 mins and 2 hours depending on how many news sources are configured.
Now we have a bit of a problem: If there is something interesting on the news (this started playing in the bedroom, the sound needs to “follow” me to the kitchen and then to the bathroom). I picked up an Apart Revamp1680 16 channel amplifier that could drive speakers throughout the apartment, but I’m not really sure how to do a “follow-me” function. My thinking has been to get 8 Chromecast Audios and have them assigned into different Chromecast groupings depending on the rule being run. So a WakeUpSimon rule would push audio to speaker grouping by the same name and include: Bedroom1, Passage, Kitchen and the main Bathroom. It’s a bit of a hack but would work. I’m curious if there is a better way?
Another task that could be rethought is laundry. Currently it’s something like:
- Take dirty laundry from the spare room
- Sort it into white and colours
- Load the washing machine and start it
- Horrible beeping sound when it’s finished
- Take everything out, drag it out to the other room.
- Hang shirts directly onto hangers
- Hang hangers into wardrobe
- Drape the bed linen over doors
- Deal with higher humidity in the flat
- Finally put everything away
Summary – it’s horrible.
So my thinking of how to optimise this is to have a dedicated laundry/utility room with the following features:
- Two chutes from the bathroom that enable pre sorting into white and coloureds.
- Ventilated with an airflow controller
- Humidity sensor in the room
- Humidity sensor in the apartment
- Washing machine that doesn’t beep at the end of the cycle
- A drying rack that lifts up to the ceiling for drying large sheets and duvet covers
- An area that can take coat hangers
My thinking for washing is something like
- Take clothes off before showering and post into the white or coloured chute
- When one of the two baskets is full, load and run the washing machine
When unloading:
- Load shirts directly into hangers and hang up directly
- Bed linen is hung up on a large drying rack
- Underwear and socks is hung up on the same rack
- Rack is hoised up to the room
The drying rule could work as follows
- Compare humidity inside and outside the room
- If the humidity is higher in the room, open the airflow vent
- When the humidity is within 1 percent of inside and outside, close the vent
- Send a push notification that drying is done
- Move shirts on hangers to the wardrobes in each room
- “Clean”
- Change the cat toilet – involving the CatGenie
- Play music/podcast
- Leave the house
- Leave the house for a longer time
- Nap
- Prepare food
- Shower
- Read in the lounge
- Let a friend stay over
- Receive a delivery
- Secure my bike