From c721612ede5ee782fd25734b22f00c21ace3a124 Mon Sep 17 00:00:00 2001
From: Zbigniew Bodek <zbigniew.bodek@huawei.com>
Date: Tue, 6 Apr 2021 16:59:35 +0200
Subject: [PATCH] docs: Add PlantUML diagram of the demo setup

Show Dashboard/SmartHome demo setup on a puml diagram.

Signed-off-by: Zbigniew Bodek <zbigniew.bodek@huawei.com>
---
 docs/demos/assets/smart-home-demo-arch.png  | Bin 0 -> 20216 bytes
 docs/demos/assets/smart-home-demo-arch.puml |  22 ++++++++++++++++++++
 docs/demos/smart-panel.rst                  |   2 ++
 3 files changed, 24 insertions(+)
 create mode 100755 docs/demos/assets/smart-home-demo-arch.png
 create mode 100644 docs/demos/assets/smart-home-demo-arch.puml

diff --git a/docs/demos/assets/smart-home-demo-arch.png b/docs/demos/assets/smart-home-demo-arch.png
new file mode 100755
index 0000000000000000000000000000000000000000..2e94ff1c797c8c1d913e906f9fd8526f6cd98360
GIT binary patch
literal 20216
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
Gp$P!7zXMtT

literal 0
HcmV?d00001

diff --git a/docs/demos/assets/smart-home-demo-arch.puml b/docs/demos/assets/smart-home-demo-arch.puml
new file mode 100644
index 00000000..82c71a61
--- /dev/null
+++ b/docs/demos/assets/smart-home-demo-arch.puml
@@ -0,0 +1,22 @@
+' SPDX-FileCopyrightText: Huawei Inc.
+'
+' SPDX-License-Identifier: CC-BY-4.0
+
+@startuml smarthome-demo-arch
+!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
+
+HIDE_STEREOTYPE()
+
+title SmartHome demo architecture
+
+Person(user, "User")
+System(dashboard, "Dashboard", "Home Assistant software running on Avenger96 board, interfacing with the user via a touchscreen")
+
+System_Ext(sensors_board, "Sensors board", "96Boards Nitrogen with the Sensors Mezzanine adapter and selected sensors connected")
+System_Ext(smart_bulb, "Smart bulb/LED", "96Boards Nitrogen with the Sensors Mezzanine adapter and LED connected")
+
+Rel(user, dashboard, "Uses")
+Rel_Back(dashboard, sensors_board, "Sends sensors readings", "BLE")
+Rel_Neighbor(dashboard, sensors_board, "Reads out sensors", "BLE")
+Rel(dashboard, smart_bulb, "Controls", "BLE")
+@enduml
diff --git a/docs/demos/smart-panel.rst b/docs/demos/smart-panel.rst
index 55bd52bf..81858728 100644
--- a/docs/demos/smart-panel.rst
+++ b/docs/demos/smart-panel.rst
@@ -20,6 +20,8 @@ HomeAssistant. The gateway also provides UI as a browser connected to the
 localhost HomeAssistant server. The gateway is connected over Bluetooth to two
 Nitrogen boards exposing sensors and/or emulating device (e.g. light bulbs).
 
+.. image:: assets/smart-home-demo-arch.png
+
 How to build
 ************
 
-- 
GitLab