Перейти к основному контенту

Analysis of RiCoder container logs

To analyze the situation in which events do not reach the monitoring station, you need to look at the logs of the following containers:

1. Where are the container logs?

1.1. On Docker Desktop

1. Open Docker Desktop.

2. Go to the Containers tab.

3. Select the desired container.

4. Select the Logs tab.

Docker Screen: Logs Tab

Docker_container logs .png

#### **1.2. In the console (for Linux / Windows)**

1. In the console, enter the command to view the logs of a specific container.

docker logs <container name>

where is the name of the desired container:

  • chop_deploy-surgard-1
  • chop_deploy-eqgateway-1

The command will return all available logs starting from the moment the container was launched.

If the container is stopped, its logs remain available - they are not automatically deleted when stopped.

Useful commands for convenient viewing of logs:

# View logs in real time
docker logs -f <container_name>

2. Log structure

Example:

2025-12-11T10:52:38.412Z DEBUG [eqserver] (eqgateway/client_service.go:61) try to find the client in the backend service: id:212 {"addr": "217.66.157.83:30962"}

Here:

  • Date and time in ISO 8601 format (2025-12-11T10:52:38.412Z), Z - zero time zone, .412Z - milliseconds;
  • Severity level: ERROR, WARN, INFO, DEBUG;
  • Log source: "[eqserver] (eqgateway/client_service.go:61)" - eqgqteway container and the corresponding processing function;
  • Error messageor informational message;
  • Context: "{“adr”:“217.66.157.83:26127”}" - connection address.

The time in the logs is indicated in Greenwich Mean Time - UTC+0.

Container logs are written frequently for each event associated with the connected control centers (Ri-HUB) to RiCoder. To accurately identify messages related to a specific device, use the ClientID that is assigned to each Ri-HUB.

Where can I see the Ri-HUB identifier (ClientID) in the interface?

ClientID - Ri-HUB identifier.

1. In the RiCoder web panel, open the section Objects.

2. Option 1. Column Controller in the list of houses displays ClientID.

3. Option 2. In the address bar of the browser at the end of the line there is a number - ClientID.

RiCoder Screen: Objects

RiCoder_ClientID.png

### **3. Container logs eqgateway-1**

This section describes typical operating scenarios for the eqgateway-1 container, which is responsible for receiving and broadcasting events from the Ri-HUB control center to the RiCoder software. Normal operating modes and possible communication failures are described, indicating the reasons, statuses in the interface and system behavior during recovery.

3.1. Receiving test messages from Ri-HUB

Container eqgateway-1 successfully receives a test message from Ri-HUB, the connection between Ri-HUB and RiCoder is established, the status of Ri-HUB in the RiCoder web panel is - Active. Normal operation of the communication autotest between Ri-HUB and RiCoder.

Table with transcript of log text

**№** **Time** **Text of the log line** **What does it mean?**
1 2025-12-11T10:51:38 PACKET RECEIVED packetID: 1731 ClientID: 170 **The container received some kind of package from Ri-HUB (170).**

packetID - package identifier, generated in Ri-HUB

ClientID - Ri-HUB identifier. View ClientID in the interface.

2 2025-12-11T10:51:38 Resetting the timer **The communication monitoring timer between Ri-HUB (170) and RiCoder is reset immediately.**

The timer is reset whenever any packet arrives (PacketType: 0 or 2).

The timer is reset for a specific connection. Each Channel has a separate timer.

Timer operation

1. A packet arrived with PacketType: 0 -> timer reset

2. A packet arrived with PacketType: 2 -> timer reset

3. No packets with PacketType: 0 or 2 in the set period -> timer reset -> status in UI “Not active”

3 2025-12-11T10:51:38.788Z Packet arrived ClientID: 170, PacketType: 0, Channel: 2 **The container identified that a test message was received from Ri-HUB (170) via the GPS channel.**

PacketType

0 - communication check

2 - message, any other than communication check

There are no other values, either 0 or 2.

Channel

2 - SIM

3 – WI-FI / Ethernet

There are no other values, either 2 or 3.

Screenshot of the log

logs eqgateway_package arrived.png

3.2. Establishing/updating connection with Ri-HUB

The container successfully establishes a connection to Ri-HUB, the state of Ri-HUB in the RiCoder web panel is Active. The connection is registered, Ri-HUB receives the right to exchange messages with RiCoder. Normal operation when connecting.

Table with transcript of log text

Authentication messages are output simultaneously and are displayed in a group of 4 lines.

