The pattern language is quite beautiful - giving users the power of a high level description language to apply to design, allowing designers, architects and other employees to implement the interface specified by a client. It's really quite simple to identify emotional and functional need by matching to some of a finite set of patterns, and then simple for the architect to identify a pattern as a need in the home.
This reminds me of home-made software and the imbalance of power that has been established between the user of the computer and the design of the interface; it's not at all true that people know what they want, or that one specific interface can be prescribed to fit all people. Rather, the user must have access to high level building blocks - or "patterns" - that they compose to make their computer a home.
We spend just as much time with our computers - if not more - than we do with our homes now, and I posit that the interface of the software plays just as pivotal of a role in the experience that someone has navigating their home. How do we build software that allows users to choose high level patterns and adapt their systems when choosing the patterns?
(An aside - it's insane to me that device manufacturers, especially new ones, are able to re-architect new physical interfaces for the devices but have to stick to the same software. This seems like the opposite of the dream of the computer; we're supposed to be able to run and change anything at any time, so why are we stuck using stock Android on every new device? It's so hard to build software that new innovations happen with hardware reinvention rather than software. This is insane.)