Download as pdf or txt
Download as pdf or txt
You are on page 1of 289

Ayyeka Knowledge Base

User Manual

Created: 10-Nov-2020

Copyright © Ayyeka Technologies, LTD. All Rights Reserved.


Table of Contents
Overview, Account Hierarchy, and Data Model Hierarchy ............................................................. 1
Device Quick Start Guides ............................................................................................................ 6
How Do I ...? *NEW & UPDATED TOPICS* ...................................................................................... 7
Use the Dashboard ................................................................................................................. 8
Set up and Maintain Accounts *NEW TOPIC* .......................................................................... 9
Changing an Account Name or Deleting an Account ..................................................... 10
Overview of Custom Attributes ..................................................................................... 11
Set up and Maintain Organizations ...................................................................................... 12
Set up and Maintain Sites *UPDATED TOPIC* ....................................................................... 13
Manage Users ...................................................................................................................... 14
Manage User Groups ............................................................................................................ 15
Set Personal Preferences ..................................................................................................... 16
Manage Devices ................................................................................................................... 17
Overview of all Stream Types .............................................................................................. 18
Manage Data and Technical Streams ................................................................................... 23
Overview of Technical Streams ..................................................................................... 24
Creating and Editing a Data or Technical Stream ......................................................... 28
Manage a Stream#U2019s Sampling Interval .............................................................. 30
Manage Device Technical Alerts ................................................................................... 31
Manage External Stream ...................................................................................................... 32
Manage Data Sites ............................................................................................................... 33
Manage LoRa Devices *NEW TOPIC* .................................................................................... 40
Understanding LoRa Transmission ................................................................................ 41
Set Device Advanced Configuration ..................................................................................... 44
Installing and Configuring Sensors *NEW & UPDATED TOPICS* ........................................... 45
Configuring SDI-12 Sensors ........................................................................................... 46
Enabling Temperature Compensation in an APG Ultrasonic Sensor .............................. 53
Installing Ultrasonic Level and Ultrasonic Radar Sensors to Measure Water Level ....... 55
Correcting Negative Values from an Ultrasonic Level Sensor ....................................... 67
Installing and Configuring the Camera .......................................................................... 70
Using the Camera App .................................................................................................. 77
Manage Batteries and SIM Cards ......................................................................................... 81
Replacing the Battery ................................................................................................... 82
Replacing the SIM Card in a Device, Version 3 .............................................................. 85
Replacing the SIM Card in a Device, Version 4 .............................................................. 95
Overview of Reports ........................................................................................................... 105
Aggregation Report ..................................................................................................... 106
Stream History Report ................................................................................................ 109
Custom Stream History Report ................................................................................... 110
Pinouts ...................................................................................................................................... 112
Devices .............................................................................................................................. 113
Cable Assemblies ............................................................................................................... 115
Cable Splitters .................................................................................................................... 116
External Power Supplies ..................................................................................................... 117
Device Datasheets .................................................................................................................... 118
Sensors ..................................................................................................................................... 119
Accessories ............................................................................................................................... 138
External Cellular Antenna - Overview, Recommended Practices, Installation .................... 139
External In-Road Mount Antenna ....................................................................................... 144
Cellular Antenna Patch Taoglas GSA.8827.A.101111 ......................................................... 145
Cellular Antenna Dome Laird TRA6927M3PWN-001 ........................................................... 146
Cellular Antenna - Magnetic Mount APAMSLJ-164 .............................................................. 147
Indoor Power Supply, US Wall Plug Triad WSU120-2000-R ................................................. 148
Device Specifications ................................................................................................................ 149
Connector 42-00009 Datatsheet ........................................................................................ 150
Device Mechanical Drawings .............................................................................................. 152
Device Specifications ......................................................................................................... 153
On-Premises .............................................................................................................................. 157
Installation Guide for On-Premises ..................................................................................... 158
Device Migration from the Cloud to the On-Premises Server ............................................. 166
Maintenance Guide for On-Premises Server ....................................................................... 171
Integration with External Applications ...................................................................................... 175
API ...................................................................................................................................... 176
Using the REST API ...................................................................................................... 177
Deleting, Deactivating, or Activating a REST API Client .............................................. 181
Tools for SCADA System Integration .................................................................................. 182
Overview of Agents for Device Integration with a SCADA System .............................. 183
OPC-UA Installation and Integration Guide .................................................................. 185
DNP3 Outstation Installation ....................................................................................... 195
CSV Generator Agent - Installation and User Guide .................................................... 215
Creating an Events Stream for SCADA Systems .......................................................... 237
TROUBLESHOOTING and SUPPORT ........................................................................................... 239
TOOLBOX - for Support Personnel ...................................................................................... 240
Opening Questions for Every Support Call .................................................................. 241
Remote support with TeamViewer & Quick Support ................................................... 242
Connect to Device by using PuTTY .............................................................................. 243
Connecting to the Device by Using the Mobile App .................................................... 247
Training Videos .................................................................................................................. 249
Pre-Installation Check List .................................................................................................. 251
Assessing the Device ......................................................................................................... 253
Device Maintenance Guide ................................................................................................ 257
Parameters - What They Mean and Their Values ............................................................... 258
LED Light Status Indicators ................................................................................................ 261
Alert Problems .................................................................................................................... 269
Troubleshooting - Bird's Eye View Decision Tree ............................................................... 271
Device Problems ......................................................................................................... 272
Sensor Problems ......................................................................................................... 275
Communication Problems ........................................................................................... 280
Transmission Problems ............................................................................................... 283
Overview, Account Hierarchy, and Data Model Hierarchy
Ayyeka provides end-to-end remote monitoring solutions consisting of a Wavelet data
acquisition device, one or more sensors, wireless connectivity, and data and device
management software. Ayyeka's Wavelet device and software (IoT Platform) provide input for
decision makers with continuous data on the state of their infrastructure and dispersed assets.
The Ayyeka solution is intended and engineered for passive monitoring and is not intended for
control of critical assets and processes.

Contents
Overview
Account Hierarchy
Data Model Hierarchy
What's What - Unique Identification

Overview
Watch a three-minute video for an overview of the Ayyeka platform.

Several sensors of various types are integrated with each Wavelet device, which is installed
onto existing customer infrastructure. The Wavelet device obtains samples from the connected
sensors at a configurable sampling rate. The data obtained from the sensors is logged on the
Wavelet device and transmitted to a server at a configurable transmission rate.

Figure 1: Private cloud server


Figure 2: On-premises server

Figure 3: Hybrid cloud server

Account Hierarchy
Your system, also called an Account, is organized hierarchically as follows:
Account
Organization(s)
Site(s)
Device(s)
Data streams(s)

The following graphic shows how your Account is organized in StreamView user interface.
In the example shown above, you can find the following information:

The My_Account Account consists of a single Organization, My_org, which manages a

single Site, My_Site, with a single device, My_Device_number. The device is


connected to a Flow sensor data stream. Battery Life and Communication streams are
technical streams.

The sensor sends sample data to the My_Device_number device.

Note:
The Organization level is optional. If no Organizations are defined, all Sites are grouped
directly under the Account level. This is common in small Accounts.

The Device level is also optional. Data streams can be grouped directly under the Site level,
for example if there are very few devices in a site.

Every Account’s hierarchy is predefined to match the actual deployment of its devices and
their sensors.

The only hierarchy changes that an Account owner can make is to add Organizations, and to
assign/unassign sites to Organizations.

Ayyeka Data Model


Sensor measurements are stored in Ayyeka’s database in a hierarchical structure that matches
the actual deployment of the Ayyeka devices and their sensors. For each customer Account, the
Ayyeka data model includes the following entities:
A Site is a logical entity that represents a Wavelet installation location. Typically, each Site
includes one device. In some instances, multiple devices might be assigned to a single site.

A device is the physical Wavelet device that is installed in the field. Each device generates
and subsequently transmits data streams (time-stamped data) from one or more sensors
(such as pressure, turbidity, conductivity, etc.) that are integrated with the device. Each
device belongs to a specific site.

A channel is the physical entity that gets raw values (Raw Value column in Samples table)
from the sensor that is connected to the physical Wavelet device.

A stream is the logical entity that represents a sequence of final values (Final Value column
in Samples table) from a specific sensor parameter. A stream is unique to a site and is
assigned to a channel.

A sample is the measurement at a specific moment in time.

What's What - Unique Identification


The Site, device, channel, and stream each have unique IDs in your Account's Organization.
To see the Site, device, and stream IDs, go to the Site Tree pane, and then hover your mouse
pointer over the Site, device, and stream icons.
To see the channel ID, go to the STREAM MANAGEMENT table, and then hover your mouse
pointer over the sensor type (in the Type column) of the stream that you are interested in.
Here are examples of what you might see:

Data Model Entity Where to Find Its ID

Site

Site ID: 8314

Device

Device ID: 8295


Stream

Stream ID: 79743

Channel

Channel ID: 132210


Every Wavelet model has a different pinout for the connector ports. If you are not sure which
model you are wiring a sensor to, contact Support at support@ayyeka.com. Be sure to have
the device's serial number handy.

WA1111-V2 (WA1111-US-V2, WA1111-EU-V2, AND WA111-SA-V2) has 5 IO pins.

Download here:

Download here:

Download here:

Download here:
How Do I ...?
Use the Dashboard
Set up and Maintain Accounts *NEW TOPIC*
Changing an Account Name or Deleting an Account
To change an Account name:
The Account name cannot be edited in StreamView. Contact support@ayyeka.com to change
the Account name.
To delete an Account:
An Account cannot be deleted in StreamView. Contact support@ayyeka.com to delete an
Account.
Overview of Custom Attributes
Custom attributes are properties that you create to apply to a Site (device) and its streams. You
create custom attributes when the standard properties of the Site, such as Organization, AKID,
ICCID, Firmware Version and so forth, do not meet your business needs. For example, you might
want a custom attribute called Address that gives the Site’s geographic location.

Each custom attribute has a name and a value. You can assign multiple custom attributes to a
Site and its devices.

Custom attributes are created at the Account level. You can create custom attributes for
a Site and for a stream in the Account.

When a device (a Site) is moved from one Account to another Account, all custom
attributes on the Site are lost. Custom attributes must be re-added in the target
Account where needed. Before moving a Site, make a note of what custom attributes
need to be re-added.
Set up and Maintain Organizations
Set up and Maintain Sites
Manage Users
Manage User Groups
Set Personal Preferences
Manage Devices
Overview of all Stream Types
A stream is the logical entity that represents a sequence of final values (Final Value column in
Samples table) from different sources: the Wavelet device, its environment, and its attached
sensors. Streaming information is displayed on the StreamView data hub for visualization,
analysis, configuration, and reporting.

Ayyeka provides several types of streams to handle different types of information. Streams can
be associated with an entire Site, with a specific device, with another stream, or with a stream’s
events. Typically, streaming information is stored in the cloud or, alternatively, in your on-
premises system. Information about events that occur when a threshold is reached can be
integrated with SCADA systems.

Contents
Data stream
Virtual stream
Technical stream
External stream
Events stream
Comparison of functionality across all stream types

Data stream
A data stream is a stream of data samples that come from sensors that are connected to
the Wavelet. A data stream is associated with a specific device. It is found below the device
that it is associated with.

Virtual stream
A virtual stream is a stream that is created when computations are done on the Final Values of
a data stream. A virtual stream is nested below its parent data stream. The Final Values of the
parent stream become the Raw Values of the virtual stream. For details, see Overview of Virtual
Streams.

A virtual stream is associated with the parent stream. It is nested below its parent data stream.

Technical stream
A technical stream is a stream that is sent with every new device or when a template is applied
to the device. Alternatively, you can create technical streams after the device is operational,
without applying a new template. A technical stream provides information about the device
itself so that you can easily monitor its health.

Technical streams that are included with a new device include GSM, GPS, Battery, Humidity, and
Communication. Additional technical streams are listed in the STREAM MANAGEMENT table in
the Configuration tab for the device.

A technical stream is associated with a specific device. It is nested below the device that it is
associated with.

For details about each technical stream, see the table of technical streams.
External stream
An external stream is a stream that receives sample values by manual input rather than from
the device or its sensors. Sample values can be loaded into an external stream either
individually or by uploading a CSV file with multiple values. For details, see Overview of
External Streams.

The stream is associated with a Site but not with a device. Both the device and the external
stream are aligned under the Site. In contrast, the other streams (data, virtual, and technical) are
nested below the device.

Events stream
An event stream indicates when samples from an associated data stream cross over a defined
threshold. The event stream assigns index numbers to threshold ranges. There are two
common use cases for this type of stream:
You need to implement threshold and alert management in a SCADA system (rather than
in the Ayyeka system). For details, see Overview of an Events Stream.

You use the REST API, and you want to poll the server only as often as it is regularly updated
by the Wavelet. On the other hand, when there is an event, you want to capture that
information as soon as possible. Therefore, you create an Event Stream that polls much
more frequently than the regular streams. When an event occurrs, it can immediately query
the relevant stream to download its data.

Comparison of functionality across all stream types

The following table compares the functionality of all stream types.

Functionality Data Virtual Technical External Events

Minimum role to create a Engineer Engineer Owner Engineer Engineer


stream

Minimum role to edit stream Engineer Engineer Engineer Engineer Engineer

Minimum role to delete stream Engineer Engineer Engineer Engineer Engineer

Compare streams of the same Yes Yes Yes Yes No


type in the Visualization
window

Hide/unhide streams from other Yes Yes Yes Yes Yes


Account users
Create an event stream on the Yes No No No No
stream

Assign custom attributes to the Yes Yes Yes Yes No


stream

Hide/show data samples of the Yes Yes Yes


stream

Define Threshold for a stream: Yes No No No N/A



Add

Set action

Change name, range, alarm, or
filter

Transformation/configuration of Yes Yes Yes Yes No


stream data:

Create

Apply

Stream is included in reports: Yes Yes Yes Yes Yes to


• History and
History Aggregation

Aggregation No to all
• others
Daily Meter

Daily Total Flow

Custom Stream History
Manage Data and Technical Streams
Overview of Technical Streams
A technical stream is a stream that is sent with every new device or when a template is applied
to the device. Alternatively, you can create technical streams after the device is operational,
without applying a new template. A technical stream provides information about the device
itself so that you can easily monitor its health.

Technical streams that are included with a new device include GSM, GPS, Battery, Humidity, and
Communication Status. Additional technical streams are listed in the STREAM MANAGEMENT
table in the Configuration tab for the device.

The following table lists the technical stream types that may be associated with a device.

Type Stream Name Description and Range of Values

GSM Signal Strength , GSM* The strength of the modem signal to transmit to the cellular network.
Cellular Signal The closer the number is to 0, the stronger the signal strength.
Strength
GSM Signal Range of Values
• Excellent: > -64 dBm
• Good: Between -79 and -65 dBm
• Fair: Between -89 and -80 dBm
• Weak: Between -99 and -90 dBm
• Very Weak: <= -100 dBm

Tip: Ignore the value if it is +85. This is a known problem in 4G data networks.
GSM Signal Strength The quality of the modem signal expressed as a percentage. The signal strength is
% converted from dBm to the range 0 - 100, where 0 is the weakest signal strength and 100
is the strongest strength.

GSM Signal Strength % Range of Values



Excellent: 75-100%

Good: 55-75%

Moderate: 45-55%

Poor: 0-45%

GSM RSRP, Reference Signal Received Power - the modem signal’s power.
Cellular RSRP
GSM RSRP Range of Values

Excellent: >= -80 dBm

Good: -80 dBm to -90 dBm

Midway to LTE cell: -90 to –100 dBm

Edge of LTE cell: <= -100 dBm

GSM RSRQ, Reference Signal Received Quality - the modem signal’s quality.
Cellular RSRQ
GSM RSRQ Range of Values
• Excellent: >= -10 dBm
• Good: -10 dBm to -15 dBm
• Midway to LTE cell: -15 dBm to –20 dBm
• Edge of LTE cell: <= -20 dBm

GPS GPS* Global Positioning System that provides geolocation and time information to the device.
(Not included
in Wavelet 4R™) GPS is updated after a reboot, after the magnetic key is waved in front of the device,
when the device comes out of hibernation, and weekly.

Battery Consumption How much of the battery, in percent, remains based on the amount of energy that was
used for each transmission and sample.

Do not let the battery level go down to 1%, otherwise transmissions will fail.
Communication Communication Communication Status Values
Status Status* The Communication Status stream shows the status of the device:
Status Status Status Description
Code Name

2 Normal

3 Resumed The device was not in Normal status, but now it has
resumed. The next time the device transmits, the
device will be in Normal status.

4 Delayed Defined according to the Reporting Profile that the user


selects for every device.

5 Interrupted Defined according to the Reporting Profile that the user


selects for every device.

6 Hibernating The device is in Hibernation mode.

To see the device’s Reporting Profile:


1.
Select the device in the Sites pane, and then click Actions below the picture of the
device.
2.
Select Set Reporting Profile. The device’s profile is displayed with the definition of
Delayed and Interrupted according to that profile.

Example:
Suppose that the Reporting Profile is defined as Default.

Note: The device does not go to Delayed mode if it does not transmit for 2 hours,
but rather only if it does not transmit for 2 hours after its defined Transmission Interval.

So, if the Transmission Interval is set for every 12 hours, then the Communication Status
will be set to Delayed if the device did not transmit for 14 hours. The Status will be set to
Interrupted if the device did not transmit for 3 ½ days.

Internal Battery The voltage that the battery is producing at the moment.
Ignore data in the Samples tab of this stream.
Voltage

External Power Bat. Ext. The voltage provided by the external power, if available.
Voltage

VBAT (Voltage at The amount of battery (or external power) that was used during the last data sampling
Battery) and transmission. This information is used to determine how much battery remains
(Battery Consumption).

Internal Battery % Battery Life* The calculated remaining amount of battery power, in percentage.

Acceptable: 40% or higher

If a technical alert for Internal Battery was added, the default is 20%.
Internal Temperature W_Temperature The internal temperature of the physical device.

Acceptable range: -40°C to 80°C.

Internal Humidity Internal The amount of moisture that has penetrated the physical device. Two desiccants absorb
Humidity* the moisture.

Preferred range: < 30%.


Acceptable range: Up to 70%

If the humidity is a small negative value (for example, -1, -2, -3%), it means that the
humidity is 0%.

When the rate hits 70%, change the desiccants (contact support@ayyeka.com to order
more).

An abrupt increase typically means that water has entered the device.

If a technical alert for Internal Humidity was added, the default is 80%.

*Included automatically with every new device.


Creating and Editing a Data or Technical Stream
You can add technical streams for a device when you need information about the device
itself so that you can monitor its health. For example, if your device uses external power, you
need to monitor the power. You can add a data stream for data sampling.
You select from a list of pre-defined engineering units that are specific to each technical
stream.
To create a technical or data stream:
1. In the left pane, click Devices.
2. In the Sites Tree pane, click the device name.
3. In the STREAM MANAGEMENT area of the Configuration tab, click the pulldown menu next
to the Refresh button .
4. In the dropdown list, select Technical Streams or Data Streams. A list of channels
for technical streams or for data streams is displayed. If a stream is already assigned to a
channel, the stream is listed in the Stream column.

5. Select the appropriate channel that has no stream assigned, and then click Plus sign at
the end of the row. The Connect Channel to Stream window opens.
In the New Stream Display Name field, type in a meaningful name.
In the Stream Type - Engineering Units field, select the engineering units most suitable
for the new stream. As you type, autofill will suggest entries. If you do not find the
engineering units that you need, contact support@ayyeka.com.

6. Click Submit. The stream is created. Refresh the browser page to see the new stream
under the device.
When you click the new stream, you might see sample data from the last few
months to the present in the Samples tab. In this case, data for the device was
being streamed to the Cloud server even though no stream had yet been created
to display it.

To edit a technical or data stream:


1. In the left pane, click Devices.
2. In the Sites Tree pane, click the device name, and then select the technical stream that you
need to edit.
3. Next to the picture of the Wavelet click Actions, and then select Edit Stream. Make your
changes.
4. Click Submit.
Manage a Stream#U2019s Sampling Interval
Manage Device Technical Alerts
Manage External Stream
Manage Data Sites
A Data Site is a clone of a Site. The Site is the source and the Data Site is the target. A Data
Site can be in the same Organization and Account as the source Site or, in a different
Organization and Account. Data Sites are used when data streams need to be shared between
different Accounts or Organizations.

Use Case:
Let's say that the Water_Company has two sensors that are connected to the same Wavelet.
One sensor belongs to Company_A while the second sensor belongs to Company_B. The
Water_Company Site has the following streams: VBAT, GSM, Battery Status, Communication
Status, and Flow.
Company_A is in the Water_Company Organization and in the Company_A Account.
Company_B is also in the Water_Company Organization, but it's in the Company_B Account.
Company_A is interested in the output of all five streams so that they can continuously monitor
the equipment. On the other hand, Company_B is interested only in the Flow stream for water
consumption and billing purposes.
User Account
Organization Name Streams That Are Needed
Name
Company_A Water_Company Company_A VBAT, GSM, Battery Status, Communication Status, and
Flow_A

Company_B Water_Company Company_B Flow_B

In this case,Water_Company will be the source Site, and from it a Data Site will be cloned for
Company_A and for Company_B.
Company_B can do the following actions in its Data Site:
Hide the four Data Site streams that it does not need (VBAT, GSM, Battery Status,
Communication Status streams)

Edit the Data Site stream name, type, and transformation

Create and edit Data Site stream transformation

Generate reports from the Data Site stream

Contents
Prerequisites
Create a Data Site
Edit a Data Site
Attach or Detach Streams from a Data Site
Prerequisites
You must have the Data Site functionality enabled. Contact support@ayyeka.com.

You must have the appropriate role to do the following tasks with Data Sites:

To Do This: You Need This Role (minimum):

Create and delete PartnerAdmin

Edit Account Owner

View Any role

Detach, reattach from Site Account Owner

Generate Reports Account Owner

You must know the Organization, Account, and Site that will be the source for the Data Site.

You must know the Organization and Account where the Data Site will be created.

To create a Data Site:

1. In the left pane, click Devices.


2. Go to the Site that you want to create a Data Site from. This Site will be the source.
3. Click Actions > Create Data Site. The Create Data Site window opens.
4. In the Create Data Site window, do the following steps:
a. In the Account and Organization fields, select the Account and Organization that the
Data Site will belong to. In this example, the Account will be QA and the Organization
will be MY_ORGANIZATION.
b. In the Start Date field, use the data picker to select the date when the transfer of data
should begin.
c. (Optional) In the Data Site Name field, type in a new name, or accept the default source
stream's name. We'll call our new Data Site MY_NEW_DATA_SITE.
d. In the Streams area, select the streams that you want in the Data Site, and then move
their slider to ON.

e. Click Next. A new window opens, and the source and the target streams are listed.

5. (Optional)To rename the target (Data Site) streams, click the pencil icon , and then
change the name. In this example, "_2" was appended to each target stream name.
6. Click Submit. The new Data Site is created and the source streams are cloned to be the
target streams.
7. Check that the new Data Site and its target streams are in the selected Account of the
device. Data Sites are labeled with the orange icon.
After the Data Site is created, the output values (Final Value) of the Site’s stream will
be the input values (Raw Value) to the Data Site's stream. The following image
shows a data stream from the Site (source) to the Data Site (target).

If you make any changes in the source Site, you are asked if you want the
changes propagated to its associated Data Sites. The changes will affect
all, or none, of the associated Data Sites.

To edit a Data Site:


1. In the left pane, click Devices, and then go to the new Data Site.
2. Click Actions to do any of the following steps:

Click Edit to change the name of the Data Site and move it to a different
Organization. You can also edit the Data Site's custom attribute names. In the
following example, we will change dfsds to be new_custom_attribute.
Note that both the custom attribute name for the source Site and for the new
Data Site are both listed.

Click Update Account to move the Data Site to a different Account

Click Archive Data Site to delete the Data Site. The Source Site remains.

Click Clone to clone the Data Site and move the clone to a different Account
and Organization.

Click Stop Receiving Data so that the Data Site will receive no further data
from the source Site. All Data Site streams are detached from the source
Site.

Click Start Receiving Data so that the Data Site will receive data from the
source Site. All Data Site streams are re-attached to the source Site.

Within the Data Site, an end user is able to edit the Stream Name and
Engineer Type, and to define a preferred configuration.

To attach or detach streams from a Data Site:


1. In the left pane, click the source Site. Sites that have Data Sites associated with them have
the Assigned Data Sites tab. You can view what Data Sites are associated with and receive
data from the source Site. In our example, Site W4R2M_0123456789 has four Data Site
streams, all associated with the MY_ORGANIZATION organization.

2. To attach or detach a single stream in the Data Site, click the Data Site label. In our
example, click the MY_NEW_DATA_SITE label. The Source Stream Sites window opens to
list all streams. Do either of the following steps, and then click Submit:

Click the Detach icon to detach the selected stream from the Data Site.

Click the Attach icon to attach the selected stream to the Data Site.

3. To detach all streams in the Data site, see Stop Receiving Data. To re-attach all streams,
see Start Receiving Data.
Manage LoRa Devices *NEW article*
Understanding LoRa Transmission
Contents
Sampling Information
Health Counter Information
Samples After a Device Reboot
LoRa Transmission and Threshold Alerts

Sampling Information

How does LoRa know which sample to send? For example, if you have four channels that
sample once every half-hour, which channel's sample does it send every fifteen minutes?

A special queue in the device is designated for LoRa data samples. The queue size is 1.

When a channel (not a group) samples, it tries to enter a sample to the queue, but, if there is
already one sample of that channel in the queue, it will overwrite it in the same place in the
queue. It will remove the older sample and put the newer sample in its place, but the sample will
remain in the same place in the queue. Consequently, only one sample of every channel is in the
queue at every single point in time, and it's the newest sample of that channel.

The queue cannot contain more than one sample (from analog, serial, and digital streams) from
every channel at any point in time, and the one sample of each channel is the newest sample of
that channel.

If there are no samples of that channel in the queue, it will enqueue the sample in FIFO order,
but only if there is a free cell in the queue.

If there is no place in the queue, then:


In a LoRa-only device, the samples are discarded.

In a LoRa-ehanced device, all samples are stored on the SD card and transmitted by
cellular at the next transmission. For example, if we have two channels, one sample of
each can be in the queue. If we have 16 channels, only a subset of them can be in the
queue.

The channels will transmit in something like a round robin order, as long as the number
of channels is equal or less than the queue size.
If transmission is by LoRa every five minutes, will the device stop transmitting after a while
because all permitted LoRa transmissions are used up?
In EU - yes, it will stop transmitting after a while and for some time, until the next day,
more or less.

In US - no, because the limitations there are much less strict.

Note that it will stop transmitting LoRa samples, but data sampling continues.

Health Counter Information

What health counter data is sent by LoRa?


No health counter data except Internal Battery Life% and External Power Voltage (if external
power is used) is sent. Internal Battery Life% is sent every 12 hours.

Samples After a Device Reboot


What happens to the sample data when the device is rebooted?

In a LoRa-only device, all LoRa samples are in RAM only. So, if the Wavelet is rebooted for any
reason, they are deleted.

In a LoRa-enhanced Wavelet, samples are also stored on the SD card and will be transmitted via
cellular as well.

Comparison of LoRa-only and LoRa-enhanced Devices

LoRa-only Device LoRa-enhanced Device

What communication is used? LoRa only LoRa + cellular network

What is the queue size? 1 1


Which samples are transmitted? Serial, Analog, Digital Serial, Analog, Digital

From Health All Health counter data


counters – only:

Internal Battery Life%

External Power
Voltage (if external
power is used)

Where are samples stored? RAM only RAM and SD card

If no free space in queue, what Samples are Samples transmitted at next


happens? discarded cellular transmission

If the Wavelet is rebooted, what All samples in RAM are Samples stored in SD are
happens? discarded sent with next transmission

LoRa Transmission and Threshold Alerts

If you set an alert (threshold), will it be sent by GSM or by LoRa?


From LoRa perspective, alerts are normal samples and there is nothing special about the
threshold. The order of LoRa-transmitted samples is described in Sampling Information.

If you have a LoRa-enhanced device (GSM cellular network is enabled) and the threshold is
reached to initiate a transmission, then the event sample will be transmitted over
cellular network immediately.

If you have a LoRa-only (no GSM) device and a threshold is reached to initiate a
transmission, nothing happens.
Set Device Advanced Configuration
Installation and Configuration of Sensors
Configuring SDI-12 Sensors
SDI-12 stands for Serial/Digital Interface at 1200 baud. It is a protocol that covers the
communication and power supply aspects between a sensor and a datalogger, such as the
Wavelet device.

It's an ASCII-based master-slave protocol. The device is the master and the sensor is the slave.
One master can read multiple slaves.
For complete information on SDI-12, click the following links:
Specification sheet - download the PDF

SDI-12 Transaction without CRC


A typical transaction with no CRC and a just a couple of parameters will look something like
this:
Who Command Response Comment
Master 1! Check if slave #1 is there. This is SDI-12's "a!"
command.

Slave 1 Slave confirms that it is available. Note: all of


the slave's responses start with the salve's
address in the first character.

Master 1M! Master ask slave #1 to take a measurement


on all parameters. This is SDI-12's "aM!"
command.

Slave 10032 Slave responds saying it needs 3 seconds


("003") to produce 2 ("2")
measurements. Note: the format of this
response indicates that the slave can produce
up to 9 measurements.

Master ...waits for 3


seconds...

Slave 1 The slave indicates that the data is ready. We


can ignore this if we wait long enough.

Master 1D0! Master asks for the first chunk of the results.

Slave 1+1.234+4.567 Slave responds with 2 values ("1.234" and


"4.567").

All commands & responses are terminated with <CR><LF>. <CR> means ASCII value of 13
(which is 0D in hex). <LF> means ASCII value of 10 (which is 0A in hex). These two bytes are
"new line".
SDI-12 Transaction with CRC
SDI-12 is designed to work even when the cable length between the logger and sensor is
extremely long. When working on long cables, communication errors might happen.For
example, bits might get flipped along the way.

One way to detect this error is by adding a CRC code to the end of every response from the
sensor. CRC standds for "cyclic redundancy check". It will not fix communication problems,
but it will alert you that you have them.
An SDI-12 master can instruct the slave to add a CRC code to every response. This is done by
adding "C" to the "M" command.
Example:
Who Command Response Comment
Master 1! Check if slave #1 is there. This is SDI-12's
"a!" command.

Slave 1 Slave confirms that it is available.


Note: All of the slave's responses start with
the salve's address in the first character.

Master 1MC! Master ask slave #1 to take a


measurement on all parameters and
respond with a CRC code as well. This is
SDI-12's "aMC!" command.

Slave 10032 Slave responds saying it needs 3 seconds


("003") to produce 2 ("2") measurements.
Note: the format of this response indicates
that the slave can produce up to 9
measurements.

Master ...waits for 3


seconds...

Slave 1 The slave indicates that the data is ready.


We can ignore this if we wait long enough.

Master 1D0! Master asks for the first chunk of the


results.

Slave 1+1.234+4.567lpz Slave responds with 2 values ("1.234" and


"4.567") and a CRC code ("lpz"). The CRC
code should match everything before it. If
it doesn't, it means we have a problem.
Note: This is just an example so it doesn't.
SDI-12 Transaction with Additional Measurements
Sometimes, SDI-12 sensors can produce measurements from more than one source, or they
have more than 9 measurements to report (remember that in the sensor's response to an
"aM!" there is room to report up to 9 measurements...).

For these scenarios, SDI-12 defines an "additional measurement" command. Instead of


issuing an "aM!" command, the master issues "aM1!" command or "aM2!" command (SDI-12
calls this the "aMn!" command).

A typical example: there is a sensor can produce both humidity readings and temperature.
The humidity readings will be reported in reponse to "aM!" command but the temperature
readings will be reported in response to "aMn!" command.
Who Command Response Comment
Master 1! Check if slave #1 is there.
This is SDI-12's "a!" command.

Slave 1 Slave confirms that it is


available.
Note: All of the slave's
responses start with the
salve's address in the first
character.

Master 1M! Master ask slave #1 to take a


measurement on all
parameters. This is SDI-12's
"aM!" command.

Slave 10034 Slave responds by saying it


needs 3 seconds ("003") to
produce 4 ("4")
measurements.

Master ...waits for


3
seconds...

Slave 1 The slave indicates that the


data is ready. We can ignore
this if we wait long enough.

Master 1D0! Master asks for the first


chunk of the results.
Who Command Response Comment
Slave 1+1000.123+200.456+3000.456 Slave responds with 3 out of 4
values ("1000.123" and
"200.456" and "3000.456")

Master 1D1! Master asks for more values


(we know there is at least one
more value to read)

Slave 1+123000.456 Slave responds with the 4th


value we missed before.

This is the
end of the
first
transaction.

