From b931459ea1cd6bf367df5121ce7ea9e04b41662e Mon Sep 17 00:00:00 2001
From: Pierre JACQUOT <pierre.jacquot@inria.fr>
Date: Tue, 6 Sep 2022 17:43:44 +0200
Subject: [PATCH] [pdus-lyon] Add pdu_outlet_power_watt metric

---
 .../lyon/clusters/gemini/nodes/gemini-1.json  |  8 +-
 .../lyon/clusters/gemini/nodes/gemini-2.json  |  8 +-
 .../lyon/clusters/pyxis/nodes/pyxis-1.json    |  2 +-
 .../lyon/clusters/pyxis/nodes/pyxis-2.json    |  2 +-
 .../lyon/clusters/pyxis/nodes/pyxis-3.json    |  2 +-
 .../lyon/clusters/pyxis/nodes/pyxis-4.json    |  2 +-
 .../sites/lyon/clusters/pyxis/pyxis.json      |  8 ++
 .../sagittaire/nodes/sagittaire-11.json       |  2 +-
 .../sagittaire/nodes/sagittaire-12.json       |  2 +-
 .../sagittaire/nodes/sagittaire-13.json       |  2 +-
 .../sagittaire/nodes/sagittaire-14.json       |  2 +-
 .../sagittaire/nodes/sagittaire-15.json       |  2 +-
 .../sagittaire/nodes/sagittaire-16.json       |  2 +-
 .../sagittaire/nodes/sagittaire-2.json        |  2 +-
 .../sagittaire/nodes/sagittaire-3.json        |  2 +-
 .../sagittaire/nodes/sagittaire-4.json        |  2 +-
 .../sagittaire/nodes/sagittaire-5.json        |  2 +-
 .../lyon/clusters/sagittaire/sagittaire.json  |  8 ++
 .../lyon/clusters/sirius/nodes/sirius-1.json  | 12 +--
 data/grid5000/sites/lyon/pdus/pdu3a.json      | 49 +++++++----
 data/grid5000/sites/lyon/pdus/pdu3b.json      | 47 ++++++----
 input/grid5000/sites/lyon/pdus.yaml           | 88 +++++++++++--------
 22 files changed, 154 insertions(+), 102 deletions(-)