**№** **Time** **Text of the log line** **What does it mean?**
1 2025-12-11T10:52:38.412Z PACKET RECEIVED packet ID: 873 ClientID: 212 **The container received some kind of package from Ri-HUB (212).**

packetID - package identifier, generated in Ri-HUB

ClientID - Ri-HUB identifier. View ClientID in the interface.

The package from Ri-HUB has been delivered.

2 2025-12-11T10:52:38.412Z try to find the client in the backend service: id:212 **The cotainer function tries to find a record of Ri-HUB with id 212.** **This is the start of the session installation/update process.**
3 2025-12-11T10:52:38.421Z save or update client in active clients: id:212 **Connection successfully established and registered.**
4 2025-12-11T10:52:38.421Z authentication: client\_id:212, channel:map\[\] **Start the authentication procedure.**

After successful authentication, Ri-HUB is authorized to send/receive messages.

channel:map[] - the communication channel has not yet been assigned.

5 2025-12-11T10:52:38.421Z successful client authentication Ri-HUB authentication completed successfully.

If authentication fails and the connection is not established, then after the 4th line there will be no messages from Ri-HUB (id: 212) to the SIM channel (2). It is possible that messages will arrive via Wi-Fi/Ethernet channel (3) if channels have been switched in Ri-HUB.

Screenshot of the log

logs eqgateway_authentication.png

3.3. Ri-HUB hasn't been in touch for a long time

Container eqgateway-1 detects a lack of communication with Ri-HUB: the communication control timeout has been exceeded, Ri-HUB has not been in touch for a long time. The status of Ri-HUB in the RiCoder web panel is not Active. The connection is broken, the SIM channel is transferred to the internal "offline" state.

  • Timeout for sending break event (7.0.1)
  • Timeout for sending recovery event (7.0.0)

View timeout settings in the interface.

Table with transcript of log text

**№** **Time** **Text of the log line** **What does it mean?**
1 2025-12-11T10:51:38 Packet arrived ClientID: 170, PacketType: 0, Channel: 2 **The container received the last packet with a test message from Ri-HUB (170) via the SIM channel.**

Control of connection availability.

2 2025-12-11T10:52:38 Sending a disconnect **Timer triggered - timeout time exceeded. Packets with PacketType: 0 did not arrive for more than 1 minute.**

The timeout for sending the break event (7.0.1) in the UI is set to 60 seconds for Ri-HUB (170).

The status is sent to the eqgateway container function.

3 2025-12-11T10:52:38 Change the status to offline **Changing the status in the eqgateway container function.**
4 2025-12-11T10:52:38 Channel 0x2 of client 170 is temporary offline Push notifications were sent to the MP and to the RiCoder web panel that Ri-HUB is offline via the SIM channel.
5 2025-12-11T10:52:38 setting client 170 channel 2 status to offline Updating the internal status of channel 2 (SIM) of Ri-HUB (id: 170) to “offline” in the connection management function.

Screenshot of logs

eqgateway_hub offline.png

3.4. Failed to establish connection with Ri-HUB via one of the communication channels

The eqgateway-1 container received a packet from Ri-HUB via the SIM channel, but the connection was terminated abnormally: the remote side reset the TCP connection. The Ri-HUB status in the RiCoder web panel may temporarily change to not Active, but this is not a system error - the connection may be restored automatically.

Table with transcript of log text via SIM channel

**№** **Time** **Text of the log line** **What does it mean?**
1 2025-12-11 10:52:51 PACKET RECEIVED packetID: 875 ClientID: 212 **The container received some kind of package from Ri-HUB (212).**
2 2025-12-11 10:53:01 Resetting the timer **The communication monitoring timer between Ri-HUB (212) and RiCoder is reset immediately.**
3 2025-12-11 10:53:01 Packet arrived ClientID: 212, PacketType: 0, Channel: 2 **The container identified that a test message was received from Ri-HUB (212) via the channel** SIM.
4 2025-12-11 10:53:01 unpack err: read tcp 172.18.0.7:10003 -> 217.66.157.83:26127: read connection reset by peer **Disconnection of remote connection.**

The remote side (IP: 217.66.157.83) abnormally closed the TCP connection at the moment when the function inside the eqgateway container (IP 172.18.0.7) ptried to read data from a previously established connection.

5 2025-12-11 10:53:01 network error while reading (expected), by client: 212 err: read tcp 172.18.0.7:10003 -> 217.66.157.83:26127: read connection reset by peer Information message from the container about the connection being broken. This is not RiCoder's fault.

Sometimes the connection may be broken, but then restored.

