The UK Home Automation Archive

Archive Home
Group Home
Search Archive


Advanced Search

The UKHA-ARCHIVE IS CEASING OPERATIONS 31 DEC 2024


[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: Re: HA Object Model or Taxonomy?



And now to the detail...

Yes, getState is probably a better name, but I'm still not in favour of it
because of the coupling this would introduce between callers and the object
in question. The state of a cushion might be best described by a plumpness
level, the state of a light by its intensity. There are very few general
questions which could be asked of any object in an automation system and
generate a meaningful, uniform response across all participants - better to
break things down and have a getPlumpness method for the cushion, and a
getIntensity for the light.

The model should definitely be able to represent (or codify) any object
which is likely to become involved in a home automation system; for
practical reasons, this is likely to be limited to that subset of objects
which can be controlled remotely via some sort of electronic means.
Representation of these objects should include exposing attributes which
can be queried or manipulated, for any properties of the object which are
relevant to a home automation use case.

The question of ontology is less straightforward. Does an object in an
automation model have significance (or indeed reality?) only because of its
relationships with other objects in the model? For some items such as light
switches, these are clearly meaningful only once you know to which light
they are connected - so perhaps a reference to the light should be included
in the model of the switch. However, this becomes less clear when multiple
lights can be controlled by multiple separate switches, as is likely to be
the case in a highly networked home. There are also likely to be objects
which can be represented without knowledge of their relationships, such as
a light sensor - to represent the sensor itself, it is not necessary to
know about any other objects. Of course, in a real home automation system
based upon the object model there would probably be a need for something to
maintain a list of objects which were "listening" to the state of
the light sensor, but I would ar
gue that this is a property of the implementation, not of the model itself.
This is particularly true given the language-agnostic nature of the model;
different mechanisms may be used for communication in different (machine)
languages.

Back to ontology - I'm also not sure that the relationships are as
clear-cut as you are imagining. In the case of your illuminated house sign,
is it clear that this belongs in
"fittings.illumination.lighting.outdoor", rather than
"fittings.lighting.signage" or even
"fittings.outdoor.lighting"? This is before we even consider the
problem of composition; take the Logitech Squeezebox (a fine music player).
This is a music player (which is clearly an object which we would like
described in our model), but it is also an alarm clock. Modelling an alarm
clock also seems like a sensible thing to do, but then do we build a
Squeezebox model under "media.players.music" or
"timers.alarm"? The only sensible answer is that the Squeezebox
is an instance of both an alarm clock and a music player, which forces us
away from a simple hierarchy and into a more complex inheritance-based
graph. This is not a problem, and in fact suggests that we should be
thinking in terms of trai
ts rather than ob
jects.

Defining a set of traits such as alarm clock, music player, light,
lightswitch and doorbell also helps to clarify the thinking around what to
do when we get to the limits of the model. A music player with a built in
alarm clock and light would simply inherit the music player, alarm clock
and light traits. If it had further specific features which were not
present in the model, the device implementor could provide an object which
inherits the existing traits and also exposes the specific behaviour. This
would be the case with all the various TV implementations - the model's
representation of a TV would contain only a common subset of the features
of all televisions, but a TV manufacturer would be free to extend their
implementation of the TV object with their own particular bells and
whistles - though the hope would be that once a feature became common, it
would be incorporated back into the model...

There's definitely a lot to think about, here :-)

Cheers,

Gavin



On 18 Mar 2012, at 08:09, alan.trevennor@xxxxxxx wrote:

> Following on the general discussion of a "getStatus"
method..
>
> I would suggest "GetState" is a better name for this method,
pretty much anything has a state. For example, a cushion always has a
state, but not really a status, since it doesn't have a formalised set of
statuses, whereas, an aircon unit definitely has a set of formalised
states).
>
> I see the main jobs of an object model as being to codify a subset of
objects in the real world (in this case objects of all kinds found in the
home) and to be able to indicate, in some way, their permanent or dynamic
relationships to one another (the ontology).
>
> Having a separate ontology is essential if dealing with a subject
areas such as published books and music CDs, where there is a dynamic
relationship between writers and artists and the things they create: For
example such an ontology needs to indicate that Brandon Flowers was a
member of The Killers, but is also a songwriter and solo artist and
producer.
>
> However, in the HA case, I think the relationships are more settled
and may be adequately conveyed in the object model structure. For example,
an illuminated house sign is always going to be under something like:
>
> \fittings\illumination\lighting\outdoor
>
> As to the level of detail.....
> in theory, an object model should be capable of accommodating any
possible level of detail. For example:
>
>
\furnishings\accessories\comfortItems\cushions\footCushions\fillings\hollowFibre\tufts
>
> would allow you to model each tuft of hollow fibre in the
aforementioned cushion, but of course it would be looney for the HA model
to go into such detail, but the possibility should exist. Who knows, one
day we may have intelligent hollow-fibre filling that can be commanded from
an HA network to reshape itself electrically. Ah! Brave new world!
>
> However I think that, to preserve sanity, at some point in any
practical object model you have to resort to allowing "freeform"
responses. So, to continue the looney example, I see no problem with an
instance of a cushion having a "getState" method that returns a
collection of filling object whose state is just a set of self-describing
XML objects - i.e. objects which are not formally described in the model.
Further, I think that in the HA sphere - since it's unfeasible to model
every type and individual variant of - say - TVs. So, at some point TV
objects just have to return a freeform string of data that only some custom
piece of code can interpret.
>
> Anyway, I am probably pre-empting the kinds of discussions we need to
have about the scope and limits of an HA model that we might develop.
>
> Regards
> Alan T
>
> --- In ukha_d@xxxxxxx, Gavin Sallery <gavin@...> wrote:
> >
> > Hi Jim,
> >
> > Thanks - sorry about the error, Drupal 7's wiki support is at
best painful. I've limited input to filtered HTML now, and it seems to be
working a little more smoothly now - do please try again, and let me know
if you have any further problems (I have admin access to that site, so
should be able to sort out any issues).
> >
> > "Check Status" is an interesting idea, but I'm not sure
how it could be implemented for all devices - it's trivial for an on/off
light (return a boolean indicating whether the light is on), but for other
vivants the status could incorporate lots of structured pieces of
information, i.e. an object. Thus whatever wanted to query every single
device would have to know about the status structure of every single one of
them. How were you imagining that this would be used?
> >
> > I have expanded the illumination section, and am now working on
broadening the types of vivants.
> >
> > http://hometechnologyintegration.org/node/119
> >
> > Cheers,
> >
> > Gavin
> >
> >
> > On 13 Mar 2012, at 00:41, Jim Franklin wrote:
> >
> > > Not a bad start Gavin.
> > >
> > > I did try to post a comment, but had a page error.
> > >
> > > One thing I would add for ALL devices is to have a
"Check Status" method
> > > that returns the current status of the device/object.
> > > Useful if perhaps more than one controller is present, or
following a power
> > > failure.
> > >
> > > -----Original Message-----
> > > From: ukha_d@xxxxxxx [mailto:ukha_d@xxxxxxx] On Behalf Of
> > > Gavin Sallery
> > > Sent: 12 March 2012 00:10
> > > To: ukha_d@xxxxxxx
> > > Subject: Re: [ukha_d] HA Object Model or Taxonomy?
> > >
> > > Hi Alan (and everyone),
> > >
> > > This discussion of openly-available home automation object
models has really
> > > struck a chord with me. I have been working on such a thing,
on and off, for
> > > some time - just like you, I found a lack of truly
"open" standards on the
> > > Web, and needed a well-thought-through object model for some
home automation
> > > projects I've been working on. I spent quite some time
thinking through the
> > > best way of representing all the various devices and
concepts which would be
> > > needed in a home automation system, and captured quite a lot
of it in the
> > > code I am using for one of the projects (which is
Scala-based, and not quite
> > > ready for release). However, I never took the time to write
out what I'd
> > > discovered as a formalised specification.
> > >
> > > I am not presumptuous enough to think that the ontology I
developed is the
> > > ultimate home automation object model. What this discussion
has made me
> > > realise, though, is that there are probably many of us who
have thought
> > > about this sort of thing, and this really is one of those
areas where many
> > > heads are better than one. The best object model is going to
be one which is
> > > open, collaborative, and flexible. To this end, I have set
up a wiki section
> > > on the hometechnologyintegration.org site, for the express
purpose of
> > > sketching out what our idealised home automation model
should look like. I
> > > invite you all to come along and start fleshing it out; I
will be adding
> > > documentation for the concepts I can remember, but between
us it should
> > > become quite comprehensive!
> > >
> > > The wiki is here:
> > > http://hometechnologyintegration.org/wiki/home_automation_taxonomy
> > >
> > > Looking forward to hearing from you all!
> > >
> > > Gavin
> > >
> > > P.S. Wiki-style linking is not working at the moment (you
need the full URL
> > > in [[url  title]]), I will fix it tomorrow.
> > >
> > > On 8 Mar 2012, at 16:52, alan.trevennor@... wrote:
> > >
> > > > Thanks for the replies, gents.
> > > >
> > > > Rob, I had a look at Harmony and it seems to be an
excellent suite of
> > > software (love the on-screen design of it), but although I
looked at the
> > > documentation, I couldn't really see what I was looking for.
> > > >
> > > > Sure, you seem to have included lots of classes for
different families and
> > > genres of devices and fittings, but what I am looking for is
really a
> > > document (or more likely a set of documents) that provides
an overall object
> > > map that can include all possible home automation entities
(or be capable of
> > > growing towards that).
> > > >
> > > > The kind of thing I am looking for would have
"Home" at the top, under
> > > that it would have things like "Appliances"
"Fittings" "Services", "Spaces"
> > > and so on. Then (for example) under "Appliances"
it would things like
> > > "Heating", "Cooling",
"Ventilation", "Climate Control" and so on.
> > > >
> > > > Then, a related document would have individual object
definitions. One
> > > object might be an "AirConditioners". The air
conditioner object would have
> > > methods and properties and so on. So, in an implementation
of this generic
> > > scheme, an HA control system would register a newly
discovered Aircon system
> > > as an instance of an object with a path of
"Home\Appliances\ClimateControl"
> > > >
> > > > Now, I think probably that's the kind of organisation
you may have
> > > internally within Harmony Server and its companions? But, I
can't see a
> > > published formalisation of it in the documentation. Perhaps
I am missing
> > > something or being stupid, but an explicit model doesn't
jump out at me?
> > > >
> > > > Why am I seeking this? Because I am creating
MicroController based
> > > projects aimed at Home Automation, I am keen not to reinvent
any wheels. I
> > > want the things I create to be able to participate in a well
defined - open
> > > as possible - HA definition. Obviously, developing a full HA
object model is
> > > not a trivial task, but it must have been done many times.
Problem is, the
> > > results never seem to have been made available in a form
accessible to the
> > > hobbyist. As I said before, there seem to be these schemas
out there - but
> > > either they are jealously guarded commercial information
(which I can
> > > understand) or they are only available from standards bodies
at a price
> > > that's too high for hobbyists.
> > > >
> > > > Tom, thanks for the OSA pointer. It does seem
interesting, but again there
> > > is no mention of a formal object specification to go with it
and the
> > > documentation seems limited to installing it and dealing
with interfacing
> > > issues. It looks like an integration framework, which again
is great, but
> > > not quite what I am looking for. I have downloaded it to try
tomorrow, so
> > > perhaps I will be pleasantly surprised when I load it up 8-)
I'll let you
> > > know.
> > > >
> > > > Thanks again for the responses guys.
> > > >
> > > > Regards
> > > > Alan T
> > > >
> > > > --- In ukha_d@xxxxxxx, Tom Lawrence <tom@> wrote:
> > > >>
> > > >> Hi
> > > >>
> > > >> This seems to be something that might be of
interest.
> > > >>
> > > >> http://code.google.com/p/osae/
> > > >>
> > > >> thanks,
> > > >> Tom
> > > >> On 7 Mar 2012, at 00:48, Rob Iles wrote:
> > > >>
> > > >> Hi
> > > >>
> > > >> Harmony. (www.domialifestyle.com<http://www.domialifestyle.com>)
has a
> > > fully documented API. You'll need
> > > >> to be running on windows, and have at least a basic
understanding of Dot
> > > >> Net.
> > > >>
> > > >> Info on the website. Feel free to contact me
directly if you want to.
> > > >>
> > > >> Disclosure :- I am the author of Harmony.
> > > >>
> > > >> Rob
> > > >>
> > > >> --
> > > >> Rob Iles
> > > >> Proprietor & Chief Automation Architect
> > > >> Domia Lifestyle
> > > >> www.domialifestyle.com<http://www.domialifestyle.com>
> > > >> On 6 Mar 2012 10:53, <alan.trevennor@> wrote:
> > > >>
> > > >> **
> > > >>
> > > >>
> > > >> Good morning all.
> > > >>
> > > >> I just joined, so be gentle if this is a silly
question, or reopening old
> > > >> wounds! I did a search of this forum and found
nothing much to answer my
> > > >> question, so here I am asking it!
> > > >>
> > > >> I've been looking for a freely available (non
proprietary) object model
> > > >> for the smart home which is suitable for use by the
hobbyist or home-brew
> > > >> HA enthusiast. I've found some Java classes that
relate to HA which would
> > > >> be useful if using Java (I guess) but seem very
language specific. I've
> > > >> found several useful looking documents issued by
standards bodies (DLNA
> > > and
> > > >> others) - but which in fact require you to join
them at a fee of
> > > thousands
> > > >> before you can access them. Not at all suitable for
the lone hobbyist on
> > > >> low low budget.
> > > >>
> > > >> I've also found several commercial companies who
say their products all
> > > >> use their standard object model, but who don't
actually publish that
> > > object
> > > >> model, thus ignoring the lessons of recent history
that say that
> > > publishing
> > > >> interface standards increases market traction.
> > > >>
> > > >> I've found several old stale sites which say they
are working on an open
> > > >> HA object model, but which seem to long ago have
failed to proceed.
> > > >>
> > > >> And so on...
> > > >>
> > > >> So my question is: Does such a thing exist? A
freely available and
> > > >> comprehensive object model for the smart home,
suitable for use by the
> > > >> great unwashed?
> > > >>
> > > >> My Googling would seem to suggest to me that there
is no such thing. Am I
> > > >> wrong? I hope I am 8-)
> > > >>
> > > >> Thanks in advance for your help.
> > > >> Alan T
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> [Non-text portions of this message have been
removed]
> > > >>
> > > >>
> > > >>
> > > >> ------------------------------------
> > > >>
> > > >>
> > > >> Yahoo! Groups Links
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> [Non-text portions of this message have been
removed]
> > > >>
> > > >
> > > >
> > >
> > > ------------------------------------
> > >
> > > Yahoo! Groups Links
> > >
> > >
> >
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
>



[Non-text portions of this message have been removed]



------------------------------------

<*> Join the Automated Home Forums
http://www.automatedhome.co.uk/vbulletin/


UKHA_D Main Index | UKHA_D Thread Index | UKHA_D Home | Archives Home

Comments to the Webmaster are always welcomed, please use this contact form . Note that as this site is a mailing list archive, the Webmaster has no control over the contents of the messages. Comments about message content should be directed to the relevant mailing list.