Master 1M1! Master ask slave #1 to


take additional measurements
from group #1. This is
SDI-12's "aMn!" command.

Slave 10056 Slave responds saying it


needs 5 seconds ("005") to
produce 6 ("6")
measurements.

Master ...waits for


5
seconds...

Slave 1 The slave indicates that the


data is ready. We can ignore
this if we wait long enough.

Master 1D0! Master asks for the first


chunk of the results.

Slave 1+14.123+15.456+16.456 Slave responds with 3 out of 6


values ("14.123" and "15.456"
and "16.456")

Master 1D1! Master asks for more values


(we know there are 3 more
values to read)

Slave 1+17.456+16.3+3.14 Slave responds with the rest


of the values ("17.456" and
"16.3" and "3.14")
The following table shows SDI-12 capabilities per firmware version:
Supports Supports Supports
Firmware Version Supports aDn!
CRC aM! aMn!
< 2.231 Yes Yes No Yes, but only aD0!

2.231 and Yes Yes Yes Yes. Wavelet will issue aD0!
newer and then aD1!...aDn! until all
values are read

To configure the SDI-12 sensor


1. Click Devices in the left pane.
2. In the Sites Tree pane, select the device with the SDI-12 sensor.
3. Click the Configuration tab on the right pane.
4. Expand the ADVANCED DEVICE CONFIGURATION tree, and then select Serial.
5. Select the Channel, and then configure the following items:

Parameter Required value Details


sample_handler SH_SDI12

interface_type IT_SDI12

slave_address The sensor's SDI-12 slave address

read_addr The zero-based index of the value to read Suppose that the sensor is responding with
9 values. To read the first value, specify 0.
To read the second value, specify 1 etc.

The fact that the SDI-12 handler might need


to issue several Dn! commands does not
affect the indexing of the values.

The indexing is absolute with respect to the


"aM!" command, regardless of the number
of the Dn! commands issued.
Consequently, the read_addr will start from
0 for each "aM!" or "aMn!" command issued.
See examples below.

bus_baud, N/A These settings are ignored. The SDI-12


bus_parity, handler sets them automatically.
data bits,
stop bits

read_type, N/A These settings are ignored.


read_flag
Parameter Required value Details
extra_params string format: Use this configuration item to tweak the
"<use_crc>, SDI-12 handler's default behavior. Be sure
<add_measurement_index>,<delay_ms>" to include the quotation marks (") at the
beginning and end of the string. Do not
include the less than and greater than
brackets ("<" and ">").

<use_crc> - By default, the SDI-12 handler


uses CRC in all communication with the
sensors. However, some sensors do not
support CRC. By setting <use_crc> to '0', the
handler won't use CRC. Setting <use_crc> to
'1' will force the
SDI-12 handler to use CRC. Specifying '*'
will simply use the default value.

<add_measurement_index> - By default, the


SDI-12 handler will issue the "aM!"
command. To tell the SDI-12 to use the
"aMn!" command and to
specify the value of n, replace the value of
<add_measurement_index> with this value.
Valid values are 1 to 9. Specifying '0' or '*' or
values larger than 9 will make the SDI-12
handler issue the regular "aM!" command
instead.
<delay_ms> - By default, the SDI-12 handler
will not use a delay (in milliseconds).
Otherwise, this delay will occur before the
wavelet transmits the second query to the
sensor. If this value did not exist the
wavelet will simply use the default value
(wait 0 millisecond).

Examples:
"" (empty string) - use default values (use
CRC + aM! command + no delay)
"*,*" - use default values (use CRC + aM!
command + no delay)
"*,1" - use default value for <use_crc>, issue
the "aM1!" command instead of "aM!"
command, and have no delay.
"0,*" - do not use CRC and use aM!
command and have no delay
"0,1" - do not use CRC and use aM1!
command and have no delay
"0,2" - do not use CRC and use aM2!
command and have no delay
"*,*,100" - use default values (use CRC +
aM! command) and 100 milliseconds
delay.

group Set all channels of a specific sensor to the


same group
Parameter Required value Details
group_priority Set the priority in a decreasing order across This has an impact on the way the SDI-12
all channels of the same sensor handler buffers the responses from the
sensor.
Important: If the sensor has channels that
use both "aM!" command and "aMn!"
command, make sure the group_priority of
the channels is ordered sequentially. For
example, all channels that use "aM!" must
have consecutive values in their
group_priority item. Next, all channels that
use "aM1!" must follow with consecutive
values in their group_priority items as well.
Then, all channels that use "aM2!", and so
forth.

All other settings:


use as usual

6. Send a Device Reboot command, as follows:


a. Click Devices, and then select the device in the Sites Tree pane.
b. In the right pane below the picture of the Wavelet, click Actions, and then
select Reboot.

Both the configuration changes and the reboot will take effect after the device
contacts the server. You can use the Wavelet magnetic activator to force a device
reset, which can expedite the time for the device to connect to the server.
Enabling Temperature Compensation in an APG
Ultrasonic Sensor
You can connect and configure an APG Ultrasonic sensor to your Wavelet. Typically, you need to
compensate for temperature changes in the sensor. The APG sensor will self-calibrate for
temperature changes during each data sample.
For more information about how temperature can affect an APG Ultrasonic Sensor, see
Application Challenge: Temperature Gradients in the APG Measurement Expert Blog.
Ayyeka Part Number: SE00169
APG Part Number: MNU-IS-S6424-C35C

Contents
Add a channel to control the temperature compensation setting on the APG sensor
Add a stream to see the temperature compensation
To add a channel to control the temperature compensation setting on the APG:
1. Log in to the Ayyeka StreamView UI.
2. In the left pane, click Devices.
3. In the Site Tree pane, select the relevant site, and then select the relevant device that the
sensor will be connected to.
4. In the right pane, click the Configuration tab.
5. In the Configuration window, scroll down and click Advanced Device Configuration.
6. In the configuration tree, click Serial to open its folder.
7. In the Serial folder, click CHANNEL, and then select the next available channel that does not
have a sensor assigned to it. An example might be Serial > CHANNEL > 1.
8. In the channel folder, set the following parameters and values:

bus_baud – 9600
bus_parity – None
Interface_type – RS-485
active- AS_ON
sample_handler – SH_MODBUS_RTU
wake_time_ms – 13000
slave_addr- 1
read_addr- 419
read_type – MODBUS_READ_HOLDING_S16
extra_params – 2,1,*
Important: Do not add any space between the values or the commas (,).

sensor_power_source – Select either PS_EXT3_BOOSTor PS_EXT4_BOOST. If you


are unsure, check which setting is used in another Wavelet that is connected to an
APG sensor.
Startup reset flag – 1

To add a stream to see the temperature compensation:


1. Swipe the magnetic Wavelet Activator over the Ayyeka symbol on the face of your device.
2. In the Ayyeka StreamView UI, go to the device with the APG Ultrasonic Sensor.
3. Click the Commands Wait about 10-15 minutes after swiping the magnetic Wavelet
Activator until the Status column shows all the commands at 100% .
4. Click the Configuration tab, and then scroll down to the Stream Management
5. Click the Refresh icon . The new APG Ultrasonic sensor stream is listed in the Stream
Management table.
6. Click the plus sign icon + in the Stream column of the new stream.

a. Set the following parameters in the new stream:


New Stream Display Name: Temperature Compensation
Engineering Units: Unitless ()
b. Click Submit to define the new stream.
7. Click the refresh icon again, and then wait for a transmission to begin receiving values. The
Raw Value and the Final Value of the ‘Temperature Compensation’ stream should be 1
(temperature compensation is enabled). A value of 0 means that temperature compensation is
disable.
Installing Ultrasonic Level and Ultrasonic Radar Sensors
to Measure Water Level
Ultrasonic Level and Radar sensors report the distance from its height to the surface of the
water by using ultrasound and radar respectively. Using that value, you can calculate the height
of the water at each sampling.
An ultrasonic level sensor will not be effective for water streams with foam. Contact Ayyekafor
further information, and use either a submersible hydrostatic level sensor or radar level sensor.
Proper mounting of the sensor is critical. Interference from walls and other obstructions as well
as interference from foam and turbulence will cause erratic readings.

Contents
Prerequisites for Mounting
Installation
Measuring the Water Level
Example
Prerequisites for Mounting
The minimum manhole depth is 1.2 meters (4 feet). Determine height
of the manhole shaft from elevation drawings, or the water level with a rigid measurement
rod. When inserted into the shaft, the rod should reach the sewer floor so that the water level
can be determined.
Show Height of Manhole
You must know what the range of the sensor is so that you don't mount the sensor too
high. You must also know the beam pattern (the number of degrees off the axis beam). Both
values are found in the sensor's datasheet.

There is a minimum width of the water stream based on the corresponding height from the
face of the sensor to the surface of the
stream, per the following diagram. The height (inches):width (inches) ratio must
be less than 3.15. If the ratio is more than 3.15, then the sensor must either be moved closer
to the water surface, or use an alternative level sensor such as a submersible hydrostatic
level sensor or radar level sensor.
Show Minimum Width of Water Stream
You must have a proper location for mounting. Mounting hardware must be installed in-
line with the water stream. Be sure
the mounting hardware does not interfere with ascending and descending the ladder.
Show Location Inside Manhole
To avoid damage to the device when removing the manhole cover, place the top of the
mounting bracket a few inches below the cover. You must not install the device too close to
the collar of the manhole cover so that when the cover is removed, the device is not
damaged. It is recommended to put a label on the outside surface of the manhole cover that
warns of sensitive electrical equipment inside.
Show Manhole Cover Placement

Installation
1. Choose the proper installation location based on the mounting prerequisites.
2. Loosely thread the two ⁵⁄16”-⁷⁄8” hex bolts into the wall mounting plate. Then, install the
wall mounting plate with three screws and ensure it is level vertically.
See illustration of the mounting plate.
3. Use the provided hex couplers to assemble the rod sections. Each of the four rod sections
are 23 cm (9 in.) in length and can be assembled to fit the custom application in lengths up
to 1 m (3 ft).
See illustration of rod sections.
Array
4. Prepare the threaded rod according to the following assembly diagram.
See illustration of how to prepare the threaded rod.
5. Place the sensor into the large hole in the sensor mount. Screw on the female threaded
coupler to the sensor on the underside of the sensor mount.
See illustration of sensor placement in hole.
6. Carefully lift the entire assembled apparatus and slide the slot of the lower adjustable
mounting plate onto the loose bolts of the secured wall mounting plate. Tighten the two
bolts of the wall mounting plate.
See illustration of lifting entire assembly.
7. The sensor must point down directly to the water surface. Calibrate the x and y-axis by
adjusting the bolts on the top of the upper adjustable mounting plate. Use the level to shift
the rod angle as needed, and secure it back into place.
See illustration of sensor pointing down.
Measuring the Water Level
When looking at the readings, you can see how the water level rises and falls relative to the
sensor’s fixed location. In the following figure, the distance from the sensor to the top of the
water (B) and the height of the water itself (C) are shown. The sum of the two distances gives
you the distance of the sensor to the bottom of the water: B + C = A.
To measure the water level:
1. Find the value of B - get the distance from the sensor face to the top of the water.
a. In the left pane, click Devices, and then click the site whose device you want to use.
b. In the site, click the device that you want to measure.
c. In the device, click Level, and then click the Samples tab to open the table of sample
values.
The value of B is in the Raw Value Raw values are in millimeters. In this example, the
value of B is 2151 mm at 25-02-2019,11:19.

2. Find the value of C – Manually measure the depth of the water. Take two to three
measurements every five minutes. Write down the time and the depth. In this example, let’s say
that we measured the water depth to be six inches at 25-02-2019,11:19. Then, C= 6 inches.
3. Compute the value of A – Add the values of B + C.
Use the Raw Value (B) at the Sample Date 25-02-2019,11:19 because you have a manual
measurement of water depth C at the same time. In this example, B=2151 millimeters.
Since the value of B is in millimeters, we’ll convert it to inches before we can get the sum
for A:
B = 2151 mm/25.4 (Convert from millimeters to inches)
= 84.685 inches
A = B + C (Total distance from face of sensor to the bottom of the water)
= 84.685 + 6
= 90.685 inches

4. Configure the Engineering Units Converter.


a. In the right pane, click the Configuration tab to open the Configuration pane.
b. Click the formula text box for Convert to Eng. Units to open the Conversion window.

c. In the Conversion window, click to input the conversion formula.

d. To convert the Raw Value (B) from millimeters to inches, the conversion factor is
-0.03937/1000 meters. You must include the minus sign (-) in the dividend.

e. Optionally, to update samples that are up to four weeks old with the new formula, click
the Update old samples check box. You can update samples up to four weeks back. If you
need to update samples older than four weeks, contact Support.
f. Click Submit. The water depth in inches, C, is computed for each sampling and is
shown in the Final Value column in the Samples tab.
If you chose to update old samples, wait about 15 minutes for values in Final Value to be
updated.

Example: The above example using the metric system


B = 2151 mm (Raw Value from sensor readings)
C = 152.4 mm (Manually measured water level. In our example, 6 inches.)

A = B + C (Total distance from face of sensor to the bottom of the water)


= 2151 + 152.4
= 2303.4 mm

In the Conversion window, you would use the following values:

The formula above gives the water depth in millimeters.


If you want the depth in centimeters, change -1/1 to -1/10.

If you want the depth in meters, change -1/1 to -1/1000.


Correcting Negative Values from an Ultrasonic Level
Sensor

Problem
The Ultrasonic Level sensor is recording some negative values. Those values are found in the
Final Value column in the Samples tab of a stream.
Why it's Happening
Negative values indicate bad readings by the sensor. If the sensor does not get a good reading,
the value will be the full range of the sensor.
Factors such as rough water surface or some other type of interference can cause poor values.
Example
For this example, let's assume:
Range of the sensor is about 7.6 meters

The sensor is installed 1.614 meters from the bottom

The sensor data values are in millimeters

The following table shows the sensor data in the Samples tab:

Values in the Raw Value column indicate the the distance from the Ultrasonic Level sensor face
to the top of the water.
Values in the Final Value column are the result of converting the raw value to meters, and then
computing the distance from the Ultrasonic Level sensor face to the bottom of the water.
The Raw Value column show a sensor reading of 7619, which is the sensor's range in
millimeters. When that value is converted to engineering units, the value is -6.005 in the Final
Value column.
The screen shot below shows the conversion to engineering units configuration in the
Configuration tab.

The following calculations show the Convert to Eng. Units conversion:

final = ((1/1000 raw)-1 + 1.614)

= ((7619/1000)-1 + 1.614)

= ((7.619)-1 + 1.614)

= (-7.619 + 1.614)

= -6.005
Recommended Action
In the Configuration tab, use Hide Bad Samples to filter sensor data whose raw value is over the
sensor's range in units of millimeters. Those values will not be used in charts and tables.
In the following screen shot, the default minimum is used. Set the maximum to be the range of
your sensor. In this example, we set the maximum to 7000 for the Ultrasonic Level sensor.
For details, see the following topics:
How to Set up Ultrasonic Level Sensors to Measure Water Level

Viewing and Editing the Treatment of Raw Values.


Installing and Configuring the WaveCam™
The camera template can be applied to the Site where the WaveCam will be
installed. No further configuration is needed.

If, for some reason, you do not want to have the camera template applied, or you need to
change the default camera configuration, you can configure the camera stream manually.

The WaveCam can be used with the Wavelet V2™ and Wavelet 4R™ devices.

Contents
Overview of Camera and Image Streams
Prerequisite
Manual Creation and Configuration of Image and Camera Streams
Field Installation
Recommended Practices

Overview of Camera and Image Streams

The WaveCam is a 2 mega-pixel camera with built-in JPEG compression and a serial
(RS232/RS485) output. Communication with the camera is done over proprietary protocol. The
camera can take interval-based and event-based photographs.

The camera device is a serial sensor and is associated with a serial channel type. Camera
images cannot be transmitted through a serial channel, so you’ll need two data streams:
1. Camera stream is on a SERIAL SINT32 channel. This stream is the serial sensor of the
camera device, and it is configured for sampling rates and camera parameters.

2. Image stream is on a BLOB (Binary Large Object) channel. A BLOB channel receives the raw
images, but it does not do actual sampling.

In the screen shot below, the Camera stream is the serial sensor of the camera device. It is
on channel type SERIAL SINT32 and channel number 0. The Image stream receives the raw
images. It is on channel type BLOB and channel number 0.
Prerequisites
Contact support@ayyeka.com to apply the camera template to the Site that you want to
connect the camera to. No further configuration is needed.

Alternatively, if you want to manually create and configure the camera (rather than have
the camera template applied), contact Support to create the SERIAL SINT32 and
the BLOB channels, and to configure the BLOB channel for your Site. You will need to
configure the SERIAL SINT32 streams.

FW 9.999CAM must be installed on the device.

Manual Creation and Configuration of Image and Camera Streams

You can manually create and configure the Image and Camera streams in the following
instances:
You do not want the camera template applied to the Site

You need to configure the streams to change the default camera settings to optimize
camera-battery consumption or improve image quality

Note: The following steps use the screen capture of the STREAM MANAGEMENT table above as
an example.

Do the following steps:


1. Manually configure the SERIAL SINT32 channel:

In the Sites Tree pane, click the device name with the WaveCam, and then open
the Advanced Device Configuration.

Click Serial > CHANNEL > 0.


Configure the serial channel according to the following table:

Parameter Required Value Details

bus_baud 115200

bus_parity serial.BUS_PARITY_NONE

interface_type serial.IT_RS485

active serial.AS_ON Channel is active/enabled. Samples will be


recorded.

sample_handler serial.SH_SPINEL_CAMERA

wake_time_ms 5000 Specify the length of time, in milliseconds,


that the camera is powered on prior to when
the device requests a photo from the
sensor.

The frequency at which the camera is


powered on, is determined by
the sample_interval.

Note: If the channel is in a group, then the


wakeup time interval will be the maximum
time of all channels in the group.

Example:
The wakeup time interval is 5000ms.
The WaveCam takes a photo 5000ms (5
seconds) after it is powered on.

slave_addr 1 The slave address of the camera.


extra_param String Format: "A,B,C,D" Sets the camera resolution, compression,
LED light usage, and the size of the buffer.

Use this parameter to tweak the camera's


