Commit 8181547
committed
Hybrid Gen4: dry-contact section as a sub-device with dependency-driven availability
The Gen4 dry-contact load-management controls become their own HA
device ("<hub> Dry Contact", linked to the inverter via via_device,
same pattern as the battery pack devices), and each entity is only
available while its full parent chain in the app's dependency tree is
active:
Dry Contact Mode (0xC3 -> 0x12F): Generator Control | Load Management
Load Management (0xC2 -> 0x12E): Disabled | Manual Mode | Smart Save
Manual Mode switch (0xB6 -> 0x122): only in Manual Mode
Threshold On Feed-in Power (0xB7 -> 0x123) Threshold Off Consumption (0xB9 -> 0x125) |
Threshold Off Battery SOC (0xBA -> 0x126) | only in Smart Save
Minimum Per On Signal (0xBB -> 0x127) |
Maximum Per Day (0xBC -> 0x128) |
Schedule (0xBD -> 0x129) /
Work Start/End Time 1 and 2 (0xBE-0xC1 -> 0x12A-0x12D):
only while Schedule is enabled
All register mappings were verified live on an X3-Hybrid-G4 15kW by
changing each setting in the SolaX app and tracking the readback.
New generic infrastructure, reusable by any plugin: entity descriptions
gain device_group (assigns the entity to a named sub-device) and
active_when ({sensor_key: allowed values} evaluated against polled
hub.data; keys not polled on a model never block availability). The
number, select, switch and time platforms honour both.
The "Read Dry Contact Box" setup question is removed: the dry-contact
entities are managed dynamically by the availability tree, so the DCB
feature flag is no longer needed for them and no longer gates anything
in the SolaX plugin (other brand plugins never had DCB-gated entities;
their unused boilerplate is untouched). Display names follow the app:
Work Mode -> Load Management (option Manual -> Manual Mode), Manual
Mode Control -> Manual Mode, Feedin On Power -> Threshold On Feed-in
Power, Consume Off Power -> Threshold Off Consumption, Switch Off SOC
-> Threshold Off Battery SOC, Maximum Per Day On -> Maximum Per Day.
Keys and entity ids are unchanged. Generator management entities are
intentionally untouched and stay on the main inverter device.1 parent 27875b3 commit 8181547
17 files changed
Lines changed: 421 additions & 175 deletions
File tree
- custom_components/solax_modbus
- translations
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| |||
101 | 102 | | |
102 | 103 | | |
103 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
104 | 108 | | |
105 | 109 | | |
106 | 110 | | |
| |||
119 | 123 | | |
120 | 124 | | |
121 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
122 | 129 | | |
123 | 130 | | |
124 | 131 | | |
| |||
421 | 428 | | |
422 | 429 | | |
423 | 430 | | |
| 431 | + | |
| 432 | + | |
424 | 433 | | |
425 | 434 | | |
426 | 435 | | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
427 | 486 | | |
428 | 487 | | |
429 | 488 | | |
| |||
918 | 977 | | |
919 | 978 | | |
920 | 979 | | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
921 | 1000 | | |
922 | 1001 | | |
923 | 1002 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
49 | 50 | | |
50 | 51 | | |
51 | 52 | | |
| |||
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| 68 | + | |
67 | 69 | | |
68 | 70 | | |
69 | 71 | | |
| |||
155 | 157 | | |
156 | 158 | | |
157 | 159 | | |
| 160 | + | |
158 | 161 | | |
159 | 162 | | |
160 | 163 | | |
| |||
177 | 180 | | |
178 | 181 | | |
179 | 182 | | |
| 183 | + | |
180 | 184 | | |
181 | 185 | | |
182 | 186 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
| |||
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
| 70 | + | |
69 | 71 | | |
70 | 72 | | |
71 | 73 | | |
| |||
238 | 240 | | |
239 | 241 | | |
240 | 242 | | |
| 243 | + | |
| 244 | + | |
241 | 245 | | |
242 | 246 | | |
243 | 247 | | |
| |||
305 | 309 | | |
306 | 310 | | |
307 | 311 | | |
| 312 | + | |
| 313 | + | |
308 | 314 | | |
309 | 315 | | |
310 | 316 | | |
| |||
325 | 331 | | |
326 | 332 | | |
327 | 333 | | |
| 334 | + | |
| 335 | + | |
328 | 336 | | |
329 | 337 | | |
330 | 338 | | |
| |||
344 | 352 | | |
345 | 353 | | |
346 | 354 | | |
| 355 | + | |
| 356 | + | |
347 | 357 | | |
348 | 358 | | |
349 | 359 | | |
| |||
373 | 383 | | |
374 | 384 | | |
375 | 385 | | |
| 386 | + | |
| 387 | + | |
376 | 388 | | |
377 | 389 | | |
378 | 390 | | |
| |||
406 | 418 | | |
407 | 419 | | |
408 | 420 | | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
409 | 437 | | |
410 | 438 | | |
411 | 439 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
55 | | - | |
56 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
57 | 60 | | |
58 | | - | |
| 61 | + | |
| 62 | + | |
59 | 63 | | |
60 | 64 | | |
61 | 65 | | |
| |||
175 | 179 | | |
176 | 180 | | |
177 | 181 | | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
178 | 186 | | |
179 | 187 | | |
180 | 188 | | |
| |||
0 commit comments