The UK Home Automation Archive

Archive Home
Group Home
Search Archive


Advanced Search

The UKHA-ARCHIVE IS CEASING OPERATIONS 31 DEC 2024

Latest message you have seen: xPL4Linux V1.2 Available


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

RE: Re: xPL announcement/description protocol -- was xPLDiag



Hi Mal,

> Perhaps the key to all of this is the hub's client list.
> With the rapid heartbeat system leading to quick discovery,
> the client list will be up to date.  Querying the hubs for
> client details should prove a sufficient starting point for a
> front end or diag tool to construct a list of xPL apps.

You're assuming that every app is PC-based.

What about directly connected apps that go straight onto the Ethernet
network - they don't use a hub, so will never appear in any hub client
list - likewise RS485 apps, and in fact any other device that doesn't
use a PC as a host.

> There is still the problem of your send-only devices, but to
> be honest I don't see any way to include those.  If they
> can't receive, then they can't respond to requests or
> implement a rapid heartbeat system - they will just have to
> be discovered when they transmit (in fact, was there ever any
> reason for a send-only device to send hbeats? They are only
> there to tell the hub it needs to send you messages, but if
> you can't receive them, what's the point?)

I think when we discussed that a long time ago, we agreed that if an app
is send-only, there is no need for it to send out heartbeats.
(but it can if it wants to)

> In my proposal for about.basic there was only one item that
> could not go into the vendor xml - the application version
> number.  Perhaps rather than create a new schema, the hbeat
> messages sent by new apps can add a version=... item to the
> end.

I like the idea of using hbeat. As Gerry has already said, hbeat.app
already permits extra items.
Adding a version= element would be really straight-forward, and would
help a lot in debugging.

> This could be stored by the hub in its client list, and
> returned as part of a hub query.  This is backwards
> compatible, since older apps will still be reported, just
> without a version number.

This is where I have to disagree totally!

One of the goals of xPL is to be totally protocol agnostic.

Why do we need hubs? We need them to implement xPL over TCP/IP.
Hubs are nothing to do with the core protocol - just like mutexes, and
everything else that's either OS or TCP specific that we've tried to
avoid.

If we were running xPL devices over something entirely different to
TCP/IP, we might not need hubs at all.

Therefore, IMO relying on a hub to perform client discovery goes against
all the goals of the xPL project.

I don't even like the idea of a hub sending out hbeats and appearing as
an xPL device in it's own right - a hub should just sit there silently
doing it's job.

If we want a faster client discovery than we currently have (which I
agree is important if client apps are to quickly build up a view of the
network) then that should be implemented at the device level.

Gerry's suggestion of a hbeat.request is ideal - all we are asking a
device to do is respond with it's usual heartbeat whenever it receives a
hbeat.request - you can't get much easier than that.

Regards,

John



xPL Main Index | xPL Thread Index | xPL 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.