default behavior. Be sure to include the
quotation marks (") at the beginning and end
of the string. Separate the values with a
A: resolution comma (,) and no spaces.
0 = SSR_640x480
1= SSR_800x600
2= SSR_1600x1200 Resolution is in pixels.

B: compression
0 = SSCR_MINIMUM
1 = SSCR_LOW
2 = SSCR_MEDIUM Compression – The less compression:
3 = not implemented •
4 = SSCR_HIGH the better the image quality
5 = SSCR_MAXIMUM •
the larger the image size

C: LED lights the larger the battery consumption to
A = Auto transmit the image
1 = On
0 = Off

D: Buffer size (Byte) LED lights


0 = 512 Auto – The WaveCam checks the lighting
1 = 1024 and decides to turn the light on or off
2 = 2048 On – Light is on
3 = 4096 Off – Light is off
4 = 8192

Buffer size - The larger the buffer size:



the less time is needed to capture the
image

the less time that the camera uses the
battery

Example:
The string “0,4,0,4” means to use 640x480
resolution with high compression. Keep the
lights off. Use the largest buffer, 8192 bytes.
2. Manually create the Image and Camera streams:

a. Create the Image stream.

The channel type must be BLOB.

In the Stream Name field, type in Image.

In the Stream Type – Engineering Units field, select Image().

b. Create the Camera stream.

The channel type must be SERIAL SINT32.

In the Stream Name field, type in Camera.

In the Stream Type – Engineering Units field, select Image().

Field Installation
Installation Tips:

AyyekaGo mobile app can show stream values but not images. As a result, you cannot
use the mobile app to verify the camera position during installation at the site.

It is recommended that while you install the camera on-site, someone else checks
the images from Fleet to advise you how to adjust the camera position.
Do not position the camera facing shiny objects or directly facing the east-west sun.

To install the camera sensor:


1. Connect the sensor cable assembly to the mating panel connector on the Wavelet. Turn the
adjustable stainless-steel end piece to secure the field attachable connector to the
Wavelet.

CAUTION: Do not turn the black plastic hood of the connector. Turning the
black hood might cause the wires to disconnect, break, and/or damage the
connector pins.
2. Mount the camera sensor on a wall, pipe, or other secure mount location by using zip ties or
screws.

3. Swipe the Wavelet magnetic activator to force a reset that expedites the time for the device
to connect to the server.

4. In StreamView, check the two streams:

Camera stream - The sensor data shows up in the Samples tab in the Raw Value
column of the Camera stream. Look for the following values:

1 - an image was captured

0 - no image could be taken

A large negative number, for example –2147, indicates a Modbus


error from another issue such as configuration or wiring. For details,
see Data samples from the serial sensor show Modbus errors.

Image stream - The image files show up in the Samples tab in the Raw Value
column of the Image stream. For example, a Raw Value might
be czM6Ly0heXIIa2EtYmxvYnMvYmxvYnMvM and its Final Value is 0.

5. If needed, adjust the camera position.

Recommended Practices
Take frames every 15-30 minutes until you’re sure that the camera is working properly and
that its aim and focus are optimal.
The quality of the images is influenced by the colors and the transition of one color to
another. Position the camera to get the best colors.
If you do need to change the default camera configuration, follow the steps in To manually
configure the serial stream.

Conserve battery consumption by taking a frame only when there is an event.

Taking a camera frame consumes as much battery as a transmission.

Do not take frames faster than the device transmits because device storage is limited.

A camera frame takes much more space than a data sample. The Wavelet-V2 uses a flash
memory card for storage. The Wavelet 4R uses an external flash, which is smaller.

If the camera is taking frames but the Wavelet is unable to transmit, the length of time that
the frames are saved depends on the type of device:

Wavelet-V2 - the frames are saved for several days.

Wavelet 4R - the frames are saved for a much shorter amount of time.

Adjust the compression and buffer size (in extra_params) to optimize battery consumption.
Using the Camera app
Ayyeka WaveCam™ is a fully autonomous camera paired with the device to bring images and
sensor data together. You can overlay sensor data with video frames and see both together at
any point in time. You can create a time-lapse video that captures images and sensor
data immediately preceding and during some event. The time-laps videos can be downloaded
and sent to users.
Contents
Prerequisites
Create a WaveCam™ app
View and Configure a WaveCam app
Select streams and overlay their data values
Change the time range
Create a time-lapse video
Delete or Rename a WaveCam app
List, Download, or Delete a Time-lapse Video

Prerequisites:
The WaveCam feature must be installed. If you do not see WaveCam in the Fleet UI,
contact Sales@ayyeka.com.

A camera stream must be configured for a device.

You must have the Account Administrator role.

To create a WaveCam app:


1. In the left pane of StreamView, click Fleet, and then click Applications > WaveCam.
The WaveCamApps pane opens.

2. Click the Plus sign . The Add a New Application window opens.

3. Select the Account, Site, and Camera stream for the WaveCam application. Only streams
that are related to the camera are in the selection list.

4. Click Save. The new WaveCam app is displayed.

To view and configure a WaveCam app:


1. In the left pane of StreamView, click Fleet, and then click Applications > WaveCam.
The WaveCam Apps pane opens.

2. In the Account dropdown list, select the Account where the WaveCam app is assigned. A
list of apps for the selected account is displayed. At the top of every WaveCam app is the
timestamp of the last frame.

3. Click the app that you need. The app opens with the frames that were captured during a
time range.

Camera frames are displayed for a seven-day period. If a frame has not been
taken in more than seven days, the message “No images were found for the
selected time period”. You can choose an earlier seven-day period from any given
historical point.

4. (Optional) To select streams and overlay their data values for the same time range as
the WaveCam app, click the cogwheel in the upper right corner.
The WaveCam Configuration window opens.

You can overlay data from several streams onto the application. The streams can
be from a different Site. Select the Site and the stream.

Click Save. The time-lapse video with a graph of the overlaid streams is displayed.

The following screen shot shows a row of red vertical lines and timestamps below
the frame. Each vertical line represents a camera frame.
Move the slider across the x-axis of the graph to get the values of each overlaid
stream that are associated with the video frame for each point in time.

5. (Optional) To change the time range, select the time range from the dropdown list in the
upper left corner of the image. Custom range can use a maximum of 7 days.

6. (Optional) To replay the image, click the Auto Play icon and select the number of
replay times.
7. (Optional) To create a time-lapse video. click Create Timelapse Video. Do the following
actions:

Select the Start and End timestamps. All other frames are grayed out.

To download the video or make the video into a picture, click the three vertical
dots , and then click Download or Picture in picture.

To give the link of the video to customers, click the Copy Link icon.
To delete or rename a WaveCam app:
1. In the left pane of StreamView, click Fleet, and then click Applications > WaveCam.
The WaveCam Apps pane opens.

2. In the Account dropdown list, select the Account where the WaveCam is assigned.

3. Click the app that you want to delete or rename.

4. Click the cogwheel in the upper right corner. The WaveCam Configuration window
opens.

5. To delete the app, click Delete.

6. To rename the app, type in a new name in the Name field, and then click Save.

To list, download, or delete a time-lapse video:


1. In the left pane of StreamView, click Fleet, and then click Tasks. The Tasks pane opens.

2. In the Search field of the Tasks pane, type in the name or part of the name of the time-lapse
video in the Search field. An example might be “camera”. All appropriate videos are listed.

3. Hover the mouse pointer over the time-lapse video that you need. Click the X to delete the
video, or click the Tray icon to download the video.
Replace Batteries and SIM Cards
Replacing the Battery
As the battery nears its end of life, a configurable technical alert will send an SMS and/or email
alert to the user group(s) designated to receive technical alerts, enabling them to prepare for
battery replacement.
The device uses primary cell batteries that are powered by non-reversible chemical reactions.
As a result, the batteries cannot be recharged.
Battery Life and Battery Status Streams
If your device has Firmware version 2.234 or later, the device will have a Battery
Life stream. Battery Life is a percentage of the battery that is still available for use based on
an empirical measurement of battery charge consumption and based on the tracking battery

usage.

If your device has Firmware version older than 2.234 or if the device is a Wavelet 3™, the
device will have a Battery Status stream. This stream is an estimate, in percentage, of the
battery charge.

Prerequisite
You must have a torque screwdriver.
To replace the battery:

1. Beware of static discharge, making sure


to work in a clean environment and
ensuring that your hands and the device are
completely dry.

Place the device face down on a dry, stable


surface with the connectors pointing
downward.
1. Partially unscrew the six (6) screws
located on the back of the device enclosure,
until you can lift off the back panel with the
screws still affixed to their screw holes.

1. Remove the device’s back panel and


place it flat-side down adjacent to the
device box.

1. On the interface board, move the ON/OFF


switch to the OFF position.

1. Carefully disconnect the male end of the


battery connector cable from the female
connector on the interface board. Using an
indelible pen, mark the battery as “Used”
and dispose of it properly.

1. Mark the new battery with the current


date. Place the battery in the device
enclosure and carefully connect the male
end of the battery connector cable to the
female connector on the interface board.

Verify that the yellow, red and blue LED


lights on the interface board blink briefly.
This confirms that the battery has been
successfully connected.
1. On the interface board, move the ON/OFF
switch to the ON position. The device
device turns on and performs a 10-minute
calibration process, after which it starts
operating in normal mode.

1. Replace the device back panel, ensuring


that the battery cable is neatly arranged and
not pinched within the device enclosure.

1. Tighten the six back panel screws with a


torque of 4.5 Nm. Do not over-tighten
because this will strip the screw threads.

10. In the UI, click Devices in the right pane, and then select the device in the Sites Tree pane.

11. In the right pane, below the picture of the device, click Actions, and then select Reset Battery
Status.The device is now ready to resume monitoring and transmission.
Replacing Wavelet 3 SIM Card
You can replace the SIM card in your device when you need to change the data service provider
or when the SIM card is defective.

A Wavelet 3 has one SIM card. The preferred method to configure the new SIM is through the UI.
Alternatively, you can use AK commands.

Contents
Prerequisites
Replacement steps
1. Steps in the UI
2. Steps in the Device
3. Steps in the UI

Post-replacement steps
Create a Device Trace
Use AK commands

Prerequisites
You must have a torque screwdriver.

Make sure you have a Micro-USB cable and a laptop.

Ensure that the Micro-USB cable is functioning correctly by testing connectivity between
another device (not a Wavelet) and your laptop.

Download PuTTY terminal emulation software to the laptop. If the SIM replacement is
unsuccessful, Support will need to access the Wavelet.

The Wavelet uses a Micro-SIM card (3FF Sim Card). Ensure that you use an appropriately
sized SIM card.
Write down the new SIM’s PIN and PUK numbers, the new SIM’s APN address, and the
Wavelet’s serial device number.

Tip: Take a photo of the information on the SIM card before you start.

Initially, the Wavelet must be turned on. If the device is in hibernation mode, wave the Ayyeka
magnet in front of the device until the LED lights flash.

Coordinate with Support before using AK commands. Errors might cause the Wavelet to
become inoperable.

Replacement steps
1. Steps in the UI
1. Send a command to remotely change the SIM card’s APN address. Do the following
steps:
a. Click Devices in the left pane.
b. In the Sites Tree pane, select the device whose SIM you are replacing.
c. In the Configuration tab on the right, expand the ADVANCED DEVICE
CONFIGURATION tree, and select GSM.
d. Click the gsm_apn parameter in the tree.
e. Click Set Setting to change the value to the APN of the new SIM. For our example,
suppose that the current APN is internetm2m.air.com . The new APN will be
sim1.apn.com.
A change-gsm-apn command will be generated, and the device will receive and
execute the command at the next transmission.
2. (Optional) Type in a username and password for the SIM card by editing the value of
gsm_apn_user and gsm_apn_pass.
3. In the Configuration tab, click the green box in the TRANSMISSION INTERVAL pane to
open the Select Transmission Interval window.
4. Change the Transmission Interval to 10 minutes by moving the slider to 10 min, and
then clicking Submit.

5. Under the Wavelet picture at the top of the screen, click Actions, and then
select Reboot.
6. In the Commands tab, verify that the commands “Set Reporting Interval”, “Set General
Setting”, and “Reboot” that were sent thus far have been received. Wait until all three
commands’ Status is 100% before proceeding.
7. In the Configuration tab, check that the new APN was accepted. Repeat steps 1c
and1d. You should see the former APN and the new APN listed.

2. Steps in the Device


1. Partially unscrew the six screws located on the back of the Wavelet enclosure, until
you can lift off the back panel with the screws still affixed to their screw holes.

2. On the interface board, power off the device by moving the ON/OFF switch to the OFF
position.

3. Disconnect the battery cable from the interface board.


WARNING: Failure to do steps 2 and 3 might cause a short circuit in the
device.

4. Remove the four internal screws, and then pull up the plastic casing.

5. Unplug the red and black wires from the underside of the plastic casing to allow easier
access to the SIM card. Set the casing to the side.
The following picture shows the inside of a Wavelet 3. The SIM card is framed in red.

6. On the SIM card tray holder, note the Lock and Unlock icons. Slide the cover
that is over the SIM card toward the Unlock direction. The cover will pop open.
7. Remove the original SIM card and put in the new one. Slide the tray holder cover
toward the Lock direction to lock SIM. The cover will snap closed.
8. Reconnect all wiring. Put the plastic casing back into place. Screw the four internal
screws back in. Reconnect the battery.

Note: Do not turn the device on yet.

3. Steps in the UI
1. In the Configuration tab on the right, expand the ADVANCED DEVICE CONFIGURATION tree,
and then select the GSM.

2. Click the gsm_done_onetime_setup parameter in the tree.


3. Click the value, and then select Set Setting. Change the value to 0.
4. Turn the device on.
5. In the Commands tab, wait for the command Set General Setting to reach Status of 100%.
6. Turn the device off.
7. In the Configuration tab, click the green box in the TRANSMISSION INTERVAL
pane. Change the Transmission Interval back to 1 hour by moving the slider to 1h, and then
clicking Submit.
8. Under the Wavelet picture at the top of the screen, click Actions, and then select Hibernate.
9. Turn the device on.
10. In the Commands tab, wait for both commands to reach Status of 100%. The SIM
card replacement process is complete.

Post-replacement steps
1. Replace the back panel and tighten the six screws with a torque of 4.5 Nm. Do not over-
tighten because this will strip the screw threads.
2. Wait 5-10 minutes for the device to perform a calibration process, and then to start
transmitting to the Ayyeka cloud server.
3. In the Ayyeka StreamView, check whether the device is transmitting.

If the device is transmitting, the SIM was successfully replaced. No further action
is needed.

If the device is not transmitting, contact Ayyeka Support. They will ask you to
create a device trace or to use AK commands.

Create a Device Trace


Do the following steps:
1. On your laptop, open Device Manager and check if there are any Ports (COM & LPT). This
section might be missing if no ports are connected, as shown below.
1. Discover the COM port of the device by doing the following steps:
1. Open the Wavelet, and then stand the battery on its side to expose the USB port. Do not
disconnect the battery from the interface board.
2. Connect the Micro-USB cable to the device’s Interface Board and to your laptop.

Important: At the USB port side in the Wavelet, be careful that the cable does not pull
up. Upward tension on the USB port might disconnect the port from the Wavelet’s
interface board

c. Wait for the Windows Plug & Play Drivers to be installed on your laptop. For any
driver problems, see FTDI Chip Installation Guides.
d. Refresh the Device Manager. The Ports (COM & LPT) should now appear. The
COM port appearing in the USB Serial Port line is the device’s COM port.
3. Double-click putty.exe to open a PuTTY terminal.
4. Configure the following parameters:
Connection type - Serial

Serial line – The COM port that was added after micro USB connection

Speed – 9600 Bauds per second

5. Click Open to display the device trace.


6. Contact Support to enable a remote session of your laptop.

Use AK commands
If the SIM card was misconfigured in the Ayyeka StreamView so that now there is no
communication with StreamView, you can use AK commands to correct the configuration. AK
commands communicate directly with the Wavelet rather than going through Ayyeka
StreamView.

Caution:
Misuse of AK commands might render the Wavelet unusable. For this reason, typically only
Partners and Support personnel doing remote integration with the Wavelet use AK Commands.

Do the following steps:


1. Follow the steps to Create a Device Trace.
2. Notify Support that the Wavelet is connected so that Support can confirm. AK Commands
in the following table can now be entered at the command prompt.

Description Command

GSM APN cmd ak3.CMD_SETTING_SET 0 0x1 1 8 1 0 0 7 7 "APN_for_SIM"

GSM APN User cmd ak3.CMD_SETTING_SET 0 0x1 1 9 1 0 0 7 7 "SIM_user_name"

GSM APN Pass cmd ak3.CMD_SETTING_SET 0 0x1 1 10 1 0 0 7 7 "SIM_password"


One Time Init cmd 4 0 0x1 1 7 1 0 0 0 0 0
Replacing Wavelet 4 SIM Card
You can replace the SIM card in your device when you need to change the data service provider
or when the SIM card is defective.
The device has two SIM cards. SIM1 is the main communication card. Typically, SIM2 is the
backup card that is used if communication fails in SIM1. In this procedure, we will replace
SIM1. The preferred method to configure the new SIM is through the UI. Alternatively, you can
use AK commands.

Contents
Prerequisites
Replacement steps
1. Steps in the UI
2. Steps in the Device
3. Steps in the UI

Post-replacement steps
Create a Device Trace
Use AK commands

Prerequisites
You must have a torque screwdriver.

Make sure you have a Micro-USB cable and a laptop.

Ensure that the Micro-USB cable is functioning correctly by testing connectivity between
another device (not a Wavelet) and your laptop.

Download PuTTY terminal emulation software to the laptop. If the SIM replacement is
unsuccessful, Support will need to access the device.

The device uses a Micro-SIM card (3FF Sim Card). Ensure that you use an appropriately sized
SIM card.

Write down (or photo) the new SIM’s PIN and PUK numbers, the new SIM’s APN address, and
the device’s serial device number.

Initially, the device must be turned on. If the device is in hibernation mode, wave the
magnetic key in front of the device until the LED lights flash.

Coordinate with Support before using AK commands. Errors might cause the device to
become inoperable.

Replacement steps
Tip: Steps 1 and 3 below can be done in the AyyekaGo mobile app instead of the UI.
The settings that need to be changed are in the Cellular Settings page.

1. Steps in the UI
1. Send a command to remotely change the SIM card’s APN address. Do the following
steps:

a. Click Devices in the left pane.


b. In the Sites Tree pane, select the device whose SIM you are replacing.
c. Click the Configuration tab on the right pane.
d. Expand the ADVANCED DEVICE CONFIGURATION tree, and then select GSM.
e. Click the gsm_apn parameter in the tree. (If you need to change SIM2,
edit gsm_apn_sim2).
f. Click Set Setting to change the value to the APN of the new SIM.
As an example, suppose that the current APN is internetm2m.air.com. The new
APN will be sim1.apn.com.
A change-gsm-apn command will be generated, and the device will receive and
execute the command at the next transmission.

2. (Optional) Type in a username and password for the SIM card by editing the value of
gsm_apn_user and gsm_apn_pass.
(If you want to change SIM2, edit gsm_apn_sim2 and gsm_apn_pass_sim2.)

3. In the Configuration tab, click the green box in the TRANSMISSION INTERVAL pane to
open the Select Transmission Interval window.
4. Change the Transmission Interval to 10 minutes by moving the slider to 10 min, and
then clicking Submit.
5. Under the device picture at the top of the screen, click Actions, and then select
Reboot.
6. In the Commands tab, verify that the commands “Set Reporting Interval”, “Set General
Setting”, and “Reboot” that were sent thus far have been received. Wait until all three
commands’ Status is 100% before proceeding.

7. In the Configuration tab, check that the new APN was accepted. Repeat steps 1c and
1d. You should see the former APN and the new APN listed.

2. Steps in the Device


1. Partially unscrew the six (6) screws located on the back of the device enclosure, until you
can lift off the back panel with the screws still affixed to their screw holes.
2. On the interface board, power off the device by moving the ON/OFF switch to the OFF
position.

3. Disconnect the battery cable from the interface board.


Failure to do steps 2 and 3 might cause a short circuit in the device.

4. Remove the four internal screws, and then pull up the plastic casing.

5. Unplug the red and black wires from the underside of the plastic casing to allow easier
access to the SIM card. Set the casing to the side.
6. Unplug the flat cable.

The following picture shows the inside of a device after the flat cable is unplugged.
7. On the SIM1 card tray holder, note the Lock and Unlock icons. Slide the cover that is
over the SIM1 card toward the Unlock direction. The cover will pop open.
8. Remove the original SIM1 card and put in the new one. Slide the tray holder cover toward
the Lock direction to lock SIM1. The cover will snap closed.
9. Reconnect all wiring. Put the plastic casing back into place. Screw the four internal screws
back in. Reconnect the battery.

Note: Do not turn the device on yet.


3.Steps in the UI
1. In the Configuration tab on the right, expand the ADVANCED DEVICE CONFIGURATION tree,
and select the GSM
2. Click gsm_done_onetime_setup parameter in the tree.
3. Click the value, and then select Set Setting. Change the value to 0.
4. Turn the device back on.
5. In the Commands tab, wait for the command Set General Setting to reach Status of 100%.
6. Turn the device off.
7. In the Configuration tab, click the green box in the TRANSMISSION INTERVAL pane. Change
the Transmission Interval back to 1 hour by moving the slider to 1h, and then clicking
Submit.
8. Under the device picture at the top of the screen, click Actions, and then select Hibernate.
9. Turn the device back on.
10. In the Commands tab, wait for both commands to reach Status of 100%. The SIM card
replacement process is complete.

Post-replacement steps
1. Replace the back panel and tighten the six screws with a torque of 4.5 Nm. Do not over-
tighten because this will strip the screw threads.
2. Wait 5-10 minutes for the device to perform a calibration process, and then to start
transmitting to the cloud server.
3. In the UI, check whether the device is transmitting.

If the device is transmitting, the SIM was successfully replaced. No further action
is needed.
If the device is not transmitting, contact Support. They will ask you to send a
device trace or to use AK commands.
Create a Device Trace.

Use AK commands.

Create a Device Trace


Do the following steps:
1. On your laptop, open the Device Manager and check if any Ports (COM & LPT) exist. This
section might be missing, as shown below, if no ports are connected.

2. Discover the COM port of the device by doing the following steps:
a. Open the device, and then stand the battery on its side to expose the USB port. Do
not disconnect the battery from the interface board.
b. Use the Micro-USB cable to connect the device’s interface board and to your
laptop.

At the USB port side in the device, be careful that the cable does not pull up. Upward
tension on the USB port might disconnect the port from the device’s interface board.
c. Wait for the Windows Plug & Play Drivers to be installed on your laptop. For any
driver problems, see FTDI Chip Installation Guides.
d. Refresh the Device Manager. The Ports (COM & LPT) should now appear. The COM
port appearing in the USB Serial Port line is the device’s COM port.

3. Right-click putty.exe to open a PuTTY terminal, and then click Run as administrator.
4. Configure the following parameters:
Connection type – Serial

Serial line – The COM port that was added after Micro-USB connection

Speed – 9600 Baud per second

5. Click Open to display the device trace.

6. Contact Support to enable a remote session of your laptop.


Use AK commands
If the SIM card was misconfigured in the UI so that there is no longer any communication with
UI, AK commands can correct the configuration. AK commands communicate directly with the
device rather than going through UI.

Caution:
Misuse of some AK commands might render the device unusable. For this reason, typically only
Partners and anyone doing remote integration with the devices use AK commands.
Do the following steps:
1. Follow the steps to Create a Device Trace.
2. Notify Support that the device is connected so that Support can confirm. AK Commands in
the following table can now be entered at the command prompt.

Description Command

GSM APN cmd ak3.CMD_SETTING_SET 0 0x1 1 8 1 0 0 7 7


"APN_for_SIM1"

GSM APN cmd ak3.CMD_SETTING_SET 0 0x1 1 9 1 0 0 7 7


User "SIM1_user_name"

GSM APN cmd ak3.CMD_SETTING_SET 0 0x1 1 10 1 0 0 7 7


Pass "SIM1_password"

One Time cmd 4 0 0x1 1 7 1 0 0 0 0 0


Init

Note: If you need to replace SIM2, use the following commands:

Description Command

GSM APN SIM2 cmd ak3.CMD_SETTING_SET 0 0x1 1 50 1 0 0 7 7


"APN_for_SIM2"

GSM APN User cmd ak3.CMD_SETTING_SET 0 0x1 1 51 1 0 0 0 0


SIM2 "SIM2_user_name"

GSM APN Pass cmd ak3.CMD_SETTING_SET 0 0x1 1 52 1 0 0 0 0


SIM2 "SIM2_password"

One Time Init cmd 4 0 0x1 1 7 1 0 0 0 0 0


Overview of Reports
In the Reports tab in the left pane, you can create various types of reports and export them to a
spreadsheet in CSV format.
You can create the following types of reports:
Stream History Report - data from one or more data streams of a particular type, for a user-
defined date range

Aggregation Report - statistical analysis of the readings obtained in one or more data
streams of a specific type (sum, average, min/max, standard deviation), for a user-defined
date range and aggregation interval

Daily Meter Reading Report -

Daily Total Flow Reports - sum of daily sums, for a user-defined date range

Custom Stream History Report - customized display of any data streams’ history for a user-
defined date range. This customization option is very useful if you need to export data into a
system that supports a specific data structure only
Aggregation Report
The Aggregation report enables viewing a statistical analysis of the readings obtained in one or
more data streams of a specific type. You can generate an Aggregation report for multiple
streams only if all those streams are of the same type (such as Level), and use the same unit of
measurement (such as inches).

To create an Aggregation report:


1. Click Reports in the left pane. The Aggregation Report window opens.
2. In the Aggregation Report window, do the following actions:
1. Select whether to specify streams By Site or By Stream Type.
2. If you selected to specify streams By Site, specify the site, and then specify stream(s)
in the site.
3. If you selected to specify streams By Stream Type, specify the stream type, and then
specify stream(s) of that type.
4. Specify the reporting Time Period.

3. Select the aggregation period - from 1 min intervals to 1 month intervals.


4. If you select to run the report for multiple streams, do the following actions:
1. Select which statistical analysis function to run on those streams: either Sum, Average,
Min, Max or Standard Deviation.
2. Specify Separate Streams if you wish to run a separate analysis for each of the
specified streams. For example, if you had specified Stream1 and Stream2 and chosen
Average, then do either of the next actions:

Select Separate Streams to provide the average of all Stream1


recorded values in one column, and the average of all Stream2
recorded values in a second column.

Clear Separate Streams to provide an average of all Stream1 and


Stream2 recorded values, in a single column.
5. If you select to run the report for a single stream, you can run any combination of the
following statistical analysis functions: Sum, Average, Min, Max or Standard Deviation.

1. Click Save Report Configuration if you wish to save this specific report generation criteria,
and enter a descriptive name for the report type
2. Click Export to CSV. A CSV file is created, showing the results of the statistical analysis for
the selected period. For example: If you specified two streams, the Average function, and
Separate Streams in the report criteria, the resultant report will look similar to the following:
If you specified a single stream, and the Min, Max and Standard Deviation functions
in the report criteria, the resultant report will look similar to the following:
Stream History Report
This type of report displays the history of one or more data streams of a particular type.
To create a Stream History report:
1. Click Reports in the left pane. The Stream History Report window opens.
2. In the Stream History Report window, do the following actions:
1. Select whether to specify streams By Site or By Stream Type.
2. If you selected to specify streams By Site, specify the site, and then specify stream(s)
in the site.
3. If you selected to specify streams By Stream Type, specify the stream type, and then
specify stream(s) of that type.
4. Specify the reporting Time Period.

3. Click Save Report Configuration if you wish to save this specific report generation criteria,
and enter a descriptive name for the report type.
4. Click Export to CSV. A CSV file is created, showing the history of the selected streams
during the selected time period.
Custom Stream History Report
This type of report enables customizing the display of any data streams’ history. You can set
which fields will appear in the report, how the fields should be delimited, etc. This is very useful
if you need to export data from the report into a system that supports a specific data structure
only.
To create a Custom Stream History report:
1. Click Reports in the left pane. The Custom Stream History Report window opens.
2. In the Custom Stream History Report window, select the specific streams you wish to view,
and the reporting time period.
3. In the Custom Stream History Report window, click Advanced Settings to define the type of
information to include in the report, as well as how it will be displayed.

a. Set the Format Delimiter.


b. Set the Text Qualifier.
c. Specify whether to Remove Header Row.
d. Specify whether to Round Sample Time to Closest Minute in the timestamp, and
whether to Add Minute.
e. For each data field you wish to include in the report:

4. Select the field in the Data Fields drop-down.


5. If a format drop-down appears, select a format. Note that you can edit the format
directly in the window.
a. Click Add Field.
b. In the Fields Order section, you can change the order in which columns will
appear by dragging and dropping column titles. c. (Option) Click Save as
Default Settings. The settings you defined will become the new default settings for the Custom
Stream History Report.
d. Click Export to CSV. A CSV file is created, showing the history of the
selected streams during the selected time period. For example, for the report criteria defined in
the figure above, the resultant CSV report file is as follows:
Pinouts
Wavelet Devices
Every Wavelet model has a different pinout for the connector ports. If you are not sure
which model you are wiring a sensor to, contact Support at support@ayyeka.com. Be
sure to have the device's serial number handy.

WA1111:

WA1111-xx-V2 (5 DIO ports):


There are a maximum total of 5 Digital channels. All 5 channels can be used for
Digital Input. Alternatively, up to three of the channels can be used for Digital
Output. For example, if the maximum of three channels are used for output, that
leaves only two channels remaining for input. So any combination of 5 Digital
input/outputs is possible, as long as no more than 3 channels are used for
output, and the total number of channels does not exceed 5.

Comparison of WA1111 and WA1111-xx-V2:


WA3888:

WA4000:
WA00138 Analog Cable Assembly:

WA00141 Digital Cable Assembly:

WA00140 Serial Cable Assembly:

WA00148 Power Cable Assembly - all devices:

WA00148 Power Cable Assembly - Wavelet 4R:

WA00148 Power Cable Assembly - Wavelet Ex:

WA00148 Power Cable Assembly - Wavelet-xx-V2:

WA00234 Intrinsically Safe Cable Assembly:


WA00146_2-Port Discrete Cable Splitter

WA00155_4-Port Serial Cable Splitter

WA00156_2-Port Serial Cable Splitter

WA00157_4-Port Analog Cable Splitter

WA00158_2-Port Analog Cable Splitter


WA00110_Power Connector (Wavelet3)

WA00170 & WA00145_Power Connector


Device Datasheets

Wavelet V2™:

Wavelet Ex™ Intrinsically Safe:

Wavelet 4R™ Cost Optimized:


Sensor Documentation
The following sensors are supported.

SE00011_Non-Contact Ultrasonic Level Sensor


SE00011_Non-Contact Ultrasonic Level Sensor_APG_MNU_Datasheet

SE00011_Non-Contact Ultrasonic Level Sensor_APG_MNU_User Manual

SE00011_Non-Contact Ultrasonic Level Sensor_APG_MNU_Installation Guide

SE00012_Submersible Hydrostatic Level Sensor


SE00012_Submersible Hydrostatic Level Sensor_APG_PT-500_Calibration

SE00012_Submersible Hydrostatic Level Sensor_APG_PT-500_User Manual

SE00012_Submersible Hydrostatic Level Sensor_APG_PT-500_Datasheet

SE00012_Submersible Hydrostatic Level Sensor_APG_PT-500_Installation_Guide

SE00013_Pressure Sensor, 0-145 psi


SE00013_Pressure Sensor, 0-145 psi_Schneider Electric_XMLG010D21_Datasheet

SE00013_Pressure Sensor, 0-145 psi Schneider Electric_XMLG010D21 Instruction sheet

SE00014_Multi-Parameter In-Line Water Quality Sensor (Active


Chlorine, Conductivity, Pressure, and Temperature)
SE00014_Multi-Parameter In-Line Water Quality Sensor_ENDETEC_KAPTA 3000-
AC4_Datasheet.pdf

SE00015_Float Level Switch


SE00015_Float Level Switch_APG_FT-100_Datasheet.pdf

SE00015_Float Level Switch_APG_FT-100_User-Manual.pdf

SE00016_Non-Contact Laser Velocity Sensor


SE00016_Non-Contact Laser Velocity Sensor_Teledyne ISCO_2150
LaserFlow_Datasheet.pdf

SE00016_Non-Contact Laser Velocity Sensor_Teledyne ISCO_2150


LaserFlow_Brochure.pdf

SE00016_Non-Contact Laser Velocity Sensor_Teledyne ISCO_2160 LaserFlow


Module_User Manual.pdf
SE00017_Turbidity and Temperature Sensor
SE00017_Turbidity and Temperature Sensor_Ponsel_NEPHELOMETRIC_Datasheet.pdf

SE00018_4-Electrode Conductivity, Salinity, and Temperature


Sensor
SE00018_4-Electrode Conductivity, Salinity, and Temperature
Sensor_Ponsel_C4E_User_Manual.pdf

SE00018_4-Electrode Conductivity, Salinity, and Temperature


Sensor_Ponsel_C4E_Datasheet.pdf

SE00019_Dissolved Oxygen and Temperature Sensor


SE00019_Dissolved Oxygen and Temperature Sensor_Ponsel_OPTOD_User_Manual.pdf

SE00019_Dissolved Oxygen and Temperature Sensor_Ponsel_OPTOD_Datasheet.pdf

SE00020_pH, ORP, and Temperature Sensor


SE00020_pH, ORP, and Temperature Sensor_Ponsel_PHEHT_User_Manual.pdf

SE00020_pH, ORP, and Temperature Sensor_Ponsel_PHEHT_Datasheet.pdf

SE00021_Total Suspended Solids (TSS) Sensor - 6" Submersible


Style
SE00021_Total Suspended Solids (TSS) Sensor - 6" Submersible Style_Confab_950-
SUB_Datasheet.pdf

SE00021_Total Suspended Solids (TSS) Sensor - 6" Submersible Style_Confab_950-


SUB_User Manual.PDF

SE00022_Tipping Bucket Rain Gauge


SE00022_Tipping Bucket Rain Gauge_RM Young_Model 52203_User Manual.pdf

SE00022_Tipping Bucket Rain Gauge_RM Young_Model 52203_Brochure.pdf

SE00023_Hydrologic Submersible Hydrostatic Level Sensor


SE00023_Hydrologic Submersible Hydrostatic Level Sensor_SEBA Hydrometrie_DS
22_Brochure.pdf

SE00024_Pulse Radar Water Level Sensor


SE00024_Pulse Radar Water Level Sensor_WaterLOG (Xylem)_Nile 502_Datasheet.pdf
SE00024_Pulse Radar Water Level Sensor_WaterLOG (Xylem)_Nile 502_User Manual.pdf

SE00024_Pulse Radar Water Level Sensor_WaterLOG (Xylem)_Nile 502_Quick Start


Guide.pdf

SE00025_Optical Water Quality Sensor - Turbidity


SE00025_Optical Water Quality Sensor_Turner Designs_Cyclops 7_Cable Guide.pdf

SE00025_Optical Water Quality Sensor_Turner Designs_Cyclops 7_Calibration.pdf

SE00025_Optical Water Quality Sensor_Turner Designs_Cyclops 7_Quick_Start_Guide.pdf

SE00025_Optical Water Quality Sensor_Turner Designs_Cyclops 7_User Manual.pdf

SE00025_Optical Water Quality Sensor_Turner Designs_Cyclops 7F_Datasheet.pdf

SE00026_30-ft Temperature String Sensor


SE00026_Temperature String_PME_T-Chain_Datasheet.pdf

SE00026_Temperature String_PME_T-Chain_User Manual.pdf

SE00027_Radar Level Sensor, Stainless Steel Horn, 10 m (33-ft)


Range
SE00027_Radar Level Sensor, Stainless Steel Horn, 10 m (33-ft) Range_ABM_ABM
300_Datasheet.pdf

SE00027_Radar Level Sensor, Stainless Steel Horn, 10 m (33-ft) Range_ABM_ABM


300_Radar Horn Assembly.pdf

SE00027_Radar Level Sensor, Stainless Steel Horn, 10 m (33-ft) Range_ABM_ABM


300_Mounting Guidelines.pdf

SE00028_Non-Contact Ultrasonic Level Sensor, 40-ft Range


SE00028_Non-Contact Ultrasonic Level Sensor_APG_MNU_Datasheet.pdf

SE00028_Non-Contact Ultrasonic Level Sensor_APG_MNU_Installation Guide.pdf

SE00028_Non-Contact Ultrasonic Level Sensor_APG_MNU_User Manual.pdf

SE00029_Optical Water Quality Sensor - Phycocyanin (Blue-Green


Algae - Freshwater)
SE00029_Optical Water Quality Sensor - Phycocyanin Optics (Blue-Green Algae -
Freshwater)_Cyclops 7_Cable_Guide.pdf
SE00029_Optical Water Quality Sensor - Phycocyanin Optics (Blue-Green Algae -
Freshwater)_Cyclops 7_Datasheet.pdf

SE00029_Optical Water Quality Sensor - Phycocyanin Optics (Blue-Green Algae -


Freshwater)_Cyclops 7_Installation_Guide.pdf

SE00029_Optical Water Quality Sensor - Phycocyanin Optics (Blue-Green Algae -


Freshwater)_Cyclops 7_User_Manual.pdf

SE00030_Optical Water Quality Sensor - CDOM/FDOM


SE00030_Optical Water Quality Sensor_Turner Designs_Cyclops 7F_Calibration.pdf

SE00030_Optical Water Quality Sensor_Turner Designs_Cyclops


7F_Quick_Start_Guide.pdf

SE00030_Optical Water Quality Sensor_Turner Designs_Cyclops 7F_User Manual.pdf

SE00030_Optical Water Quality Sensor_Turner Designs_Cyclops 7F_Datasheet.pdf

SE00031_Temperature Sensor
SE00031_Temperature Sensor_Omega_M12_Datasheet.pdf

SE00032_In-line Drinking Water pH Sensor


SE00032_In-line Drinking Water pH Sensor_Hach_pHD Sensor_User Manual.pdf

SE00033_Inductive Conductivity Sensor


SE00033_Inductive Conductivity Sensor_Hach_3700sc_Datasheet.pdf

SE00033_Inductive Conductivity Sensor_Hach_3700sc_User Manual.pdf

SE00034_Hydrologic Submersible Hydrostatic Level and


Temperature Sensor
SE00034_Hydrologic Submersible Hydrostatic Level Sensor_SEBA Hydrometrie_DS
22_Brochure.pdf

SE00035_PTSA In-Line Fluorometer


SE00035_PTSA In-line Fluorometer_Turner Designs_Little Dipper 2_Datasheet.pdf

SE00035_PTSA In-line Fluorometer_Turner Designs_Little Dipper 2_User Manual.pdf

SE00035_PTSA In-line Fluorometer_Turner Designs_Little Dipper 2_Connection and Wiring


Guide.pdf
SE00036_Fluorescein In-Line Fluorometer
SE00036_PTSA In-line Fluorometer_Turner Designs_Little Dipper 2_Datasheet.pdf

SE00036_PTSA In-line Fluorometer_Turner Designs_Little Dipper 2_User Manual.pdf

SE00036_PTSA In-line Fluorometer_Turner Designs_Little Dipper 2_Connection and Wiring


Guide.pdf

SE00037_Non-Contact Radar Area Velocity Flow Sensor


SE00037_Non-Contact Radar Area Velocity Flow Sensor_Hach_FL901_Datasheet - Flow
Logger.pdf

SE00037_Non-Contact Radar Area Velocity Flow Sensor_Hach_FL901_User Manual.pdf

SE00037_Non-Contact Radar Area Velocity Flow Sensor_Hach_AV9000_Datasheet - Area


Velocity Analyzer.pdf

SE00039_Pressure Sensor, 0-34.5 bar (0-500 psi)


SE00039_Pressure Sensor, 0-34.5 bar (0-500 psi)_APG_PT-L1_User Manual.pdf

SE00039_Pressure Sensor, 0-34.5 bar (0-500 psi)_APG_PT-L1_Datasheet.pdf

SE00039_Pressure Sensor, 0-34.5 bar (0-500 psi)_APG_PT-L1_Installation Guide.pdf

SE00040_H2S Gas Logger, Range 0-1,000 ppm


SE00040_H2S Gas Logger_ OdaLog_ Datasheet.pdf

SE00040_H2S Gas Logger_Thermo Fisher Scientific__OdaLog L2 Logger.pdf

SE00040_H2S Gas Logger_Thermo Fisher Scientific_OdaTrack 4-20 mA


Adapter_Datasheet.pdf

SE00041_Submersible Ultrasonic Flow Measurement Sensor


SE00041_Submersible Ultrasonic Flow Measurement
Sensor_FloWav_StingRay_Datasheet.pdf

SE00041_Submersible Ultrasonic Flow Measurement Sensor_FloWav_StingRay_User


Manual.pdf

SE00042_AC Current Transducer, 20/100/150A


SE00042_AC Current Transducer, 20:100:150A_Veris_Hawkeye 923_Datasheet.pdf

SE00042_AC Current Transducer, 20:100:150A_Veris_Hawkeye 923_Engineering


Specifications.pdf
SE00042_AC Current Transducer, 20:100:150A_Veris_Hawkeye 923_Installation Guide.pdf

SE00043_Pressure Sensor, 0-17.2 bar (0-250 psi)


SE00043_Pressure Sensor, 0-17.2 bar (0-250 psi)_APG_PT-200_Installation Guide.pdf

SE00043_Pressure Sensor, 0-17.2 bar (0-250 psi)_APG_PT-200_Datasheet.pdf

SE00043_Pressure Sensor, 0-17.2 bar (0-250 psi)_APG_PT-200_User Manual.pdf

SE00044_In-Line Drinking Water ORP Sensor, 33-ft Cable


SE00044_In-line Drinking Water ORP Sensor_Hach_DRD1P5.99_Datasheet.pdf

SE00044_In-line Drinking Water ORP Sensor_Hach_DRD1P5.99_User Manual.pdf

SE00045_Turbidity Sensor - 6" Submersible Style


SE00045_Turbidity Sensor - 6" Submersible Style_Confab_850-SUB_Datasheet.pdf

SE00045_Turbidity Sensor - 6" Submersible Style_Confab_850-SUB_Datasheet_User


Manual.PDF

SE00046_Inductive Conductivity, Salinity, and Temperature Sensor


SE00046_Inductive Conductivity, Salinity, and Temperature
Sensor_Ponsel_CTZN_Maintenance and Calibration.pdf

SE00046_Inductive Conductivity, Salinity, and Temperature


Sensor_Ponsel_CTZN_Datasheet.pdf

SE00048_Optical Water Quality Sensor - Chlorophyll In Vivo


SE00048_Optical Water Quality Sensor_Turner Designs_Cyclops 7_Cable Guide.pdf

SE00048_Optical Water Quality Sensor_Turner Designs_Cyclops 7_Calibration.pdf

SE00048_Optical Water Quality Sensor_Turner Designs_Cyclops 7_User Manual.pdf

SE00048_Optical Water Quality Sensor_Turner Designs_Cyclops 7_Quick Start Guide.pdf

SE00048_Optical Water Quality Sensor_Turner Designs_Cyclops 7_Datasheet.pdf

SE00048_Optical Water Quality Sensor_Turner Designs_Cyclops 7_Chlorophyll In Vivo


Calibration Guide.pdf

SE00049_General Purpose pH Sensor


SE00049_General Purpose pH Sensor_Hach_pHD sc_Datasheet.pdf

SE00049_General Purpose pH Sensor_Hach_pHD sc_Mounting Hardware for Differential


Sensors.pdf
SE00050_Total Suspended Solids (TSS) Sensor - 12" Insertion Style
SE00021_Total Suspended Solids (TSS) Sensor - 6" Submersible Style_Confab_950-
SUB_Datasheet.pdf

SE00021_Total Suspended Solids (TSS) Sensor - 6" Submersible Style_Confab_950-


SUB_User Manual.PDF

SE00051_Semi-Permanent Ultrasonic Flow Meter


SE00051_Semi-Permanent Ultrasonic Flow Meter_SoundWater
Technologies_Orca_Datasheet.pdf

SE00051_Semi-Permanent Ultrasonic Flow Meter_SoundWater Technologies_Orca_Quick


Start Guide.pdf

SE00051_Semi-Permanent Ultrasonic Flow Meter_SoundWater Technologies_Orca_User


Manual.pdf

SE00052_Multi-Parameter Air Quality Sensor (NO, SO2, CO, &


O3) and SE00053_Multi-Parameter Air Quality Sensor (NO, SO2, CO,
H2S, O3, PM 10, & PM 2.5)
SE00052_Multi-Parameter Air Quality Sensor - Gaseous Pollutants_Vaisala_AQ400
Series_Datasheet.pdf

SE00052_Multi-Parameter Air Quality Sensor - Gaseous Pollutants_Vaisala_AQT400


Series_Configuration_Guide.pdf

SE00052_Multi-Parameter Air Quality Sensor - Gaseous Pollutants_Vaisala_AQT400


Series_Users_Guide.pdf

SE00052_Multi-Parameter Air Quality Sensor - Gaseous Pollutants_Vaisala_AQ Tool


Software_0_8_1_139.zip

SE00054_Wind Speed and Direction Sensor


SE00054_Wind Speed and Direction Sensor_Dyacon_WSD-1_MODBUS Reader for WSD.zip

SE00054_Wind Speed and Direction Sensor_Dyacon_WSD-1_Datasheet.pdf

SE00054_Wind Speed and Direction Sensor_Dyacon_WSD-1_User Manual.pdf

SE00055_Temperature, Barometric Pressure, and Relative Humidity


Sensor
SE00055_Temperature, Barometric Pressure, and Relative Humidity
Sensor_Dyacon_TPH-1_Datasheet.pdf

SE00055_Temperature, Barometric Pressure, and Relative Humidity


Sensor_Dyacon_TPH-1_MODBUS Utility for TPH-1.zip

SE00055_Temperature, Barometric Pressure, and Relative Humidity


Sensor_Dyacon_TPH-1_User Manual.pdf

SE00056_Soil Moisture and Temperature Sensor


SE00056_Soil Moisture and Temperature Sensor_Decagon Devices_5TM_User Manual.pdf

SE00056_Soil Moisture and Temperature Sensor_Decagon Devices_5TM_Quick Start


Guide.pdf

SE00056_Soil Moisture and Temperature Sensor_Decagon Devices_5TM_Integrator


Guide.pdf

SE00057_Submersible Area Velocity Flow Sensor


SE00057_Area Velocity Flow Sensor_Teledyne ISCO_2150_Datasheet.pdf

SE00057_Area Velocity Flow Sensor_Teledyne ISCO_2150_Installation and User


Guide.pdf

SE00058_Natural Gas Liquids (NGL) Radar Level Sensor with High


Pressure Antenna
SE00058_Natural Gas Liquids (NGL) Radar Level Sensor with High Pressure
Antenna_ABM_ABM 300 High Pressure Explosion Proof_Datasheet.pdf

SE00059_Noise Level Sensor


SE00059_Noise Level Sensor_Cirrus_MK427_Calibration.pdf

SE00059_Noise Level Sensor_Cirrus_MK427_User Manual.pdf

SE0005 Level Sensor_Cirrus_MK427_Datasheet.pdf

SE00061_Intrinsically Safe Pressure Sensor, 0-689 bar (0-10,000


psi)
SE00061_Intrinsically Safe Pressure Sensor, 0-689 bar (0-10,000
psi)_APG_PT-400_Datasheet.pdf

SE00061_Intrinsically Safe Pressure Sensor, 0-689 bar (0-10,000 psi)_APG_PT-400_ATEX


Certificate of Conformity.pdf

SE00061 Intrinsically Safe Pressure Sensor, 0-689 bar (0-10,000 psi) APG_PT-400 CSA
Certificate of Conformity.pdf

SE00061_Intrinsically Safe Pressure Sensor, 0-689 bar (0-10,000


psi)_APG_PT-400_Installation Guide.pdf

SE00061_Intrinsically Safe Pressure Sensor, 0-689 bar (0-10,000 psi)_APG_PT-400_IECEx


Certificate of Conformity.pdf

SE00061_Intrinsically Safe Pressure Sensor, 0-689 bar (0-10,000 psi)_APG_PT-400_User


Manual.pdf

SE00062_Crude, Water, and Chemical Radar Level Sensor, 33-ft


Range, Oil-Water Interface Detector
SE00062_Crude, Water, and Chemical Radar Level Sensor_ABM_ABM 300 High Pressure
Explosion Proof_Oil Water Interface Detector.pdf

SE00062_Crude, Water, and Chemical Radar Level Sensor_ABM_ABM 300 High Pressure
Explosion Proof_Datasheet.pdf

SE00064_ISO Second Class Pyranometer


SE00064_ISO Second Class Pyranometer_Kipp & Zonen_SMP3_Declaration of
Conformity.pdf

SE00064_ISO Second Class Pyranometer_Kipp & Zonen_SMP3_SMP3_User Manual.pdf

SE00064_ISO Second Class Pyranometer_Kipp & Zonen_SMP3_Instruction Sheet.pdf

SE00065_Seismic Velocity Sensor, Hazardous Areas (Class 1 Div I),


1/4" NPT
SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_Application Note -
Best Pracites for RFI Immunity.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_Application Note -


Replacing ST584C with ST584E.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_ST5484-


IntDrwZone2Div2.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_User Manual.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_ST5484-


IntDrwCENELEC.pdf
SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_Installation Drawing -
Hazardous Location CSA.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_Datasheet.PDF

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_IECeX Flameproof


Certificate of Compliance.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_CE Mark Certificate


of Compliance.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_CSA Certificate of


Compliance.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_ATEX Intrinsically


Safe Certificate of Compliance.pdf

SE00065_Seismic Velocity Sensor, Hazardous Area_Metrix_ST584E_ATEX Flameproof


Certificate of Compliance.pdf

SE00066_Seismic Velocity Sensor, General Purpose, 1/4 - 28"


Mounting Stud
SE00066_Seismic Velocity Sensor, General Purpose_Metrix
Instrument_ST6917_Application Note - Best Practices for RFI Immunity.pdf

SE00066_Seismic Velocity Sensor, General Purpose_Metrix


Instrument_ST6917_Application Notes.pdf

SE00066_Seismic Velocity Sensor, General Purpose_Metrix Instrument_ST6917_User


Manual.pdf

SE00066_Seismic Velocity Sensor, General Purpose_Metrix


Instrument_ST6917_Datasheet.pdf

SE00067_4-Electrode Conductivity, Level, and Temperature Sensor


SE00067_4-Electrode Conductivity, Level, and Temperature Sensor_SEBA Hydrometrie_
MPS PTEC_Datasheet.pdf

SE00067_4-Electrode Conductivity, Level, and Temperature Sensor_SEBA Hydrometrie_


MPS PTEC_Brochure.pdf

SE00068_Turbidity Sensor - 12" Insertion Style


SE00068_Turbidity Sensor - 12" Insertion Style_Confab_850-SEN_Datasheet_Datasheet.pdf

SE00068_Turbidity Sensor - 12" Insertion Style_Confab_850-SEN_Installation and Instruction


Manual.PDF

SE00069_Hazardous Area Explosion-Proof Pressure Sensor, 0-68.9


bar (0-1,000 psi)
Download page for all E-10 PDFs

SE00070_AC Current Transformer (Primary 400A, Secondary 5A),


Split Core 3.6 cm (1.4") Window, with Three-Phase Power Analyzer
(WA00134)
SE00070_AC Current Transformer (Primary 400A, Secondary 5A), Split Core 3.6 cm (1.4")
Window_QEED_QI-SC-36-400-5_Datasheet.pdf

WA00134_Three-Phase Power Analyzer_QEED_QE-POWER-T_Datasheet and User


Manual.pdf

SE00071_Level, Pressure and Temperature Sensor


SE00071_Level, Pressure and Temperature Sensor_Datasheet.pdf

SE00071_Level, Pressure and Temperature Sensor_In-Situ_Level TROLL 500_Quick Start


Guide.pdf

SE00071_Level, Pressure and Temperature Sensor_In-Situ_Level TROLL 500_User


Manual.pdf

SE00071_Level, Pressure and Temperature Sensor_In-Situ_Level TROLL 500_Monitoring


Water Levels in Impoundment Structures.pdf

SE00071_Level, Pressure and Temperature Sensor_In-Situ_Level TROLL


500_Maintenance_Guide.pdf

SE00071_Level, Pressure and Temperature Sensor_In-Situ_Level TROLL 500_Calculating


Barometric Efficiency in a Confined Aquifer.pdf

SE00071_Level, Pressure and Temperature Sensor_In-Situ_Level TROLL 500_Absolute vs


Gauged Pressure Sensors Tech Note.pdf

SE00072_Level, Pressure, Conductivity, Salinity, Total Dissolved


Solids, Resistivity, Density, and Temperature Sensor
SE00072_Level, Pressure, Conductivity, Salinity, Total Dissolved Solids, Resistivity,
Density, and Temperature Sensor_In-Situ_Aqua TROLL 200_Conductivity Accuracy Tech
Note.pdf

SE00072_Level, Pressure, Conductivity, Salinity, Total Dissolved Solids, Resistivity,


Density, and Temperature Sensor_In-Situ_Aqua TROLL 200_Conductivity Calibration
Check Tech Note.pdf

SE00072_Level, Pressure, Conductivity, Salinity, Total Dissolved Solids, Resistivity,


Density, and Temperature Sensor_In-Situ_Aqua TROLL 200_Manual.pdf

SE00072_Level, Pressure, Conductivity, Salinity, Total Dissolved Solids, Resistivity,


Density, and Temperature Sensor_In-Situ_Aqua TROLL 200_Quick Start Guide.pdf

SE00072_Level, Pressure, Conductivity, Salinity, Total Dissolved Solids, Resistivity,


Density, and Temperature Sensor_In-Situ_Aqua TROLL 200_Measurement Methodology
Tech Note.pdf

SE00072_Level, Pressure, Conductivity, Salinity, Total Dissolved Solids, Resistivity,


Density, and Temperature Sensor_In-Situ_Aqua TROLL 200_Maintenance Guide.pdf

SE00072_Level, Pressure, Conductivity, Salinity, Total Dissolved Solids, Resistivity,


Density, and Temperature Sensor_In-Situ_Aqua TROLL CTD Data Loggers Datasheet.pdf

SE00073_Portable Ultrasonic Area Velocity Flow Sensor


SE00073_Portable Ultrasonic Area Velocity Flow Sensor ADS FlowShark Pulse –
Installation, Operation, and Maintenance Manual.pdf

SE00075_Dual-Axis Inclinometer
SE00075_Dual-Axis Inclinometer_TE Connectivity_DOG2 MEMS Series_Datasheet.pdf

SE00076_AC Current Transformer (Primary 200A, Secondary 5A),


Split Core 2.4 cm (0.9") Window, with Three-Phase Power Analyzer
(WA00134)
SE00076_AC Current Transformer (Primary 200A, Secondary 5A), Split Core 2.4 cm (0.9_)
Window_QEED_QI-SC-24-200-5_Datasheet.pdf

WA00134_Three-Phase Power Analyzer_QEED_QE-POWER-T_Datasheet and User


Manual.pdf

SE00077_Float Level Sensor with Angle Encoder

SE00078_Integrated Silicon Pressure Sensor, On-Chip Temperature


Compensated and Calibrated, IP68, 7.25 psi

SE00079_Rugged Greenhouse Soil Moisture, Electrical


Conductivity, and Temperature Sensor
SE00079_Rugged Greenhouse Soil Moisture, Electrical Conductivity, and
http://publications.metergroup.com/Integrator%20Guide/18256%20GS3%20Integrator%2
0Guide.pdfemperature Sensor_Decagon_GS3_Integrators Guide.pdf

SE00079_Rugged Greenhouse Soil Moisture, Electrical Conductivity, and Temperature


Sensor_Decagon_GS3_Quick Start Guide.pdf

SE00079_Rugged Greenhouse Soil Moisture, Electrical Conductivity, and Temperature


Sensor_Decagon_GS3_User Manual.pdf

SE00080_Soil Moisture, Electrical Conductivity, and Temperature


Sensor
SE00080_Soil Moisture, Electrical Conductivity, and Temperature Sensor_Meter
Group_5TE_Integrators Guide.pdf

SE00080_Soil Moisture, Electrical Conductivity, and Temperature Sensor_Meter


Group_5TE_Quick Start Guide.pdf

SE00081_Soil Moisture Sensor


SE00081_Soil Moisture Sensor_Decagon_MAS-1_User
Manual.pdf

SE00088_Precision Limit Switch, Top Pin Plunger with Boot Seal


(IP68)
SE00088_Precision Limit Switch, Top Pin Plunger with Boot Seal
(IP68)_Honeywell_MICRO SWITCH 914CE_Installation Instructions.pdf

SE00088_Precision Limit Switch, Top Pin Plunger with Boot Seal


(IP68)_Honeywell_MICRO SWITCH 914CE_Datasheet.pdf

SE00088_Precision Limit Switch, Top Pin Plunger with Boot Seal


(IP68)_Honeywell_MICRO SWITCH 914CE_Product Line Guide.pdf

SE00088_Precision Limit Switch, Top Pin Plunger with Boot Seal


(IP68)_Honeywell_MICRO SWITCH 914CE_White Paper_Impact of Shock and Vibration on
a Limit Switch.pdf
SE00092_Submersible Hydrostatic Level Sensor, 1.2 bar (0-30 psi)
PMC Engineering VS000 Datasheet

SE00093_High Temperature Heavy-Duty Limit Switch, Side Rotary


Actuator
SE00093_High Temperature Heavy-Duty Limit Switch, Side Rotary
Actuator_Honeywell_MICRO SWITCH LSA1A_Application Note - Solid Waste Management
and Handling.pdf

SE00093_High Temperature Heavy-Duty Limit Switch, Side Rotary


Actuator_Honeywell_MICRO SWITCH LSA1A_Installation Instructions.pdf

SE00093_High Temperature Heavy-Duty Limit Switch, Side Rotary


Actuator_Honeywell_MICRO SWITCH LSA1A_Application Note - Oil Rig Applications.pdf

SE00093_High Temperature Heavy-Duty Limit Switch, Side Rotary


Actuator_Honeywell_MICRO SWITCH LSA1A_Datasheet.pdf

SE00094_AC Current Transformer (Primary 100A, Secondary 5A),


Split Core 1.4" Window, with Three-Phase Power Analyzer
(SE00144)
SE00094_AC Current Transformer (Primary 100A, Secondary 5A), Split Core 2.4 cm (0.9_)
Window_QEED_QI-SC-24-100-5_Datasheet.pdf

SE00144_Three-Phase Power Analyzer_QEED_QE-POWER-T_Datasheet.pdf

SE00144_Three-Phase Power Analyzer_QEED_QE-POWER-T_Modbus Register Map.pdf

SE00144_Three-Phase Power Analyzer_QEED_QE-POWER-T_Product Versions.pdf

SE00144_Three-Phase Power Analyzer_QEED_QE-POWER-T_User Manual.pdf

SE00095_Radar Level Sensor, 15 m (49-ft) Range


In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAPULS
-Choose product: VEGAPULS WL 61 and in VEGAPULS WL S 61

SE00096_Radar Level Sensor, 8 m (26-ft) Range


In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAPULS
-Choose product: VEGAPULS WL S 61
SE00097-A_Radar Level Sensor - Plastic Horn Antenna, 35 m (115-
ft) Range, 4-20mA Output
In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAPULS
-Choose product: VEGAPULS 61

SE00097-S_Radar Level Sensor - Plastic Horn Antenna, 35 m (115-


ft) Range, RS485 Output
In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAPULS
-Choose product: VEGAPULS 61

SE00098-A_Radar Level Sensor, Wide Process Temperature and


Pressure Range, 4-20mA Output, 35 m (115-ft) Range and
SE00098-S_Radar Level Sensor, Wide Process Temperature and
Pressure Range, RS485 Output, 35 m (115-ft) Range
In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAPULS
-Choose product: VEGAPULS 62

SE00099_Radar Level Sensor, 30 m (98-ft) Range


In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAPULS
-Choose product: VEGAPULS 64

SE00100-A_Guided Wave Radar Level Sensor, 75 m (246-ft) Range,


4-20mA Output and
SE00100-S_Guided Wave Radar Level Sensor, 75 m (246-ft) Range,
RS485 Output
In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAFLEX
-Choose product: VEGAFLEX 81
SE00101_Feeder Protection System
SE00101_Feeder Protection System_GE_Multilin 750 Communications Guide.pdf

SE00101_Feeder Protection System_GE_Multilin 750_Product Specifications.pdf

SE00101_Feeder Protection System_GE_Multilin 750_User Manual.pdf – log in with your


GE credentials, or create an account. The PDF will be downloaded.

SE00102_Portable Ultrasonic Flow Metering System


SE00102_Portable Ultrasonic Flow Metering System_GE_TransPort PT878_Datasheet.pdf

SE00102_Portable Ultrasonic Flow Metering System_GE_TransPort PT878_Quick Start


Guide.pdf

SE00102_Portable Ultrasonic Flow Metering System_GE_TransPort PT878_User


Manual.pdf

SE00104_Ultra-Compact Submersible Level Sensor, Titanium


Housing, 0-0.69 bar (0-10 psi)
SE00104_Ultra-Compact Submersible Level Sensor, Titanium Housing, 0-0.69 bar (0-10
psi)_PMC Engineering_MTM3213_Datasheet.pdf

SE00105_Submersible High Temperature Hydrostatic Level Sensor


SE00105_Submersible High Temperature Hydrostatic Level Sensor, Up to 120°C (250°F),
Up to 0.34 bar (5 psi)_PMC Engineering_VL5273_Datasheet.pdf

SE00106_Temperature Sensor
SE00106_Temperature Sensor_STS_TS100_Datasheet.pdf

SE00108_Submersible Hydrostatic Level Sensor, 0.034 bar (0-5 psi)


SE00108_Submersible Hydrostatic Level Sensor, 0.034 bar (0-5
psi)_APG_PT-500_Installation Guide.pdf

SE00108_Submersible Hydrostatic Level Sensor, 0.034 bar (0-5 psi)_APG_PT-500_Analog


Output User Manual.pdf

SE00108_Submersible Hydrostatic Level Sensor, 0.034 bar (0-5


psi)_APG_PT-500_Datasheet.pdf

SE00112_Pressure Sensor, 0-13.8 bar (0-200 psi)


SE00112_Pressure Sensor, 0-13.8 bar (0-200 psi)_APG_PT-L1_User Manual.pdf
SE00112_Pressure Sensor, 0-13.8 bar (0-200 psi)_APG_PT-L1_Datasheet.pdf

SE00112_Pressure Sensor, 0-13.8 bar (0-200 psi)_APG_PT-L1_Installation Guide.pdf

SE00117_Vibrating Fork Level Switch


In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAWAVE
-Choose product: VEGAWAVE 62

SE00123_Pressure Sensor, 0-17.2 bar (0-250 psi)


SE00123_Pressure Sensor, 0-17.2 bar (0-250 psi)_APG_PT-L1_Installation Guide.pdf

SE00123_Pressure Sensor, 0-17.2 bar (0-250 psi))_APG_PT-L1_Datasheet.pdf

SE00123_Pressure Sensor, 0-17.2 bar (0-250 psi)_APG_PT-L1_User Manual.pdf

SE00126_Submersible Hydrostatic Level Sensor, 1.78 m (0-70 in.)


Water Column
SE00126_Submersible Hydrostatic Level Sensor, 1.78 m (0-70 in.) Water Column_PMC
Engineering_VL5275_Datasheet.pdf

SE00128_Intrinsically Safe Pressure Sensor, 0-6.9 bar (0-100 psi)


SE00128_Intrinsically Safe Pressure Sensor, 0-6.9 bar (0-100 psi)_APG_PT-400_User
Manual.pdf

SE00128_Intrinsically Safe Pressure Sensor, 0-6.9 bar (0-100 psi)_APG_PT-400_ATEX


Certificate of Conformity.pdf

SE00128_Intrinsically Safe Pressure Sensor, 0-6.9 bar (0-100 psi)_APG_PT-400_IECEx


Certificate of Conformity.pdf

SE00128_Intrinsically Safe Pressure Sensor, 0-6.9 bar (0-100


psi)_APG_PT-400_Datasheet.pdf

SE00128_Intrinsically Safe Pressure Sensor, 0-6.9 bar (0-100


psi)_APG_PT-400_Installation Guide.pdf

SE00129_Intrinsically Safe Pressure Sensor, 0-20.7 bar (0-300 psi)


SE00129_Intrinsically Safe Pressure Sensor, 0-20.7 bar (0-300 psi)_APG_PT-400_ATEX
Certificate of Conformity.pdf

SE00129_Intrinsically Safe Pressure Sensor, 0-20.7 bar (0-300


psi)_APG_PT-400_Datasheet.pdf

SE00129_Intrinsically Safe Pressure Sensor, 0-20.7 bar (0-300 psi)_APG_PT-400_IECEx


Certificate of Conformity.pdf

SE00129_Intrinsically Safe Pressure Sensor, 0-20.7 bar (0-300 psi)_APG_PT-400_User


Manual.pdf

SE00129_Intrinsically Safe Pressure Sensor, 0-20.7 bar (0-300


psi)_APG_PT-400_Installation Guide.pdf

SE00130_Pressure Sensor, 0-6.9 bar (0-100 psi)


SE00130_Pressure Sensor, 0-6.9 bar (0-100 psi)_APG_PT-L1_Installation Guide.pdf

SE00130_Pressure Sensor, 0-6.9 bar (0-100 psi)_APG_PT-L1_Datasheet.pdf

SE00130_Pressure Sensor, 0-6.9 bar (0-100 psi)_APG_PT-L1_User Manual.pdf

SE00131_Intrinsically Safe Pressure Sensor, 0-137.9 bar (0-2,000


psi)
SE00131_Intrinsically Safe Pressure Sensor, 0-137.9 bar (0-2,000 psi)_APG_PT-400_ATEX
Certificate of Conformity.pdf

SE00131_Intrinsically Safe Pressure Sensor, 0-137.9 bar (0-2,000


psi)_APG_PT-400_Datasheet.pdf

SE00131_Intrinsically Safe Pressure Sensor, 0-137.9 bar (0-2,000 psi)_APG_PT-400_User


Manual.pdf

SE00131_Intrinsically Safe Pressure Sensor, 0-137.9 bar (0-2,000 psi)_APG_PT-400_IECEx


Certificate of Conformity.pdf

SE00131_Intrinsically Safe Pressure Sensor, 0-137.9 bar (0-2,000


psi)_APG_PT-400_Installation Guide.pdf

SE00138_Pressure Sensor, 0-13.8 bar (0-200 psi)


SE00138_Pressure Sensor, 0-13.8 bar (0-200 psi)_APG_PT-L3_Datasheet.pdf

SE00138_Pressure Sensor, 0-13.8 bar (0-200 psi)_APG_PT-L3_Installation Guide.pdf

SE00138_Pressure Sensor, 0-13.8 bar (0-200 psi)_APG_PT-L3_User Manual.pdf

SE00139_Differential Pressure Transmitter, 1.50 psi (0.1 bar)


Range, 0.075% Accuracy
SE00140_Differential Pressure Transmitter, 7.50 psi (0.5 bar)
Range, 0.075% Accuracy
In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGADIF
-Choose product: VEGADIF 65
SE00144_Three-Phase Power Analyzer
SE00144_Three-Phase Power Analyzer_QEED_QE-POWER-T_Datasheet.pdf

SE00144_Three-Phase Power Analyzer_QEED_QE-POWER-T_User Manual.pdf

SE00169 _Intrinsically Safe Modbus Ultrasonic Sensor


SE00169_Intrinsically Safe Modbus Ultrasonic Sensor Datasheet.pdf

SE00169_Intrinsically Safe Modbus Ultrasonic Sensor User Manual.pdf

SE00169_Intrinsically Safe Modbus Ultrasonic Sensor Installation Guide.pdf

Important: Remember that the Intrinsically Safe Wavelet (WA3888) has a different
pinout than the WA1111.

SE000183_A Submersible Hydrostatic Level Sensor


SE000183-A_Submersible Hydrostatic Level Sensor_Datasheet.pdf

SE00226-A-10 VAGAPULS C 21 Sensor for Continuous Level


Measurement
In https://www.vega.com/en/home_il/downloads, type in:
-Product family: VEGAPULS
-Choose product: VEGAPULS C 21

SE00245 HyQuest Solution TB7 Tipping Bucket Rain Gauge


SE00245 TB7 Tipping Bucket Rain Gauge Datasheet.pdf

SE00245 TB7 Tipping Bucket Rain Gauge User Manual.pdf


Accessories
External Cellular Antenna - Overview, Recommended
Practices, Installation
Using the proper external antenna, ensuring that it's well positioned, and achieving good signal
quality are instrumental in guaranteeing optimal results for wireless connectivity and battery life
of the Wavelet device.
Use a high-quality external antenna, such as those antennas supplied by Ayyeka.

Contents
Overview
Antenna types
Using your own antenna
Installation guidelines
How to check the antenna
Overview
The Wavelet device is a cellular data creation hardware. Depending on the specific Wavelet part
number, the device uses 4G/3G/2G cellular network technologies to communicate field data to
the StreamView data platform on the cloud or to an on-premises server.
The Wavelet is an industrial-grade rather than consumer-grade product. As a result, a good
signal on your smartphone does not always guarantee a good signal with the Wavelet!
Industrial-grade solutions typically use external antennas to support installations in challenging
environments, such as underground sites and sealed cabinets.
To achieve optimal results, pay special attention to the antennas and to the signal quality of the
installed device. Good signal strength will result in more reliable connectivity and longer battery
life for devices in the field.

Antenna types
The Wavelet has both internal and external antennas. The internal antenna acts as a backup
antenna only. Ayyeka considers a Wavelet to be improperly installed if it does not use an
external antenna.

The external antenna comes in a variety of shapes and mounting options (magnetic, dome,
patch, and in-road). Make sure you use the proper antenna that fits the site conditions. Also,
notice that some antennas require a ground plane for optimal performance, so must be installed
on a metallic plate, which will be provided with the antenna.
Using your own antenna
If you intend to use your own antenna, verify that the antenna uses an SMA male connector.
Your antenna should support all of the following frequencies (note the Model Number suffix of
your Wavelet device, for example: -US):

Technology -US, -SA -EU

2G 850, 900, 1800, 1900 MHz 900, 1800 MHz

3G 850, 1700, 1900 MHz 900, 1800, 2100 MHz

4G (LTE) 700, 850, 1700, 1900 MHz 800, 900, 1800, 2100, 2600 MHz

Cellular antennas supporting 2G and 3G bands will typically support all bands for these cellular
technologies. However, if using a locally sourced antenna, always make sure that the antenna is
designed for 4G bands at the installation location. 4G frequency bands are not universal across
the globe, so selecting the right antenna is pivotal.

Installation guidelines
Ensure the antenna connector is secured tightly to the SMA female panel connector of the
Wavelet.

The magnetic mount and dome antenna supplied by Ayyeka must be properly mounted to
the metal L-bracket supplied with these products. This bracket provides a ground plane for
the antennas to ensure optimal performance.

Wherever possible, the antenna should not be obstructed or enclosed by other metallic items,
such as inside metal cabinets, underneath pipes, etc. The further and the higher away from
obstructions the antennas can be placed, the better.

If the antenna is installed underground, mount it at least 50 cm (20 in) beneath the lid/hatch
and the street surface.

The antenna must be mounted at least 5-10 cm (2-4 in) away from the wall.

The antenna must be mounted at least 5 cm (2 in) away from the Wavelet.

The cable length should be shorter than 3 m (9 ft) for typical installations. A long antenna
cable results in gain loss, resulting in poorer signal quality. The shorter the cable, the better.
If using an antenna cable extension, always use high-quality cable with limited attenuation.

The antenna cable must not be looped around the antenna.

Do not wrap cables, zip ties, or other items around the antenna.

If you are installing in a highly corrosive environment such as a sewer, apply technical grease
to the antenna and sensor field attachable connectors after securing them to the panel
connectors. Ayyeka recommends using Dow Corning Molykote 55 O-Ring Grease, although
similar products can also be effective.

Graphic of Antenna Installation


How to check the antenna
Before leaving the site, make sure that you have a good signal and successful data
transmission.
In the AyyekaGo mobile app mobile app, do the following steps:
1. Select the Wavelet whose signal quality you want to check.
2. Check that the CARRIER strength is 70% or higher. If the strength is less, re-position the
antenna.
3. Click TRANSMIT NOW or use the magnetic Wavelet Activator on the device to initiate a
transmission. There will be a few minutes of delay before the data transmission begins.
Repeating either method will not expedite data transmission.

If the Wavelet does not transmit, try moving the antenna to a different position.
If the Wavelet still does not transmit after multiple attempts at re-positioning the antenna,
consider using an alternative solution, including an in-road antenna.
WA00222_External In-Road Antenna_Installation

Guidelines_20200512:
Cellular Antenna Patch Taoglas GSA.8827.A.101111
Cellular Antenna Dome Laird TRA6927M3PWN-001
Cellular Antenna - Magnetic Mount APAMSLJ-164
Indoor Power Supply, US Wall Plug Triad WSU120-2000-
R
Device Specifications
Connector 42-00009 Datatsheet
Wavelet Mechanical Drawings
Wavelet Specifications
Data and Software

Data Architecture • Ayyeka Private Cloud


• On-Premises Server

Cyber Security • TLS 1.2, including AES-256 data encryption


• Secured Pairing Key
• Secured connectivity

Software Integration • REST API

SCADA Integration • OPC-UA


• DNP3
• CSV

Ayyeka User Interface Web-based from desktop, tablet, or mobile device

Data Export Options CSV

Data Storage Internal storage on the device is 700 KB. For a typical application,
700 KB is the amount of data from 2 to 3 weeks of sampling.
An optional upgrade with an SD card provides up to 32 GB.

Device Memory 8-GB industrial-grade SD card

Data Communication Bidirectional with two-way device-server authentication

Alarm Notification SMS, Email, Voice

Alarm Threshold Up to four alarms for each data stream

System Health Check Included

Power

Primary Power Supply Internal lithium battery, 3.9 VDC 3A, field-replaceable, military-
grade, non-rechargeable

Battery Capacity 32Ah

Voltage Input 6V – 24V

Operational Run Time • At least 3,500 transmissions for a battery pack


• At least four years
Assumes operation of one pressure sensor sampling once
every 15 minutes and transmission once every four hours.
Power

Battery Status Notifications On-board battery consumption for battery life monitoring

External Power • Solar and line power compatibility


• Automatic power source switching

Sensor Integration

Sensor Ports Three ports: analog, serial, and digital


Supports up to 10 sensors by using splitter cables

Sensor Position External, hard-wired

Serial Interfaces • RS485


• SDI12
• RS232

Serial Protocols • Modbus RTU and Modbus ASCII


• SDI12
• Column Parser
• Proprietary (Ponsel, Flow-Tronic, SEBA Hydrometrie)

Serial Channels Up to 16

Analog Channel Up to four inputs, with any combination of current output and
voltage output.
Analog channel can use the following sensors:
• 4-20mA
• 0-20mA
• 0-5V
• 0-10V
• 0-24V

Digital Channels Total of 5 inputs, or combination of inputs and outputs, where


the maximum number of outputs is 2.
The total number of I/O may not exceed 5.

Sensor Power Supply Output 12V, 350mA

Connectivity

Communication Network Multi-network carrier:


• 4G (LTE)
• 3G
• 2G
• LPWAN (Low Power Wide Area Network)
BLE (Bluetooth Low Energy)
Connectivity

Dual SIM Cards Multi-network, non-steered

Cellular Roaming Data plan includes support for over 140 countries

Configuration & Upgrades • Remotely (over-the-air)


• USB-PC connection

Data Transmission Profile • Periodic, data dependent


• Dynamic IP address for every device session to significantly
protect against hacking

Antenna • External (mandatory)


• Internal (backup for external antenna)
Automatic switching between the two antennas

Built-in GPS Included

Mechanical Enclosure

Dimensions (W x H x D) 13.2 cm x 16.5 cm x 7.3 cm (5.2 in x 6.5 in x 2.9 in)

Weight 0.7 kg (1.5 lbs)

Enclosure Material • UV-resistant, molded polycarbonate


• All metallic objects of the enclosure (screws,
washers, connectors, etc) are made of stainless steel.
• Industrial-grade connectors

Water- and Dust-proof Rating • IP68


• NEMA 6P

Hazardous Location Class I Div 1, ATEX, IECEx certifications (pending)

Operating Temperature Range -40°C to +80°C (-40°F to +176°F)

Storage Temperature Range -40°C to +80°C (-40°F to +176°F)

Internal Battery Temperature Range -40°C to +85°C (-40°F to +185°F)

Relative Humidity Range 30-95%, with condensation


The device has internal humidity sensor that
transmits to the Data Server

Elevation -500 meters below sea level to +3,500 meters above


sea level (-1640 feet to +11,483 feet)
Certifications

• Radiated emission standards (ETSI EN 301 489-1/ -17 Class B and CFR 47 FCC Part 15
Subpart B Class B)
• Immunity per ETSI EN 301 489 1/-17 EN 61000-4-2, 3, 4, 5, 6, RoHS, Directive 2002/95/EC
and CE (Conformité Européenne)
• ATEX for explosive environments – Class I Div 1, Groups C & D II 1G Ex ia IIB T4 Ga IP68
Tamb = -40 +68°C IECEx Certification No. IECEx ITL 18.0003X
On-Premises
Installation Guide for Ayyeka On-Premises Server
When you opt to establish your own on-premises server rather than take advantage of the
Ayyeka cloud platform, you need to conform your platform to the system requirements
and hardware sizing specified in this document. Furthermore, you are responsible for all of the
standard operations, including administration, backups and general server maintenance.
In this document, we will guide you through a step-by-step deployment. After you install the
Ubuntu server operating system on your on-premises server, you will install the Ayyeka Web
Application User Interface software. Subsequently, you will need to migrate each device from
the cloud instance to your on-premises instance.

Important:
► Existing data in the cloud server will not be migrated to the new on-premises server.
► After you install the Ayyeka server software onto an on-premises server, your on-
premises server is no longer synchronized with the Ayyeka cloud server for any user
interface or Wavelet updates.
► Ayyeka does not take responsibility for backing up or otherwise maintaining your on-
premises server and data.

Contents
Planning for an On-Premises Server
Prerequisites
Installation
Step 1: Connect to Ubuntu Server
Step 2: Do the Installation
Step 3: Verify the Installation
Step 4: Do Sanity Check
Step 5: Designate the SMTP Server Connection String
Step 6: Final Steps
Appendix 1: Install Ubuntu on the Server

Planning for an On-Premises Server


The server Operations personnel need the following skill set:
Linux server maintenance (familiarity with Ubuntu distribution version 18)
Administrative responsibility for server, network, security, backups, etc.

The on-premises server architecture must include the following components:


Firewall and network security
Open ports 99, 9443 (HTTP) and 8883 (MQTT) to the outside for Wavelet connectivity

Open ports 80 and 85 on the internal network for client/API access to on-premises
server

Enterprise email server, or a dedicated email server that will perform the following tasks:
Email notification

User invitations

The user workstation that will act as a client to connect to the on-premises server during the
installation, needs the following software tools:
SSH client to the on-premises server

FTP/SCP tool for uploading resource files to the on-premises server

Prerequisites
You must know the user credentials in the Ayyeka Cloud StreamView instance that has the
Account Owner role.

You must know the IP address or host name of your on-premises server.

You must know the SMTP server host, the SMTP username, and the SMTP password for the
email server.

You must have the following deliverables from Ayyeka on hand:


Text file with the following information:
AWS credentials for access to download software from Ayyeka Cloud

URL for running the installation application

The on-premises server must fulfill the following requirements:


The on-premises server must have the following operating system setup:
Ubuntu Server 18.04 Server Install Image must be installed (see Appendix 1 for
details)
An Administrative user with SUDO privileges

The on-premises server must have the following minimal hardware provisioned:
For 1-50 Wavelets:
4x Intel/AMD CPU cores

8 GB RAM

For 51-500 Wavelets:


10x Intel/AMD CPU cores

16 GB RAM

500 GB SSD (fast) storage disk system

Running the Ayyeka software on an on-premises server is CPU-intensive.


Therefore, this configuration is the minimum that you must have on your server.

Internet access for installing on-line Linux libraries, accessing the Ayyeka cloud server
during the installation, and for HTTPS/MQTT communication from the devices to the on-
premises server.

The installation involves downloading about 2Gb of data from the Ayyeka cloud server.
Depending on the speed of your internet connection, the downloading might take up to two
hours.

Installation
In this section, you will connect to the Ubuntu server, and then install the Ayyeka on-premises
software on the server. You will verify the installation and do a brief sanity check. Finally, you
will configure an SMTP email server.
Step 1: Connect to Ubuntu Server
Use the SSH client to connect to the Ubuntu server. All of the following commands are executed
from this SSH client.
1. Log in with the operating system administrative user credentials.
2. (Optional) Create a subdirectory for the installation, and then go to that subdirectory.

Step 2: Perform the Installation


1. From the installation directory, run the command:

bash -c "$(wget -O - -q
https://ak-server-installers-onprem-public-scripts.s3-eu-west-
1.amazonaws.com/start_install.sh)"
If your Ubuntu distribution does not include the “wget” utility, use the “curl”
command instead:

bash -c "$(curl -s -L
https://ak-server-installers-onprem-public-scripts.s3-eu-west-
1.amazonaws.com/start_install.sh)"

2. Follow the on-screen installation instructions. You will need to enter the following
parameters that you received from Ayyeka in the accompanying text file:

Key ID

Key Secret

Step 3: Verify the Installation


1. Check the lines on the console following the “PLAY RECAP” line:

As part of the installation, the administrative user is added to the docker security group.
This allows the administrative user to execute the post-installation scripts in subsequent
steps.

2. Log out, and then log in to apply the new security privileges to the administrative user.

Step 4: Do Sanity Check


1. In your web browser, type in the new on-premises server's IP address (or domain name if it
is registered in your DNS).
2. Log in to StreamView with the administrator username and password that was provided.
3. Create a new account.
4. In the left pane of StreamView, click API, and then click the Agents tab. Download the CSV
Agent.
If you need to restart the installation, first run the onprem_uninstall.sh script, located in
your installation directory, and then rerun the bash command from Step 1 above.

