Power Line Repeating DCI Console

Accessing the DCI Console

To access the DCI console, use the following command:

/usr/bin/apollo/lte/bin/echdcish dc -i1

Example

Example: getting into the DCI console
$ /usr/bin/apollo/lte/bin/echdcish dc -i1
Working directory: /var/apollo/data/lte/db/lonworks/dc/1
Echelon DCI Shell v1.00.000
Copyright (c) 2019 Adesto Technologies Corporation.All rights reserved.
--------------------------------------
Enter 'shhelp' for a list of shell commands

Platform: Linux 5.4.70-gd7faa275d.#1 SMP PREEMPT Thu Apr 7 12:11:05 PDT 2022 on armv7l
Copyright (c) Echelon Corporation 2003-2011
Connected to SVC
Not Connected to Read-Only port
Last SVC connection: 2022-12-23 15:29:44
Software Version: 3.50.053
Function State: Running (0)
LonTalk Window: Always open
DC 1>

Once you issue the command to access the DCI, it may take 10 or more seconds before you see the DC 1 > prompt. If you do not see the DC 1 prompt after about 30 seconds, then either the SmartServer is not configured for repeating (dynamic or static) or the U70 is not assigned to lon0. 

Exiting the DCI Console

To exit the DCI console, use the following command:

shexit

Once you issue the shexit command, you may see unknown command. This message will clear in a few seconds.

Determining the Device State and Repeating Chains

You can use the dcxshowdevices command to determine the device state and current agent, and then manually figure out the repeater path for each device.

dcxshowdevices
DC 1> dcxshowdevices
                           -- Cur Agent- Comm
    Device   State  Hops  Handle   Freq Pend  R.Flags  Sub/Nod   Neuron ID
         2       Up    1         1  Sec  IDR   0x81    1/12   00D0710D006B
         3       Up    1         1  Pri  IDR   0xe1    1/13   0503A0DCCC00
         6       Up    1         1  Pri  IDR   0xe1    1/14   0503A0DB4F00
         7       Up    1         1  Pri  IDR   0xe1    1/15   0503A0DABC00
         8       Up    1         1  Pri  IDR   0xe1    1/16   0503A0E36800
         9       Up    3        10  Pri  IDR   0xe1    1/17   0503A0DEC400
        10       Up    2         8  Pri  IDR   0xe1    1/18   0503A0EFA900
        11 ConfDown    1         1  Pri  IDR   0xa1    1/19   0503A0E98A00
 dcxShowDevices: 7 devices qualified.

The device number is only used for other DCI commands.The neuron ID (the device UID in the CMS) correlates the DCI device name to a specific device in the CMS. Handle is the agent device number (a handle of 1 indicates the SmartServer, which means the SmartServer can communicate directly to this device). Devices with a neuron ID starting with 00D710D are the built-in devices in the SmartServer; they can be ignored. 

A hop of 1 means that the SmartServer can communicate directly to the destination device.

Repeater paths for power line devices in the example above (neuron IDs: power line devices start with 05, ignore the SmartServer 00D0 internal devices):

SmartServer → device 2 (ignored as this is an internal device)
SmartServer → device 3
SmartServer → device 6
SmartServer → device 7
SmartServer → device 8
SmartServer → device 8 → device 10 → device 9 
SmartServer → device 8 → device 10 
SmartServer → device 11

To determine the repeater path you will need to work backwards by looking at the destination device first as described in the example below.

  1. Figure out the repeating path for device 9 (see the dcxshowdevices example above).
    1. There are 3 hops, which means that there are 2 repeaters number of repeaters = (hops - 1)

  2. Find its current agent, which is device 10.

  3. Look at device 10 current agent, and then find device 8 current agent. S
    1. Since device 8 current agent is 1 indicating the SmartServer, you are done.

  4. Reverse the order to determine the repeater chain.

device 9 ← device 10 ← device 8 ← SmartServer

Repeater path for device 9: SmartServer → device 8 → device 10 → device 9 

If a device that is used as a repeater does not communicate, then the SmartServer will select another repeater path the devices that are affected by the down device.

Determining the Channel Communication Signal Strength and Margin

You can determining channel communication signal strength and margin during a 24-hour period. Once you have determined the device ID of a device (dcxshowdevices), you can then determine its agents signal strength and margin using the dcxp device<device ID>, Agent * command. The output of this command is the agent log and margin. The data is a hexadecimal string; therefore, use the Agent Detail application to decode the signal strength and margin. You can download and save this application in a folder from http://downloads.echelon.com/support/downloads/software/smartserver/iot/AgentDetail.exe.

Viewing the Quality of a Repeater Chain

Run the command shown below for the destination device and each agent in the repeater chain. Because this is a manual process, it is necessary to identify a list of devices that have communication problems and only get agent data for those devices and the agents used for those devices.

dcxp device.<device ID>, Agent *

Getting the Signal Strength and Margin for All Devices

To get the signal strength and margin for all devices, use the following command:

dcxp device.*, Agent *

Example

