Professional Documents
Culture Documents
Ayyeka User Manual and Knowledge Base - 20201110
Ayyeka User Manual and Knowledge Base - 20201110
User Manual
Created: 10-Nov-2020
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.
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:
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.
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.
Site
Device
Channel
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.
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.
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 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.
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.
If a technical alert for Internal Battery was added, the default is 20%.
Internal Temperature W_Temperature The internal temperature of the physical device.
Internal Humidity Internal The amount of moisture that has penetrated the physical device. Two desiccants absorb
Humidity* the moisture.
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%.
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.
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
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)
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:
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.
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.
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 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.
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.
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.
Note that it will stop transmitting LoRa samples, but data sampling continues.
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.
If the Wavelet is rebooted, what All samples in RAM are Samples stored in SD are
happens? discarded sent with next transmission
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
Master 1D0! Master asks for the first chunk of the results.
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.
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.
This is the
end of the
first
transaction.
2.231 and Yes Yes Yes Yes. Wavelet will issue aD0!
newer and then aD1!...aDn! until all
values are read
interface_type IT_SDI12
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.
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.
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 (,).
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
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.
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 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.
= ((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
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
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.
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.
In the Sites Tree pane, click the device name with the WaveCam, and then open
the Advanced Device Configuration.
bus_baud 115200
bus_parity serial.BUS_PARITY_NONE
interface_type serial.IT_RS485
sample_handler serial.SH_SPINEL_CAMERA
Example:
The wakeup time interval is 5000ms.
The WaveCam takes a photo 5000ms (5
seconds) after it is powered on.
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
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:
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.
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.
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:
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.
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.
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 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.
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.
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.
4. Click the cogwheel in the upper right corner. The WaveCam Configuration window
opens.
6. To rename the app, type in a new name in the Name field, and then click Save.
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:
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.
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. On the interface board, power off the device by moving the ON/OFF switch to the OFF
position.
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.
3. Steps in the UI
1. In the Configuration tab on the right, expand the ADVANCED DEVICE CONFIGURATION tree,
and then select the GSM.
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.
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
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.
Description Command
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.
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:
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.
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.
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.
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
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
Description Command
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 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).
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.
WA1111:
WA4000:
WA00138 Analog Cable Assembly:
Wavelet V2™:
SE00031_Temperature Sensor
SE00031_Temperature Sensor_Omega_M12_Datasheet.pdf
SE00061 Intrinsically Safe Pressure Sensor, 0-689 bar (0-10,000 psi) APG_PT-400 CSA
Certificate of Conformity.pdf
SE00062_Crude, Water, and Chemical Radar Level Sensor_ABM_ABM 300 High Pressure
Explosion Proof_Datasheet.pdf
SE00075_Dual-Axis Inclinometer
SE00075_Dual-Axis Inclinometer_TE Connectivity_DOG2 MEMS Series_Datasheet.pdf
SE00106_Temperature Sensor
SE00106_Temperature Sensor_STS_TS100_Datasheet.pdf
Important: Remember that the Intrinsically Safe Wavelet (WA3888) has a different
pinout than the WA1111.
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):
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.
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.
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 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.
Power
Primary Power Supply Internal lithium battery, 3.9 VDC 3A, field-replaceable, military-
grade, non-rechargeable
Battery Status Notifications On-board battery consumption for battery life monitoring
Sensor Integration
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
Connectivity
Cellular Roaming Data plan includes support for over 140 countries
Mechanical Enclosure
• 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
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
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.
The on-premises server must have the following minimal hardware provisioned:
For 1-50 Wavelets:
4x Intel/AMD CPU cores
8 GB RAM
16 GB RAM
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.
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
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.
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.
dchpwd admin
3. When prompted, enter the new password and press the Enter key. Repeat when requested
to confirm the new password.
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
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
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 (_).
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.
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
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.
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
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
Redundant servers
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 usage needs to be monitored periodically to gauge the rate in which free space is
consumed.
The following critical services should be monitored and running on their standard ports on
the base Ubuntu operating system:
MySQL
RabbitMQ
Redis
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.
/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/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
List all images that are locally stored with the docker engine docker image ls
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.
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.
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.
+---------+ +---------------+
: : : :
: :>-- A - Client Authentication --->: Authorization :
: Client : : Server :
: :<-- B ---- Access Token ---------<: :
: : : :
+---------+ +---------------+
Example request:
APIClient Key APIClient Secret
149F9AC689CB4F16853433AA0AE44E5F ePs4G352BUD9FYCvPXEoz2RC5UYx/K8BoVs+mkrVfpg=
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}
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:
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}]
3. Select the icon that corresponds to the action you wish to take:
Deactivate the API client. A deactivated API client cannot be used to access Ayyeka data, but is
not deleted from the database.
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
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.
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
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.
2. Add the KepwareServerEx certificate to the Ayyeka server’s trusted certificate list, as
follows:
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).
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.
Figure 1: Integration of Wavelet, Ayyeka Cloud Server, Ayyeka DNP3 Agent, and the SCADA
station
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
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.
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.
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.
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>
</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:
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.
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
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.
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
AnalogTagIndex This is the DNP3 analog index ID for the particular site and stream.
SampleTime The sample date of the sample most recently sent from this stream by
the Ayyeka DNP3 Agent to the SCADA station.
<?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>
<file value="C:TempAyyekaLogsAyyeka.agents.dnp3-all.log"
/>
The command output provides the following information for all the sites in the
database. See Table 1 for information about the SCADA parameters.
Examples:
To display information for site 3304 only, run akdnp3cli.exe info –s 3304.
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
For example:
To upload from stream 142, samples starting from sample ID 106954, run:
To upload from stream 142, all its samples starting from the very first one, run:
To upload from stream 142, samples starting from January 27, 2017, run:
The system contacts the API to learn which sample ID corresponds to the given date.
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.
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"
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.
csvagent.exe
csvagent.json
csvmonitor.json
zoneinfo.zip
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.
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.
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.
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.
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.
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
Output section
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.
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.
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.
stream – Retrieve samples from a specific stream and from a specific date
getlast – Retrieve the last provided sample in the last provided CSV file.
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.
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>,<…>
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).
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.
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.
Units section
Connection sub-section – reports information about the state of the connection between the CSV agent and the
Ayyeka server
DiskSize sub-section – reports information about the amount of free disk space on the machine hosting the CSV
samples files
“c:”,”d”:,”e;”
CSVFormat section
Value"
Output section
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)
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.
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:
Serial line – The COM port that was added after micro-USB connection
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
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
Splitters (optional)
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
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.
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.
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.
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
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
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.
Table of Contents
Viewing the Indicator LEDs
LEDs Status Indications
Accessing the Interface Board LEDs
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
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:
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)
“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.
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.
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 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
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):
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)
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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
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'.
Log
Check the Message column for any mention of the following problems:
Battery Low - Connect external power or replace battery.
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:
Check that you meet the antenna placement guidelines. If needed, move the antenna to
a different position.
Ask the user to swipe a magnetic Wavelet Activator over the face of the device.
Check the LED lights on the device to find the device status as it transmits.