Step 5: Designate the SMTP Server Connection String


In the on-premises server, do the following steps in the SSH console (if you are unable to
provide these connection properties, you may skip this Step for now). However, without
configuring the SMTP server, you will be unable to add users to the application and send
email notifications when required.

1. Run the command dsmtp_setup. Fill in the SMTP Server Host, the SMTP
Username, and the SMTP Password fields.
2. Restart the SMTP service: drestart backend
3. Verify the successful configuration by doing the following steps:
a. Invite a user who is designated as an Account Owner.
b. Confirm the user response.

Step 6: Final Steps


Set up a VPN
You are responsible for all maintenance, management, administration, and operations of your
on-premises server. If you require assistance, contact support@ayyeka.com. You will need to
provide Support with access to your on-premises server.
For this reason, it is recommended that you set up a VPN so that if there are problems,
Ayyeka Support can directly access your on-premises server. Otherwise, Support cannot access
your system without your direct involvement.
Migrate All Devices from the Cloud to the On-Premises Server
Now that you've installed Ayyeka On-Premises, devices will need to be migrated from the
default on-cloud server to the on-premises server. Follow the steps in Device Migration from
Cloud to On-Premises.
Change the Admin User Password
It is highly recommended that you change the default password for the user interface admin
user (that was used to login to the user interface in Step 4, above).
In the on-premises server, do the following steps:
1. Open an SSH console, and log into the on-premises server with the operating system
administrator user credentials.
2. Run the change admin password shell script by typing the command:

dchpwd admin

3. When prompted, enter the new password and press the Enter key. Repeat when requested
to confirm the new password.

Appendix 1: Install Ubuntu on the On-Premise Server


1. If installing the server on a Virtual Machine, from the hypervisor (appliance or application)
select the Virtual Machines pane and click Connect to the server that you just started.
If "bare metal" server, insert CD/DVD or USB storage disk with Ubuntu Server ISO or "LIve
CD" and boot up the machine.
2. Select English as the language.
3. Install Ubuntu Server (first menu item).
4. Select the language of keyboard. We recommend that you select English (US) for
compatibility. Typically, you will need to click Enter several times.
5. In the Configure the Network window, type in the desired server name (such as
" 5e241f38ce39701") in the Hostname field, and then click Continue.
6. In the Setup Users and Passwords window, type in user name (such as "akadmin") in the
Full Name for the New User field.
7. Click Continue. Accept “akadmin” as username, and then click Continue.
8. In the Setup Users and Passwords window, provide a password. Verify password, and then
click Continue.
Tip: Save this password because you need this password in the future to
access the server.

9. When asked if you want to “Encrypt your home directory”, select No.
10. Select your time zone.

12. In the Partition disks window, select Guided – use entire disk and set up LVM.
13. Select default disk to partition.
14. In the Write the Changes and Configure LVM field, select Yes.
15. Enter volume group to use for guided partitioning, and then click Continue.
16. In the Write the Changes and Configure LVM system field, select Yes.
17. In the Configure the Package Manager field, do not fill in a proxy. Click Continue.
18. In the Configuring Task list, select Install security updates automatically.
19. In the Software Selection window, select Standard System Utilities and OpenSSH Server.
Everything else should be left unchecked. Click Continue. The software will be installed.
20. In Install the GRUB boot loader on a hard disk, select Yes (the default). The installer will
run. You will receive a message that the installation is complete. Click Continue. The server
will reboot.
21. If installing a Virtual Machine, get the IP address for the server:
a. After reboot, log in to the server with your credentials (akadmin / <password from step
8>).
b. At the command line prompt, type the command ip r to get your address.

Tip: The IP address for the server is next to src in the second line. Write down this
address because you will need it for future actions.
Device Migration from the Cloud to the On-Premises
Server
Device migration is "moving" devices from the cloud to an on-premises server, so the
data collected by the device will be transmitted to, stored on, and accessed from, an on-
premises server.
The migration process consists of exporting each device's metadata (such as the site and
device names, descriptions and configurations) from the cloud server, importing the device
metadata into the on-premises server and changing the server communication parameters so
that each device will send all new stream data to the on-premises server, rather than to the
cloud. Prior to performing the Device Migration tasks, it is important to
contact 5e241f38ce397 Support, in case it is necessary to acquire and upload new device
firmware metadata, corresponding to the firmware of the devices that are being migrated.

Note: Data that has accumulated on the cloud server is not migrated to the on-
premises server as part of the Device Migration process.

Contents
Prerequisites
Migrating New Devices from the Cloud to the On-Premises Server
Step 1: Prepare Site Files
Step 2: Move Downloaded Files to the On-Premises Server
Step 3: Import the FW and Exported Site Metadata into the On-Premises Server Repository
Step 4: Reconfigure MQTT and HTTP Communication for Migrated Devices

Prerequisites
You must know the user credentials in the Ayyeka Cloud StreamView instance that has the
AccountOwner role.

Check with Support to see if your on-premises firmware (FW) files need to be updated. If so,
Support will provide a zip file with the FW-related files to support the different versions of
your Wavelet. These FW-related files will be uploaded to the on-premises server (via FTP,
SCP or shared drive). In this article, the file is called FW.zip.

You must know the following information about your on-premises server instance:
Server IP address or host name

Server operating system administrator user name and password (SUDO user)
The StreamView Account ID number with which the devices will be associated on the on-
premises server

The StreamView administrator user name and password

Note: Accounts into which the new Sites will be imported, must already be set up
in StreamView in your on-premises server.

Required software
SSH client: for console access to the on-premises server to run shell scripts

FTP client: for transferring files to the on-premises server

Migrating New Devices from the Cloud to the On-


Premises Server
You will export the Sites from the Ayyeka cloud server to a zip file on your computer work
station. You will transfer (via FTP client) the Sites zip file and the FW.zip file (if required and
received from Ayyeka Support) from your computer to the on-premises server, and then import
them into the on-premises metadata repository. Finally, you will configure the MQTT and HTTP
server properties for each migrated device to communicate with the on-premises server rather
than with the cloud server.
Step 1: Prepare Site Files
1. On a client machine, log in to the Ayyeka Cloud StreamView instance as a user that has the
AccountOwner (or Partner) role.
2. In the left pane, click Fleet. The Devices window opens to display devices. Do the following
steps:
a. In the Search field, type in your Account, Organization, or other identifiers to filter a
subset list of your devices. Select all of the relevant filtered devices. In this example,
we'll look for the QA Account and select all of them for export.
b. Click the Set Action button, and then select Export Sites. The Export Sites window
opens.
3. In the Export Sites window, accept the default task name or type in some name, and then
click Submit. In this example, we called the
task New_Export_Sites_Task_(8/16/2020_11:08:19AM).

It is highly recommended that you remove spaces from the file name. If you accept the
default task name, replace the spaces with an underscore (_).

4. When the task is finished, click Close.


5. In the left pane, click Tasks.
6. In the search box, type in the name of the Task (defined in Step C, above), to display the
Task that created the zip file containing all of the Sites just exported. In this example, we
search for New_Export_Sites_Task_(8/16/2020_11:08:19AM).
7. Click the Download icon near the check box for the Task name to download the file to your
computer. The downloaded file will be called Export Sites - <Display_Name>.zip.

In this example, the downloaded file is called Export Sites -


New_Export_Sites_Task_(8/16/2020_11:08:19AM).zip.
We remove spaces from the zip file name so that the new name is now
Export_Sites-New_Export_Sites_Task_(8/16/2020_11:08:19AM).zip

It is highly recommended that you remove spaces from the zip file name.

9. Copy the FW.zip file, provided by Ayyeka, to the same directory as the sites zip file that you
just downloaded.

Step 2: Move Downloaded Files to the On-Premises Server


On a client computer, run your FTP client application and connect to your on-premises server.
Transfer the Sites zip file (Export_Sites-
New_Export_Sites_Task_(8/16/2020_11:08:19AM).zip, from our example) to
the directory:
/var/ayyeka/sites/new/

If you require, and received a firmware zip file from Support, transfer the firmware zip file
(FW.zip) from Ayyeka to the directory:
/var/ayyeka/firmwares/new/

Step 3: Import Exported Site Metadata (and the FW) into the On-
Premises Server Repository
In the on-premises server, do the following steps:
1. Open an SSH console, log into the on-premises server console with the administrator user
credentials and perform the following steps.
a. Upload the firmware to the on-premises server by typing the command:
dimport_firmware /var/ayyeka/firmwares/new/FW.zip

b. Import the Sites metadata to the on-premises server by typing the command:
dimport_sites /var/ayyeka/sites/new/<downloaded_zip_file>.zip

In our example, the command would be:


dimport_sites /var/ayyeka/sites/new/Export_Sites-
New_Export_Sites_Task_(8/16/2020_11:08:19AM).zip
Step 4: Reconfigure MQTT and HTTP Communication for Migrated
Devices
On a client machine, log in to the Ayyeka Cloud StreamView instance as a user that has the
AccountOwner (or Partner) role. Configure each migrated device that was exported in step 1.
1. In the left pane, click Devices, and then select the device.
2. In the Configuration tab, scroll down to Advanced Device Configuration, and then
open GSM.
3. In the GSM section, do the following steps:
Click gsm_mqtt_enable. Confirm that the setting is 1.
Click MQTT Server Port. Confirm that the port is 8883.
Click MQTT Server Address. Replace the default address, mqtt.ayyeka.com, with the IP
address or host name of your on-premises server.
Click HTTP SSL Port. Confirm that the port is 9443.
Click HTTP Server Address. Replace the default address, cnc.ayyeka.com, with the IP
address or host name of your on-premises server.
Check all entries for correctness, and then click Submit.

The next time the Wavelet connects to the cloud instance of Ayyeka, the device will be
reprogrammed to communicate with your on-premises server instance. From thereon,
the device will communicate directly with your on-premises server instance.

The device will stop transmitting to the cloud server after receiving the above
commands. Setting a wrong address will cause you to lose control of the device.

For troubleshooting transmission problems, see Transmission Problems - Device is on an On-


Premises Server.
Maintenance Guide for On-Premises Server
The on-premises servers that host the Ayyeka solution require monitoring and
ongoing maintenance to ensure reliability and availability of the services. Failure to adequately
maintain the server might result in downtime, lost data, and poor performance.

Ayyeka is not responsible for maintenance carried out on on-premises sites, nor for any
resulting failures or loss of data.

Contents
Server Infrastructure
Maintenance Guidelines
Backup and Restore the Server
Managing Disk Space
Troubleshooting

Server Architecture Overview


The server software is built of microservices, each of which is in charge of a set of features and
capabilities (for example, user interface, data processing, command processing, and so forth).
The microservices are deployed and executed using Docker containers, a lightweight
virtualization technology that improves software stability, scalability, and security.

The microservices interact with each other to perform tasks and handle requests from users
and devices. In addition, they use the following common infrastructure:
MySQL Database for storing the data collected by the devices, as well as all the metadata
required to process the data, manage users and devices, and in general, maintain the
application's state.

Redis™ for caching frequently accessed data in-memory and system-wide synchronization

Rabbit MQ™ for communication between microservices and also for receiving data from the
devices

High availability of services


The on-premises software package is designed to run on a single server. If high availability is a
requirement, appropriate architecture should be planned, based on the customer's
requirements. The Support team is available to discuss and assist with planning, in
collaboration with the system integrator and the customer’s IT staff.
Recommended solutions might include:
Redundant internet connections

Redundant servers

High availability setup for MySQL, RabbitMQ and Redis

Maintenance Guidelines
Ayyeka recommends the following monitoring, maintenance, and resilience activities:
Monitoring of server and services
Regular monitoring and cleaning of disk space to accommodate the data that is collected in
the database. Disk usage depends on the number of devices, the amount of data collected
per device, and other factors.
There must always be sufficient free disk space available to allow for growth, backups,
and software upgrades. The minimum amount depends on your specific setup, but at
least 10GB should be available at all times.

Disk space availability is especially critical during software upgrades.

Disk usage needs to be monitored periodically to gauge the rate in which free space is
consumed.

Regular preventive maintenance and health checks on CPU and memory.

Regular health checks on hypervisor when hosted as a virtual machine (VM).

The following critical services should be monitored and running on their standard ports on
the base Ubuntu operating system:
MySQL

RabbitMQ

Redis

DOCKER™ computer software

Docker containers must be monitored to ensure they are running at all times. Containers that
are being restarted frequently might indicate an ongoing or evolving issue with one of the
microservices.
Ongoing maintenance of the server
Regular operating system and security updates.

Regular updates of the Ayyeka software on the on-premise server. Note that major updates
are available about every two months, and minor updates are available approximately bi-
weekly.

Backup of the server that can be used to restore the server in the event of a disaster.
Backups should be performed regularly and stored offline in a safe location. It is
recommended to test backups at least quarterly.

Backup and Restore the Server


Disk Space Monitoring and Planning
It is recommended to monitor the following directories regularly.
Directories to Monitor Regularly
Directory Name Description

/var/ayyeka/ak-dumps What these files are: Backup of raw files received over HTTP
Growth: It can grow over time, but a default retention period of 14 days is enforced.
What you need to do: Make sure to have enough disk space to hold files for this retention period.

/var/ayyeka/protodumps What these files are: Backup of raw files received over MQTT
Growth: It can grow over time, but a default retention period of 14 days is enforced.
What you need to do: Make sure to have enough disk space to hold files for this retention period.

/var/ayyeka/backup What these files are: Backup of the database and configuration files
Growth: Might grow over time, but a retention period of 7 days is enforced.
What you need to do:
• Make sure to have enough disk space to hold files for this retention period.
• Back up this directory to an off-server storage.

/var/lib/mysql What these files are: DB storage


Growth: Will grow as the number of devices in the system increases and as data is collected
What you need to do: Make sure to have enough disk space and add more storage space as required.

/var/lib/rabbitmq What these files are: RabbitMQ storage


Growth: Should not grow.
What you need to do: Make sure it does not steadily increase.

/var/lib/docker What these files are: Docker container images and logs
Growth: Should not grow regularly, might grow after software upgrades.
What you need to do: Make sure it does not steadily increase. If it does, use the following commands:
• Check log sizes command line:
docker inspect --format='{{.LogPath}}' $(docker ps -a -q) | sudo xargs -n 1 du -
h
• To delete log files:
docker inspect --format='{{.LogPath}}' $(docker ps -a -q) | sudo xargs -n 1
truncate -s 0
• Removing unused images:
docker image prune -a

/var/log/ayyeka What these files are: Application server log files


Growth: Grows as a function of the server's activity. A retention period of 7 days is enforced.
What you need to do: Make sure it does not steadily increase. Fast growth of logs and error logs might
indicate a problem.

/var/lib/redis What these files are: Redis data


Growth: Should not grow.
What you need to do: Make sure it does not steadily increase.
Troubleshooting
You can get information about the Docker containers by using the following CLI commands:

Information you need Command


List all running containers dps

Show live resource usage statistics of all containers dstats

List all images that are locally stored with the docker engine docker image ls

Stop a docker container dstop [container name as it


appears in the dps command]

Start a docker container dstart [container name as it


appears in the dps command]

Restart a docker container drestart [container name as it


appears in the dps command]
The StreamView UI provides interactive access to your data. The following sections provide
programmatic access.
The OPC-UA, DNP3, and CSV Agents leverage the REST API with no need for you to do
programming. The Agents can integrate directly with your SCADA systems.
API
Using the REST API
You can have programmatic access to your data by using a simple and secure REST-based web
services API. Account and organization owners, as well as account and organization
administrators, can access the REST API commands. Your devices can be managed and
monitored both in the UI and using REST API commands. You can use UI to verify that the
commands that you sent by using the REST API were properly and successfully executed.

Table of Contents
Terminology
Authorization protocol
Prerequisite
Set up the REST API
1. Create an API client for the application
2. Get an Access Token for a REST API Call
3. Authenticate with REST API by using the Access Token
Use the API Commands

Terminology
Terminology Definition

Authorization Server Entity that protects data and validates credentials before authorizing
an API Client to take any action on behalf of an end user.

API Client Entity that represents your application and allows use of OAuth2 for
authentication.

Client Credentials API key and secret for the API Client.

Access Token Token provided by the Authorization Server to the client application to
authorize access to data.

grant_type This must be client_credentials.

client_id Your application's API Client Key.

client_secret Your application's API Client Secret.

Authorization protocol
When an API function is called by a user, the system checks the user’s permissions to learn
which devices that user can manage, and whether the user has permission to perform the
action.

The industry-standard OAuth 2.0 protocol allows you to authorize API client access to your data
via the REST API. This protocol enables you to grant access to an API client without having to
share your username and password. You can view and revoke the API client that you authorized
in your account settings.

Only the client credentials grant type is supported. For more information about OAuth 2.0,
see The OAuth 2.0 Authorization Framework.

Prerequisite
You need a basic familiarity with software development, REST web services, and the UI.

The default secure protocol TLS v1.2 must be enabled for REST API clients and Microsoft
Windows machines that host any of the CSV, DNP3, and OPC-UA agents. To check if TLS 1.2
is enabled, read this article.

Set up the REST API


1. Create an API Client for the application
1. Click API in the side bar.
2. Click + Generate API Client. The Generate API Client window opens.
3. In the Generate API Client window, do the following steps:

a. In the Type list, select REST API.


b. Optionally, enter a Comment.
c. Click Generate. The API Client Key and Secret window opens.
The API Client Key and Secret for the application are displayed in the API Client Key
and Secret window.

Important: Store the Key and Secret in a secure location. After you close the
window, you will not be able to retrieve the Secret.

4. Click Close.

5. The API Clients tab refreshes to display the newly generated API client in the table.

2. Get an Access Token for REST API Calls


To make a REST API call, you must include request headers, including the Authorization header,
with an OAuth 2.0 access token.
To get an access token, pass the [Api_Client_Key]:[Api_Secret] credentials to the Authorization
Server (https://restapi.ayyeka.com/auth/token) in Base64 format in the Authorization header of
a get access token request.
You must include request headers, including the Authorization header, with an OAuth 2.0 access
token.

The following figure illustrates the process:

+---------+ +---------------+
: : : :
: :>-- A - Client Authentication --->: Authorization :
: Client : : Server :
: :<-- B ---- Access Token ---------<: :
: : : :
+---------+ +---------------+

Example request:
APIClient Key APIClient Secret

149F9AC689CB4F16853433AA0AE44E5F ePs4G352BUD9FYCvPXEoz2RC5UYx/K8BoVs+mkrVfpg=

POST /auth/token HTTP/1.1


Host: restapi.ayyeka.comContent-Type: application/x-www-form-
urlencoded
Authorization: Basic
MTQ5RjlBQzY4OUNCNEYxNjg1MzQzM0FBMEFFNDRFNUY6ZVBzNEczNT
JCVUQ5RllDdlBYRW96MlJDNVVZeC9LOEJvVnMrbWtyVmZwZz0=
Cache-Control: no-cache
grant_type= client_credentials

Example response:

HTTP/1.1 200 OK
Cache-Control: no-store
Content-Type: application/json; charset=utf-8
Date: Mon, 26 Jun 2017 14:36:08 GMT
Pragma: no-cache
Content-Length: 231
Connection: keep-alive
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp
XVCJ9.eyJhdWQiOiIyIiwiZXhwIjoxNDk4NDkxMzY4LCJpYXQiOjE0OTg0ODc3NjgsImlz
cy
I6IkNsb3VkIiwic3ViIjoiMjc...",
"token_type":"JWT","expires_in":3600}

3. Authenticate with the Access Token


Using the access token provided in the authorization response, the API client can now access
the REST API on behalf of the authorizing user.
Note the following items:
Use a header in the format Authorization: Bearer [token].

Your application should check for 403 Forbidden error. This error indicates that accessing
the page or resource is forbidden. The cause might be that your application access was
revoked, or that the token expired.

Example request:

GET /v1.0/site HTTP/1.1


Host: restapi.ayyeka.comAuthorization:Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIyIiwi
ZXhwIjoxNDk4NDkxMzY4LCJpYXQiOjE0OTg0ODc3NjgsImlzcyI6IkNsb3VkIiwic3ViIj
oiMjc...
Cache-Control: no-cache
Note that the Authorization:Bearer value is the "access_token" from the previous example
response.
Example response:

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[{"id":1,"creationDate":"2013-05-31T01:11:41Z","displayName":"Test
Site","status":"Active","accountOrganizationId":2}]

Use the REST API Commands


In the StreamView UI, click API in the side bar, and then select API Documentation > API
Reference (v1.0 or v2.0). A list of all REST APIs is documented.
You can work with the APIs in Swagger outside of the UI session. Swagger UI enables you to
visualize and interact with the API’s resources without having any of the implementation logic in
place. Click the Download a Swagger file link to download Swagger to your local environment.
Deleting, Deactivating, or Activating a REST API Client
You can delete, deactivate or activate a REST API client.
In the StreamView, do the following steps:
1. In the side bar, click API.
2. In the API Clients tab, hover your mouse pointer over the line corresponding to the API
Client that you want to delete, deactivate, or activate.

3. Select the icon that corresponds to the action you wish to take:

Icon Action that is done

Deactivate the API client. A deactivated API client cannot be used to access Ayyeka data, but is
not deleted from the database.

Reactivate an API client that was previously deactivated.

Delete the API client from the database.


Tools for SCADA System Integration
Overview of Agents for Device Integration with a SCADA
System
The Wavelet collects and transmits data to cloud storage or to an on-premises server. By using
proprietary drivers, code, and APIs, the data is seamlessly and securely integrated to populate
SCADA databases.
In addition to a CSV interface, the solution supports the OPC-UA, DNP3, and proprietary
communication protocols.
The Wavelet can integrate into a SCADA system in the following process:
1. The device transmits the sensor data to cloud storage or to an on-premises server,
according to the user-defined transmission interval.
2. After the data is transmitted, there are multiple mechanisms for integrating the data into a
SCADA system, depending on the SCADA software and requirements:

DNP3 Agent: The DNP3 Agent is downloaded from Ayyeka and installed on a
Microsoft Windows machine, as a Windows service, in the customer’s local
network. The DNP3 Agent retrieves the data from the cloud storage or to an on-
premises server, wraps the data as an “outstation”, and then transmits the data
using the DNP3 protocol to the SCADA (master station).

OPC-UA Agent: The OPC-UA Agent is downloaded from Ayyeka and installed on a
Windows machine, as a Windows service, in the customer’s local network. The
OPC-UA Agent functions as an OPC-UA Server for connectivity to the SCADA. (If
the SCADA does not support OPC-UA out of the box, it will be necessary to install
an OPC-UA Client as well.) After the OPC-UA Server is installed, it is necessary to
exchange SSL certificates between the OPC-UA Server and the SCADA, and
configure the SCADA for connectivity with the OPC-UA Server endpoints.

CSV Agent: The CSV Agent is downloaded from the Ayyeka application and
installed on a Windows machine, as a Windows service, in the customer’s local
network. The Agent is configured to select specific sites and data streams to
download from the Data Hub as CSV files, according to the formatting
requirements of the SCADA application. The CSV files can then be consumed by
the SCADA in accordance with the data import functionality.

REST API: The Agent leverages the REST API for retrieving data from the cloud
storage or an on-premises server. However, it is also possible to develop custom
applications using the REST API directly, in order to retrieve data for ingestion into
a SCADA application.
Even while the data flows into the SCADA system, the data is still available on the cloud storage
or on the on-premises server, and it can be viewed and analyzed there as well.
Ayyeka OPC-UA Installation and Integration Guide
This document is intended for installers of an Ayyeka OPC-UA agent for the purpose of receiving
data collected by the Wavelet devices directly to their SCADA system.

Contents
Scope of Operation
Preliminary Steps
Prerequisites
Installing the OPC-UA service
Integrating Ayyeka Server with SCADA System
Choosing the Integration Method
Integrating Ayyeka Server Directly with SCADA OPC-UA
Enable the Ayyeka Server’s OPC-UA Agent
Integrating Ayyeka Server with SCADA OPC-UA using OPC UA client
Install and Configure an OPC-UA Client

Appendix - Enhanced Security


Appendix - Recommended Practices

Scope of Operation
The Agent supports OPC-UA DA (direct access) and HA (historical access). If the Client is
configured for OPC-UA DA, the Cloud (or on-premises) server will send the last data sample
from all requested streams. If you need to check historical information, you must specify the
dates in your SCADA system.

Preliminary Steps

Prerequisites
Perform the following prerequisite actions:
1. Install Microsoft .NET Framework 4.8.
2. Check that the directory C:Program Files (x86)Common FilesOPC FoundationUAv1.0Bin
exists. If it does not exist, create it.
3. Copy the Opc.Ua.CertificateGenerator.exe file into the above directory (if the file does not
already exist there).
4. Generate REST API Client Key and Secret.
5. Download the zip file containing the OPC_UA Agent .MSI Windows package installer file.
6. The default secure protocol TLS v1.2 must be enabled for REST API clients and Microsoft
Windows machines that host any of the CSV, DNP3, and OPC-UA agents. To check if TLS
1.2 is enabled, read this article.

Installing the OPC-UA service


Install the OPC-UA Windows service in the same network in which the SCADA system is
installed. Do the following steps:
1. Extract the supplied archive to a temporary folder (for example: C:tempAyyekaInstallation).
2. Double-click the Ayyeka.Agents.OpcUa.msi file (accessible from the downloaded zip file).
3. The Ayyeka OPC-UA setup wizard is launched. Follow the on-screen instructions. If you
wish to specify an installation folder that is different from the folder
(C:AyyekaAyyeka.Agents.OpcUa), select Change installation, and enter the destination
folder.

It is highly recommended to use the folder (C:AyyekaAyyeka.Agents.OpcUa).

4. Open the Ayyeka.Agents.OpcUa.exe.config file (located in the Agent installation folder) with
a text editor, and in the userSettings section, specify the Key (Client ID) and Client Secret
that was generated in #4 of Prerequisites.

<userSettings>
<Ayyeka.Agents.OpcUa.Properties.Settings>
<setting name="ClientId" serializeAs="String">
<value>XXXXXXXXXXXXXXXXXXXXXXXXXXXXX</value>
</setting>
<setting name="ClientSecret" serializeAs="String">
<value>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=</value>
</setting>
</Ayyeka.Agents.OpcUa.Properties.Settings>
</userSettings>

5. Open the Log4net.config file (located in the Agent installation folder) with a text editor, and
make sure that the directory paths for the following files exist. If you need to change
directory paths or values for any of the parameters, change them in this file:
AyyekaUaServer–all.log

AyyekaUaServer–err.log

<?xml version="1.0" encoding="utf-8"?>


<log4net>
<appender name="GeneralLog"
type="log4net.Appender.RollingFileAppender">
<file value="C:/temp/logs/AyyekaUaServer-all.log"/>
<threshold value="DEBUG"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<rollingStyle value="Size" />
<datePattern value="_yyyy-MM-dd_HH" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%t] %-6p %-10c
%m%n"/>
</layout>
</appender>
<appender name="ErrorLog"
type="log4net.Appender.RollingFileAppender">
<file value="C:/temp/logs/AyyekaUaServer-err.log"/>
<threshold value="WARN"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<rollingStyle value="Size" />
<datePattern value="_yyyy-MM-dd_HH" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%t] %-6p %-10c
%m%n"/>
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="GeneralLog"/>
<appender-ref ref="ErrorLog"/>
</root>
</log4net>

Integrating Ayyeka Server with SCADA System


When you use the OPC-UA communication protocol for communicating with your SCADA
system, the Ayyeka server acts as an OPC-UA server, with the SCADA system securely (via
HTTPS) pulling the data from the Ayyeka server.
Choosing the Integration Method
If your SCADA system supports OPC-UA out of the box, follow the instructions in Integrating
Ayyeka Server Directly with SCADA OPC-UA.

If your SCADA system does not support OPC-UA, you need to install and configure an OPC-
UA client (such as a Kepware server) to act as a communication mediator between the
Ayyeka server and your SCADA system. Follow the instructions in Integrating Ayyeka Server
with SCADA OPC-UA using OPC UA client.

Integrating Ayyeka Server Directly with SCADA OPC-UA


If your SCADA system supports OPC-UA out of the box, you need to:
1. Enable the Ayyeka Server’s OPC-UA Agent.
2. Exchange certificates and configure SCADA to go to the Ayyeka OPC-UA server endpoints.

Enable the Ayyeka Server’s OPC-UA Agent


The Server agent serves as the OPC-UA Server.
To enable the OPC-UA Agent, do the following steps:
1. On the machine hosting the Ayyeka server, start the Ayyeka.Agents.OpcUa service, and
switch the Startup Type to Automatic.
2. Validate that Ayyeka.Agents.OpcUa is running by verifying that no errors appear in the log
file AyyekaUaServer–all.log. The location of this log file is specified in the Log4net.config
file (which is located in the Agent installation folder).
3. Copy the "Listener on (opc-tcp and http) " URLs from the log. These are the endpoints to
which the OPC-UA clients are going to connect.

Integrating Ayyeka Server with SCADA OPC-UA by using OPC UA


client
If your SCADA system does not support OPC-UA out of the box, but you wish to integrate the
Ayyeka server with your SCADA system using OPC-UA, you need to:
1. Enable the Ayyeka Server’s OPC-UA Agent
2. Install and Configure an OPC-UA Client

Install and Configure an OPC-UA Client


This section provides instructions for installing and configuring an OPC-UA client to act as a
communication mediator between the Ayyeka server and your SCADA system. There are
various types of OPC-UA clients; this section provides instructions for the case where the OPC-
UA client is a Kepware server.
Modify the specific instructions to adapt them to the OPC-UA client of your choice.
1. Install Kepware with the OPC Connectivity Suite.

2. Add the KepwareServerEx certificate to the Ayyeka server’s trusted certificate list, as
follows:

a. Click OPC UA Configuration.


b. Go to Instance Certificates, and then click Export client driver certificate.

c. Save the certificate.


d. Copy the certificate file to the following path on the Ayyeka Server:
C:ProgramDataAyyekaCertificateStoresUA
Applicationscerts
3. Create a new Channel for the Ayyeka OPC UA Server, as follows:

a. Select Click to add a channel. The New Channel wizard is launched.