If the connection can be restored or reconnected during the communication control period, this will not affect the operation of the broadcast in any way.

Screenshot of logs

logs eqgateway_problem with channel_output.png

3.5. Switching communication channels from SIM to Wi-Fi

Container eqgateway-1 records the Ri-HUB switching from the SIM channel to Wi-Fi - packets arrive on both channels, the timers are reset. The state of Ri-HUB in the RiCoder web panel remains - Active. The container correctly handles the change of communication channel.

Table with transcript of log text

**№** **Time** **Text of the log line** **What does it mean?** **Channel**
1 2025-12-11 10:52:05 PACKET RECEIVED packetID: 867 ClientID: 212 **The container received some kind of package from Ri-HUB (212).** SIM
2 2025-12-11 10:52:05 Resetting the timer **The communication monitoring timer between Ri-HUB (212) and RiCoder is reset.** SIM
3 2025-12-11 10:52:05 Packet arrived ClientID: 212, PacketType: 0, Channel: 2 **The container identified that a test message was received from Ri-HUB (212) via the SIM channel.** SIM
**Connection occurred in Ri-HUB** **to Wi-Fi and disconnection via SIM channel.**
4 2025-12-11 10:52:27 PACKET RECEIVED packetID: 867 ClientID: 212 **The container received some kind of package from Ri-HUB (212).** Wi-Fi
5 2025-12-11 10:53:27.398Z Resetting the timer **The communication monitoring timer between Ri-HUB (212) and RiCoder is reset immediately.** Wi-Fi
6 2025-12-11 10:53:27.399Z Packet arrived ClientID: 212, PacketType: 0, Channel: 2 **The container identified that a test message was received from Ri-HUB (212) via the Wi-Fi channel**. Wi-Fi
7 2025-12-11 10:52:51 PACKET RECEIVED packetID: 875 ClientID: 212 **The container received some kind of package from Ri-HUB (212).** SIM
8 2025-12-11 10:52:51.317Z Resetting the timer **The communication monitoring timer between Ri-HUB (212) and RiCoder is reset immediately.** SIM
9 2025-12-11 10:52:51 Packet arrived ClientID: 212, PacketType: 0, Channel: 2 **The container identified that a test message was received from Ri-HUB (212) via the SIM channel.** SIM
10 2025-12-11 10:53:01.377Z unpack err: read tcp 172.18.0.7:10003 -> 217.66.157.83:26127: read connection reset by peer **Disconnection of remote connection.** SIM
11 2025-12-11 10:53:01.378Z network error while reading (expected), by client: 212 err: read tcp 172.18.0.7:10003 -> 217.66.157.83:26127: read connection reset by peer **Information message from the container about the disconnection of the connection for Ri-HUB (212) via the SIM channel.** SIM

Screenshot of logs

logs eqgateway_problem with channel 2_3.png

3.6. Receiving a message with data from Ri-HUB

The eqgateway-1 container successfully receives a data packet from Ri-HUB via one of the communication channels, the connection is active, the status in the RiCoder web panel is Active. The packet is decrypted and transferred to the processing queue for further broadcast to the surgard-1 container. Normal operation when transmitting events from Ri-HUB.

Table with transcript of log text

**№** **Time** **Text of the log line** **What does it mean?**
1 2025-12-11 10:53:01 PACKET RECEIVED packetID: 1073741918 ClientID: 170 **packetID** - package identifier, generated in Ri-HUB

ClientID - Ri-HUB identifier. View ClientID in the interface.

The package from Ri-HUB has been delivered.

2 2025-12-11 10:53:01 Resetting the timer The communication monitoring timer between Ri-HUB (212) and RiCoder is reset immediately.
3 2025-12-11 10:53:01 Packet arrived ClientID: 170, PacketType: 2, Channel: 3 A packet arrived via the wi-fi channel.
4 2025-12-11 10:53:01 New data message. Packet ID: 1073741918, magic: 228. Message: rpcprotocol.MessageEventECP{ClientID:0x7397, Time: 0x693aa28c, Code:0x70101, Address:0x0, SubAddress:0x0, Channel:0x0, Params:\[\]uint8(nil)} Converting a package from binary to text format.

MessageEventECP - generated in Ri-HUB

5 2025-12-11 10:53:01 Send the package with messageID: 29591 The packet is decrypted in eqgatteway and sent to the message queue container rabbitmq-1

Screenshot of logs

logs eqgateway_package with Message ID.png

3.7. Analysis of event loss by Message ID

Message ID is the message sequence number assigned by Ri-HUB when it was sent. Each message from the device has its own unique identifier, which allows you to track the transmission sequence.

