C1000(X) G2

class SolixBLE.C1000G2(ble_device: BLEDevice)

C1000(X) Gen 2 Power Station.

Use this class to connect, monitor and control a Gen 2 C1000(X) power station. This model is also known as the A1763.

The Gen 2 uses the same encryption and telemetry framing as the gen-1 models but with different command codes: it must be sent a subscribe command (4100) after connecting before it streams any telemetry, its telemetry arrives on commands c421/c900, its AC output is controlled with command 4101 and its DC output with command 4102. Telemetry and AC/DC on/off control have been confirmed on real hardware.

__init__(ble_device: BLEDevice) None

Initialise device object. Does not connect automatically.

add_callback(function: Callable[[], None]) None

Register a callback to be run on state updates.

Triggers include changes to pretty much anything, including, battery percentage, output power, solar, connection status, etc.

Parameters:

function – Function to run on state changes.

async connect(max_attempts: int = 3, run_callbacks: bool = True) bool

Connect to device.

This will connect to the device, determine if it is supported and subscribe to status updates, returning True if successful.

Parameters:
  • max_attempts – Maximum number of attempts to try to connect (default=3).

  • run_callbacks – Execute registered callbacks on successful connection (default=True).

async disconnect() None

Disconnect from device and reset internal state.

Disconnects from device, resets internal state, including connection attempts, cancels the automatic reconnection task and will not execute state changes callbacks.

remove_callback(function: Callable[[], None]) None

Remove a registered state change callback.

Parameters:

function – Function to remove from callbacks.

Raises:

ValueError – If callback does not exist.

async turn_ac_off() None

Turn the AC output off.

Raises:
  • ConnectionError – If not connected to device.

  • BleakError – If command transmission fails.

async turn_ac_on() None

Turn the AC output on.

Raises:
  • ConnectionError – If not connected to device.

  • BleakError – If command transmission fails.

async turn_dc_off() None

Turn the DC (12 V) output off.

Raises:
  • ConnectionError – If not connected to device.

  • BleakError – If command transmission fails.

async turn_dc_on() None

Turn the DC (12 V) output on.

Confirmed on real hardware: the 12 V port physically switched and the b2 status byte latched on. The Gen 2 reuses the AC on/off payload on a different command code (4102).

Raises:
  • ConnectionError – If not connected to device.

  • BleakError – If command transmission fails.

property ac_output: PortStatus

AC Port Status.

PortStatus.NOT_CONNECTED signifies off. PortStatus.OUTPUT signifies on.

Note

The AC port status is the first byte of the a7 parameter, mirroring the 04 <status> <watts LE> per-port shape used by the DC port (b2) and the USB ports; ac_power_out reads the watts from this same a7 TLV. Confirmed on hardware: a7[1] latches 01 (OUTPUT) when AC is on and 00 when off, tracking the relay. (The a4 parameter is constant at the previously-used offset and does NOT reflect the AC state.)

Returns:

Status of the AC port.

property ac_power_in: int

AC Power In (watts).

Returns:

Total AC power in or default int value.

property ac_power_out: int

AC Power Out (watts).

Returns:

Total AC power out or default int value.

property address: str

MAC address of device.

Returns:

The Bluetooth MAC address of the device.

property available: bool

Connected to device and data is available.

Returns:

True/False if the device is connected and sending telemetry.

property battery_health: int

Battery health.

Returns:

Percentage battery health or default int value.

property battery_percentage: int

Battery Percentage.

Returns:

Percentage charge of battery or default int value.

property connected: bool

Connected to device.

This does not mean that an encrypted connection has been established or that any data values have been populated, use the available property to determine that.

Returns:

True/False if connected to device.

property dc_output: PortStatus

DC Port Status.

Confirmed on hardware: b2[1] latched 01 (OUTPUT) when the 12 V port was switched on and 00 (NOT_CONNECTED) when off.

Returns:

Status of the DC output port.

property dc_power_out: int

DC Power Out (watts).

Confirmed on hardware: b2 [2:4] read 6 W with a 12 V load on the DC output, matching the 04 <status> <watts LE> per-port shape.

Returns:

DC power out or default int value.

property last_update: datetime | None

Timestamp of last telemetry data update from device.

Returns:

Timestamp of last update or None.

property max_battery_percentage: int

Maximum charge percentage.

Returns:

Battery charge percentage upper limit or default int value.

property min_battery_percentage: int

Minimum charge percentage.

Returns:

Battery charge percentage lower limit or default int value.

property name: str

Bluetooth name of the device.

Returns:

The name of the device or default string value.

property negotiated: bool

Has an encrypted session been successfully negotiated.

This does not mean that any data values have been populated, use the available property to determine that.

Returns:

True/False if session has been negotiated and connected.

property part_number: str

Device part number.

Returns:

Device part number or default str value.

property power_out: int

Total Power Out (watts).

Returns:

Total power out or default int value.

property serial_number: str

Device serial number.

Returns:

Device serial number or default str value.

property solar_port: PortStatus

Solar Port Status.

Returns:

Status of the solar port.

property solar_power_in: int

Solar/DC Power In (watts).

Note

Offset inferred, not yet confirmed on hardware (no solar/DC-in capture taken).

Returns:

Solar/DC power in or default int value.

property temperature: int

Temperature of the unit (C).

Returns:

Temperature of the unit in degrees C.

property usb_a1_power: int

USB A1 Power.

Returns:

USB port A1 power or default int value.

property usb_c1_power: int

USB C1 Power.

Returns:

USB port C1 power or default int value.

property usb_c2_power: int

USB C2 Power.

Returns:

USB port C2 power or default int value.

property usb_c3_power: int

USB C3 Power (watts).

Returns:

USB port C3 power or default int value.

property usb_port_a1: PortStatus

USB A1 Port Status.

Returns:

Status of the USB A1 port.

property usb_port_c1: PortStatus

USB C1 Port Status.

Returns:

Status of the USB C1 port.

property usb_port_c2: PortStatus

USB C2 Port Status.

Returns:

Status of the USB C2 port.

property usb_port_c3: PortStatus

USB C3 Port Status.

Returns:

Status of the USB C3 port.