b. In the Identification screen, name the Channel name. Click Next.
c. In the New Channel - Device Driver window, select the Device driver to be
OPC UA Client. Click Next.
d. Do not change the Write Optimizations default settings. Click Next.
e. In the New Channel-UA Server window, define the Ayyeka OPC UA Server
Endpoint URL, as follows:
Endpoint URL: opc.tcp://<host-name>:32160/AkOpcUaServer
Note: Make sure the host is reachable from the remote machine.
Security Policy: Basic256
Message Mode: Sign and Encrypt

f. If prompted, click Yes to trust the Ayyeka OPC UA Server certificate. Click
Next.
g. Do not change the Timeouts defaults settings. Click Next.
h. In the New Channel - Authentication window, enter the credentials provided
by Ayyeka, of the pre-defined “User” user. Review the settings, and then
click Finish.

You can change these credentials using the Ayyeka Management UI,
but in that case you must also change them accordingly in the OPC-
UA agent config file (contact support@ayyeka.com for help).

i. Define a device for each Ayyeka Site:


i. Define the Device name to be the Ayyeka site name.

Important: Do not change the default settings in any wizard


screens until the Import screen.

ii. In the Import screen, click Select import items.


iii. Select the Data Streams that you need to import.

iv. In the Summary screen, review the configuration, and then click Finish.
v. Verify that all the data streams appear in the Tags table.
Appendix
Enhanced Security
In the OpcServer.Config.xml file, comment out the following XML properties:
<SecurityPolicies>
<!-- <ServerSecurityPolicy>
<SecurityMode>None_1</SecurityMode>
<SecurityPolicyUri>http://opcfoundation.org/UA/SecurityPolicy#None</SecurityPolicyUri>
<SecurityLevel>0</SecurityLevel>
</ServerSecurityPolicy>
-->
<!-- <Allows anonymous users -->
<!-- <ua:UserTokenPolicy>
<ua:TokenType>Anonymous_0</ua:TokenType>
</ua:UserTokenPolicy>
-->

Recommended Practices
There are two common use cases for OPC-UA HA:
Send information between two timestamps: start time and end time

Send information of the most recent time period as specified by the last number
of minutes. For example, information from the last 30 minutes, every minute.
For the second use case, ensure that the OPCA-UA cyclical update timestamp is older
than the device's last transmission, and the OPCA-UA update interval is shorter than the
device's transmission interval.
DNP3 Outstation Installation
The Ayyeka DNP3 Agent is a Microsoft Windows service that runs in the background and
facilitates the transmission of data between Ayyeka’s database server and a SCADA station that
supports the DNP3 Protocol.

Table of Contents
Introduction to DNP3
Interaction between Master Demo and Virtual Outstation
Interaction between the Wavelet and SCADA station
DNP3 and Ayyeka DNP3 Agent
Level of Compliance
Data Transmission
Prerequisites
Step 1: Install the Ayyeka DNP3 Agent service
Step 2: Define the Ayyeka DNP3 Agent keys
Step 3: (Optional) Modify communication between the Ayyeka DNP3 Agent and the Ayyeka
server
Step 4: (Optional) Modify communication between the SCADA station and the Ayyeka DNP3
Agent
Step 5: (Optional) Modify configuration files for the Master Demo
Step 6: Launch the Ayyeka.Agents.DNP3 service
Step 7: Data mapping and uploading
Overview
Stage A: Distribute the load
Stage B: Change firewall settings
Stage C: (Optional) Change the location of the Ayyeka DNP3 Agent log files
Stage D: Obtain the site information to enter in your SCADA station
Stage E: (Optional) Restrict the data to upload
Package and send log files to Support
Uninstall the Ayyeka DNP3 Agent service
Upgrading the Ayyeka DNP3 Agent service

Introduction to DNP3
Distributed Network Protocol (DNP3) is a set of communications protocols for vendors of
power grid SCADA (Supervisory Control and Data Acquisition) systems.
DNP3 is commonly used in electric and water utilities for communication between SCADA
master stations and outstations like Remote Terminal Units (RTUs).
Master station is a host computer that collects data from other devices, monitors all the
system equipment, and controls their behavior based on the collected data. The
customer's SCADA station is a master station.

Outstations are remote computers in the field that collect the sensor data and perhaps
run local analysis to pass to the master. The customer's peripheral devices are
outstations.

Interaction between Master Demo and Virtual


Outstation
The Master Demo is a console application that mimics the "master station" or SCADA station.
The application has a very basic configuration that can connect to the DNP3 Agent. It can print
information and its source (site name, site ID, outstation ID, stream name, stream ID, value, and
timestamp, analog tag).
The Master Demo is primarily used after the Ayyeka DNP3 Agent is installed and configured. It
is used to troubleshoot integration between the DNP3 Agent and the Master station. The Master
Demo receives unsolicited responses, which are Wavelet sample data. Then, it prints the data,
along with site and stream information, on the console screen. The configuration of the Master
Demo is described in Steps 4 and 5.
The Virtual Outstation resembles an outstation. The virtual station sends virtual samples to the
master station to check communication for troubleshooting purposes.
The Virtual Outstation monitors the status of the Ayyeka DNP3 Agent. It generates sequentially
increasing numbers about every second and sends them to the SCADA station. You can check
the site on SCADA that the numbers are increasing, which indicates that there is communication
between the DNP3 Agent and the SCADA station. The Virtual Outstation is configured in Step 4.

Interaction between the Wavelet and SCADA station


Ayyeka’s Wavelet™ is an end-to-end remote monitoring system that delivers end-to-end data to
decision makers.
Anywhere from one to several sensors of various types are integrated with each Wavelet device,
which is installed onto existing customer infrastructure. The Wavelet device samples the
connected sensors at a configurable sampling frequency. The data obtained from the sensors
is stored on the Wavelet device, and transmitted via the cellular network to the Ayyeka Cloud
server at a configurable transmission frequency.
Each site is represented by a DNP3 outstation. The Ayyeka DNP3 Agent acts as a bridge to pass
the data from the Ayyeka Cloud server, as represented by multiple DNP3 outstations, to the
master station, which is the customer’s SCADA station.

Figure 1: Integration of Wavelet, Ayyeka Cloud Server, Ayyeka DNP3 Agent, and the SCADA
station

DNP3 and Ayyeka DNP3 Agent


Ayyeka provides an Ayyeka DNP3 Agent which uploads the data collected by Wavelet sites
(outstations) to the customer’s SCADA station (master station) by using the DNP3 protocol.
The Wavelet collects data from various sensors. This data is maintained in Ayyeka’s or in the
on-premises database, and can be accessed by the Ayyeka DNP3 Agent. The Ayyeka DNP3
Agent service "wraps" the site's data stored in Ayyeka’s database as DNP3 outstations, and
therefore can be accessed via DNP3 protocol by any DNP3 master. The data from the Ayyeka
DNP3 Agent is sent as unsolicited responses to the DNP3 master.

Level of Compliance
In the DNP3 protocol, a level 1 device is typically a basic meter transmitting very limited data. A
level 2 device is typically a small- to medium-sized controller or RTU. A level 3 device is typically
a larger controller or full-featured RTU. Level 4 provides additional functions added to the DNP3
protocol that offer features such as floating point variations, LAN time synchronization, and
other higher end functions.
The current Ayyeka DNP3 Agent version supports DNP3 up to and including level 2. The DNP3
Agent supports two formats of data presentation:
Event analog values are assigned as group 32 with a 32-bit floating point value with flag
and event time (group 32 with variation 7)

Static analog values are assigned as group 30 with a 32-bit floating point value with flag
(group 30 with variation 5)
Data Transmission
DNP3 uses TCP communication protocol. The DNP3 master initiates one or more TCP
connections, called TCP channels, with the DNP3 outstations, and keeps the connection open.
The Ayyeka DNP3 Agent uses the connections to transmit data in analog format via "Unsolicited
Responses", meaning each Wavelet site, represented as a DNP3 outstation, spontaneously
transmits a response without having received a specific request for data from the master.

Prerequisites
One of the following operating systems must be installed:
Microsoft Windows Server 2008 or above, 64-bit

Microsoft Windows 7 and above, 64-bit

The following software package must be installed:


Visual C++ Redistributable Package for Visual Studio 2015-2019

The Microsoft Windows firewall must have ports 80 and 443 available for routing TCP
sessions.

The .ZIP file containing the Ayyeka DNP3 Agent .MSI package installer file must be
downloaded to the local computer.

The default secure protocol TLS v1.2 must be enabled for REST API clients and Microsoft
Windows machines that host any of the CSV, DNP3, and OPC-UA agents. To check if TLS 1.2
is enabled, read this article.

Step 1: Install the Ayyeka DNP3 Agent service


Install the Ayyeka DNP3 Agent Windows service on a computer with one of the supported
Microsoft Windows operating systems, in the same network in which the SCADA station is
installed, by doing the following steps:
1. Open the .ZIP file, and double-click the .MSI file to launch the Ayyeka.Agents.DNP3 Setup
wizard.
2. Follow the on-screen instructions.

Tip: If you want to specify a different installation folder than the default
C:AyyekaAyyeka.Agents.DNP3, select Custom installation in the Choose Setup Type window,
and then enter the destination folder.
After the installation is complete, the following changes are made in your environment:
The Ayyeka.Agents.DNP3 service is added to the list of Windows services.

In non-custom installations, an Ayyeka directory is added to the C drive, with an


Ayyeka.Agents.DNP3 subfolder. In custom installations, the installation folder is the one
specified in the setup wizard.

After the service is started, a directory for logs is created in C:Templogs, containing the
following log files:
Ayyeka.agents.dnp3-all.log

Ayyeka.agents.dnp3-err.log

Ayyeka.agents.dnp3-samples.log

Do not delete the .MSI package installer file. It will be needed if you need to uninstall
the Agent.

Step 2: Define the Ayyeka DNP3 Agent Keys


1. Get the API Client Key and Secret by doing the following steps in the StreamView user
interface:

a. In the left pane, click API, and then click the API Clients tab.
b. In the API Clients window, click +Generate API Key.
c. In the Generate API Key window, select REST, type in a comment, and then click
Generate.

Important: Record the API Client Key and the API Client Secret in a secure place
because there is no way to access them in the future. You need them in step 4
below.

2. Open a command prompt window, and then navigate to the installation directory (the
default installation directory is C:AyyekaAyyeka.Agents.DNP3Cli).

3. At the command prompt, type in akdnp3cli.exe to see the main CLI options.

4. The first time you set up the DNP3 Agent, you must configure it.
a. At the command prompt, type in akdnp3cli.exe config.
b. At the prompt, type in the API Client Key and Secret that you got in step 1.
Step 3: (Optional) Modify communication between the
Ayyeka DNP3 Agent and the Ayyeka server
In the installation folder (by default, C:AyyekaAyyeka.Agents.Dnp3), open
AyyekaAPIClient.dll.config with a text editor, and optionally edit the <appSettings> section.
<?xml version="1.0" encoding="utf-8"?>

<configuration>

<appSettings>

<add key="client_id" value=""/>

<add key="client_secret" value=""/>

<add key="preserved_data" value=""/>

<add key="preserved_data_backup_dir" value=""/>

<add key="preserved_data_backup_interval_hours" value="1"/>

<add key="between_upload_suspend_minutes" value="5"/>

<add key="upload_from_hours_on_init" value="24"/>

<add key="timeout" value="120000"/>

<add key="ClientSettingsProvider.ServiceUri" value=""/>

<add key="authentication_url" value="https://restapi.ayyeka.com/auth/token"/>

<add key="api_url" value="https://restapi.ayyeka.com/v2.0/"/>

</appSettings>

1. If you did not enter the Client ID and Client Secret values (that were generated in the
previous step) by using the CLI, enter them now in the following properties in the
configuration file. For example:

<add key="client_id" value="52A2105BF13A47A916024BA66CED"/>


<add key="client_secret"
value="UMus/Fv4S9VR+K2HWJYsHrVUgC5dys6hdazE="/>
2. You can change the preserved_data value. This value specifies the location (such as
C:TempAyyeka) of the files listing the Ayyeka DNP3 Agent working state. One such file, for
example, lists the ID of the last sample retrieved from each data stream. If the value is
empty (default), the location is the Ayyeka.Agents.DNP3 subfolder.

Ensure that the directory listed in the preserved_data field has write permissions.
3. You can change the preserved_data_backup_dir value. This value specifies the location of
the directory hosting backups of the Ayyeka DNP3 Agent working state.
4. You can change the preserved_data_backup_interval_hours value. This value specifies how
often to create a backup of the Ayyeka DNP3 Agent working state.
5. You can change the between_upload_suspend_minutes value. This value specifies the
amount of time, in minutes, between connection attempts when the Ayyeka DNP3 Agent is
trying to connect to the Ayyeka server. The minimum value is 1 minute and the default value
is 5 minutes.
6. You can change the upload_from_hours_on_init value. This value specifies the number of
hours of data to be transmitted after the first initialization. If the value = 0, all data is sent. If
the value is 12, data from the last 12 hours since the first initialization is sent. The default is
24 hours.
7. You can change the timeout value. This value specifies the time, in milliseconds, how long
the Ayyeka DNP3 Agent waits for a reply to a request sent to the Ayyeka Cloud server. If no
reply arrives within the timeout interval, the Ayyeka DNP3 Agent waits the number of
minutes that are defined in between_upload_suspend_minutes before attempting to re-
establish a TCP session with the Ayyeka Cloud server. In case of network connection
problems, you might need to set the timeout to a high number. The default value is 120,000
milliseconds.
8. You can change the authentication_url and api_url values. The values listed in the xml file
are the default values for the Ayyeka REST API. However, if your application is installed on
an on-premises server, change the values according to the following:
For the authentication_url, use https://your_URL:85/auth/token
For the api_url, if the SW version is 3.35.0 or older, use
https://your_URL:85/v1.0. Otherwise, for newer SW versions,
use https://your_URL:85/v2.0.

9. Save the changes and close the file.

Step 4: (Optional) Modify communication between the


SCADA station and the Ayyeka DNP3 Agent
In the installation folder (by default: C:AyyekaAyyeka.Agents.DNP3), open
Ayyeka.Agents.DNP3.exe.config with a text editor, and then edit the <userSettings> section to
change the default values.

In the configuration file, if a parameter value is True or False, the first letter must be
capitalized. True and False are valid values, whereas true, TRUE, false and FALSE are
not valid.

<userSettings>
<Ayyeka.Agents.Dnp3.Settings>
<setting name="IpAddress" serializeAs="String">
<value>127.0.0.1</value>
</setting>
<setting name="DefaultChannelPort" serializeAs="String">
<value>20000</value>
</setting>
<setting name="MasterDnp3Address" serializeAs="String">
<value>1</value>
</setting>
<setting name="RetrieveSamplesSleepMinutes" serializeAs="String">
<value>5</value>
</setting>
<setting name="SendUnsolicitedEventsOnMasterReconnect"
serializeAs="String">
<value>True</value>
</setting>
<setting name="UploadFromMinutesAgoOnReconnect"
serializeAs="String">
<value>0</value>
</setting>
<setting name="NumberOfSamplesToUploadInARoundPerSite"
serializeAs="String">
<value>10</value>
</setting>
<setting name="WaitTimeBetweenSendSamplesMilliseconds"
serializeAs="String">
<value>50</value>
</setting>
<setting name="WaitTimeBetweenGetSamplesMilliseconds"
serializeAs="String">
<value>250</value>
</setting>
<setting name="SamplesQueueSize" serializeAs="String">
<value>1000</value>
</setting>
<setting name="LocalOutstationAddressing" serializeAs="String">
<value>True</value>
</setting>
<setting name="TcpRetryMilliseconds" serializeAs="String">
<value>5000</value>
</setting>
<setting name="AllowVirtualOutstation" serializeAs="String">
<value>False</value>
</setting>
<setting name="VirtualChannelPort" serializeAs="String">
<value>10000</value>
</setting>
<setting name="VirtualOutstationId" serializeAs="String">
<value>0</value>
</setting>
<setting name="InvokeMethodRetrySeconds" serializeAs="String">
<value>20</value>
</setting>
<setting name="ChannelMappingPath" serializeAs="String">
<value>Dnp3ChannelMapping.xml</value>
</setting>
<setting name="SendUsageDataConsentAccepted" serializeAs="String">
<value>False</value>
</setting>
<setting name="Dnp3LogLevel" serializeAs="String">
<value>INFO</value>
</setting>
<setting name="Dnp3ProtocolLogLevel" serializeAs="String">
<value>ERROR</value>
</setting>
<setting name="Dnp3TCPLogLevel" serializeAs="String">
<value>ERROR</value>
</setting>
</Ayyeka.Agents.Dnp3.Settings>
</userSettings>
1. Set the IpAddress value to the IP address of the network card (usually the IP address of the
DNP3 Agent Windows computer) to which the Ayyeka DNP3 Agent listens, and to which the
DNP3 Master will connect. If the Ayyeka DNP3 Agent is installed on the same computer as
the DNP3 Master, the IP address should be 127.0.0.1.
2. Set the DefaultChannelPort value to the TCP port that the Agent gets requests from and
sends data to the SCADA master. The default is port 20000.
3. Set the MasterDnp3Address value to the address of the SCADA master. If you installed
Master Demo, set value=0. The default value is 1 (the typical address of the SCADA
master).
4. Set the RetrieveSamplesSleepMinutes value. This value specifies the amount of time, in
minutes, between each data upload from the Ayyeka Cloud server. The minimum value is 1
minute and the default value is 5 minutes.
5. Set the SendUnsolicitedEventsOnMasterReconnect value to True or False. If value=True, the
DNP3 Agent sends the last sample from every stream to the SCADA master when the
SCADA master reconnects.
6. Set the UploadFromMinutesAgoOnReconnect. If master reconnects to the Agent after it
was off for a while, you can configure how to handle missing samples. Assign the value '0'
to pull all samples that were missed while the master was down. Assign a value of any
positive number to pull samples for the number of minutes that the master was down. For
example, if you set the value to 60, then all missed samples during the latest 60 minutes
that the master was down are pulled. If the master was down for less than 60 minutes, all
samples are pulled.
7. Set the NumberOfSamplesToUploadInARoundPerSite. The Agent will upload the number of
samples determined by a trade-off between the number of Sites and the number of streams
in each Site.
The higher the number, the longer the Agent stays on each Site because more streams
of each Site are uploaded. The other Sites wait, but more streams of each Site are
uploaded in each Round.
The lower the number, the Agent stays on each Site less because fewer streams of each
Site are uploaded. All Sites are covered quickly, but fewer streams of each Site are
uploaded in each Round.
Hey Akshit
Array

8. Set the WaitTimeBetweenSendSamplesMilliseconds. This value is the number of


milliseconds between each sample upload from the Agent to the master. The default is
50ms.
9. Set the WaitTimeBetweenGetSamplesMilliseconds. This value is the number
of milliseconds between each download of the Agent from Ayyeka REST API.
10. Set SamplesQueueSize. The maximum number of samples permitted in a queue. The Agent
might have more samples in the queue than the maximum number if the queue received
more from the API. In this case, the queue is full and sampling stops until the queue has
less than SampleQueueSize.
11. Set LocalOutstationAddressing to True to assign a number, beginning with 1, for each
outstation. A value of False assigns the site ID of the device to the outstation. The default is
True.

If you are upgrading and have existing DNP3 mappings, see the Upgrading the Ayyeka
DNP3 Agent service section for details.
12. Set the TcpRetryMilliseconds value to the number of milliseconds between TCP connection
attempts. The default is 5000.
13. Set the AllowVirtualOutstation value to False to disable the Virtual Outstation feature.
Change the value from True when you need to use a Virtual Outstation for checking the
communication between the outstation and the master.
14. Set the VirtualChannelPort value to the TCP port that the Agents requests from and sends
data to the virtual outstation. Default value = 10000.
15. Set the VirtualOutstationId value = 0 to avoid a collision with other outstations.
16. Set the InvokeMethodRetrySeconds value to the amount of time, in seconds, to retry
running the configuration file. For example, if value=20, then if you changed the
configuration file and it failed to load, the configuration will be reloaded every 20 seconds.
17. Set the ChannelMappingPath value. This value specifies the name and path of the
Dnp3ChannelMapping.xml file. If empty (default), the location is the Ayyeka.Agents.DNP3
subfolder.
18. Set the SendUsageDataConsentAccepted value to True if you agree to send data usage
information to Support for software improvement and debugging purposes. Change the
value=False if you do not want any information sent. This value is set during the installation
procedure.
19. Set the DNP3LogLevel value. This value specifies the minimum severity level to display in
the logs. The available levels are DEBUG, INFO, WARN, ERROR, and FATAL. This log is the
main log file for the Agent. The default is INFO.
20. Set Dnp3ProtocolLogLevel value. This value specifies the minimum severity level to display
in the logs. The available levels are DEBUG, INFO, WARN, ERROR, and FATAL. This log
provides low-level information about the DNP3 communication. The default is ERROR.
21. Set Dnp3TCPLogLevel value. This value specifies the minimum severity level to display in
the logs. The available levels are DEBUG, INFO, WARN, ERROR, and FATAL. This log
provides low-level information about the TCP communication. The default is ERROR.
22. Save the changes, and then close the file.

Step 5: (Optional) Modify configuration files for the


Master-demo
You can modify configuration files for the Master Demo
(Ayyeka.Agents.Dnp3Ayyeka.Master.Dnp3AyyekaAPIClient.dll.config) and the DNP3 Agent
(Ayyeka.Agents.Dnp3AyyekaAPIClient.dll.config).

In Ayyeka.Agents.Dnp3Ayyeka.Master.Dnp3AyyekaAPIClient.dll.config, in the
<appSettings> section, the key “preserved_data” must have the same value as in the
<appSettings> section of Ayyeka.Agents.Dnp3AyyekaAPIClient.dll.config. The value of
"preserved_data" is the location of the data that is ready for the Master Demo to
consume. Consequently, if the values are not the same, data will not reach the Master
Demo.

In Ayyeka.Agents.Dnp3Ayyeka.Master.Dnp3DNP3CLRMasterDemo.exe.config, in the
<userSettings> section, you can modify some parameters in the Master-demo:
The setting OptionsToShowOnScreenLog can be changed to show different values on the
Master-Demo. Separate the values by a comma (,). The values SiteId, SiteName, StreamId,
StreamName, AnalogTagIndex, SampleValue, SampleTime, and OutstationId can be
changed. The following table describes each setting.

The setting IsConvertToUTCSampleTime can be set to True if you want the samples’ time to
be converted to UTC on the Master-demo.

The setting MasterAddress changes the Master-demo DNP3 address. The default is 1.

Field Description

SiteId The ID of the site in the Ayyeka server.

SiteName The name of the site in the Ayyeka server.

StreamId The ID of the stream in the Ayyeka server.


Field Description

StreamName The name of the stream in the Ayyeka server.

AnalogTagIndex This is the DNP3 analog index ID for the particular site and stream.

SampleValue The value of the sample.

SampleTime The sample date of the sample most recently sent from this stream by
the Ayyeka DNP3 Agent to the SCADA station.

OutstationId The automatically generated ID number of the Outstation in the SCADA


station. The Outstation represents each Ayyeka Wavelet.

Table 1. SCADA parameters

Step 6: Launch the Ayyeka.Agents.DNP3 service


1. Depending on the Windows version, navigate to Computer Management > Services and
Applications > Services (it is also possible to launch the Windows "services.msc"
application from a Windows command line or launch bar). Right click the
Ayyeka.Agents.DNP3 service, and then select Start.

Step 7: Data mapping and uploading


Overview
Typically, Wavelet devices in the field generate one or more data streams such as Level, GSM
signal, and Battery Status. Each Wavelet site is mapped to a DNP3 outstation. Each outstation
is the data source for a number of DNP3 index IDs, where each index ID represents a specific
Wavelet stream.
Whenever the Ayyeka DNP3 Agent encounters a new stream when it connects to the Ayyeka
Cloud server, it generates a new corresponding DNP3 index ID.
Data from sites is uploaded to the SCADA station via TCP channels. By default, the Ayyeka
DNP3 Agent groups all the sites under the single “Default” channel. Furthermore, any additional
new site is automatically allocated to the “Default” TCP channel.
When the Ayyeka.Agents.DNP3 service is started, it creates a Dnp3ChannelMapping XML file
that lists all the channels, their sites, their outstation IDs, if active or not, and their names. The
Site ID is the same Site ID that is seen in StreamView. The Outstation ID is automatically
generated by the Agent. The default state for Active is true unless you change it to false ("false"
means that the site will not be included in the data retrieval). Name is automatically generated
from the Site Name in StreamView.
This file is updated each time the Ayyeka DNP3 Agent retrieves data from the Ayyeka Cloud
server. In the example Dnp3ChannelMapping file shown below, all the sites are allocated to the
Default TCP channel with port no. 20000.
<?xml version="1.0"?>
<ChannelMapping xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Channels>
<Dnp3Channel Name="Default" Port="20000">
<Sites>
<Site Id="2901" OutstationId="1" Active="true"
Name="Wastewater: Tank Level" />
<Site Id="3102" OutstationId="2" Active="true"
Name="Wastewater: Quality" />
<Site Id="3103" OutstationId="3" Active="true" Name="Natural
Gas: Regulator Station" />
<Site Id="3304" OutstationId="4" Active="true" Name="Water:
Flow" />
<Site Id="3305" OutstationId="5" Active="true"
Name="Wastewater: CSO, Level and Flow" />
<Site Id="3306" OutstationId="6" Active="true" Name="Water:
PRV" />
</Sites>
</Dnp3Channel>
</Channels>
</ChannelMapping>

Stage A: Distribute the load


For load balancing purposes, it is recommended to allocate no more than 30 sites to a single
TCP channel. If you are uploading data from over 30 sites, you should create additional TCP
channels, as follows:
1. Stop the Ayyeka.Agents.DNP3 service.
2. In the installation folder (by default, C:AyyekaAyyeka.Agents.DNP3), open
Dnp3ChannelMapping.xml with a text editor, and then modify it as follows:
1. Define additional TCP channels, each with a unique name and port number.
2. Allocate the sites to the channels as you see fit. You might, for example, group sites in
channels based on the type of data they are monitoring. In the example shown below,
all the Pressure monitoring sites were grouped under the newly created
Pressure_channel channel.

<?xml version="1.0"?>
<ChannelMapping
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Channels>
<Dnp3Channel Name="Default" Port="20000">
<Sites>
<Site Id="29" OutstationId="1" Active="true"
Name="Stream Demo" />
<Site Id="109" OutstationId="3" Active="true"
Name="Tap Water Quality" />
<Site Id="110" OutstationId="4" Active="true"
Name="Turbidity" />
<Site Id="112" OutstationId="6" Active="true"
Name="Wastewater quality" />
<Site Id="194" OutstationId="8" Active="true"
Name="Demo Site" />
</Sites>
</Dnp3Channel>
<Dnp3Channel Name="Pressure_channel" Port="20001">
<Sites>
<Site Id="30" OutstationId="2" Active="true"
Name="Pressure Demo" />
<Site Id="111" OutstationId="5" Active="true"
Name="Pressure Monitoring" />
<Site Id="113" OutstationId="7" Active="true"
Name="Pressure Monitoring 2" />
</Sites>
</Dnp3Channel>
</Channels>
</ChannelMapping>

3. Restart the Ayyeka.Agents.DNP3 service.


Stage B: Change firewall settings
If the Ayyeka DNP3 Agent and your SCADA station are hosted on two separate machines, make
the following firewall setting changes. In the machine hosting the SCADA, open the ports
defined in Dnp3ChannelMapping.xml for outgoing TCP communication in the user's internal
network. In the example in the figure above, those ports are port 20000 and port 20001.

Stage C: (Optional) Change the location of the Ayyeka DNP3 Agent


log files
In the installation folder (by default, C:AyyekaAyyeka.Agents.DNP3), open the Log4net.config
file with a text editor, and then make the following changes:
1. Specify the folder where the outstation's logs will be located. By default, the folder for all
logs is C:TempAyyekaLogs. For example:

<file value="C:TempAyyekaLogsAyyeka.agents.dnp3-all.log"
/>

<file value=" C:TempAyyekaLogsAyyeka.agents.dnp3-err.log"


/>

<file value=" C:TempAyyekaLogsAyyeka.agents.dnp3-


samples.log" />
2. Ensure that the folder(s) you specify have write permissions.
3. Save the changes, and then close the file.

Stage D: Obtain the site information to enter in your SCADA station


To be able to upload the data from the streams into your SCADA station, you need to learn
certain parameters’ values for entering into your SCADA station. To do so:
1. Open a command prompt window, and then navigate to C:AyyekaAyyeka.Agents.DNP3cli.
2. At the command prompt, type in akdnp3cli.exe info.

The command output provides the following information for all the sites in the
database. See Table 1 for information about the SCADA parameters.

The following screen capture shows sample output.


3. For each site and stream whose data you want to upload to your SCADA station, note the
site’s Site ID and the Outstation ID.
4. For your convenience, you can use the various options of the akdnp3cli.exe info CLI
command to:

a. Show information for a specific site only.


b. Show information for a specific stream only.
c. Output information to a CSV file.
To view the syntax of these options, type at the command prompt: akdnp3cli.exe
info --help (note the two hyphens '-').
The following output is displayed:

Examples:
To display information for site 3304 only, run akdnp3cli.exe info –s 3304.

The output will look similar to the following:


To display information for stream 41 only, run akdnp3cli.exe info –t 41.

The output will look similar to the following:

To export information for site 3304 to the info_out a CSV file in C:temp,
run akdnp3cli.exe info -s 3304 –o c:tempinfo_out.csv.

The generated CSV file will look similar to the following output:
OutstationId,SiteId,SiteName,StreamId,StreamName,ExternalI
d,LastSampleId,LastSampleDate
4,3304,Water: Flow,21,Battery Status,0,0,1/1/0001 12:00:00
AM
4,3304,Water: Flow,22,External Power,1,0,1/1/0001 12:00:00
AM
4,3304,Water: Flow,23,Internal Humidity,2,0,1/1/0001
12:00:00 AM
4,3304,Water: Flow,24,GSM,3,0,1/1/0001 12:00:00 AM
4,3304,Water: Flow,25,Flow (GPM),4,0,1/1/0001 12:00:00 AM
4,3304,Water: Flow,44,Flow (GPM),5,0,1/1/0001 12:00:00 AM

Stage E: (Optional) Restrict the data to upload


You might need to instruct the Ayyeka DNP3 Agent to upload only some of the sampling data
that resides in the Ayyeka server to your SCADA station. Partial uploads can be useful, for
example, if you are only interested in a specific stream’s data from a certain date onward.
The option of restricting data upload can be utilized also after the Ayyeka DNP3 Agent is up and
running. For example, if certain data is erroneously deleted from the SCADA station and you
wish to back-fill, you can use the restrict option to instruct the Ayyeka DNP3 Agent to re-upload
the particular data you are missing.
The restrict option is implemented by running the akdnp3cli.exe send-from CLI command. Using
the command, you can specify that for a particular stream, the Ayyeka DNP3 Agent should only
collect sample data from a specific sample ID onward, or from a specific date onward.
To restrict data upload:
1. Open a command prompt window, and then navigate to C:AyyekaAyyeka.Agents.DNP3cli.
2. At the command prompt, type in akdnp3cli.exe send-from.

For example:
To upload from stream 142, samples starting from sample ID 106954, run:

akdnp3cli.exe send-from –t 142 –i 106954.

To upload from stream 142, all its samples starting from the very first one, run:

akdnp3cli.exe send-from –t 142 –i 0

To upload from stream 142, samples starting from January 27, 2017, run:

akdnp3cli.exe send-from –t 142 –d 2017-01-27.

The system contacts the API to learn which sample ID corresponds to the given date.

Package and send log files to Support


If you need to troubleshoot the DNP3 master-outstation communication or setup, you might
also need to send the DNP3 Agent configuration, XML, and log files to support@ayyeka.com for
troubleshooting.
1. In a command window, go to the installation directory, and then type the command
akdnp3cli.exe pack-logs.
2. Type in the file path where the packed log files will be stored.
3. (Optional) Type in your email address and password. This address will be the email Sender.
4. (Optional) If you want to send the zip file to support@ayyeka.com, press Enter. Otherwise,
type in an email address to send the logs to.

Uninstall the Ayyeka DNP3 Agent service


To uninstall the Ayyeka.Agents.DNP3 Windows service, do either of the following actions:
In the Ayyeka.Agents.DNP3 installation folder (by default,
C:AyyekaAyyeka.Agents.DNP3), double-click the Ayyeka.Agents.DNP3 installation file. In
the wizard that appears, select Remove.
In the computer’s control panel, select Add/Remove programs, right-click the program
Ayyeka.Agents.DNP3, and then select to Uninstall.

After the uninstall is complete, the Ayyeka.Agents.DNP3 service is removed.

Upgrading the DNP3 Agent service