diff --git a/data/grid5000/sites/lyon/clusters/gemini/nodes/gemini-1.json b/data/grid5000/sites/lyon/clusters/gemini/nodes/gemini-1.json
index 2d76939e189..f8f97ff46ed 100644
--- a/data/grid5000/sites/lyon/clusters/gemini/nodes/gemini-1.json
+++ b/data/grid5000/sites/lyon/clusters/gemini/nodes/gemini-1.json
@@ -370,19 +370,19 @@
   },
   "pdu": [
     {
-      "port": "b5",
+      "port": 13,
       "uid": "pdu3a"
     },
     {
-      "port": "c5",
+      "port": 21,
       "uid": "pdu3a"
     },
     {
-      "port": "b5",
+      "port": 13,
       "uid": "pdu3b"
     },
     {
-      "port": "c5",
+      "port": 21,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/gemini/nodes/gemini-2.json b/data/grid5000/sites/lyon/clusters/gemini/nodes/gemini-2.json
index e9449af18b0..15eacb851fe 100644
--- a/data/grid5000/sites/lyon/clusters/gemini/nodes/gemini-2.json
+++ b/data/grid5000/sites/lyon/clusters/gemini/nodes/gemini-2.json
@@ -370,19 +370,19 @@
   },
   "pdu": [
     {
-      "port": "b6",
+      "port": 14,
       "uid": "pdu3a"
     },
     {
-      "port": "c1",
+      "port": 17,
       "uid": "pdu3a"
     },
     {
-      "port": "b6",
+      "port": 14,
       "uid": "pdu3b"
     },
     {
-      "port": "c4",
+      "port": 20,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-1.json b/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-1.json
index 0372efdad35..f05c3969ad0 100644
--- a/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-1.json
+++ b/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-1.json
@@ -235,7 +235,7 @@
   },
   "pdu": [
     {
-      "port": "c1",
+      "port": 17,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-2.json b/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-2.json
index 7827bebe97d..6dc6f26b0a8 100644
--- a/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-2.json
+++ b/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-2.json
@@ -235,7 +235,7 @@
   },
   "pdu": [
     {
-      "port": "c2",
+      "port": 18,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-3.json b/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-3.json
index 3022e210279..413edc6090f 100644
--- a/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-3.json
+++ b/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-3.json
@@ -235,7 +235,7 @@
   },
   "pdu": [
     {
-      "port": "c2",
+      "port": 18,
       "uid": "pdu3a"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-4.json b/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-4.json
index 7cb7186a648..6244d4e1055 100644
--- a/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-4.json
+++ b/data/grid5000/sites/lyon/clusters/pyxis/nodes/pyxis-4.json
@@ -235,7 +235,7 @@
   },
   "pdu": [
     {
-      "port": "b7",
+      "port": 15,
       "uid": "pdu3a"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/pyxis/pyxis.json b/data/grid5000/sites/lyon/clusters/pyxis/pyxis.json
index e19c798c29c..8466e4e29be 100644
--- a/data/grid5000/sites/lyon/clusters/pyxis/pyxis.json
+++ b/data/grid5000/sites/lyon/clusters/pyxis/pyxis.json
@@ -4,6 +4,14 @@
   "exotic": true,
   "kavlan": true,
   "metrics": [
+    {
+      "description": "Power consumption of node reported by PDU, in watt",
+      "name": "pdu_outlet_power_watt",
+      "period": 1000,
+      "source": {
+        "protocol": "pdu"
+      }
+    },
     {
       "description": "Power consumption of node reported by wattmetre, in watt",
       "name": "wattmetre_power_watt",
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-11.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-11.json
index 7814468534a..f83fcb07ac1 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-11.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-11.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a1",
+      "port": 1,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-12.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-12.json
index 97db2abcc72..2ce611c60c6 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-12.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-12.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a2",
+      "port": 2,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-13.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-13.json
index 9b3747d8741..b6aad034b24 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-13.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-13.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a3",
+      "port": 3,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-14.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-14.json
index 5acd7be8f6d..4cde55192cd 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-14.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-14.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a4",
+      "port": 4,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-15.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-15.json
index 3b7583e4fbc..47872f52969 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-15.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-15.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a5",
+      "port": 5,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-16.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-16.json
index cfc79d6fefc..80ab5bb7a58 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-16.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-16.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a6",
+      "port": 6,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-2.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-2.json
index 5cd1cfbcd0e..9bbc61e10cb 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-2.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-2.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a1",
+      "port": 1,
       "uid": "pdu3a"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-3.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-3.json
index a86954b11d1..cf5e3c30f0c 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-3.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-3.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a2",
+      "port": 2,
       "uid": "pdu3a"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-4.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-4.json
index 63b2d066c9d..26aab1ee7bb 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-4.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-4.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a3",
+      "port": 3,
       "uid": "pdu3a"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-5.json b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-5.json
index 9e2bc3956e2..3043ce4d7cd 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-5.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/nodes/sagittaire-5.json
@@ -159,7 +159,7 @@
   },
   "pdu": [
     {
-      "port": "a4",
+      "port": 4,
       "uid": "pdu3a"
     },
     {
diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/sagittaire.json b/data/grid5000/sites/lyon/clusters/sagittaire/sagittaire.json
index 17872d8ea0d..64dd0c79df2 100644
--- a/data/grid5000/sites/lyon/clusters/sagittaire/sagittaire.json
+++ b/data/grid5000/sites/lyon/clusters/sagittaire/sagittaire.json
@@ -4,6 +4,14 @@
   "exotic": false,
   "kavlan": true,
   "metrics": [
+    {
+      "description": "Power consumption of node reported by PDU, in watt",
+      "name": "pdu_outlet_power_watt",
+      "period": 1000,
+      "source": {
+        "protocol": "pdu"
+      }
+    },
     {
       "description": "Power consumption of node reported by wattmetre, in watt",
       "name": "wattmetre_power_watt",
diff --git a/data/grid5000/sites/lyon/clusters/sirius/nodes/sirius-1.json b/data/grid5000/sites/lyon/clusters/sirius/nodes/sirius-1.json
index 16e9ecaf953..bde85583a21 100644
--- a/data/grid5000/sites/lyon/clusters/sirius/nodes/sirius-1.json
+++ b/data/grid5000/sites/lyon/clusters/sirius/nodes/sirius-1.json
@@ -470,27 +470,27 @@
   },
   "pdu": [
     {
-      "port": "a8",
+      "port": 8,
       "uid": "pdu3a"
     },
     {
-      "port": "b8",
+      "port": 16,
       "uid": "pdu3a"
     },
     {
-      "port": "c8",
+      "port": 24,
       "uid": "pdu3a"
     },
     {
-      "port": "a8",
+      "port": 8,
       "uid": "pdu3b"
     },
     {
-      "port": "b8",
+      "port": 16,
       "uid": "pdu3b"
     },
     {
-      "port": "c8",
+      "port": 24,
       "uid": "pdu3b"
     },
     {
diff --git a/data/grid5000/sites/lyon/pdus/pdu3a.json b/data/grid5000/sites/lyon/pdus/pdu3a.json
index ee8945acb74..5dfbfe6b2b4 100644
--- a/data/grid5000/sites/lyon/pdus/pdu3a.json
+++ b/data/grid5000/sites/lyon/pdus/pdu3a.json
@@ -1,27 +1,38 @@
 {
   "ip": "172.17.63.205",
   "mac": "00:20:85:D7:8A:6C",
+  "metrics": [
+    {
+      "description": "Power consumption per outlet reported by PDU, in watt",
+      "name": "pdu_outlet_power_watt",
+      "period": 1000,
+      "source": {
+        "id": "1.3.6.1.4.1.534.6.6.7.6.5.1.3.0.%PORT%",
+        "protocol": "snmp"
+      }
+    }
+  ],
   "model": "EMAB20",
   "ports": {
-    "a1": "sagittaire-2",
-    "a2": "sagittaire-3",
-    "a3": "sagittaire-4",
-    "a4": "sagittaire-5",
-    "a6": "sagittaire-7",
-    "a7": "wattmetrev3-1-phase1",
-    "a8": "sirius-1",
-    "b1": "gw",
-    "b2": "salome",
-    "b3": "wattmetrev3-1-phase2",
-    "b5": "gemini-1",
-    "b6": "gemini-2",
-    "b7": "pyxis-4",
-    "b8": "sirius-1",
-    "c1": "gemini-2",
-    "c2": "pyxis-3",
-    "c3": "wattmetrev3-1-phase3",
-    "c5": "gemini-1",
-    "c8": "sirius-1"
+    "1": "sagittaire-2",
+    "10": "salome",
+    "11": "wattmetrev3-1-phase2",
+    "13": "gemini-1",
+    "14": "gemini-2",
+    "15": "pyxis-4",
+    "16": "sirius-1",
+    "17": "gemini-2",
+    "18": "pyxis-3",
+    "19": "wattmetrev3-1-phase3",
+    "2": "sagittaire-3",
+    "21": "gemini-1",
+    "24": "sirius-1",
+    "3": "sagittaire-4",
+    "4": "sagittaire-5",
+    "6": "sagittaire-7",
+    "7": "wattmetrev3-1-phase1",
+    "8": "sirius-1",
+    "9": "gw"
   },
   "type": "pdu",
   "uid": "pdu3a",
diff --git a/data/grid5000/sites/lyon/pdus/pdu3b.json b/data/grid5000/sites/lyon/pdus/pdu3b.json
index 0751ad9e662..c681675e240 100644
--- a/data/grid5000/sites/lyon/pdus/pdu3b.json
+++ b/data/grid5000/sites/lyon/pdus/pdu3b.json
@@ -1,26 +1,37 @@
 {
   "ip": "172.17.63.206",
   "mac": "00:20:85:D7:84:EB",
+  "metrics": [
+    {
+      "description": "Power consumption per outlet reported by PDU, in watt",
+      "name": "pdu_outlet_power_watt",
+      "period": 1000,
+      "source": {
+        "id": "1.3.6.1.4.1.534.6.6.7.6.5.1.3.0.%PORT%",
+        "protocol": "snmp"
+      }
+    }
+  ],
   "model": "EMAB20",
   "ports": {
-    "a1": "sagittaire-11",
-    "a2": "sagittaire-12",
-    "a3": "sagittaire-13",
-    "a4": "sagittaire-14",
-    "a5": "sagittaire-15",
-    "a6": "sagittaire-16",
-    "a7": "gw",
-    "a8": "sirius-1",
-    "b1": "switch-adm",
-    "b5": "gemini-1",
-    "b6": "gemini-2",
-    "b8": "sirius-1",
-    "c1": "pyxis-1",
-    "c2": "pyxis-2",
-    "c3": "switch-ib",
-    "c4": "gemini-2",
-    "c5": "gemini-1",
-    "c8": "sirius-1"
+    "1": "sagittaire-11",
+    "13": "gemini-1",
+    "14": "gemini-2",
+    "16": "sirius-1",
+    "17": "pyxis-1",
+    "18": "pyxis-2",
+    "19": "switch-ib",
+    "2": "sagittaire-12",
+    "20": "gemini-2",
+    "21": "gemini-1",
+    "24": "sirius-1",
+    "3": "sagittaire-13",
+    "4": "sagittaire-14",
+    "5": "sagittaire-15",
+    "6": "sagittaire-16",
+    "7": "gw",
+    "8": "sirius-1",
+    "9": "switch-adm"
   },
   "type": "pdu",
   "uid": "pdu3b",
diff --git a/input/grid5000/sites/lyon/pdus.yaml b/input/grid5000/sites/lyon/pdus.yaml
index 469042e417b..af602f1ff8c 100644
--- a/input/grid5000/sites/lyon/pdus.yaml
+++ b/input/grid5000/sites/lyon/pdus.yaml
@@ -94,104 +94,111 @@ pdus:
     model: EMAB20
     ip: 172.17.63.205
     mac: 00:20:85:D7:8A:6C
+    metrics:
+      - name: pdu_outlet_power_watt
+        description: Power consumption per outlet reported by PDU, in watt
+        period: 1000
+        source:
+          protocol: snmp
+          id: 1.3.6.1.4.1.534.6.6.7.6.5.1.3.0.%PORT%
     ports:
-      a1:
+      1: #a1
         uid: sagittaire-2
         wattmetre: wattmetrev3-1
         module: "04000018"
         channel: 1
         phase: 1
         phase_inverted: true
-      a2:
+      2: #a2
         uid: sagittaire-3
         wattmetre: wattmetrev3-1
         module: "04000018"
         channel: 2
         phase: 1
         phase_inverted: true
-      a3:
+      3: #a3
         uid: sagittaire-4
         wattmetre: wattmetrev3-1
         module: "04000018"
         channel: 3
         phase: 1
         phase_inverted: true
-      a4:
+      4: #a4
         uid: sagittaire-5
         wattmetre: wattmetrev3-1
         module: "04000018"
         channel: 4
         phase: 1
         phase_inverted: true
-      a6:
+      6: #a6
         uid: sagittaire-7
         wattmetre: wattmetrev3-1
         module: "04000018"
         channel: 6
         phase: 1
         phase_inverted: true
-      a7: wattmetrev3-1-phase1
-      a8:
+      7: wattmetrev3-1-phase1 #a7
+      8: #a8
         uid: sirius-1
         wattmetre: wattmetrev3-1
         module: "04000013"
         channel: 1
         phase: 1
         phase_inverted: false
-      b1: gw
-      b2: salome
-      b3: wattmetrev3-1-phase2
-      b5:
+      9: gw #b1
+      10: salome #b2
+      11: wattmetrev3-1-phase2 #b3
+      13: #b5
         uid: gemini-1
         wattmetre: wattmetrev3-1
         module: "04000011"
         channel: 1
         phase: 2
         phase_inverted: true
-      b6:
+      14: #b6
         uid: gemini-2
         wattmetre: wattmetrev3-1
         module: "04000020"
         channel: 1
         phase: 2
         phase_inverted: true
-      b7:
+      15: #b7
         uid: pyxis-4
         wattmetre: wattmetrev3-1
         module: "04000020"
         channel: 6
         phase: 2
         phase_inverted: true
-      b8:
+      16: #b8
         uid: sirius-1
         wattmetre: wattmetrev3-1
         module: "04000013"
         channel: 2
         phase: 2
         phase_inverted: true
-      c1:
+      17: #c1
         uid: gemini-2
         wattmetre: wattmetrev3-1
         module: "04000020"
         channel: 2
         phase: 3
         phase_inverted: true
-      c2:
+      18: #c2
         uid: pyxis-3
         wattmetre: wattmetrev3-1
         module: "04000020"
         channel: 5
         phase: 3
         phase_inverted: true
-      c3: wattmetrev3-1-phase3
-      c5:
+      19: wattmetrev3-1-phase3 #c3
+      21: #c5
         uid: gemini-1
         wattmetre: wattmetrev3-1
         module: "04000011"
         channel: 2
         phase: 3
         phase_inverted: true
-      c8:
+      24: #c8
         uid: sirius-1
         wattmetre: wattmetrev3-1
         module: "04000013"
@@ -205,109 +212,116 @@ pdus:
     model: EMAB20
     ip: 172.17.63.206
     mac: 00:20:85:D7:84:EB
+    metrics:
+      - name: pdu_outlet_power_watt
+        description: Power consumption per outlet reported by PDU, in watt
+        period: 1000
+        source:
+          protocol: snmp
+          id: 1.3.6.1.4.1.534.6.6.7.6.5.1.3.0.%PORT%
     ports:
-      a1:
+      1: #a1
         uid: sagittaire-11
         wattmetre: wattmetrev3-1
         module: "04000022"
         channel: 1
         phase: 1
         phase_inverted: true
-      a2:
+      2: #a2
         uid: sagittaire-12
         wattmetre: wattmetrev3-1
         module: "04000022"
         channel: 2
         phase: 1
         phase_inverted: true
-      a3:
+      3: #a3
         uid: sagittaire-13
         wattmetre: wattmetrev3-1
         module: "04000022"
         channel: 3
         phase: 1
         phase_inverted: true
-      a4:
+      4: #a4
         uid: sagittaire-14
         wattmetre: wattmetrev3-1
         module: "04000022"
         channel: 4
         phase: 1
         phase_inverted: true
-      a5:
+      5: #a5
         uid: sagittaire-15
         wattmetre: wattmetrev3-1
         module: "04000022"
         channel: 5
         phase: 1
         phase_inverted: true
-      a6:
+      6: #6
         uid: sagittaire-16
         wattmetre: wattmetrev3-1
         module: "04000022"
         channel: 6
         phase: 1
         phase_inverted: true
-      a7: gw
-      a8:
+      7: gw #a7
+      8: #a8
         uid: sirius-1
         wattmetre: wattmetrev3-1
         module: "04000013"
         channel: 4
         phase: 1
         phase_inverted: false
-      b1: switch-adm
-      b5:
+      9: switch-adm #b1
+      13: #b5
         uid: gemini-1
         wattmetre: wattmetrev3-1
         module: "04000011"
         channel: 3
         phase: 2
         phase_inverted: true
-      b6:
+      14: #b6
         uid: gemini-2
         wattmetre: wattmetrev3-1
         module: "04000020"
         channel: 3
         phase: 2
         phase_inverted: true
-      b8:
+      16: #b8
         uid: sirius-1
         wattmetre: wattmetrev3-1
         module: "04000013"
         channel: 5
         phase: 2
         phase_inverted: true
-      c1:
+      17: #c1
         uid: pyxis-1
         wattmetre: wattmetrev3-1
         module: "04000011"
         channel: 5
         phase: 3
         phase_inverted: true
-      c2:
+      18: #c2
         uid: pyxis-2
         wattmetre: wattmetrev3-1
         module: "04000011"
         channel: 6
         phase: 3
         phase_inverted: true
-      c3: switch-ib
-      c4:
+      19: switch-ib #c3
+      20: #c4
         uid: gemini-2
         wattmetre: wattmetrev3-1
         module: "04000020"
         channel: 4
         phase: 3
         phase_inverted: true
-      c5:
+      21: #c5
         uid: gemini-1
         wattmetre: wattmetrev3-1
         module: "04000011"
         channel: 4
         phase: 3
         phase_inverted: true
-      c8:
+      24: #c8
         uid: sirius-1
         wattmetre: wattmetrev3-1
         module: "04000013"
-- 
GitLab