Using Message ID you can:

  • Determine which messages did not reach the eqgateway-1 container. For example, if there are gaps in the sequence.
  • Identify delays or data loss during the transmission phase.

Example:

Messages with Message ID: 100, 101, then 104 were received.
This means that messages 102 and 103 were not delivered.

This situation may arise if:

  • Messages were delayed in the queue inside Ri-HUB;
  • Lost during transmission between the device and the eqgateway container;
  • Were delayed in the processing queue inside the container.

4. Container logs surgard-1

4.1. Normal operation

Container surgard-1 successfully receives and processes a message from message queue (rabbitmq-1 container), encrypts and sends to the monitoring station. The connection between RiCoder and the monitoring station is confirmed, the status of the monitoring station server in the RiCoder web panel is Connection established.

Conditions for normal operation of event broadcasting:

1. Test messages are sent from the monitoring station server at specified intervals. There are no long gaps between messages - beyond the set time. Points 1 and 7 in the table below.

RiCoder screen: Broadcasts - communication control period value

RiCoder_ping monitoring station.png

2\. A sequence of actions was performed almost simultaneously. Items 2 - 6 in the table below.

Receiving a message from eqgateway -> RiDom/Ademco encoding -> sending to the monitoring station -> delivery notification.

Table with transcript of normal operation logs
**№** **Time** **Text of the log line** **What does it mean?**
1 2025-12-11T11:33:34.30.658Z ping id 53 translation 80.246.243.36:14403 passed! Time: 2025-12-11 11:34:30 Monitoring the presence of communication with the monitoring station.

id - broadcast number

translation - external IP address and port of the monitoring station server

2 2025-12-11T11:33:35.01.866Z Message received from MessageID: 29593 Received messages from eqgateway.

MessageID - which message has left the hub since the first connection.

3 2025-12-11T11:33:35.01.866Z Message processing begins Started processing message for client 170, event: 67840, packetID: 29593 RiDom -> Ademco code matching process.
4 2025-12-11T11:33:35.01.877Z Message processed Parcel details received - consumerClientID: 53, clientID: 170, event: 67840, packetID: 29593, name: Control center building is closed The code matching process has completed successfully.

packetID - package left from RiHUB

clientID - RiHUB number

consumerClientID - broadcast number

5 2025-12-11T11:33:35.02.156Z Sending a message Sending event by timer. Buffer length: 1 {"consumerClientID": 53, "address": "80.246.243.36:14403"} Sending a message to the monitoring station.

address - external IP address and port of the monitoring station server

6 2025-12-11T11:33:35.02.161Z Message delivered! Message delivered! 21 bytes sent, 1 bytes received, answer from ARManswer: \[6\] {"consumerClientID": 53, "address": "80.246.243.36:14403"} The message was delivered successfully.

XX bytes send - XX bytes sent

1 bytes received - response received

7 2025-12-11T11:33:35.46.657Z ping id 53 translation 80.246.243.36:14403 passed! Time: 2025-12-11 11:35:46 Monitoring the presence of communication with the monitoring station after 46 seconds.

Screenshot of the log

logs surgard_normal operation.png

4.2. Restoring connection with the monitoring station

Container surgard-1 successfully reestablishes connection with by the monitoring station server after it is turned off - all accumulated events from the queue are transmitted. The status of the connection to the monitoring station server in the RiCoder web panel is Connection established. Broadcasting of events has resumed without loss.

Conditions for correct restoration of event broadcasting:
  1. A message was received stating that the connection to the monitoring station server has been restored
  2. All undelivered events accumulated during the unavailability of the monitoring station server were received at the monitoring station workstation.
  3. Events from eqgateway are transmitted through the queue (rabbitmq-chop-1 container) in normal mode.
  4. Ping (period of monitoring the availability of communication) of the monitoring station server is performed at specified intervals.
How ​​does recovery work?

1. A message appears in the log stating that the connection to the monitoring station server has been restored:

INFO ... Surgard connection established {"consumerClientID": 53, "address": "80.246.243.36:14403"}

2. Events from the table Troublesend begin to occur, which could not reach the monitoring station server when it was unavailable.

**Troublesend** – table of undelivered events to the monitoring station. If there is no connection to the monitoring station server, but events were received from RiHUB to the eqgateway-1 container, processed and transferred to the surgard-1 container, but were not transferred to the monitoring station, then the events are recorded in the table **Troublesend**.

3. After all events from the Troublesend table are transmitted, events from the queue (rabbitmq-chop-1 container) received from the Ri-HUB(s) are transmitted. Similar to point 2 Situation 1

