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
$ /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.
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.
- Figure out the repeating path for device 9 (see the dcxshowdevices example above).
- There are 3 hops, which means that there are 2 repeaters number of repeaters = (hops - 1).
- There are 3 hops, which means that there are 2 repeaters number of repeaters = (hops - 1).
- Find its current agent, which is device 10.
- Look at device 10 current agent, and then find device 8 current agent. S
- Since device 8 current agent is 1 indicating the SmartServer, you are done.
- Since device 8 current agent is 1 indicating the SmartServer, you are done.
- 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.
- Get the device number using the dcxshowdevices (see example above). For this example, device 3 is being used.
- Determine the repeater path for the device.
SmartServer → device 3 Get the agent log and margin information.
Example: getting signal strength and marginDC 1> dcxp device.3, Agent * Agent Primary Frequency = true "Agent Log = 0B0000004FF0000000000A0000004FF000000000070000004FF000000000000000004FF000000000090000004FF000000000080000004FF000000000060000004FF000000000000000004FF000000000000000004FF000000000010000004FF000..00" "Agent Margin = FF0B0000000000FF00000000000400000000000000000000004400000000000000000000007700000000000000000000004400000000000000000000004400000000000000000000004400000000000000000000004400000000000000000000000400000000000000000000004400..00"
Determine the agent signal strength using the agent log (handle in each entry refers to device Number in dcxshowdevices).
Open a widows command prompt in the directory where you saved the agentdetail.exe file.
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 decodingC:\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
Determine the agent signal strength using the agent log (handle in each entry refers to device Number in dcxshowdevices).
Open a widows command prompt int the directory where you saved the agentdetail.exe file.
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 decodingC:\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 :
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.
- Set the Power Line Communications to repeating On (with Static Proxy Chains).
- Set the device agent and current agent to the repeater you want to use with the following two DCI commands.
- Do this step for all devices that are using repeaters.
- Work from the SmartServer to the destination device
- 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
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.