@startuml !include Person(user_s, "User", "") Person(user_p, "System administrator", "could be also power user/tinkerer") System_Boundary(boundary, "SmartHut") { } System_Ext(smartdevice, "Smart Device") System_Ext(sensor, "Smart Sensor") Rel(user_s, boundary, "Controls smart devices") Rel(boundary, user_s, "Informs of device status") Rel(user_p, boundary, "Installs and maintains") Rel(boundary, user_p, "Reports performance metrics") Rel(boundary, smartdevice, "Checks if alive") Rel(boundary, smartdevice, "Controls", "device state, settings") Rel(smartdevice, boundary, "Transmits state") Rel(boundary, sensor, "Checks if alive") Rel(sensor, boundary, "Transmits measurements", "temperature, light, humidity") @enduml