In my previous post, I mentioned some of the issues I was experiencing with my current choice of home automation protocol, xPL. The primary issue was the need to perform filtering for every message on every client due to the use of broadcasts for messaging. One way to avoid this is to use a pub/sub messaging system instead. A number of people that I respect have been using the MQTT Protocol so I thought I’d take a better look at it.
I’ve been using the xPL Protocol since 2005, prior to that I was using Jabber (or XMPP as it is known now). As I’m thinking about changing protocol, I thought I’d write a bit about xPL and, in later posts, something about the candidates to replace it. The xPL Protocol has three types of messages: commands (xpl-cmnd), triggers (xpl-trig) and status (xpl-stat). They have the same simple format consisting of the message type, common “header” fields, the schema type and schema-specific “body” fields.