Fuze Insight is a free web based platform, used to manage real-life business processes alongside the Internet of Things (IoT). It provides many customisation opportunities and incorporates both scripting for custom logic and the facility to extend the user interface using Java and the Vaadin framework. This document contains information about the standard administration of the product after installation.
2. High-level Architecture
Fuze
Insight
Web
Application
Package
Database
Web
Browser
Scheduler
&
File
Threads
Data
Importer
Processes
(e.g.
Fuze
Pipeline)
Data
Store
Tables
Application
Tables
3. qInstall
pre-‐requisite
products
qCreate
SQL
tables
from
script
qEnsure
that
base
object
types
(data
insert
script)
are
installed
qCreate
and
deploy
fuzeinsight2.properties
file
qDeploy
&
customise Fuze
Insight
configuration
files
qDeploy
WAR
file
(or
copy
unzipped
files
into
app
server
as
preferred)
qStart
server
qCheck
that
system
starts
by
monitoring
log
file
(e.g.
catalina.out)
qOnce
system
is
working
switch
configuration
log
level
to
WARN
or
ERROR
to
keep
log
file
size
to
a
minimum
Installation Checklist
4. qCreate
a
new
instance
(runmode in
configuration
should
be
cloud)
qLog
into
new
instance
and
edit
emails
for
new
accounts
and
users
qCreate
your
object
types
to
use
(or
use
the
quick
start
to
create
for
you)
System Configuration Checklist
6. • Describe
a
‘thing’
in
the
Fuze
Insight
system
Based
on
a
• Person,
Object,
Location,
Event,
File
• Used
to
create
‘Instances’
of
things.
• Instances
have
a
unique
record
in
the
database
• Types
can
have
a
unique
dashboard
layout
and
also
be
mapped
to
custom
UI
(user
interface)
classes
Object Types
7. • Access
function
from
the
Object
Types
administration
menu
item
• Click
the
Add
Type
button
to
create
a
new
object
type
Object Type Creation
Unique
name
is
used
in
scripts
and
other
programming
languages
It
cannot
contain
spaces.
Description
is
used
to
display
information
about
this
Object
Type
on
the
user
interface
(what
the
user
sees).
Base
type
is
used
for
semantic
analysis.
Is
the
thing
an
event
or
a
person
for
example.
Standard
for
physical
or
conceptual
things
is
Object
8. • Select
an
Object
Type
from
the
list
and
settings
are
shown
at
right
side
of
the
application
screen
Object Type Configuration
Unique
name
used
in
scripts
and
other
programming
languages
Description
shown
to
users
Root
Object
is
shown
as
parent
in
navigation
tree
view
Child
Object
is
shown
as
quick
add
in
“add
new
object”
function
Force
custom
dashboard
display
to
top
of
Dashboard
view
Automatically
show
files
view
when
opening
object
of
this
type
Hide
functionality
for
managing
files
on
this
object
type
Default
icon
to
show
for
objects
of
this
type
Custom
view
class
(Java)
to
show
for
objects
of
this
type
9. Object Type Config. (cont’d)
Delete
object
type
(must
have
no
instances)
Block
numbering
for
streaming
and
distributed
operations
10. • Shown
at
left
side
of
screen
• Arranges
by
instance
of
Root
object
types
Navigation View
Create
New
button
shows:
Root
object
types
(creates
an
instance
of
this
type)
Custom…
(allows
creation
of
ANY
object
type)
Child
object
types
(creates
an
instance
of
the
type)
When
creating
custom
and
child
object
types
a
parent
should
be
selected
first
to
automatically
create
a
child-‐>parent
relationship.
If
not
then
the
created
object
will
be
an
‘orphan’
and
can
be
found
by
searching
for
it
using
the
search
function
11. Default Object View
System
Dashboard
View
Security
groups
(admin)
Refresh
Admin
Options
Tags
on
object
History
events
Parents
&
Children
Attributes
on
object
12. Object Admin Options
Edit
object
description
&
allocate
to
data
store
Re-‐classify
the
object’s
type
Add
an
attribute
to
the
object
Edit
the
location
information
for
object
using
UI
Manage
dashboard
layout
for
custom
visualisation scripts
Delete
the
object
from
the
system
13. • Attributes
are
name-‐>value
pairs
attached
to
individual
object
instances.
• String
(Text)
• Integer
• Long
• Double
• Date
Time
• Attributes
are
used
to
store
additional
information
against
an
object
that
can
be
used
visually
(e.g.
an
address)
or
through
code
(e.g.
through
scripts
or
Java
extensions)
• To
manually
edit
an
attributes
value,
double
click
it
on
the
object
view
Object Attributes
14. Object Search
Base
Type
filter
Specific
Type
filter Description
filter
Search
results
view.
Select
one
or
more
rows
Open
selected
object
Change
selection
type
Quick
Field
Editor.
Single
or
batch
mode.
17. • A
security
group
is
a
collection
of
users
that
have
access
to
an
object
• Each
object
can
have
multiple
security
groups
• Security
groups
are
applied
at
a
singular
object
level
(system
will
automatically
apply
to
new
and
child
objects)
Security Groups
18. Managing a Security Group
Add
a
new
group
Available
groups.
Click
to
show
edit
options
Name
for
system
(no
spaces)
Description
(shown
in
UI)
Enable
clear
&
delete
Remove
group
from
objects
Delete
group
Pick
user
from
list
then
remove
Find
specific
user
(click
when
blank
for
all)
Pick
user
from
list
then
add
to
group
19. Managing Users
Invite
a
New
User Available
users
to
allocate
in
system
Pick
a
user
to
display
edit
options
on
right
Admin
or
System
Admin
flags
Admin
can
make
changes
to
system
such
as
delete,
create
Sys
Admin
can
change
look
and
feel
plus
power
user
admin
functions
20. • When
a
user
is
invited
to
your
instance
the
following
takes
place
• If
they
are
not
already
registered
in
another
instance
they
are
sent
an
email
with
their
new
login
and
password
details
• If
they
are
already
members
of
another
instance
they
have
a
login
and
password
already
and
won’t
receive
this
email
• They
are
sent
an
email
explaining
that
they
have
been
added
to
your
instance
• The
email
templates
are
edited
through
the
email
manager
What happens when a user is invited?
22. How is data mapped
Data
Store
Contains
actual
time-‐
series
data
values
Header
Table
Unique
Reference
Time
Series
Table
Date/Time
stamp
Custom
Fields
INSTANCEID_TABLENAME
(_header,
_ts)
Object
Instance
Reference
Attribute
dataref
Data
Store
Mapped
in
object
settings
23. Data Store Manager
Create
a
new
store Delete
selected
store
View
references
not
mapped
to
an
object
View
objects
not
mapped
to
a
parent
Add
a
new
field
to
data
store Fields
stored
in
time-‐
series
table
Default
unit
of
measurement
(can
be
overridden
per
object)
24. Managing Orphan References
Select
reference(s)
– Must
be
highlighted
Drag
&
Drop
selection
onto
an
object
type
This
will
automatically
map
the
data
store
to
a
new
object
and
create
the
reference
attribute
It
will
name
the
object
based
on
the
data
reference.
This
function
is
used
to
automatically
map
data
to
a
new
object
in
the
system
It
‘on
boards’
or
‘commissions’
a
new
device
from
existing
data
records
25. Managing Orphan Objects
This
function
is
used
to
automatically
list
objects
that
are
mapped
to
the
selected
data
store
but
are
not
yet
joined
to
another
object.
It
is
used
to
easily
display
devices
in
the
navigation
view
tree.
Select
Object
(highlight
it
blue)
Drag
it
and
drop
onto
a
parent
in
the
navigation
tree
to
link
them.
It
will
vanish
from
the
orphaned
objects
list.
26. Process for adding new data device
Add
Data
to
Store • Use
Add
Data
function
manually
• Inject
data
records
automatically
to
database
table
Map
Reference
to
Object
Type
• Use
Orphaned
Reference
function
• Manually
create
an
object,
map
data
store,
add
dataref
attribute
Map
Object
To
Parent
Container
object
(e.g customer
or
project)
•Quick
way
to
map
a
device
to
the
navigation
view
27. Inserting data manually
First
time
– maps
a
CSV
file
format
to
a
data
store
Repeat
– Processes
1+
CSV
files
using
existing
template.
28. Build CSV Template
Data
store
to
put
data
into
Paste
a
small
sample
of
your
CSV
data
into
this
box
to
visualise the
extraction.
Choose
to
get
header
reference:
Fixed
value
From
specific
row,col of
CSV Data
format
used
in
CSV
rows
Ignore
rows
starting
with
chars
CSV
separator
character
First
data
row
(starts
at
0)
Builds
data
preview
(2)
Choose
which
fields
to
map
columns
into.
Includes
timestamp
and
data
reference
unique
id
Data
preview
shows
data
In
row
&
column
view
Adds
data
from
the
preview
into
the
data
store
(use
to
test)
Saves
this
configuration
as
a
template
for
re-‐use
29. Process CSV files from template
Select
a
saved
template
from
the
drop
down
list
Drag
and
drop
one
or
more
files
onto
the
yellow
(dotted
outline)
box.
After
processing
an
email
will
be
sent
to
you
explaining
success
or
errors
during
the
import
Wait
for
files
to
process
before
closing
Import
is
slower
than
using
external
processes
to
prevent
impact
on
other
users
of
the
web
interface
Tick
to
enable
delete
function
– then
delete
selected
template
30. • To
automatically
add
data
to
the
system
you
can
write
directly
to
the
data
tables
in
the
database
schema
from
another
process
• Data
is
abstracted
from
the
system
– store
anything
• Header
record
must
be
unique
– e.g.
serial
number
• Header
reference
maps
to
time-‐series
table
records
(unique
timestamp
makes
row
plus
custom
fields
for
each
entry)
• Create
Data
Stores
through
the
Fuze
Insight
UI
• Will
update
the
tables
in
the
database
schema
Inserting data automatically
32. • This
document
contains
an
overview
of
the
development
options
in
Fuze
Insight
• More
detail
is
available
from
the
Developers
Guide
document
(including
class
documentation
in
JavaDoc format
and
samples)
• Two
options
are
available:
• JavaScript
to
create
dashboard
widgets,
reports
and
scheduled
jobs
• Java
to
create
fully
customisable
UI
extensions
to
add
user
functionality
to
the
system
around
its
architecture
Overview of developer options
34. • JavaScript
sandbox
engine
built
into
Fuze
Insight
• Allows
custom
visualisations
in
object
dashboards
• Builds
global
reports
• Schedule
automated
jobs
• Can
access
objects
and
data
through
API
• Access
to
classes
restricted
through
configuration
file
• Extend
the
classes
list
to
allow
access
to
your
own
Java
classes
from
scripts
for
integration
with
other
systems
Scripting Overview
35. Script Editor
Create
a
new
script
Select
an
entry
in
list
to
enable
edit
functions
Code
Editor
Sets
the
date
the
script
will
run
at.
Allows
you
to
run
as
though
at
historic
or
even
future
dates.
Saves
script
currently
in
editor Runs
current
script
in
editor
36. Script Properties
System
name
of
this
script
Description
shown
in
UI
Modes
that
the
script
can
operate
in:
Global
Report
(REPORT)
appears
in
reports
dropdown
for
admins
Type
Specific
(not
yet
implemented)
– shows
as
report
for
specific
types
Display
as
Widget
(WIDGET)
appears
in
object
type
dashboards
37. Script Scheduling
Set
to
run
monthly
at
Hour
of
day
(UTC)
on
a
specific
day
of
a
month
Choose
to
run
daily
(choose
days)
Hour
of
day
to
run
the
script
at
(daily
or
monthly)
Choose
to
run
script
hourly
(24x7)
More
advanced
scheduling
of
scripts
&
jobs
can
be
achieved
through
the
Fuze
Pipeline
&
Nucleus
products
38. • When
a
script
is
run
there
are
a
number
of
prebuilt
variables
available
in
the
JavaScript
engine:
• container
• An
instance
of
InsightContainer from
the
Fuze
Insight
API
containing
• otm – An
instance
of
the
ObjectTypeManager class
used
to
work
with
object
types
• om
– An
instance
of
the
ObjectManager class
used
to
work
with
objects
• dsm -‐ An
instance
of
the
DataStoreManager class
used
to
work
with
data
stores
• cm
– An
instance
of
the
InsightContentManager class
used
to
load
chunks
of
content
for
reuse
(this
allow
you
to
externalise
content
used
in
reports,
widgets
and
other
jobs
and
to
support
multiple
languages
etc).
• It
is
also
possible
to
work
with
a
number
of
other
classes
such
as
date/times
and
JSON
calls.
These
supported
classes
are
defined
in
the
Fuze
Insight
configuration
and
can
be
customised
as
needed.
Script Variables
40. • Add
Vaadin libraries
to
your
project
classpath
• Add
a
reference
to
the
fuzeinsight-‐api.jar in
your
project
classpath
• Derive
a
new
class
from
the
FuzeInsightObjectView class
• Implement
default
methods with
your
custom
functionality
• Deploy
JAR
file
to
your
Fuze
Insight
deployment
• Add
mapping
to
your
custom
class
to
the
configuration
file
in
Fuze
Insight
• Restart
the
application
server
• You
can
now
map
object
types
to
show
your
custom
UI
class
in
the
object
types
editor
Making a custom UI class
41. Sample of inherited class
Here
is
the
extends
definition
to
enable
your
class
to
act
as
a
UI
customisation