The following example shows how to get the agent information for device 3.

  1. Get the device number using the dcxshowdevices (see example above). For this example, device 3 is being used.

  2. Determine the repeater path for the device.
        SmartServer → device 3

  3. Get the agent log and margin information.

    Example: getting signal strength and margin
    DC 1> dcxp device.3, Agent *    
    Agent Primary Frequency      = true
         "Agent Log                    = 0B0000004FF0000000000A0000004FF000000000070000004FF000000000000000004FF000000000090000004FF000000000080000004FF000000000060000004FF000000000000000004FF000000000000000004FF000000000010000004FF000..00"
         "Agent Margin                 = FF0B0000000000FF00000000000400000000000000000000004400000000000000000000007700000000000000000000004400000000000000000000004400000000000000000000004400000000000000000000004400000000000000000000000400000000000000000000004400..00"
  4.  Determine the agent signal strength using the agent log (handle in each entry refers to device Number in dcxshowdevices).

  5. Open a widows command prompt in the directory where you saved the agentdetail.exe file.

  6. Enter .\AgentDetail.exe" add a space, copy the complete agent log string and paste it onto the same command line, and press the enter key. 

    Agent signal strength decoding
    C:\Temp\PL Repeating>.\AgentDetail.exe "Agent Log                    = 0B0000004FF0000000000A0000004FF000000000070000004FF000000000000000004FF000000000090000004FF000000000080000004FF000000000060000004FF000000000000000004FF000000000000000004FF000000000010000004FF000..00"
             Agent Log:
             Entry 1:
               Handle: 11
               Primary Margin:  +6dB
               Primary Strength:  +6dB
               Secondary Margin: +39dB
               Secondary Strength: -84dB
             Entry 2:
               Handle: 10
               Primary Margin:  +6dB
               Primary Strength:  +6dB
               Secondary Margin: +39dB
               Secondary Strength: -84dB
             Entry 3:
               Unused
             Entry 4:
               Handle: 9
               Primary Margin:  +6dB
               Primary Strength:  +6dB
               Secondary Margin: +39dB
               Secondary Strength: -84dB
             :
             Last Clear Time: Mon May 19 05:03:12 2008 
  7. Determine the agent signal strength using the agent log (handle in each entry refers to device Number in dcxshowdevices).

    1. Open a widows command prompt int the directory where you saved the agentdetail.exe file.

    2. Enter .\AgentDetail.exe" add a space, copy the complete agent log string and paste it onto the same command line, and press the enter key. 

      Agent margin decoding
      C:\Temp\PL Repeating>.\AgentDetail.exe  "Agent Margin                 = FF0B0000000000FF00000000000400000000000000000000004400000000000000000000007700000000000000000000004400000000000000000000004400000000000000000000004400000000000000000000004400000000000000000000000400000000000000000000004400..00"
               Agent Margin:
               Entry 1:
                 00:00-02:00 : Primary Margin:+39dB Secondary Margin:+39dB
                 02:00-04:00 : Primary Margin: -6dB Secondary Margin:+27dB
                 04:00-06:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 06:00-08:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 08:00-10:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 10:00-12:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 12:00-14:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 14:00-16:00 : Primary Margin:+39dB Secondary Margin:+39dB
                 16:00-18:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 18:00-20:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 20:00-22:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 22:00-24:00 : Primary Margin: -6dB Secondary Margin: -6dB
               Entry 2:
                 00:00-02:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 02:00-04:00 : Primary Margin: -6dB Secondary Margin: +6dB
                 04:00-06:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 06:00-08:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 08:00-10:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 10:00-12:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 12:00-14:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 14:00-16:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 16:00-18:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 18:00-20:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 20:00-22:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 22:00-24:00 : Primary Margin: -6dB Secondary Margin: -6dB
               Entry 3:
                 00:00-02:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 02:00-04:00 : Primary Margin: +6dB Secondary Margin: +6dB
                 04:00-06:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 06:00-08:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 08:00-10:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 10:00-12:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 12:00-14:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 14:00-16:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 16:00-18:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 18:00-20:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 20:00-22:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 22:00-24:00 : Primary Margin: -6dB Secondary Margin: -6dB
               Entry 4:
                 00:00-02:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 02:00-04:00 : Primary Margin:+15dB Secondary Margin:+15dB
                 04:00-06:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 06:00-08:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 08:00-10:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 10:00-12:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 12:00-14:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 14:00-16:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 16:00-18:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 18:00-20:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 20:00-22:00 : Primary Margin: -6dB Secondary Margin: -6dB
                 22:00-24:00 : Primary Margin: -6dB Secondary Margin: -6dB
               :
  8. Repeat steps 4 and 5 for each agent in the repeating chain.

In general, the SmartServer should continuously configure repeater chains (dynamic repeating).

Lab Testing – Using Manually Created Repeating Chains

In a lab environment, communication to devices is good enough that repeaters are not necessary. To test repeating in this environment, first configure the SmartServer for static proxy chains, and then manually create repeating chains for the devices. The SmartServer will use the configured repeating chains to communicate to the devices. Follow the steps below.

  1. Set the Power Line Communications to repeating On (with Static Proxy Chains).

  2. Set the device agent and current agent to the repeater you want to use with the following two DCI commands.
    1. Do this step for all devices that are using repeaters.
    2. Work from the SmartServer to the destination device
    3. Only setup the agent and current agent once per device.

dcxp d.<dci handle> current agent <agent handle>
dcxp d.<dci handle> agent <agent handle>

Example

To setup up a repeater chain for device 7 and device 15 having the following repeater paths, refer to the example below.

  • SmartServer → device 5 → device 6 → device 7 
  • SmartServer → device 5 → device 14 → device 15

Example: setting up a repeating chain for device 7
dcxp d.5 current agent 1
dcxp d.5 agent 1

dcxp d.6 current agent 5
dcxp d.6 agent 5

dcxp d.7 current agent 6
dcxp d.7 agent 6

dcxp d.14 current agent 5
dcxp d.14 agent 5

dcxp d.15 current agent 14
dcxp d.15 agent 14

Device 5 is used as a repeater in both repeater paths; however, only have assign the agent and current agent to device 5 once.