Repository navigation
Commit 00286bd
committed
chore: add model capability layer + expand holding registers
Add a capability layer (collector/capabilities.py) that maps each inverter
model to the hardware features it actually supports, and filters the global
holding-register map so a 6K user never sees 18K-only settings.
The LuxPower/EG4 family shares ONE register map; the difference is which
registers are meaningful per model. Capability flags (PV string count,
split/three-phase, AFCI, generator, smart load, AC couple, WattNode, QV/QP
curves, grid peak shaving) tag registers, and MODEL_CAPABILITIES maps each
model to its flags.
Also expand HOLDING_REGISTERS from ~60 to 200 registers: grid/freq protection
limits, Q(V)/P(V) curves, lead-acid temp limits, system config, derate
scheduling, SOC curve, generator charge, AFCI/VoltWatt, smart load, AC couple,
peak shaving, WattNode, and advanced settings.
Wire the filter into the API (holding/automation endpoints) and the automation
engine so unsupported registers are hidden and never written. Extend holding
read batches to cover registers 0-261.
Dangerous registers (reset 11, time 12-14) are intentionally NOT exposed.1 parent 367096f commit 00286bd
5 files changed
Lines changed: 490 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1038 | 1038 | | |
1039 | 1039 | | |
1040 | 1040 | | |
| 1041 | + | |
| 1042 | + | |
1041 | 1043 | | |
1042 | 1044 | | |
1043 | 1045 | | |
1044 | 1046 | | |
1045 | 1047 | | |
1046 | 1048 | | |
| 1049 | + | |
1047 | 1050 | | |
1048 | 1051 | | |
1049 | 1052 | | |
| |||
1056 | 1059 | | |
1057 | 1060 | | |
1058 | 1061 | | |
1059 | | - | |
| 1062 | + | |
1060 | 1063 | | |
1061 | 1064 | | |
1062 | 1065 | | |
| |||
1098 | 1101 | | |
1099 | 1102 | | |
1100 | 1103 | | |
1101 | | - | |
| 1104 | + | |
| 1105 | + | |
1102 | 1106 | | |
1103 | 1107 | | |
1104 | 1108 | | |
1105 | 1109 | | |
1106 | 1110 | | |
1107 | | - | |
1108 | | - | |
1109 | | - | |
1110 | | - | |
1111 | | - | |
1112 | | - | |
1113 | | - | |
1114 | | - | |
1115 | | - | |
1116 | | - | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
1117 | 1122 | | |
1118 | 1123 | | |
1119 | 1124 | | |
| |||
1300 | 1305 | | |
1301 | 1306 | | |
1302 | 1307 | | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
1303 | 1318 | | |
1304 | 1319 | | |
1305 | 1320 | | |
| |||
1360 | 1375 | | |
1361 | 1376 | | |
1362 | 1377 | | |
1363 | | - | |
| 1378 | + | |
1364 | 1379 | | |
1365 | | - | |
| 1380 | + | |
1366 | 1381 | | |
1367 | 1382 | | |
1368 | 1383 | | |
| |||
1391 | 1406 | | |
1392 | 1407 | | |
1393 | 1408 | | |
1394 | | - | |
| 1409 | + | |
| 1410 | + | |
1395 | 1411 | | |
1396 | 1412 | | |
1397 | 1413 | | |
| |||
1413 | 1429 | | |
1414 | 1430 | | |
1415 | 1431 | | |
1416 | | - | |
| 1432 | + | |
| 1433 | + | |
1417 | 1434 | | |
1418 | 1435 | | |
1419 | 1436 | | |
| |||
1449 | 1466 | | |
1450 | 1467 | | |
1451 | 1468 | | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
1452 | 1472 | | |
1453 | 1473 | | |
1454 | 1474 | | |
1455 | | - | |
1456 | 1475 | | |
1457 | 1476 | | |
1458 | 1477 | | |
| |||
1487 | 1506 | | |
1488 | 1507 | | |
1489 | 1508 | | |
| 1509 | + | |
| 1510 | + | |
1490 | 1511 | | |
1491 | 1512 | | |
1492 | 1513 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
| 65 | + | |
64 | 66 | | |
65 | 67 | | |
66 | 68 | | |
| |||
669 | 671 | | |
670 | 672 | | |
671 | 673 | | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
672 | 682 | | |
673 | 683 | | |
674 | 684 | | |
| |||
917 | 927 | | |
918 | 928 | | |
919 | 929 | | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
920 | 935 | | |
921 | 936 | | |
922 | 937 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
0 commit comments