4. The normal broadcast process has been restored. After sending all events in the queue, communication control messages are sent to the log.

ping id 53 translation 80.246.243.36:14403 passed! Time: 2025-12-11 11:34:30

Screenshot of the log

logs surgard_troublesend.png

Table with decryption of the log text after the connection is restored
**№** **Sign, RU** **What does it mean?**
1 Surgard connection established {"consumerClientID": 53, "address": "80.246.243.36:14403"} The connection to the monitoring station server has been restored.

address - external IP address and port of the monitoring station server

consumerClientID - broadcast number

2 Message delivered! Message delivered! 21 bytes sent, 1 bytes received, answer from ARManswer: \[6\] {"consumerClientID": 54, "address": "80.246.243.36:14403"} The message was delivered successfully.

XX bytes send - XX bytes sent

1 bytes received - response received

3 Message processing begins Started processing message for client 170, event: 459009, packetID: FromTS {"consumerClientID": 53, "address": "80.246.243.36:14403"} **client** - RiHUB number

event - ?

packetID: From TS - a sign that messages were transferred to the workstation from the table Troublesend.

4 Message processed Parcel details received - consumerClientID: 53, clientID: 170, event: 459009, packetID: FromTS {"consumerClientID": 53, "address": "80.246.243.36:14403"} The code matching process has completed successfully.

packetID - package left from RiHUB

clientID - RiHUB number

consumerClientID - broadcast number

5 Sending a message Sending event by timer. Buffer length: 1 {"consumerClientID": 53, "address": "80.246.243.36:14403"} Sending a message to the monitoring station.

address - external IP address and port of the monitoring station server

6 Message delivered! Message delivered! 21 bytes sent, 1 bytes received, answer from ARManswer: \[6\] {"consumerClientID": 53, "address": "80.246.243.36:14403"} The message was delivered successfully.

XX bytes send - XX bytes sent

1 bytes received - response received

The logs do not contain information that a specific message was delivered, for example with the number event: 459009. You can understand that all messages were delivered only by the sum of the messages. If the sum of processed events matches the sum of delivered events, then the entire troublesend table was sent. Do you need detailed information in the logs about which message id was delivered?

client 170 on line 3 is slightly mismatched with ClientID. It appears to be a different entity.

If RiCoder is unavailable (UI, some specific container, all containers) instead of the sign From TS, there will be a sign From RiDom. Events from Ri-HUB will be recorded in RiCloud and will not be lost. A very rare situation. Timur

logs surgard_message queue.png

A sign of correct broadcast operation - message numbers **MessageID** from a specific RiHUB follow one after another. For example: MessageID: 29593, 29594, 29595, 29596, you can see that messages arrive one by one - normal operation.

4.3. No connection to the monitoring station

The surgard-1 container cannot send data to the monitoring station server - the connection is broken, ERROR level errors appear in the logs. Connection status with the monitoring station server in the RiCoder web panel - Connection error, events are not broadcast.

surgard_error_logs_truncated.png

Description of error messages
**Text errors** **What does it mean?** **Reason**
**Cannot send event TCP packet: ... write: broken pipe:** An unsuccessful attempt to write data to the TCP connection established with the monitoring station server. The monitoring station server is turned off, frozen, overloaded.
**sending ping packet error:** An attempt was made to send a service packet for pinging, but it was discovered that the server had already closed the connection. Requires reconnection. Application layer error. The dispatch of the service packet is initiated by the container component.

Command ping is not an ICMP ping.

**Failed to retry initialize consumer client (ХХХ):** Internal container component (**consumer client**) could not re-establish connection with the monitoring station even after several attempts. Application layer error.
Troubleshooting

If any error described in the table above or all at once occurs, then you must:

1. Check the availability of the remote monitoring station server using commands in the console:

# Enter the container
docker exec -it <container_name> sh

# Try to connect to the port (!not ping)
nc -zv X.X.X.X XXXXX
# or
telnet X.X.X.X XXXXX

2. Find out from the monitoring station server support service whether the server is stable and does not terminate long connections.

3. Wait for the connection to the monitoring station server to be established.

When the connection to the monitoring station is established, a message is displayed in the log and the process of transmitting untransmitted events from the Troublesend table is started. Read more...

INFO ... Surgard connection established {"consumerClientID": XX, "address": "X.X.X.X:XXXXX"}

If the monitoring station server is working correctly, you need to check the network settings in the RiCoder web panel for the monitoring station server. More details in article.

Update date: 12/23/2025