1. It is recommended to back up the following files in the installation folder (by default,
C:AyyekaAyyeka.Agents.DNP3):
Dnp3ChannelMapping.xml

AyyekaPreservedData.xml

Ayyeka.Agents.DNP3.exe.config

AyyekaAPIClient.dll.config

Log4net.config

2. Use the DNP3 Agent installer of the currently installed version to uninstall the Agent.
3. Use the new DNP3 Agent installer to install the new version of the Agent.
4. Copy the backed up Dnp3ChannelMapping.xml and AyyekaPreservedData.xml files to the
installation directory.
5. Open the new configuration files and update their content with content from the original
configuration files. Check what parameters and values you want to include.
If your current DNP3 Agent version is 4.2.7 or older, and you are upgrading to Agent version
4.2.8 or newer, note the following:
When installing the DNP3 Agent, the Agent creates the Ayyeka.Agents.DNP3.exe.config file
and sets the LocalOutstationAddressing property to True. This will generate new
Outstation IDs for each Site ID. In the DNP3 Agent versions older than 4.2.7, the Outstation ID
is the same as the Site ID. If the property is left at the default value of True, the DNP3 Agent
will generate new Outstation IDs for each Site that is different for each Site ID. This would
require a reconfiguration of your SCADA system to identify the new Outstation IDs and pull in
their data.

To avoid reconfiguring your SCADA system, set the


property LocalOutstationAddressing to False. This will continue to use each Site ID
as the Outstation ID. The risk of this step is that when a new Site ID is greater than 65535,
the SCADA system will not recognize the Site nor retrieve its data. In this case, it is necessary
to set the property to True and reconfigure the SCADA to the newly-generated Outstation IDs.
CSV Generator Agent - Installation and User Guide

Introduction
This document guides you through the process of installing a CSV Generator Agent for use with
third-party software and SCADA systems.
Data that is collected from various sensors through data acquisition devices (Industrial IoT
gateways/RTUs) is maintained in a cloud database. This data can be accessed via the CSV
Generator Agent. The data is written, at a configurable frequency, to a file in a CSV format in the
selected directory. The data appears in the CSV file in the order in which the data arrived at the
cloud database.

Table of Contents
System Requirements
Installing and running the CSV agent
Step 1: Extract the installation package
Step 2: Define a ZONEINFO System Variable
Step 3: Customize the csvagent.json configuration file
Configuration file description
Configuration file example
Adding values of custom attributes to the CSV file
Creating a filtered CSV file
Step 4: Install and run the CSV agent
Stopping the CSV agent
Restarting the CSV agent
Uninstalling the CSV agent
Using the CSV Agent CLI
Running CSV Agent CLI commands
site
stream
getlast
setlast
export
import
Appendix A – Agent Heartbeat Functionality
Default csvmonitor configuration file
csvmonitor configuration file description
Setting the frequency of agent-monitoring file creation
Example agent-monitoring output file

System Requirements
Use either operating system:
Microsoft Windows Server 2012 or Windows 10

Linux (not recommended) - can run CSVCLI only, with a Windows emulator or runtime
environment such as "Wine"

CSV Agent installation compressed file (CSVAgent-v<version number>.zip)

The default secure protocol TLS v1.2 must be enabled for REST API clients and Microsoft
Windows machines that host any of the CSV, DNP3, and OPC-UA agents. To check if TLS 1.2 is
enabled, read this article.

Installing and running the CSV agent


The CSV Agent is available from the API screen of the StreamView UI (API > Agents > CSV
Agent Download).
When you click the CSV Agent Download button, a new API Client Key and API Client Secret are
automatically generated, which can be verified on the API > API Clients screen. These
credentials are appended to the csvagent.json configuration file, which is then bundled together
with the other CSV Agent files as the installation package, into a zip file, which is downloaded to
your computer.
Step 1: Extract the installation package
Extract the downloaded installation package into a desired folder. The installation package
contains the following files:
csvcli.exe

csvagent.exe

csvagent.json

csvmonitor.json

zoneinfo.zip

Step 2: Define a ZONEINFO System Variable


If the operating system is Microsoft Windows, define a ZONEINFO Windows system variable. Do
the following steps:
1. Navigate to Control Panel > System > System Protection > Advanced > Environment
Variables. The Environment Variables window opens.
2. In the System variables pane, click New. The New System Variable window opens.

1. In the New System Variable window:


1. In the Variable Name field, enter ZONEINFO.
2. In the Variable Value field, enter the full path (and file name) to the zoneinfo.zip file
supplied in the installation package.
3. Click OK.

Step 3: Customize the csvagent.json configuration file


The configuration file contains key information about how the content in the CSV file will be
handled:
The initial section contains information about API access and authentication.

The Agent section contains information about the CSV Agent's behavior: from how long
ago to pull data, polling, frequency, and metadata refresh rate.

The CSV Format section contains information about the header, the content (what
sampling data is included and in what order), and the format for the datetime stamp.
Data can include sampling data and metadata (including custom attributes) from the
Site level or from the stream level.

The Output section contains information about the directory path, CSV file name, the
datetime format for the file name, and whether to use local or UTC time.

Customize the configuration file by doing the following steps:


1. Open the csvagent.json configuration file in a text editor.
2. Change the parameter values as described in Table 1 below.

If your StreamView URL includes the string ".island.ayyeka.com", or if you use


Ayyeka On Premises rather than Ayyeka on Cloud, you must also enter your values
for APIEndpoint and AuthEndpoint parameters. Otherwise, you can accept the
default values.

Note:
Changes to the csvagent.json configuration file go into effect only after starting or
restarting the CSVAgent service. If you want to change the configuration file after
the CSV agent service is already running, first stop the service, edit the configuration
file, and then restart the service.
Configuration file description
Table 1: CSV Agent configuration file parameters
Parameter Description Default value

Initial section

APIEndpoint The URL of a If your StreamView URL includes the string ".island.ayyeka.com", or if you use
server or service Ayyeka On Premises rather than Ayyeka on Cloud, use:
from which APIs "https://your_URL:85/v2.0".
can access the
resources they For example, "https://city_sewage.island.ayyeka.com:85/v2.0"
need to carry out All other users, use the default value: "https://restapi.ayyeka.com/v2.0"
their function.

The place that


APIs send
requests to and
where the
resource lives.

AuthEndpoint The URL from If your StreamView URL includes the string ".island.ayyeka.com", or if you use
which the Ayyeka On Premises rather than Ayyeka on Cloud, use:
Authorization API "https://your_URL:85/auth/token".
can manage user
identity so that For example, "https://city_sewage.island.ayyeka.com:85/auth/token"
users can log in, All other users, use the default value: "https://restapi.ayyeka.com/auth/token"
sign up, log out,
access APIs,
and so forth.

APIClientKey API Key is


(required) automatically put
into the
APIClientKey field
of the
configuration file
when you clicked
the CSV Agent
Download button.

APIClientSecret API Secret is


(required) automatically put
into the
APIClientSecret
field of the
configuration file
when clicked
the CSV Agent
Download button.

Agent section
InitialBackfilling Specifies to send 7
data from this
SamplesDays many days ago.
This parameter
applies only to
the first time you
run the CSV
generator agent.

If you want to
back fill at any
later point, use
the CLI command
setlast.

SamplesPolling Specifies how 1


often, in minutes,
IntervalMinutes to pull polling
data that accrued
since the last
time data was
pulled, and then
send in a CSV
file.

For example, if
the value is 3,
then every
3 minutes the
agent pulls from
the Ayyeka
database all the
polling data that
accrued in the
past 3 minutes.
The agent sends
it in a CSV file.

MetadataPolling Specifies how 720


often, in minutes,
IntervalMinutes to refresh the list
of metadata
fields from which
data is pulled.

The metadata
fields are all
fields except for
sample.datetime,
sample.value,
and sample.id

For example, if a
new device was
installed
(meaning, a new
SiteID now exists
in the database),
this parameter
defines when the
CSV file will start
including sample
data from the
new device.
CSVFormat section

Header Specifies from 0 SiteID,StreamID,


to many lines of
text that SiteName,StreamName,
appear at the top
of each CSV file. TimeStamp,Value,ID
Typically there is
a single row with
column headings,
separated by
commas, for
each data item in
the data rows
(referred to as
"Line" below).

Line Each row, listing 28862,{{stream.id}},,{{stream.displayname}},{{sample.datetime}},{{sample.value}},


samples’
attributes {{sample.id}}
separated by
commas,
corresponds to a
single polled
sample. It defines
which values that
are associated
with the sample
should appear in
the CSV file.

For example: the


sample’s
attribute 28862 is
replaced in the
CSV file with the
actual ID of the
site associated
with the sample.

Note that you can


also add values
of custom
attributes, as
described in
Adding values of
custom attributes
to the CSV file.

DateTime Specifies the MM/DD/YY hh:mm:ss


format of the
DateTime in
DateTime fields
appearing in a
line.

Output section

Dir Specifies the c:tempcsv


directory in which
the CSV files
should be placed.
FileName Specifies the Ayyeka_import_
naming
convention of the {{datetime}}.csv
CSV files.

DateTime Specifies the "MM-DD-YY__hh-mm-ss"


format of the
DateTime in the
CSV file name.

Note that the


DateTime format
should match the
frequency with
which the CSV
files are created.
That is, if a CSV
file is created
every minute,
then the
DataTime in the
CSV file name
should include
minutes (if not
seconds).

TimeZone Specifies the Local


international time
zone to which all
timestamps are
converted

The value for this


property can
either be "Local"
(which indicates
the time zone of
the computer that
is hosting the
CSV Agent), or
any valid
international time
zone that is
referenced in the
zoneinfo.zip file
(configured in
Step 2 above),
such as
"Asia/Jerusalem".

Filters section (optional)

Refer to Creating a filtered CSV file.

Configuration file example


The following JSON code is an example of a csvagent configuration file for an
Ayyeka on Cloud account.
{
"APIEndpoint": "https://restapi.ayyeka.com/v2.0",
"AuthEndpoint": "https://restapi.ayyeka.com/auth/token",
"APIClientKey": "",
"APIClientSecret": "",
"Agent": {
"InitialBackfillingSamplesDays": 7,
"SamplesPollingIntervalMinutes": 1,
"MetadataPollingIntervalMinutes": 720
},
"CSVFormat": {
"Header": "[Data]nSiteID,StreamID,SiteName,StreamName,TimeStamp,Value,ID",
"Line"
:"28862,{{stream.id}},,{{stream.displayname}},{{sample.datetime}},{{sample.value}},{{
sample.id}}",
"DateTime": "MM/DD/YY hh:mm:ss"
"TimeZone": "America/Lima"
},
"Partition" : {
"SplitBy": "28862"
},
"Output" : {
"Dir": "c:tempcsv",
"FileName": "{{splitby}}_Ayyeka_import_{{datetime}}.csv",
"DateTime": "MM-DD-YY__hh-mm-ss"
}
"Filters": [
]
}

Adding values of custom attributes to the CSV file


In the Ayyeka UI, you can define multiple custom attributes for each Site, and
multiple custom attributes for each data stream. Each custom attribute has a
name and a value. For example, a Site's custom attribute might be called address
whose value is Madison 122. A stream's custom attribute might be model and its
value is Digital.

After creating custom attributes in the UI, you can add their values to the CSV file by
adding those custom attributes to Line in the CSVFormat section of the csvagent
configuration file.

In our example, the syntax for the Site's custom attribute would
be site.custom.address, which will be replaced with Madison 122 in the CSV file.
Similarly, the syntax for the stream's custom attribute would
be stream.custom.model, which will be replaced with Digital in the CSV file.

Filtering the data that is downloaded by the CSV Agent


By default, the CSV Agent will download all samples from all streams from all sites,
to which the CSV Agent "user" has access. Therefore, it is recommended to add the
optional “Filters” section to the csvagent.json configuration file, so you can exclude
any sample data that you do not need or desire.

You can define multiple filtering rules. Each rule is defined by applying a regular
expression to the value of a sample’s attribute (see
https://github.com/google/re2/wiki/Syntax for the syntax of the regular
expressions).

The filtering rules are logically ANDed, so the CSV file will only display data
that meets the criteria of all the filtering rules.

The following is an example of a “Filters” section:


"Filters": [
{"Var": "sample.value", "Regex": "[d]{2}(.+?)"},
{"Var": "stream.custom.address", "Regex": ".+"},
{"Var": "site.custom.sewershed", "Regex": "R2D2.R2_(.+?)"}
]

In the example, the first filtering rule specifies to download only samples whose
values are two-digit numbers (for example, if the values are temperature readings,
and you only wish to receive samples whose temperature readings are 10 degrees
and above).

The second filtering rule specifies to download only samples whose custom
attribute address is non-empty.
The third filtering rule specifies to show only samples whose custom attribute
sewershed contains the prefix R2D2.R2.

Step 4: Install and run the CSV agent


1. Open a command line window (Windows or Linux). If you are using a Windows
operating system, you must run as Administrator.
2. Navigate to the csvagent installation package.
3. Run: csvagent.exe service --install
4. The CSV agent is installed with the settings you configured in Step 3.
5. Run: csvagent.exe service --start

The CSV agent is launched.

Stopping the CSV agent


1. Open a command line window (Windows or Linux)
2. Navigate to the csvagent installation package.
3. Run: csvagent.exe service --stop

Restarting the CSV agent


1. Open a command line window (Windows or Linux).
2. Navigate to the csvagent installation package.
3. Run: csvagent.exe service --start

Uninstalling the CSV agent


1. Open a command line window (Windows or Linux).
2. Navigate to the csvagent installation package.
3. Run: csvagent.exe service --uninstall
Using the CSV Agent CLI
You can use the CSV Agent CLI to interact with the CSV agent. The CLI provides the
following options:
site – Retrieve samples from a specific site and from a specific date.

stream – Retrieve samples from a specific stream and from a specific date

getlast – Retrieve the last provided sample in the last provided CSV file.

setlast – Retrieve samples from a specific date or from a specific sample ID

export – Export metadata of sites or streams into a CSV file

import– Import metadata of sites or streams from a CSV file

Help – Display the list of csvcli commands

Version – Display the CSV Agent version

Using the CSV Agent CLI


1. Open a command line window (Windows or Linux).
2. Navigate to the csvagent installation package.
3. Run a CLI command, as described in Running CSV Agent CLI commands.
4. Note that you can specify, for each CLI command, to receive additional debug
information, by adding -verbose before the command name. For example:
csvcli.exe -verbose site [command options]

Running CSV Agent CLI commands


site
Description: Retrieve samples for the specific site from the specified date.
Usage: csvcli.exe site [command options]
Options:
-d UTC DATE of the oldest sample in format "YYYY-MM-DD hh:mm:ss"
(Mandatory)
-i The site ID (Mandatory)
-o The output file name (Mandatory)
-h Show command help (Optional)
Sample usage:
csvcli.exe site -i 3582 -d "2018-01-31 00:00:00" -o sitetest.csv
stream
Description: Retrieve samples for the specific stream from the specified date.
Usage: csvcli.exe stream [command options]
Options:
-d UTC DATE of the oldest sample in format "YYYY-MM-DD hh:mm:ss"
(Mandatory)
-i The stream ID (Mandatory)
-o The output file name (Mandatory)
-h Show command help (Optional)
Sample usage:
csvcli.exe stream -i 3582 -d "2018-01-31 00:00:00" -o streamtest.csv

getlast
Description: Retrieves the last provided sample in the last provided CSV file.
Usage: csvcli.exe getlast [command options]
Options:
-h Show command help (Optional)
Sample usage:
csvcli.exe getlast

setlast
Description: Retrieve samples for the specific stream from the specified date.
Usage: csvcli.exe setlast [command options]
Options:
-d UTC date of the last delivered sample in format "YYYY-MM-DD
hh:mm:ss" (Either –d or –i is Mandatory)
-i The sample ID of the sample from which to start delivering sample
data (Either –d or –i is Mandatory)
-h Show command help (Optional)
Sample usage:
csvcli.exe setlast -i 1111111
csvcli.exe setlast -d "2018-03-19 08:52:38"

export
Description:
Export all metadata of sites or streams into a CSV file. The output CSV file
include all the Site or streams to which the user, running the command, has
permissions.

After running the export command, you can edit the output CSV file and then
import it into the Ayyeka Server, for batch configuration of sites’ or streams’
custom attribute values.

Structure of Export-Sites CSV file:


If you are exporting sites metadata, the first (header) line in the output CSV file
is as follows, where ID is the Site ID:
ID,SiteDisplayName,OrganizationName,<customAttr.1>,<customAttr2>,<…
>

The following is an example of the output for a sites:


ID,SiteDisplayName,OrganizationName,tag1,tag2
136,MadisonAve,WaterWorks,123,
137,ParkAve,SewageInc,,abc
138,MainAve,GasInc,,

Structure of Export-Streams CSV file:

If you are exporting streams metadata, the first line in the output CSV file is as
follows, where ID is the Stream ID:
ID,SiteDisplayName,OrganizationName,StreamDisplayName,<customAttr.
1>,<customAttr2>,<…>

The following is an example of a streams output CSV file:


ID,SiteDisplayName,OrganizationName,StreamDisplayName,tagA,tagB
1221,MadisonAve,WaterWorks,Acidity,123,
1222,ParkAve,SewageInc,Level,,abc
1223,MainAve,GasInc,GPS,,

Usage: csvcli.exe export [command options]


Options:
-t site|stream Export metadata regarding sites or export metadata
regarding streams (Mandatory)
-o The output file name (Mandatory)
-h Show command help (Optional)
Sample usage:
csvcli.exe export –t site –o sitesList.csv
csvcli.exe export –t stream–o streamsList.csv

import
Import a CSV file with metadata regarding sites or streams, into the Ayyeka
server. This command is useful for creating or updating values of custom
attributes, provided these attributes are already defined in the Ayyeka UI (that
is, the attributes already exist in the Ayyeka database).

The sites or streams in the import CSV file must only include sites or streams
to which the user, running the command, has permissions.
The structure of the Import CSV file is described in Structure of Import-Sites
CSV file and Structure of Import-Streams CSV file. Note that you cannot
change the format or content of the CSV file other than the custom attribute
columns.

For each custom attribute whose values you wish to create/update, you must
include the attribute name in the first (header) line of the CSV file, as well as a
representation (that is, a comma, preceded by a value if desired) in each of the
rest of the lines.

If you are basing the import CSV file on a CSV file obtained through the
export command, you can delete an entire column representing a certain
custom attribute (by deleting it in each of the lines, including the header).
However, for any custom attribute column you choose to leave or include in the
CSV file, if a value already exists for the attribute, you can only edit the attribute
value – you cannot delete the value altogether (attribute values must be
deleted in the Ayyeka UI).

Structure of Import-Sites CSV file


If you are importing sites metadata, the CSV file must have the following
format (where ID is the Site ID):
ID,SiteDisplayName,OrganizationName,<customAttr.1>,<customAttr2>,<…
>
The following is an example of an import sites CSV file:
ID,SiteDisplayName,OrganizationName,tag1,tag2
136,MadisonAve,WaterWorks,123,abc
137,ParkAve,SewageInc,345,def
138,MainAve,GasInc,789,ghi

Structure of Import-Streams CSV file


If you are importing streams metadata, the CSV file must have the following
format (where ID is the Stream ID):
ID,SiteDisplayName,OrganizationName,StreamDisplayName,<customAttr.
1>,<customAttr2>,<…>

The following is an example of an import streams CSV file:


ID,SiteDisplayName,OrganizationName,StreamDisplayName,tagA,tagB
1221,MadisonAve,WaterWorks,Acidity,321,cba
1222,ParkAve,SewageInc,Level,654,fed
1223,MainAve,GasInc,GPS,987,ihg

Usage: csvcli.exe import [command options]


Options:
-t site|stream Import metadata regarding sites or import metadata
regarding streams (Mandatory)
-i The import file name (Mandatory)
-h Show command help (Optional)
Sample usage:
csvcli.exe import –t site –i sitesList.csv
csvcli.exe import –t stream –i streamsList.csv

Appendix A – Agent Heartbeat Functionality


During periods when the SCADA system receives no samples from the CSV agent,
there is no way of knowing whether samples are not received because there are no
new samples, or a connectivity problem occurred, or the CSV agent is not running, or
the SCADA malfunctioned or is badly configured. The CSV agent heartbeat
functionality addresses this issue by creating agent-monitoring CSV files that
provide agent status data (and additional data if desired). The SCADA system can
use tags to pull information from the agent-monitoring CSV files, just like it uses
tags to pull stream data from the site CSV files.
The agent heartbeat mechanism can measure and report on the following:
Connection – the state of the connection between the CSV agent and the
Ayyeka server

DiskSize – the amount of free disk space on the machine hosting the CSV
samples files. This provides information on whether disk storage space is
running out.

RunTime – the CSV agent’s runtime

The csvmonitor.json configuration file defines the format and content of the agent-
monitoring CSV files, as well as the location where they are placed.

You can open the csvmonitor.json configuration file in an editor, and edit it as
described in Table 2.

Default csvmonitor configuration file


The default configuration of the csvmonitor.json file is as follows:
{
"MonitorIntervalSeconds": 60,
"Units":{
"Connection": {
"SkipInactive": 1,
"Value": "{{status}} {{downtime}} {{msg}}"
},
"DiskSize": {
"Disabled": 1,
"DiskName": "c:",
"ThresholdPercentage": 80,
"Value": "{{percentage}} {{percentage}} {{human}} {{byte}} {{kbyte}} {{mbyte}}
{{gbyte}} {{tbyte}}"
},
"RunTime": {
"SkipRepeat": 1,
"UptimeFormat": "ss",
"DateTimeFormat": "MM/DD/YY hh:mm:ss",
"Value": "{{starttime}} {{uptime}}"
}
},
"CSVFormat": {
"Header": "MeasurementName,UnitName,TimeStamp,Value",
"Line"
:"{{monitor.measurementname}},{{monitor.unitname}},{{monitor.datetime}},{{monitor
.value}}",
"DateTime": "MM/DD/YYYY hh:mm:ss",
"TimeZone": "Local"
},
"Output" : {
"Dir": "c:Ayyekacsvdumps",
"FileName": "monitor.csv",
"DateTime": "MM-DD-YY__hh-mm-ss"
}
}
csvmonitor configuration file description
Table 2: CSV Agent Monitoring – configuration file parameters
Parameter Description Default value

MonitorIntervalSeconds Specifies how often, in 60


seconds, to monitor the status
of the CSV agent.

Units section

Connection sub-section – reports information about the state of the connection between the CSV agent and the
Ayyeka server

SkipInactive Specifies whether to include in 1


the output agent-monitoring
file, Connection Value lines
whose {{status}} is 0
(indicating that the CSV agent
is not connected to the Ayyeka
server).
• 1 – Do not include
Connection Value lines whose
{{status}} is 0
• 0 - Include Connection Value
lines whose {{status}} is 0
Parameter Description Default value

Value Specifies the state of the "{{status}} {{downtime}} {{msg}}"


connection using a
combination of free text and
any of the following optional
variables:
• {{status}} – displays 1 if the
CSV agent is running and
connected, and displays 0 if
the CSV agent is running and
not connected
• {{downtime}} – displays a
timestamp of when the CSV
agent disconnected, if
{{status}} is 0
• {{msg}} – lists the reason for
the lack of connection

DiskSize sub-section – reports information about the amount of free disk space on the machine hosting the CSV
samples files

Disabled Specifies whether to disable 1


the DiskSize test.
• 1 – disable the DiskSize test
• 0 – run the DiskSize test

DiskName Specifies for which hard disks “c:”


to report disk size. Use a
comma-separated list to
specify multiple hard disks.
For example:

“c:”,”d”:,”e;”

ThresholdPercentage Specifies for which storage 80


level to display disk size
notification.
• 0 – always provide disk size
notification
• 1-100 – provide notification
only if free disk space drops to
below this percentage. For
example, if the value is 40,
then disk size notification is
displayed only if the free disk
space is under 40% of total
disk size.
Parameter Description Default value

Value Specifies the free disk space "{{percentage}} {{percentage}}


using a combination of free
text and any of the following {{human}} {{byte}}
optional variables:
• {{percentage}} – display disk {{kbyte}} {{mbyte}}
free space as a percentage of
total disk space {{gbyte}} {{tbyte}}"
• {{human}} – display disk free
space in human-readable form,
as defined on the operating
system
• {{byte}} – display disk free
space in bytes
• {{kbyte}} – display disk free
space in kilobytes
• {{mbyte}} – display disk free
space in megabytes
• {{gbyte}} – display disk free
space in gigabytes
• {{tbyte}}– display disk free
space in terabytes

RunTime sub-section – reports information about the CSV agent’s runtime

SkipRepeat Specifies whether to display 1


runtime if its values haven’t
changed since the last time
runtime was reported. Note
that this is affected by the
resolution you set in
UptimeFormat.
• 1 – Do not report runtime if
its value hasn’t changed
• 0 – Report runtime even if its
value hasn’t changed

UptimeFormat Specifies the resolution, or "ss"


granularity, at which to report
runtime. For example, if you
specify mm, then runtime is
reported at a resolution of
minutes.

Put differently, UptimeFormat


specifies the smallest time
unit to display in the runtime.

DateTimeFormat Specifies the datetime format "MM/DD/YY hh:mm:ss"


to use when reporting the
runtime. You can specify any
format that complies with the
ISO 8601 standard.
Parameter Description Default value

Value Specifies the runtime state "{{starttime}} {{uptime}}"


using a combination of free
text and any of the following
optional variables:
• {{starttime}} – the datetime
when the CSV agent status
most recently changed from
down to up and running
• {{uptime}} – how long the
CSV agent has been
continually up

CSVFormat section

Header Specifies the multiline string "MeasurementName,


appearing at the top of the
output agent-monitoring file. UnitName,TimeStamp,

Value"

Line Specifies the contents of each "{{monitor.measurementname}},{{monitor.unitname}},


line in the agent-monitoring file
(that is, it specifies the {{monitor.datetime}},{{monitor.value}}"
columns appearing in the
output file), using a comma-
separated list composed of
any of the following optional
variables:

{{monitor.measurementname}}
– the type of measurement
reported in this line:
connection, disksize, or
runtime
• {{monitor.unitname}} – the
unit being measured. For
example, for a line reporting
disksize, the unitname is the
disk name.
• {{monitor.datetime}} – the
datetime when measurement
was performed. This is directly
affected by the value of
MonitorIntervalSeconds.
• {{monitor.value}} – the
measured value.

DateTime Specifies the format of the "MM/DD/YY hh:mm:ss"


datetime in the datetime fields
appearing in a line. You can
specify any format that
complies with the ISO 8601
standard.
Parameter Description Default value

TimeZone Specifies in which timezone to "Local"


display the datetime.
• To set the timestamp time to
the server’s local time, enter
"Local"
• To set the timestamp time to
UTC time, enter "UTC"
• To set the timestamp time to
a specific timezone, enter a
timezone name compatible
with the IANA Time Zone
database. For the full list of
names, see List of time zones.
Note that the TimeZone
setting applies also to the
datetime in the CSV file name,
if the naming convention you
define in FileName includes a
datetime.

Output section

Dir Specifies the directory in "c:Ayyekacsvdumps"


which the agent-monitoring
files should be placed.

FileName Specifies the naming "Monitor.csv"


convention of the agent-
monitoring files using a
combination of free text and
the following optional variable:
• {{datetime}} – the file
creation datetime
Note that this definition
determines the frequency at
which the output agent-
monitoring files are created, as
explained in Setting the
frequency of agent-monitoring
file creation.

DateTime Specifies the format of the "MM-DD-YY__hh-mm-ss"


datetime in the agent-
monitoring file name. You can
specify any format that
complies with the ISO 8601
standard.

Setting the frequency of agent-monitoring file creation


The definition of FileName in the csvmonitor.json file, determines whether all
measurements are reported in the same agent-monitoring output file, or whether
multiple monitoring files are created, and at what frequency.
If the definition of FileName does not include a datetime variable, then the
results of each new measurement are appended to the end of the single
agent-monitoring file.

If the definition of FileName includes a datetime variable, then new monitor


files are created accordingly. For example, if the granularity of the datetime is
in hours, then a new monitor file is created every hour (and if, further, the
MonitorIntervalSeconds is 120 (seconds), then each monitor file contains
data from 30 measurements).

A typical definition of FileName is: "monitor_{{datetime}}.csv"

Example agent-monitoring output file


The following is an example of an agent-monitoring output file.
Contents
Overview of Events stream
To Create an Events stream

Overview of an Events Stream


This functionality is useful if you use a SCADA system – and not the Ayyeka management UI –
for monitoring and management.
An Events stream is a solution for the following use case:
Although SCADA systems receive stream data, they do not get indications of events. An event is
any occurrence of a sample value crossing a threshold, which triggers the Threshold Actions
defined for the threshold. It is true that you can manually program the SCADA system with
thresholds and alerts that correspond to the Threshold Actions defined in the Ayyeka
management UI. However, no notifications are sent to the SCADA system whenever changes
are made in the Ayyeka threshold actions, and even if the SCADA integrator is notified manually,
the SCADA thresholds and actions need to be changed accordingly.
The solution offered by the Events stream is to disassociate a threshold from its specific range
of values (which are changeable), and associate it only with its index number (which is fixed).
For every stream you can define in the Ayyeka UI five threshold levels, which in the Events
stream are designated by index numbers 1 - 5, with 1 being the very lowest threshold and 5
being the very highest.
An Events stream will indicate, in its Samples table, whenever a data sample crosses over into
another threshold, by displaying the index number of threshold. You need then only to configure
once in the SCADA system the static rules that apply when samples cross over into each
threshold.
For example, suppose we have a level stream for which we configured three thresholds:
1: the range of values from minus infinity – zero
2: the range of values from 0 – 5
3: the range of values from 5 – infinity

The Samples table of that Events stream will then look similar to the example shown below.
That is, in addition to displaying the Datetime and Raw Value of each sample, it displays in the
Final Value column the threshold number in cases where the sample crosses a threshold.
Note that no value is displayed in the Final Value column so long as the sample value remains
within the current threshold.
To create an Events stream:
1. In the left pane, click Devices.
2. In the Sites Tree pane, click the device name, and then click the stream name.
3. In the right pane, click Configuration & Threshold tab, and then click Create Events Stream.
4. In the Create Events Stream window that appears, click Submit. An Events Stream is
created for the selected data stream.
TROUBLESHOOTING and SUPPORT
TOOLBOX of Useful Apps and Other Things...
Opening Questions
The following questions will give context to the user's problem or question:
1. What is the firmware version?
2. What is the hardware version?
3. What is the model number?
4. Is the device in the office or out in the field?
5. Verify the complaint! Check the device in the UIStreamView and see which data they're not
getting.
6. Was it working before (and when was the last time it worked)?
7. Did anyone touch the sensor, the device, or the configuration?
8. Is there another sensor on the same device that is working?
9. Go to the Device > Specific stream > Samples tab, and then check the values.
1. Is the stream sampling?
2. MODBUS errors - sampling, but the values are bogus (-214... in red)

10. Is the device transmitting (but no values)?


11. How can we contact you afterwards?
12. How quickly do you need a response - the urgency?
Remote Support with TeamViewer & Quick Support

Use TeamViewer for remote control, desktop sharing, online meetings, web conferencing, and
file transfer between computers.

Prerequisites
Download TeamViewer (also the customer must download)

Both you and the customer must install "for personal use" so that there is no charge.

Download AyyekaGo mobile app for iOS or for Android from the App Store or from Google
Play.

To initiate remote support:


1. Ask customer for his ID and password, and then log into his computer.
2. Tell the user to accept your connection by clicking OK on his screen.
Connect to Device by using PuTTY
When the Wavelet does not respond to the Ayyeka StreamView and you need to do deep
interrogation of the device, you can connect directly to the Wavelet.
With PuTTY, you are connecting directly to the Wavelet and can get everything you need for
deep debugging: All the logs we do not see in StreamView, all attempts to connect, reasons why
transmission are failing, and so on.
Additionally, all the commands sent through the UI that never got to the device now can be sent
directly to the unit "forcing" it to receive even without transmitting. From the PuTTY window,
you can get a device trace and run AK commands.

Table of Contents
Prerequisites
Steps
Display Device Trace
AK Commands
HTTPS Error Codes
CREG (Cellular Registration on a Network) Codes
Examples
Example #1 GSM modem successfully connects to the server
Another example of successful communication
Example #2 Found APN (Access Point Name), but unable to register
Example #3 Searched for a network, and then connected with a roaming network

Prerequisites
Make sure you have a Micro-USB cable and a laptop.

Ensure that the Micro-USB cable is functioning correctly by testing connectivity between
another device (not a Wavelet) and your laptop.

If PuTTY is not installed on the laptop, download PuTTY terminal emulation software to the
laptop.

