Assistance Needed: Creating Custom Graphs in Overview Tab on GenieACS v1.2.9

Hello GenieACS Community,

I’m working with GenieACS v1.2.9+20220822165235 and I’m looking to enhance the Overview tab by adding some custom graphs. My goal is to better visualize user-related data and device metrics directly from the dashboard. However, I’ve been struggling to find documentation or examples on how to implement custom graphs in this specific version of GenieACS.

Could anyone provide guidance or an example on how to add a new graph to the Overview tab? Specifically, I’m interested in creating visualizations for the following scenarios:

  1. A graph that distinguishes between devices based on the number of connected devices in their LAN: one category for routers with more than 5 connected devices, and another for those with 5 or fewer.

  2. Another graph that compares devices based on their uptime, categorizing them into devices with more than 24 hours of uptime versus those with less than 24 hours.

Any advice, code snippets, or pointers to relevant documentation would be greatly appreciated. I believe these enhancements could provide significant insights into network status and device behavior at a glance.

Edit
I’d like to add a clarification regarding the issue I’m facing. The challenge arises when the device is not directly connected to the ACS server, meaning the ACS cannot ping the device. For instance, when I execute the command curl -i 'http://localhost:7557/devices/84D81B-IGD-84D81B95C47C/tasks?timeout=3000&connection_request' -X POST --data '{"name": "refreshObject", "objectName": "InternetGatewayDevice.LANDevice.1"}' , I can retrieve the values successfully. However, if I do not perform this query, the response indicates that the device is offline. This complicates the data collection process for my intended custom graphs, especially for devices not maintaining a continuous connection with the ACS server. Any insights or workarounds to effectively gather data from such devices would be highly valuable.

Thank you in advance for your assistance!

You will obviously need to customize this for your needs. But this is a custom graph I created.

Screenshot 2024-03-07 at 2.21.15 PM

access:
  label: '"Access"'
  slices:
    1_ethernet:
      color: "'#44b3c2'"
      filter: VirtualParameters.WANAccessType = "Ethernet"
      label: "'Ethernet'"
    2_dsl:
      color: "'#c58744'"
      filter: VirtualParameters.WANAccessType = "DSL"
      label: '"DSL"'

Thank you very much, the information you shared was very useful. However, I’m encountering an issue where, when a device is behind a NAT and doesn’t respond to pings from the ACS, it is reported correctly but I can’t send it parameters. When I try to do so via API, the parameters I send are only loaded when the device reports itself.
How can I repeat this behavior on the web?

Queuing of commands in the web GUI was removed in v1.2. The proper way to deal with devices behind NAT is STUN.

thank you! I understand now.