Skip to content

Meta Database Schema

Kai Kramer edited this page Nov 24, 2017 · 5 revisions
{
  "id": "object-id", // id corresponds directly to the topic(s) on which the object publishes/subscribes
  "type": "...", // a generic object type defined by mqtt-smarthome, e.g. "device", "datapoint", "enumeration" or smth
  "name": "...",
  "parent": "..." // object relation - an object can have childs/parents, 
                        // tbd: parent sufficient? or better have a child array instead of a single parent attribute?
  "common": {   //      consensus?
      // common data specified by mqtt-smarthome with some mandatory and perhaps also some optional attributes
      //      consensus: the xy2mqtt interfaces have to create/transform this data?
  },
  "native": {     // consensus? 
     // data as taken 1:1 from the interfaced system
  },
  "homekit": {
     // transformed metadata for use in homekit2mqtt (optional) (tbd: where does transformation take place?)
   },
   "alexa": {
     // transformed metadata for use with amazon alexa... (optional) (tbd: where does transformation take place?)
   },
   // .... more transformed sub-objects (tbd: where does transformation take place?)
}

Top level Attributes

  • id (mandatory)
  • name (mandatory?)
  • type (mandatory)
  • ...?
  • ...

Object types

  • device?
  • channel? (child of device? tbd: necessary?)
  • datapoint (describes a specific topic. tdb: naming? better call it topic?)
  • enumeration (could be a e.g. a room that contains devices/channels/datapoints...)
  • ...?
  • ...

Common Attributes

  • ...?
  • ...
  • one more (test)