48: Power Info
See how much power is or has been used by the device, as well as current power usage and if the device is charging. Field availability depends on hardware, firmware and charging state. Numeric values are little-endian. Integer fields may omit high zero bytes; float32 fields retain their four-byte IEEE 754 representation.
Header
| Field | Name | Description | Type |
|---|---|---|---|
| 5 | Method | Request a service to be perform an action Possible values:
| uint8 |
Payload
| Field | Name | Description | Type | Unit |
|---|---|---|---|---|
| 3 | Total power since profile | Accumulated charge usage in mAh. Starting a power-profile subscription resets the shared accumulator; GET returns that same accumulator. Before any such reset it covers usage since startup. Present only when current monitoring is available. | float32 | mAh |
| 4 | Current | Instantaneous Current power usage | float32 | mA |
| 5 | Charging | Is the device currently charging | bool | |
| 6 | External Voltage | Measured external voltage; omitted when zero. | float32 | V |
| 7 | Total power since last TX | Charge used since the last transmission; present only when current monitoring is available. | float32 | mAh |
| 8 | Charge Current | Charge current reported by the charger on supported BQ-equipped devices; present only while charging and when nonzero. Values are refreshed periodically. | float32 | mA |
| 9 | Input Current | Available on supported BQ-equipped devices; present only while charging and when nonzero. On BQ2589x devices, this is the input-current limit in effect, not measured input draw. Values are refreshed periodically; GET does not trigger a fresh charger read. | float32 | mA |
| 10 | Average Current | Average current in mA, rounded to the nearest integer and clamped to 0..65535. Zero before current samples are available. Uses the accumulated current-sampling window when nonempty, otherwise the previous completed window (nominally 3 seconds). Encoded in one or two little-endian bytes. | uint16 | mA |
Examples
Get request
Protocol
03
3
Length
2000
20 bytes
Type
4800
48 (Power Info)
Header Count
0200
2
Header Types
0105
1, 5
Message ID
0411000000
11
Method
0102
2 (GET)
Payload Count
0000
0
Checksum
1476
19470
📡 Real example from Generate tool on 2025-10-14Created using the generate tool, this was tested against an RH2 device, sent from Toit.
Get response
Protocol
3
3
Length
350
35 bytes
Type
480
48 (Power Info)
Header Count
20
2
Header Types
34
3, 4
Response to
411000
11
Status
10
0 (OK)
Payload Count
30
3
Payload Types
534
5, 3, 4
Charging
11
true
Total power since profile
41741384460
0.010531110689043999 Unit: mAh
Current
40000
0 Unit: mA
Checksum
3636
9252
📡 Real example from RH2 P1 v2296 on 2025-10-14Response to the above GET request, captured from an RH2 device as part of normal communications over I2C with the ESP32 co-processor.
Subscription Request
Protocol
3
3
Length
260
26 bytes
Type
480
48 (Power Info)
Header Count
30
3
Header Types
156
1, 5, 6
Message ID
415000
15
Method
13
3 (SUBSCRIBE)
Interval
4208700
2000 Unit: ms
Payload Count
00
0
Checksum
80185
47440
📡 Real example from Generate tool on 2025-10-14Created using the generate tool, this was tested against an RH2 device, sent from Toit.
Subscription ACK
Protocol
3
3
Length
240
24 bytes
Type
50
5 (ACK)
Header Count
20
2
Header Types
34
3, 4
Response to
415000
15
Status
10
0 (OK)
Payload Count
10
1
Payload Types
1
1
ACK Type
2480
48
Checksum
23587
22507
📡 Real example from RH2 P1 v2296 on 2025-10-14Response to the above SUBSCRIBE request, captured from an RH2 device as part of normal communications over I2C with the ESP32 co-processor.
Subscription update, while on charge
Protocol
3
3
Length
320
32 bytes
Type
480
48 (Power Info)
Header Count
10
1
Header Types
1
1
Message ID
478100
334
Payload Count
30
3
Payload Types
435
4, 3, 5
Current
40000
0 Unit: mA
Total power since profile
40000
0 Unit: mAh
Charging
11
true
Checksum
2912
3101
📡 Real example from RH2 P1 v2296 on 2025-10-14Response to the above subscription, captured from an RH2 device as part of normal communications over I2C with the ESP32 co-processor.
Code
For convenience, the following constants can be used to reference this message type.