Datenmodell - pigtastic/UBQ-Smarthome Wiki

Unser Datenmodel besteht aus 2 Kollektionen. Zum einem gibt es eine List mit den Gruppen. Hier wird lediglich der Name mit einer Id ($oid: Object Identifier) eingespeichert.

{
   "_id":{
      "$oid":"60bcd97aceea0a6c6f631526"
   },
   "name":"Wohnzimmer"
}

Unsere zweite Kollektion Beinhaltet die Geräte. Aktuell gibt es ausschließlich Datenmodele für MQTT. Es ist aber möglich auch zukünftig weitere Modelle für andere Protokolle in diese Kollektion einzubringen. Unter "fn" sind unsere möglichen Funktionen des jeweiligen Geräts gespeichert. Das Beispiel zeigt eine Konfiguration für ein Relais, also einen Schalter mit den zwei Zuständen AN oder AUS. Hier könnten auch weitere Relais sowie ihren Zustand angelegt und gespeichert werden.

{
   "_id":{
      "$oid":"60a26a765f91ff38053d2baf"
   },
   "name":"Büroooooo Licht",
   "gateway":"TASMOTA",
   "mqttTopic":"tasmota_C490CF",
   "fn":{
      "power":{
         "relay1":"ON"
      }
   },
   "groups":[
      {
         "$oid":"60a50866182b4095787b97b1"
      },
   ],
   "category":"Light"
}

Unser Sensor beinhaltet unter "fn" andere Werte:

   "fn":{
      "sensor":{
         "sensor1":"23.00"
      }

Hier gibt es ausschließlich einen Senorwert, der aktualisiert wird. Zudem wäre es auch möglich ein Gerät mit Relais und Sensor anzulegen, also eine Kombination aus den beiden Beispielen. Die Funktionen können beliebig mit zukünftigen Entwicklungen des Backendes erweitert werden um auch andere noch nicht bekannte Geräte hinzuzufügen.