@rhizomatics/signalk-bluetti-plugin 1.4.1 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +40 -4
- package/cli.js +69 -9
- package/docs/assets/icon.svg +36 -0
- package/docs/assets/screenshots/bluetti_data.png +0 -0
- package/docs/examples/model_definition.yaml +112 -0
- package/index.js +78 -25
- package/lib/path-mapper.js +51 -9
- package/lib/register-loader.js +120 -0
- package/lib/scanner.js +1 -1
- package/package.json +12 -5
- package/registers/ac180.yaml +58 -0
- package/registers/ac180p.yaml +34 -0
- package/registers/ac180t.yaml +58 -0
- package/registers/ac200l.yaml +48 -0
- package/registers/ac200m.yaml +48 -0
- package/registers/ac200p.yaml +89 -0
- package/registers/ac200pl.yaml +48 -0
- package/registers/ac2a.yaml +34 -0
- package/registers/ac2p.yaml +34 -0
- package/registers/ac300.yaml +57 -0
- package/registers/ac500.yaml +56 -0
- package/registers/ac50b.yaml +31 -0
- package/registers/ac60.yaml +33 -0
- package/registers/ac60p.yaml +33 -0
- package/registers/ac70.yaml +62 -0
- package/registers/ac70p.yaml +58 -0
- package/registers/ap300.yaml +34 -0
- package/registers/eb3a.yaml +41 -0
- package/registers/el100v2.yaml +43 -0
- package/registers/el30v2.yaml +38 -0
- package/registers/ep2000.yaml +75 -0
- package/registers/ep500.yaml +57 -0
- package/registers/ep500p.yaml +57 -0
- package/registers/ep600.yaml +151 -0
- package/registers/ep760.yaml +72 -0
- package/registers/ep800.yaml +21 -0
- package/registers/handsfree1.yaml +62 -0
- package/registers/pr100v2.yaml +34 -0
- package/registers/pr30v2.yaml +34 -0
- package/lib/csv-loader.js +0 -160
- package/registers/ac200p.csv +0 -47
- package/registers/el100v2.csv +0 -27
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Bluetti AC2A register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac2a.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_power:
|
|
22
|
+
register: 144
|
|
23
|
+
unit: W
|
|
24
|
+
ac_input_power:
|
|
25
|
+
register: 146
|
|
26
|
+
unit: W
|
|
27
|
+
power_generation:
|
|
28
|
+
register: 154
|
|
29
|
+
scale: 0.1
|
|
30
|
+
unit: kWh
|
|
31
|
+
constants:
|
|
32
|
+
battery_chemistry: LiFePO4
|
|
33
|
+
battery_manufacturer_name: Bluetti
|
|
34
|
+
battery_manufacturer_model: AC2A
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Bluetti AC2P register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac2p.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_power:
|
|
22
|
+
register: 144
|
|
23
|
+
unit: W
|
|
24
|
+
ac_input_power:
|
|
25
|
+
register: 146
|
|
26
|
+
unit: W
|
|
27
|
+
power_generation:
|
|
28
|
+
register: 154
|
|
29
|
+
scale: 0.1
|
|
30
|
+
unit: kWh
|
|
31
|
+
constants:
|
|
32
|
+
battery_chemistry: LiFePO4
|
|
33
|
+
battery_manufacturer_name: Bluetti
|
|
34
|
+
battery_manufacturer_model: AC2P
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Bluetti AC300 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac300.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
battery_soc:
|
|
16
|
+
register: 43
|
|
17
|
+
unit: "%"
|
|
18
|
+
dc_input_power:
|
|
19
|
+
register: 36
|
|
20
|
+
unit: W
|
|
21
|
+
ac_input_power:
|
|
22
|
+
register: 37
|
|
23
|
+
unit: W
|
|
24
|
+
ac_output_power:
|
|
25
|
+
register: 38
|
|
26
|
+
unit: W
|
|
27
|
+
dc_output_power:
|
|
28
|
+
register: 39
|
|
29
|
+
unit: W
|
|
30
|
+
ac_output_voltage:
|
|
31
|
+
register: 71
|
|
32
|
+
scale: 0.1
|
|
33
|
+
unit: V
|
|
34
|
+
ac_output_frequency:
|
|
35
|
+
register: 74
|
|
36
|
+
scale: 0.01
|
|
37
|
+
unit: Hz
|
|
38
|
+
ac_input_voltage:
|
|
39
|
+
register: 77
|
|
40
|
+
scale: 0.1
|
|
41
|
+
unit: V
|
|
42
|
+
ac_input_frequency:
|
|
43
|
+
register: 80
|
|
44
|
+
scale: 0.01
|
|
45
|
+
unit: Hz
|
|
46
|
+
dc_input_voltage:
|
|
47
|
+
register: 86
|
|
48
|
+
scale: 0.1
|
|
49
|
+
unit: V
|
|
50
|
+
dc_input_current:
|
|
51
|
+
register: 88
|
|
52
|
+
scale: 0.1
|
|
53
|
+
unit: A
|
|
54
|
+
constants:
|
|
55
|
+
battery_chemistry: LiFePO4
|
|
56
|
+
battery_manufacturer_name: Bluetti
|
|
57
|
+
battery_manufacturer_model: AC300
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Bluetti AC500 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac500.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
battery_soc:
|
|
16
|
+
register: 43
|
|
17
|
+
unit: "%"
|
|
18
|
+
dc_input_power:
|
|
19
|
+
register: 36
|
|
20
|
+
unit: W
|
|
21
|
+
ac_input_power:
|
|
22
|
+
register: 37
|
|
23
|
+
unit: W
|
|
24
|
+
ac_output_power:
|
|
25
|
+
register: 38
|
|
26
|
+
unit: W
|
|
27
|
+
dc_output_power:
|
|
28
|
+
register: 39
|
|
29
|
+
unit: W
|
|
30
|
+
ac_output_voltage:
|
|
31
|
+
register: 71
|
|
32
|
+
unit: V
|
|
33
|
+
ac_output_frequency:
|
|
34
|
+
register: 74
|
|
35
|
+
scale: 0.1
|
|
36
|
+
unit: Hz
|
|
37
|
+
ac_input_voltage:
|
|
38
|
+
register: 77
|
|
39
|
+
scale: 0.1
|
|
40
|
+
unit: V
|
|
41
|
+
ac_input_frequency:
|
|
42
|
+
register: 80
|
|
43
|
+
scale: 0.01
|
|
44
|
+
unit: Hz
|
|
45
|
+
dc_input_voltage:
|
|
46
|
+
register: 86
|
|
47
|
+
scale: 0.1
|
|
48
|
+
unit: V
|
|
49
|
+
dc_input_current:
|
|
50
|
+
register: 88
|
|
51
|
+
scale: 0.1
|
|
52
|
+
unit: A
|
|
53
|
+
constants:
|
|
54
|
+
battery_chemistry: LiFePO4
|
|
55
|
+
battery_manufacturer_name: Bluetti
|
|
56
|
+
battery_manufacturer_model: AC500
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Bluetti AC50B register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac50b.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
ac_input_power:
|
|
22
|
+
register: 146
|
|
23
|
+
unit: W
|
|
24
|
+
time_remaining_minutes:
|
|
25
|
+
register: 104
|
|
26
|
+
scale: 6
|
|
27
|
+
unit: min
|
|
28
|
+
constants:
|
|
29
|
+
battery_chemistry: LiFePO4
|
|
30
|
+
battery_manufacturer_name: Bluetti
|
|
31
|
+
battery_manufacturer_model: AC50B
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Bluetti AC60 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac60.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_power:
|
|
22
|
+
register: 144
|
|
23
|
+
unit: W
|
|
24
|
+
ac_input_power:
|
|
25
|
+
register: 146
|
|
26
|
+
unit: W
|
|
27
|
+
ac_input_voltage:
|
|
28
|
+
register: 1314
|
|
29
|
+
unit: V
|
|
30
|
+
constants:
|
|
31
|
+
battery_chemistry: LiFePO4
|
|
32
|
+
battery_manufacturer_name: Bluetti
|
|
33
|
+
battery_manufacturer_model: AC60
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Bluetti AC60P register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac60p.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_power:
|
|
22
|
+
register: 144
|
|
23
|
+
unit: W
|
|
24
|
+
ac_input_power:
|
|
25
|
+
register: 146
|
|
26
|
+
unit: W
|
|
27
|
+
ac_input_voltage:
|
|
28
|
+
register: 1314
|
|
29
|
+
unit: V
|
|
30
|
+
constants:
|
|
31
|
+
battery_chemistry: LiFePO4
|
|
32
|
+
battery_manufacturer_name: Bluetti
|
|
33
|
+
battery_manufacturer_model: AC60P
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Bluetti AC70 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac70.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_power:
|
|
22
|
+
register: 144
|
|
23
|
+
unit: W
|
|
24
|
+
ac_input_power:
|
|
25
|
+
register: 146
|
|
26
|
+
unit: W
|
|
27
|
+
time_remaining_minutes:
|
|
28
|
+
register: 104
|
|
29
|
+
scale: 6
|
|
30
|
+
unit: min
|
|
31
|
+
dc_input_voltage:
|
|
32
|
+
register: 1213
|
|
33
|
+
scale: 0.1
|
|
34
|
+
unit: V
|
|
35
|
+
dc_input_current:
|
|
36
|
+
register: 1214
|
|
37
|
+
scale: 0.1
|
|
38
|
+
unit: A
|
|
39
|
+
ac_input_frequency:
|
|
40
|
+
register: 1300
|
|
41
|
+
scale: 0.1
|
|
42
|
+
unit: Hz
|
|
43
|
+
ac_input_voltage:
|
|
44
|
+
register: 1314
|
|
45
|
+
scale: 0.1
|
|
46
|
+
unit: V
|
|
47
|
+
ac_input_current:
|
|
48
|
+
register: 1315
|
|
49
|
+
scale: 0.1
|
|
50
|
+
unit: A
|
|
51
|
+
ac_output_frequency:
|
|
52
|
+
register: 1500
|
|
53
|
+
scale: 0.1
|
|
54
|
+
unit: Hz
|
|
55
|
+
ac_output_voltage:
|
|
56
|
+
register: 1511
|
|
57
|
+
scale: 0.1
|
|
58
|
+
unit: V
|
|
59
|
+
constants:
|
|
60
|
+
battery_chemistry: LiFePO4
|
|
61
|
+
battery_manufacturer_name: Bluetti
|
|
62
|
+
battery_manufacturer_model: AC70
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Bluetti AC70P register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ac70p.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_power:
|
|
22
|
+
register: 144
|
|
23
|
+
unit: W
|
|
24
|
+
ac_input_power:
|
|
25
|
+
register: 146
|
|
26
|
+
unit: W
|
|
27
|
+
dc_input_voltage:
|
|
28
|
+
register: 1213
|
|
29
|
+
scale: 0.1
|
|
30
|
+
unit: V
|
|
31
|
+
dc_input_current:
|
|
32
|
+
register: 1214
|
|
33
|
+
scale: 0.1
|
|
34
|
+
unit: A
|
|
35
|
+
ac_input_frequency:
|
|
36
|
+
register: 1300
|
|
37
|
+
scale: 0.1
|
|
38
|
+
unit: Hz
|
|
39
|
+
ac_input_voltage:
|
|
40
|
+
register: 1314
|
|
41
|
+
scale: 0.1
|
|
42
|
+
unit: V
|
|
43
|
+
ac_input_current:
|
|
44
|
+
register: 1315
|
|
45
|
+
scale: 0.1
|
|
46
|
+
unit: A
|
|
47
|
+
ac_output_frequency:
|
|
48
|
+
register: 1500
|
|
49
|
+
scale: 0.1
|
|
50
|
+
unit: Hz
|
|
51
|
+
ac_output_voltage:
|
|
52
|
+
register: 1511
|
|
53
|
+
scale: 0.1
|
|
54
|
+
unit: V
|
|
55
|
+
constants:
|
|
56
|
+
battery_chemistry: LiFePO4
|
|
57
|
+
battery_manufacturer_name: Bluetti
|
|
58
|
+
battery_manufacturer_model: AC70P
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Bluetti AP300 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ap300.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_power:
|
|
22
|
+
register: 144
|
|
23
|
+
unit: W
|
|
24
|
+
ac_input_power:
|
|
25
|
+
register: 146
|
|
26
|
+
unit: W
|
|
27
|
+
ac_input_voltage:
|
|
28
|
+
register: 1314
|
|
29
|
+
scale: 0.1
|
|
30
|
+
unit: V
|
|
31
|
+
constants:
|
|
32
|
+
battery_chemistry: LiFePO4
|
|
33
|
+
battery_manufacturer_name: Bluetti
|
|
34
|
+
battery_manufacturer_model: AP300
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Bluetti EB3A register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/eb3a.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
battery_soc:
|
|
16
|
+
register: 43
|
|
17
|
+
unit: "%"
|
|
18
|
+
dc_input_power:
|
|
19
|
+
register: 36
|
|
20
|
+
unit: W
|
|
21
|
+
ac_input_power:
|
|
22
|
+
register: 37
|
|
23
|
+
unit: W
|
|
24
|
+
ac_output_power:
|
|
25
|
+
register: 38
|
|
26
|
+
unit: W
|
|
27
|
+
dc_output_power:
|
|
28
|
+
register: 39
|
|
29
|
+
unit: W
|
|
30
|
+
ac_input_voltage:
|
|
31
|
+
register: 77
|
|
32
|
+
scale: 0.1
|
|
33
|
+
unit: V
|
|
34
|
+
dc_input_voltage:
|
|
35
|
+
register: 86
|
|
36
|
+
scale: 0.01
|
|
37
|
+
unit: V
|
|
38
|
+
constants:
|
|
39
|
+
battery_chemistry: LiFePO4
|
|
40
|
+
battery_manufacturer_name: Bluetti
|
|
41
|
+
battery_manufacturer_model: EB3A
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Bluetti EL100V2 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/el100v2.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
battery_soc:
|
|
16
|
+
register: 102
|
|
17
|
+
unit: "%"
|
|
18
|
+
dc_output_power:
|
|
19
|
+
register: 140
|
|
20
|
+
unit: W
|
|
21
|
+
ac_output_power:
|
|
22
|
+
register: 142
|
|
23
|
+
unit: W
|
|
24
|
+
dc_input_power:
|
|
25
|
+
register: 144
|
|
26
|
+
unit: W
|
|
27
|
+
ac_input_power:
|
|
28
|
+
register: 146
|
|
29
|
+
unit: W
|
|
30
|
+
ac_input_voltage:
|
|
31
|
+
register: 1314
|
|
32
|
+
scale: 0.1
|
|
33
|
+
unit: V
|
|
34
|
+
constants:
|
|
35
|
+
battery_chemistry: LiFePO4
|
|
36
|
+
total_capacity:
|
|
37
|
+
value: 1024
|
|
38
|
+
unit: Wh
|
|
39
|
+
battery_manufacturer_name: Bluetti
|
|
40
|
+
battery_manufacturer_model: Elite 100 V2
|
|
41
|
+
dc_output_voltage:
|
|
42
|
+
value: 12
|
|
43
|
+
unit: V
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Bluetti EL30V2 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/el30v2.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
dc_output_power:
|
|
16
|
+
register: 140
|
|
17
|
+
unit: W
|
|
18
|
+
ac_output_power:
|
|
19
|
+
register: 142
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_power:
|
|
22
|
+
register: 144
|
|
23
|
+
unit: W
|
|
24
|
+
ac_input_power:
|
|
25
|
+
register: 146
|
|
26
|
+
unit: W
|
|
27
|
+
time_remaining_minutes:
|
|
28
|
+
register: 104
|
|
29
|
+
scale: 1.002
|
|
30
|
+
unit: min
|
|
31
|
+
ac_input_voltage:
|
|
32
|
+
register: 1314
|
|
33
|
+
scale: 0.1
|
|
34
|
+
unit: V
|
|
35
|
+
constants:
|
|
36
|
+
battery_chemistry: LiFePO4
|
|
37
|
+
battery_manufacturer_name: Bluetti
|
|
38
|
+
battery_manufacturer_model: Elite 30 V2
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Bluetti EP2000 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ep2000.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
battery_soc:
|
|
16
|
+
register: 102
|
|
17
|
+
unit: "%"
|
|
18
|
+
dc_input_power:
|
|
19
|
+
register: 1212
|
|
20
|
+
unit: W
|
|
21
|
+
dc_input_voltage:
|
|
22
|
+
register: 1213
|
|
23
|
+
scale: 0.1
|
|
24
|
+
unit: V
|
|
25
|
+
dc_input_current:
|
|
26
|
+
register: 1214
|
|
27
|
+
scale: 0.1
|
|
28
|
+
unit: A
|
|
29
|
+
pv_s2_power:
|
|
30
|
+
register: 1220
|
|
31
|
+
unit: W
|
|
32
|
+
pv_s2_voltage:
|
|
33
|
+
register: 1221
|
|
34
|
+
scale: 0.1
|
|
35
|
+
unit: V
|
|
36
|
+
pv_s2_current:
|
|
37
|
+
register: 1222
|
|
38
|
+
scale: 0.1
|
|
39
|
+
unit: A
|
|
40
|
+
grid_frequency:
|
|
41
|
+
register: 1300
|
|
42
|
+
scale: 0.1
|
|
43
|
+
unit: Hz
|
|
44
|
+
grid_p1_voltage:
|
|
45
|
+
register: 1314
|
|
46
|
+
scale: 0.1
|
|
47
|
+
unit: V
|
|
48
|
+
grid_p2_voltage:
|
|
49
|
+
register: 1320
|
|
50
|
+
scale: 0.1
|
|
51
|
+
unit: V
|
|
52
|
+
grid_p3_voltage:
|
|
53
|
+
register: 1326
|
|
54
|
+
scale: 0.1
|
|
55
|
+
unit: V
|
|
56
|
+
ac_output_frequency:
|
|
57
|
+
register: 1500
|
|
58
|
+
scale: 0.1
|
|
59
|
+
unit: Hz
|
|
60
|
+
ac_p1_voltage:
|
|
61
|
+
register: 1511
|
|
62
|
+
scale: 0.1
|
|
63
|
+
unit: V
|
|
64
|
+
ac_p2_voltage:
|
|
65
|
+
register: 1518
|
|
66
|
+
scale: 0.1
|
|
67
|
+
unit: V
|
|
68
|
+
ac_p3_voltage:
|
|
69
|
+
register: 1525
|
|
70
|
+
scale: 0.1
|
|
71
|
+
unit: V
|
|
72
|
+
constants:
|
|
73
|
+
battery_chemistry: LiFePO4
|
|
74
|
+
battery_manufacturer_name: Bluetti
|
|
75
|
+
battery_manufacturer_model: EP2000
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Bluetti EP500 register map
|
|
2
|
+
# Source: https://github.com/Patrick762/bluetti-bt-lib (bluetti_bt_lib/devices/ep500.py)
|
|
3
|
+
#
|
|
4
|
+
# field_name is a standard Bluetti register name — the code maps these to
|
|
5
|
+
# SignalK paths on its own (see lib/path-mapper.js). `path` on a field is an
|
|
6
|
+
# override, only needed if you're exposing a register the code doesn't
|
|
7
|
+
# recognise. `constants` are fixed, non-register facts about this model —
|
|
8
|
+
# a bare scalar (string/number) or { value, unit } for one that needs unit
|
|
9
|
+
# conversion (e.g. total_capacity in Wh -> J). No verified nominal capacity
|
|
10
|
+
# is bundled for most models — add a total_capacity constant yourself if you
|
|
11
|
+
# know it, to enable the derived remaining-capacity calculation.
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
fields:
|
|
15
|
+
battery_soc:
|
|
16
|
+
register: 43
|
|
17
|
+
unit: "%"
|
|
18
|
+
dc_input_power:
|
|
19
|
+
register: 36
|
|
20
|
+
unit: W
|
|
21
|
+
ac_input_power:
|
|
22
|
+
register: 37
|
|
23
|
+
unit: W
|
|
24
|
+
ac_output_power:
|
|
25
|
+
register: 38
|
|
26
|
+
unit: W
|
|
27
|
+
dc_output_power:
|
|
28
|
+
register: 39
|
|
29
|
+
unit: W
|
|
30
|
+
ac_output_voltage:
|
|
31
|
+
register: 71
|
|
32
|
+
scale: 0.1
|
|
33
|
+
unit: V
|
|
34
|
+
ac_output_frequency:
|
|
35
|
+
register: 74
|
|
36
|
+
scale: 0.01
|
|
37
|
+
unit: Hz
|
|
38
|
+
ac_input_voltage:
|
|
39
|
+
register: 77
|
|
40
|
+
scale: 0.1
|
|
41
|
+
unit: V
|
|
42
|
+
ac_input_frequency:
|
|
43
|
+
register: 80
|
|
44
|
+
scale: 0.01
|
|
45
|
+
unit: Hz
|
|
46
|
+
dc_input_voltage:
|
|
47
|
+
register: 86
|
|
48
|
+
scale: 0.1
|
|
49
|
+
unit: V
|
|
50
|
+
dc_input_current:
|
|
51
|
+
register: 88
|
|
52
|
+
scale: 0.1
|
|
53
|
+
unit: A
|
|
54
|
+
constants:
|
|
55
|
+
battery_chemistry: LiFePO4
|
|
56
|
+
battery_manufacturer_name: Bluetti
|
|
57
|
+
battery_manufacturer_model: EP500
|