Steps
1. On the back of the device, unscrew the six (6) screws until you can lift off the back panel
with the screws still affixed to their screw holes.
2. Stand the battery on its side to expose the USB port. Do not disconnect the battery from the
interface board.
3. Use the Micro-USB cable to connect the device’s interface board and your laptop.

Hazard: At the USB port side in the Wavelet, be careful that the cable does not
pull up. Upward tension on the USB port might disconnect the port from the
device's interface board.

4. On your laptop, open the Device Manager and check if any Ports (COM & LPT) exist. This
section might be missing if no ports are connected, as shown below.

5. Wait for the Windows Plug & Play Drivers to be installed on the laptop. For any driver
problems, see FTDI Chip Installation Guides.
6. Refresh the Device Manager. The COM port appearing in the USB Serial Port line is the
device’s COM port. In this example, the Wavelet is connected to COM4 USB Serial port.
7. Double-click putty.exe to open a PuTTY terminal.
8. Configure the following parameters:

Connection type – Serial

Serial line – The COM port that was added after micro-USB connection

Speed – 9600 Baud per second

Display Device Trace


In the PuTTY Configuration window, click Open to display the device trace in a new window. The
device trace output is continuously sent to the terminal as log information becomes available.
Typically, you need to check the output for at least 15 minutes. Some messages are displayed
only after several retry attempts are made.
Mobile App
The mobile app allows you to walk away from the installation site with confidence that your
device is successfully integrated with sensors and is transmitting to the Ayyeka Data Hub.

The mobile app communicates directly with the Wavelet via BlueTooth, so you must be in close
proximity to the device and the device must be activated (not in Hibernate mode). With the
AyyekaGo mobile app app, you have a clear view of your data and you can do some minimal
transmission and sampling configuration. The AyyekaGo mobile app is not for collecting or
analyzing data.
If you haven’t already done so, download the AyyekaGo mobile app mobile app for iOS or for
Android. Search the App Store or Google Play for AyyekaGo mobile app or use the QR codes
below.

There are two ways to pair your phone with your Wavelet:
1. Select Get Key Via Web. Enter your log-in credentials for the StreamView user interface.
2. Select Enter Key Manually. The Mobile Pair Key is found in the StreamViewu ser interface in
the Devices tab.

After you connect to your device, there are multiple display screens for different functionality.
The first screen provides essential information, including, but not limited to:
Signal strength

Cellular carrier
Confirmation of successful transmission and connection to the server
Training Videos for Ayyeka Wavelet

Platform and Hardware


Description: This video focuses on the platform and hardware of the device.
Viewing time: 11 minutes
URL: https://youtu.be/qqA_v37ELNY

Data Hub Overview


Description: Take a tour through the user interface of the device. You'll learn what can be
done in each section of the UI.
Viewing time: 37 minutes
URL: https://youtu.be/00Mv5nCAvpQ

Configuration Training Day 1


Description: This video focuses on configuration training. A high-level product functional
overview is given, followed by an introduction to the device infrastructure (sensors, Wavelet,
and StreamView). Most of the video demonstrates interaction with the StreamView to
configure the device to work with an analog sensor. MODBUS configuration for a serial
sensor is demonstrated.
Viewing time: 1½ hours
URL: https://youtu.be/7RtBs2oJ_B0

Configuration Training Day 2


Description: This video is a hands-on training session that describes the Manufacturing-to-
Delivery flow process among the Ayyeka Organizations (New, In Progress, Ready,
Templates).
Viewing time: 1½ hours
URL: https://youtu.be/FLVicudQSzo

Configuration Training Day 3


Description: This video records a hands-on session to integrate a sensor and device.
Viewing time: 2 hours
URL: https://youtu.be/O493-6JpZiE

Mobile Application
Description: This video demonstrates how to use the Ayyeka Wavelet mobile app to
troubleshoot the device and do simple configurations.
Viewing time: 3 minutes
URL: https://youtu.be/H8iJojTeScA

Knowledge Base
Description: This video is an introduction to the Knowledge Base and how to use it.
Viewing Time: 3 minutes
URL: https://youtu.be/vdJSgdZZiIE
Pre-Installation Check List
HARDWARE PRE-REQS
1. Make sure you have all required components (check the BOM)

Wavelet device

External cellular antenna

Sensors that the user ordered

External power supply (optional)

Splitters (optional)

2. Write down the S/N of the device (found on the back).


3. Tools for mounting the device and the antenna. Review where to mount the antenna before
you go to the site.
4. If you are using an external power supply, review how to connect it.
5. Test the sensors in the office before going out into the field.
6. Test the mounting brackets in the office before going out into the field.

SOFTWARE PRE-REQS
1. Confirm that the user has a user account in StreamView.
2. Give new customers access to StreamView:
Give them credentials for the Cloud account
Give them the URL of the UI
Check that the user is able to log in to the new account from their laptop
3. You must have the AyyekaGo mobile app mobile app installed on your iPhone or
Android. Be sure that your mobile device has the latest version.
4. Review the Quick Start Guide (if needed, you can create a PDF for print out).
5. Know what streams should be transmitting data so that you can check them when the
device is active.
6. Confirm that the device is transmiting.
7. Check that the device is enabled to use the AyyekaGo mobile app with the Mobile Pair
Key - shown in the StreamView.
Mandatory: The device and sensors must be tested in the office before installing in
the field.
Gauge the General Health of the Device
Information about the device can be found in the tabs in the right pane:

Configuration tab

In TRANSMISSION INTERVAL, check the frequency of Normal, Event, and Emergency


transmissions.

In STREAM MANAGEMENT, check which technical streams are defined.

In ADVANCED DEVICE CONFIGURATION, check the configuration of specific data


streams.

Device Reports tab


The device can receive up to 195 files in a transmission to the server.

Several consecutive high values in Files Received, followed by a very low value,
indicate that the transmission was completed.

Files Sent are the commands that we send from server to the device. Those
commands are not necessarily done when they are sent. They might be done a few
days later. If there’s no further communication after commands were sent, it's a good
indication that the commands caused some problem.

Check for MQTT versus HTTP - if most of the columns are empty, then most likely the
transmission was an MQTT transmission.

See Communication Problems to troubleshoot MQTT and HTTP


communication problems.

Log tab

Look at date-time stamp of just prior to problem, and then look at any messages.

Check if the user was trying to revert to last known configuration, etc.

In the Message column, look for messages such as ERR: gsm: Batt Low
(3050mV), messages about the SIM card, or messages about the inability to
communicate with the server.

Commands tab

To see general information about the command status, click the command.

To see what parameters are sent with a command, right-click the command, and then
click Parameters.
To see what the status of the command execution is, click the percentage bar in the
Status column. For example, the following Status of 91% completion shows a number
of failed, resent, and duplicate transmissions.

Health tab

See the Health Tab area for values and what they mean.

Cellular Sessions tab

Not used.
Audit tab

Not used.
Technical streams (below the device in the left pane)

See the Technical Streams area for values and their ranges.
Get a device trace

For instructions about connecting to a device and then getting a trace, see Connect to
Device by using PuTTY.
Device Maintenance Guide

It is recommended that every device has a technical alert set up for the humidity and battery
technical streams.
Every month, check the following technical streams:
Internal humidity stream (this stream is irrelevant in Wavelet Ex™)
Replace desiccants when internal humidity is 70% or higher.

Battery level stream

Signal strength

For acceptable ranges of these parameters, see the table of technical stream types.
Every month, check the following columns in the Health tab:
GSM errors

Reboots

For an explanation of these parameters, see Parameters - What They Mean and Their Values.
Parameters - What They Mean and Their Range of
Values
Click the following links to open their page of information.
Technical Streams
For the various types of technical streams and their range of values, see this table.
Health Tab
BOOT COUNT: The number of times that the device booted up since it was activated.
If the number jumps, most likely the battery is dead

If the number resets to 0, it could be due to a firmware upgrade or to a lost configuration

BOOT REASON: The reason, in code, for the latest device reboot.
Brownout detect - due to a dead battery

Power reset - the device was turned off either manually or by a command

System reset - the device was rebooted either by a command or automatically

GENERAL ERR: Not used


GSM POWERON: The number of times that the GSM modem was turned on.
GSM TX SUCCESS: The number of times that transmission succeeded (relevant only to HTTP
transmission)
GSM ERR: The number of times that transmission failed (for example, low battery, low signal).
Bad signals (poor antenna placement or other antenna problem)

Unable to communication with the server

GSM NO CREG: The number of times that the device was unable to register on the cellular
network.
GSM MODEM DEAD: Increased when modem fails to start.
0 = normal modem

1 = modem is dead

GSM PDP FAIL: The number of times that a ping test from the device to the server failed.
GSM NO OPERATORS: The number of times that the modem did not find any available cellular
network provider.
LOG REC DISCARDED: The number of files that were discarded when storage was almost full.
GPS FAIL FIX: The number of times that the device was unable to get it's GPS position.
TOUCH_EVENT: Not used. Disregard.
MODBUS READ ERROR: The number of errors on the serial modbus sensor.
If the number is in the hundreds or thousands:
The sensor is not connected to the device

The sensor is not configured properly (see Overview of Modbus in Serial Channel
Advanced Configuration)

TIMEKEEPER ACTIVE SOURCE FAIL: The number of times that the device failed to get the
atomic time from server during the HTTP transaction.
SDCARD ERROR: The number of times that SPI transactions with the SD card failed.
LORA SUCCESSFUL TRANSMISSIONS: The number of times that LoRa transmission
succeeded. LORA TX FAIL: The number of times that LoRa transmission failed.
LORA RECEIVED COMMANDS: The device received data from LoRa. This information is useful in
debugging to see if the device got the data we sent.
LORA CONFIRMS FAIL: LoRa sent the error code RN2483_MAC_ERR to indicate a
communication problem.
LORA POWER ON FAIL: The LoRa module could not be powered up.
LORA INIT FAIL: The LoRa module powered up but failed during the setup process.
SERVER COMMAND: The number of times that the device got a command from the server since
the device was booted up. The commands are listed in the Commands tab for the device.
BLE ERROR: The number of times that the device had problems communicating with the mobile
app. For example, the device was unable to send a message to the mobile app, or the device
received a message from the mobile app that was not valid
BLE CONNECTIONS: The number of times when the mobile app was connected to the device.
MQTT PUBLISH: The number of records that have been published to the MQTT broker since the
last boot.
MQTT PUBLISH ERROR: The number of publication errors to the MQTT broker.
MQTT CONNECT: The number of times that the device connected successfully to the MQTT
broker.
MQTT CONNECT ERROR: The number of connection errors with the MQTT broker.
DATA LOG CREATED: The number of times that data samples were successfully saved to
persistent memory (SD card or internal flash).
DATA LOGGER ERROR: Increased when dumping samples to SD fails and data is dumped to
FFS insteadThe number of times that data samples could not be moved from RAM and
saved to persistent memory (SD card or internal flash). Instead, the data samples were dumped
to FFS.
POWER SUPPLY SWITCH: The number of times that the power supply source was switched
from external power to battery, or vice versa.

HEALTH_COUNTER_DEBUGSH_COMMAND: The number of times that the device was


configured manually by commands from AK Console rather than by sending commands from
the server. For example, if you see that a setting was changed but that no commands were sent
from the server (in the Commands tab), check this counter to see if someone configured the
setting manually.
LED Light Status Indicators
The LEDs on the interface board of a Wavelet V2™ and Wavelet Ex™ provide indications of the
device's status.

Table of Contents
Viewing the Indicator LEDs
LEDs Status Indications
Accessing the Interface Board LEDs

Viewing the Indicator LEDs


In the device, a round window on the back enables you to see the three indicator LEDs (green,
red, and blue). View the LED status through that window.

If you have an early version of a Wavelet 3™ or Wavelet 4™ device that has no window, you need
to open the enclosure (as described in Accessing the Interface Board LEDs) to view LED
indications.

Note that opening the enclosure can affect the humidity levels in the enclosure. If this
is the first time you are opening the enclosure, contact Support at
support@ayyeka.com.
Location of round window – Wavelet sealed Location of LEDs – Wavelet opened

LEDs Status Indications


LEDs Status Interpretation Relevant for Visual Indication
Wavelet
version

All LED are off Not connected to All versions


network. The LED
lights do not blink
when the device is
sampling.
Note: Wavelet
may be powered
down (power switch
is in the OFF
position), in
Hibernate mode, or
have insufficient
battery power.
Hibernate mode puts
the device into an
ultra-low power
mode. The device
will neither take
samples nor transmit
data.

Green LED is blinking Attempting to All versions


connect to network.

Green LED remains on Transmission of data All versions


is in progress; the
LED will turn off
when transmission is
complete.
LEDs Status Interpretation Relevant for Visual Indication
Wavelet
version

Green and Red LEDs blink Communication All versions


five times error. The device
failed to transmit.

Red and Blue LEDs Wavelet has entered All versions


blink sequentially for an Hibernate mode. The
hour red and blue LEDs
blink sequentially
during the first hour
in Hibernate mode.
Hibernate mode puts
the device into an
ultra-low power
mode. The device
will neither take
samples nor transmit
data.

Green-Red-Blue-Red-Green Wavelet is activated All versions


LEDs blink by using the
sequentially five times Magnetic Activator
key. Next, the
Wavelet calibration
activity starts, in
which the Wavelet
samples and
transmits frequently.

Green, Red, Blue LEDs Bootloader is All versions


blink five times starting up when the
device powers up.
Power-up is typically
followed by a
firmware boot
sequence.
LEDs Status Interpretation Relevant for Visual Indication
Wavelet
version

Green and Blue LEDs blink Firmware is booting. All versions


twice, then Red

Blue LED is blinking Bootloader is active, All versions


not connected to the
network.

If the Wavelet has an LoRa-enhanced


additional LPWAN Wavelet
board, the blinking
blue LED indicates
the Wavelet is
attempting to
connect to the LoRa
network

Blue LED remains on Transmission of data LoRa-enhanced


over LoRa is in Wavelet
progress; the LED
will turn off when
transmission is
complete.

Blue and Red LEDs blink LoRa communication LoRa-enhanced


five times error. The device Wavelet
failed to transmit.
LEDs Status Interpretation Relevant for Visual Indication
Wavelet
version

Blue and Green LEDs are Bootloader is active, All versions


blinking trying to connect to
network.

Blue LED is blinking, Bootloader is active, All versions


Green LED is constantly upgrading firmware.
ON

Red LED blinks three Battery charge was Wavelet ,


sequences of three short just measured and is Firmware
blinks each low (battery charge version 2.239
is measured after and higher
each transmission
and each sensor
sampling). Replace
the battery pack.

Red LED blinks for one Battery voltage is too Wavelet 4,


minute low to perform data version 2.239
transmission. If the and up
battery is not empty,
and the
transmission/
sampling frequency
is not too high, the
voltage will
eventually rise and
data will be
transmitted.
Accessing the Interface Board LEDs
To access the Wavelet's interface board LEDs:
Partially unscrew the six (6) screws located on the back of the Wavelet enclosure, until you can
lift off the back panel.
The three LEDs, COMM, ERROR, and STAT, are on the interface board, as shown in the figure
below. The COMM LED is green, the ERROR LED is red, and the STAT LED is blue.
Wavelet Interface Board LEDs
Alert Problems
Problem: Sample data is being collected and transmitted. Alerts were configured to be sent by
email and SMS, but they are not being received.

Background:

The cause of Alert problems can fall into the following categories:
The phone or email setting are incorrect. Thresholds are configured correctly and are
sending Alerts when appropriate.

The phone and email settings are correct, but the Thresholds are not configured
correctly. Consequently, Alerts are not sent as expected.

Thresholds are configured correctly, but the Alerts are not configured correctly.

Decision Tree:
The following decision tree gives you a bird's eye view of how to troubleshoot particular
problems. Double-click a blue box to go to its corresponding article in the KB or to the section in
this article. After going to a different page in the KB, return to this page by clicking the Back
Arrow of your web browser.
Verify that Events were Generated
The Events window in Fleet displays all events where a Threshold was exceeded. The names of
the Site, Stream, and Threshold are listed, along with the timestamp when the Event occurred
and the value of the Stream that caused the Event.
Do the following steps to view Events that were generated:
1. In the left pane of the StreamView UI, click Fleet (the Fleet application opens in a new tab),
then click on the Events link in the left panel of the Fleet application. If you do not see Fleet
(or do not see the Events option in Fleet), you do not have the correct user role.
2. To filter by a particular Account or Site, type its name in the Search text box.
3. To order the results by date, click the Event Date column header. The default is by Event
Date in descending order (most recent Events first).
4. To list everyone who received an email and/or SMS notification, click the Show
Notifications link in the Notifications column. Recipients of SMS and of email notification
are listed. If there is no Show Notifications link in the column, that indicates that
Notifications were not defined for that particular Threshold.

If your devices work with on-premises that communicates with a SCADA system, you might
have an Events stream, which is a child stream of the sensor's data stream whose events
you want to track. Sample data that exceeded threshold will be listed in the Samples tab of the
Events stream. However, there is no indication if email and/or SMS messages were sent.
Troubleshooting - Bird's Eye View Decision Tree for Data
Problems
The following decision tree gives you a bird's eye view of how to troubleshoot particular
problems. Double-click a blue box to go to its corresponding article in the KB or to the section in
this article. After going to a different page in the KB, return to this page by clicking the Back
Arrow of your web browser.
Device Problems
Problem:
My LoRa-only device has no sample data
LoRa-only devices do not have cellular connectivity. As a result, Support cannot send
commands or see any logs if troubleshooting is needed.
The mobile app functionality is limited in LoRa-only devices, and it can configure only sampling
interval and transmission interval.
Since there is no cellular connectivity, go to the device, and then do the following steps:
Is data being sampled? If no, do the following steps:

1. Swap the sensor with a sensor that is known to be working.


2. If no data is sampled, RMA the sensor.

Is data being transmitted? If no, do the following steps:

1. Use the mobile app to send a TRANSMIT NOW.


2. If no data is transmitted, check the antenna placement.
3. If there still is no data, RMA the device.

Problem:
I made changes to the configuration, but the changes aren't taking effect
Recommended Actions:
Check the Transmission interval. All device configuration changes are relayed to the device as
commands when the device next communicates with the server. The time of communication is
determined by the defined Transmission interval.
In addition, some of the advanced settings available through Configuration > Advanced Device
Configuration require a device reboot in order to take effect.
The reboot command, together with all other commands accumulated since the last
transmission, will be relayed to the device when the device next communicates with the server
Problem:
My device lost its configuration settings
Devices with FW version 2.23x and older might suddenly lose their configuration. This is a
known issue in earlier versions of the FW.
The solution is to update the FW to a newer version.

Problem:
Updated GPS coordinates do not appear in the UI
Recommended Actions:
Typically, the issue is the time it takes for the GPS coordinates to be detected in the field. When
the device reports new GPS coordinates to the server, the server takes several minutes to
complete the processing. The GPS coordinates are updated weekly and after swiping the
magnetic Activator key under a clear sky (not indoors).
Important: The internal GPS antenna is located at the top of the device, opposite the connectors
panel. That side of the device needs a clear view of a patch of sky for about 5-10 minutes in
order to pick up a GPS signal. Trees, buildings, roofs, etc. interfere with the GPS signal.
Problem:
My battery is draining faster than expected
Recommended actions:
There are a number of reasons why the battery drains faster than expected. Check the following
items:
Configuration (too many channels, long wake up time)

Transmitting too frequently

Sampling too frequently

“Hungry” sensor - requires a lot of power for a long wakeup time, or the sensor requires
constant power. A camera sensor is an example of a "hungry" sensor.

Thresholds are not set for optimum use, so the Event mode is frequently reached.

When a device is scheduled to transmit data, it transmits all the data it stored since
its previous transmission. Thus, if you set the device to transmit at the Emergency
rate for a certain threshold, then whenever the threshold is reached and the device
transmits at the Emergency rate, it will transmit data from all data streams, not only
from the stream for which you defined the threshold.
2G SIM technology is used when transmitting (2G consumes more battery). This can be
seen in the Log tab.

Bad signal - see the Health tab parameters.

A bad or incorrect sensor adapter. Check the sensor adapter for faulty or disconnected
wiring.

Problem:
The magnetic activator key does not turn the device on
Sometimes, swiping the magnetic activator key does not cause the device to reset.
Recommended Actions:
1. Hold the magnetic activator key over the embossed logo on the front of the device
enclosure for a full 30 seconds. This action is like sending a reboot command to the device.
2. If the device still does not turn on, do the following steps:
1. Partially unscrew the six (6) screws located on the back of the Wavelet enclosure, until
you can lift off the back panel with the screws still affixed to their screw holes.
2. Remove the Wavelet’s back panel and place it flat-side down adjacent to the Wavelet
box.
3. On the interface board, move the ON/OFF switch to the ON position.

The Wavelet device turns on and performs a 10-minute calibration


process, after which it starts operating in normal mode.

4. Replace the Wavelet back panel, ensuring that the battery cable is neatly arranged
and not pinched within the Wavelet enclosure.
5. Tighten the six (6) back panel screws until the Wavelet is closed and sealed. Do not
over-tighten as this will strip the screw threads.
Sensor Problems
Problem:
The sensor is not sampling data
Recommended actions:
Get the following information:
Is the sensor supported? See the list of supported sensors.
If the sensor is not listed, then it is not supported. Ask Support for information about
unsupported sensors.

If the sensor is supported, check its data sheet.

If the sensor is in a serial channel and uses Modbus communication, check the
sensor's User Manual for Modbus configuration. Note especially what the offset and
the endian type (big endian or little endian) are.

Was the sensor giving good values, and then suddenly stop? If so, check the following
items:
Commands that were sent just prior to the loss of data

Boot count (was there a reset?)

Battery and external power (if used), did all streams stop or just one particular one?
(check in the Visualization window).

Check all channels connected to that sensor (in STREAM MANAGEMENT table). Is one
channel of the sensor not showing values or are all channels not showing values?

Was there any physical maintenance on site such as site maintenance, swap sensors,
disconnect the sensor, replace desiccants in the device, replace the battery

Check the sensor's channel configuration (see Advanced Configuration for Analog,
Digital, and Serial channels):

active (or group_active) is AS_ON or AS_ON_HOLD

group - From FW 2.32.x, every channel must be in a group. If it's not in a group, it will
not sample at all (with the exception of a digital sensor)

wake_time (or wakeup_time)

sensor_power_source (serial channel) or sample_power_source (analog channel)

sample_handler

read_addr

slave_addr
Restore configuration (click Actions > Restore Configuration) to send all settings in UI
to the device.

If the sensor never worked, request pictures of wiring and installation (if relevant).

Problem:
Data samples from the serial sensor show Modbus errors
The serial channel is working because the sensor is attempting to sample data. There are
values, but the values are all modbus errors.

Recommended action:
1. Check the configuration of the sensor. Check the power source of the sensor:

If the sensor has its own power source, check the state of (sensor_power_source).

If the sensor is getting power from the device and the battery is low, sampling
might stop.

2. Was the sensor giving good values, and then suddenly stop? If so, check the following
items:
Commands that were sent just prior to the loss of data
Boot count (was there a reset?)
Battery and external power (if used), did all streams stop or just one particular one?
(check in the Visualization window).
Check the Internal Humidity technical stream for moisture in the housing.
Check all channels connected to that sensor (in STREAM MANAGEMENT table). Is one
channel of the sensor not showing values or are all channels not showing values?
Was there any physical maintenance on site such as site maintenance, swap sensors,
disconnect the sensor, replace desiccants in the device, replace the battery

3. Check the wiring of the serial sensor. If the user isn't sure about the wiring, take a photo of
the sensor wiring and send it to Support.

Problem:
Ultrasonic sensor displays outlying values from normal measurement
Every ultrasonic sensor is sensitive to interference from mist, foam, turbulence, and so forth.
Consequently, outlying values should be expected from time to time.
To hide these outlying values from your graph reports and APIs, see Viewing and Editing the
Treatment of Raw Data. The data will still be displayed in the Samples tab as a Hidden value.
Alternatively, if you're seeing outlying values often, re-evaluate the type of ultrasonic sensor that
you're using. Check that it is suitable for your specific environment. If needed, contact Support.

Problem:
Raw Values of a 4-20 Analog Sensor are Out of Range
Perform the following checks if the raw values received from the sensor are below 3,500 µA or
above 20,500 µA.

Measuring voltage at the analog port


1. When the device is on, connect a voltmeter to the analog port pins, as follows:

If this is an installation where the sensor receives power from the device, connect
the voltmeter to the Supply+ and Negative (-)

If this is an installation where the sensor receives power directly from an external
source, connect the voltmeter to the Signal+ and Negative (-)

Note that power is not supplied continuously, but only for short bursts of time,
depending on the configured sampling interval and duration. Typically, the sampling
interval is between 1‑5 minutes, and the sampling duration is between 100 ms – 2
sec.

2. Note the voltage:

If the voltage is 12V, then proceed to Measuring voltage on the analog cable.

If the voltage is not 12V, the device may be damaged, off, or configured incorrectly.
Contact Ayyeka for technical support.
Measuring voltage on the analog cable
1. Carefully open the housing of the field attachable connector on the cable of the sensor
connecting to the device, to expose the wires (conductors). Be sure not to forcefully twist
the wires while opening the connector housing.

2. Connect a voltmeter to the exposed Signal+ and Negative (-)


3. Note the voltage:

If the voltage is between 0.4 – 2.1V (which corresponds to 4,000 – 20,000 µA),
then proceed to Measuring current between the sensor and the device.

If the voltage is not between 0.4 – 2.1V, then the sensor connections to the
Wavelet are incorrect, loose, or damaged. If you need assistance, contact Ayyeka
for technical support at support@ayyeka.com.

Measuring current between the sensor and the device


1. Use an Ampere meter to measure the current between the Wavelet and the sensor cable, by
connecting the Signal+ pin on the Wavelet analog connector with the Negative (-) pin on the
sensor cable connector.

2. Note the current:

If the value is not between 4 – 20mA, then either the sensor is damaged, or the
sensor connections to the device are incorrect, loose, or damaged.
If the value is between 4 – 20mA, then either the device is damaged, or it is
configured incorrectly. Contact Support for additional support.
Communication Problems
Problem:
Sample data is being collected, but there is no communication with the cloud or on-premises
server.
Background:
Communication can use MQTT or HTTP protocols. HTTP is the default and this protocol can
transmit all stream types (data, technical, virtual, external, and event). MQTT can only transmit
data streams.
All devices transmit HTTP. Devices with newer firmware can transmit both HTTP and MQTT,
although if configured to do so, they can be configured to work with only HTTP. Currently,
the Wavelet 4R™ device does not support MQTT.
If the device is configured to work with both technologies, the device transmits commands,
logs, health statuses, and so forth with HTTP, but sensor data is transmitted with MQTT.
Consequently, HTTP and MQTT transmissions alternate - one HTTP transmission (or more)
and one MQTT transmission, then again HTTP, MQTT, HTTP, MQTT, and so on. Both HTTP and
MQTT protocols are used on each scheduled transmission.

The following decision tree gives you a bird's eye view of how to troubleshoot particular
problems. Double-click a blue box to go to its corresponding article in the KB or to the section in
this article. After going to a different page in the KB, return to this page by clicking the Back
Arrow of your web browser.
Recommended actions:
Communication problems may occur if there are disruptions with the external antenna, low
battery, misconfigured streams, or inability to reach the cellular network provider.
1. Confirm that an external antenna is connected. An external antenna is required.

See External Cellular Antenna - Overview, Recommended Practices, Installation.

If no antenna is attached to the device, attach an antenna and check transmission.

Ayyeka considers a device to be improperly installed if it does not use an


external antenna.

If the device and antenna are in problematic areas, for example in hilly regions or in
manholes, get a photo of both the device and antenna.

2. In StreamView, check the following tabs for the device:

Commands tab - what commands were sent to the device just before the problem
started? Click the command to see what specific command was sent before the
problem occured. The following are commands that might cause issues:
The Server Address is incorrect.

In Advanced Device Configuration area, check HTTP > Server Address

The external antenna is not selected.

In Advanced Device Configuration area, check GSM > Antenna Selection

SIM and APN are not configured correctly.

In Advanced Device Configuration area, check GSM > gsm_apn*, GSM >
gsm_sim*, and GSM > lkgc_gsm*

Log tab - any communication errors listed in the Message column? Look for
strings such as BATTERY_LOW, FAILED, SIM.

Device Reports tab - Check the Device Reporting Profile.

Health tab - Check for number of boot counts and errors.


3. In StreamView, check the following technical streams for the device:
Battery Life (or Status) - how much of the battery is left?

If the battery is low, connect the device to external power. External power will restore
communication until the battery is replaced.

GSM (or Cellular Signal Strength or Signal Strength) - indicates the strength of the
modem signal.

If the signal strength is weak, reposition the antenna until the signal strength is
stronger. Also check that the antenna is properly connected.

Internal Humidity - indicates how much moisture is in the device.


Transmission Problems
Problem: The Wavelet is on and data samples are being taken, but the device is not transmitting
data samples.
Before You Begin:
Check that device is turned on and is not in Hibernation mode.

If the device is not transmitting at all, check communication and battery.

If the device is LoRa-enabled or LoRa-only, note the following points:


LoRa communication only transmits data, but not commands.

LoRa has its own transmission schedule, and there is a limited number of transmission
per hour. If you exceed the limit, data is lost. Consequently, alert data might also be lost.

For details, see Understanding LoRa Transmission.

Decision Tree:
The following decision tree gives you a bird's eye view of how to troubleshoot particular
problems. Double-click a blue box to go to its corresponding article in the KB or to the section in
this article. After going to a different page in the KB, return to this page by clicking the Back
Arrow of your web browser.

Device is on an On-Premises Server?


If the device was moved to an on-premises server, check that the MQTT server is
communicating with the on-premises server and not with the cloud server. Also check
that MQTT is enabled and configured.
Check the MQTT settings for the device in Device > Advanced Device Configuration >
GSM:
MQTT Server Address should be changed from mqtt.Ayyeka.com to the IP
address of the on-premises server.

MQTT Server Port should be 8883.

Transmitting Technical Stream Data Only?


If the device is transmitting technical stream data but not data stream samples, do the
following checks:
Check the Sample tab of the data stream:
Are there any sample values?

Are there sample values but they are out-of-range (as determined in the
Configuration & Threshold tab)?

if there are no sample values whatsoever, check the MQTT settings for the
device in Device > Advanced Device Configuration > GSM:
MQTT Server Address

MQTT Server Port

LKGC MQTT Server Address

LKGC MQTT Server Port

Is User Near the Device?


No, user is not near the device
If the user is not in proximity to the device, check the following items in StreamView:
Check the Battery Life (or Battery Status in older FW) and GSM Signal Strength
technical streams.

Check information in the following tabs for the device:

Health
Check the counters in the following columns:
Boot Count - The number of times that the Wavelet booted up since the it
was activated. Is the count increasing?

Boot Reason - The reason for the latest device reboot. Is there
any Watchdog reset or brownout (indicates low battery)?

GSM No Creg - The number of times that the device was unable to register on
the cellular network. Indicates communication problems.

GSM Error - The number of times that transmission failed. Indicates battery
or signal problems.

GSM Modem Dead - Any value other than 0 indicates a problem with the
modem itself. Contact support@ayyeka.com for RMA.

GSM No Operator (in FW versions 2.320 and later) - Any value other than 0
indicates that the device is struggling to find a cellular network operator.

Device Reports
Check the Files Received column to see if it is stuck on 199 and and has not
completed. This issue might be from an antenna problem.

Check the Files Sent column for the number of files sent from the server to the
device. These files are typically commands, such as 'get config', 'set config', or
'reboot'.

Check the method of communication (MQTT, HTTP).

Log
Check the Message column for any mention of the following problems:
Battery Low - Connect external power or replace battery.

Failed reading from SD card - Contact support@ayyeka.com.

Failed opening link - device is struggling to communication. Check antenna,


signal strength.

Operator + Technology - Check if there is frequent switching between operators


or between technologies. Frequent switching indicates that the device is
spending time with network cellular providers.

Wait three days for a Watchdog Reset (in Log tab) to occur. Alternatively, go out to the
field and physically examine the device.
Yes, user is near the device
If the user is in proximity to the device:
If the FW version is 2.279 or later, use the AyyekaGo mobile app mobile app to do the
following steps:

1. Select the Wavelet that does not transmit.


2. Check that the CARRIER strength is 70% or higher.

Check that you meet the antenna placement guidelines. If needed, move the antenna to
a different position.

Force a transmission by either of the following methods:


In the mobile app, click Transmit Now.

Ask the user to swipe a magnetic Wavelet Activator over the face of the device.

Important: There will be a few minutes of delay between a successful


transmission and the use of either the Transmit Now command or the
Wavelet Activator for initiating data transmission. Repeating either method
will not expedite data transmission.

Check the LED lights on the device to find the device status as it transmits.

You might also like