Skip to main content

Bluetti BT

Project description

bluetti-bt-lib

Inofficial Library for basic communication to bluetti powerstations. Core functions based on https://github.com/warhammerkid/bluetti_mqtt

The current Roadmap for this project and repositories using this library can be found here

Disclaimer

This library is provided without any warranty or support by Bluetti. I do not take responsibility for any problems it may cause in all cases. Use it at your own risk.

Projects using this library

Supported Powerstations and data

Validated

Device Name total_battery_percent dc_input_power ac_input_power dc_output_power ac_output_power
AC70
AC180
EB3A
EP600 PV Grid AC Phases
Handsfree 1

Added and mostly validated by contributors (some are moved here from the HA Integration https://github.com/Patrick762/hassio-bluetti-bt):

Device Name Contributor total_battery_percent dc_input_power ac_input_power dc_output_power ac_output_power
AC2A @ruanmed
AC50B @goetzc
AC60 @mzpwr
AC60P @mzpwr
AC70P @matthewpucc
AC180P @Patrick762
AC200L bluetti-mqtt
AC200M bluetti-mqtt
AC200PL @0x4E4448
AC300 bluetti-mqtt
AC500 bluetti-mqtt
AP300 @seaburger
EL30V2 @dgudim
EL100V2 @seaburger
EP500 bluetti-mqtt
EP500P bluetti-mqtt
EP760 @Apfuntimes PV Grid AC Phases
EP800 @jhagenk

Controls

Currently only "switches" are supported

Validated

Device Name ctrl_ac ctrl_dc
EB3A

Battery pack data

Data for battery packs will no longer be available in this library

Installation

pip install bluetti-bt-lib

Commands for testing

Commands included in this library should only be used for testing.

Scan for supported devices

usage: bluetti-scan [-h]

Detect bluetti devices by bluetooth name

options:
  -h, --help  show this help message and exit

Example output: ['EB3A', '00:00:00:00:00:00']

Detect device type by mac address

usage: bluetti-detect [-h] mac

Detect bluetti devices

positional arguments:
  mac         Mac-address of the powerstation

options:
  -h, --help  show this help message and exit

Example:

bluetti-detect 00:00:00:00:00:00

Example output: Device type is 'EB3A' with iot version 1 and serial 0000000000000. Full name: EB3A0000000000000

Read device data for supported devices

usage: bluetti-read [-h] [-m MAC] [-t TYPE] [-e ENCRYPTION]

Detect bluetti devices

options:
  -h, --help            show this help message and exit
  -m MAC, --mac MAC     Mac-address of the powerstation
  -t TYPE, --type TYPE  Type of the powerstation (AC70 f.ex.)
  -e ENCRYPTION, --encryption ENCRYPTION
                        Add this if encryption is needed

Example:

bluetti-read -m 00:00:00:00:00:00 -t EB3A

Example output:

FieldName.DEVICE_TYPE: EB3A
FieldName.DEVICE_SN: 0000000000000
FieldName.BATTERY_SOC: 92%
FieldName.DC_INPUT_POWER: 0W
FieldName.AC_INPUT_POWER: 0W
FieldName.AC_OUTPUT_POWER: 0W
FieldName.DC_OUTPUT_POWER: 0W
FieldName.CTRL_AC: False
FieldName.CTRL_DC: True
FieldName.CTRL_LED_MODE: LedMode.OFF
FieldName.CTRL_POWER_OFF: False
FieldName.CTRL_ECO: False
FieldName.CTRL_ECO_TIME_MODE: EcoMode.HOURS1
FieldName.CTRL_CHARGING_MODE: ChargingMode.STANDARD
FieldName.CTRL_POWER_LIFTING: False

Write to supported device

INFO: Devices with encryption are currently not supported!

usage: bluetti-write [-h] [-m MAC] [-t TYPE] [--on ON] [--off OFF] [-v VALUE] [-e ENCRYPTION] field

Write to bluetti device

positional arguments:
  field                 Field name (ctrl_dc f.ex.)

options:
  -h, --help            show this help message and exit
  -m MAC, --mac MAC     Mac-address of the powerstation
  -t TYPE, --type TYPE  Type of the powerstation (AC70 f.ex.)
  --on ON               Value to write
  --off OFF             Value to write
  -v VALUE, --value VALUE
                        Value to write (integer, see enum for value)
  -e ENCRYPTION, --encryption ENCRYPTION
                        Add this if encryption is needed

Example:

bluetti-write -m 00:00:00:00:00:00 -t EB3A --on on ctrl_ac

Adding fields

To add new fields, you can use the bluetti-detect command to first find out which version of iot protocol is used and if it uses encryption.

After you got this information, you can use the bluetti-readall command to read every registry and save the data to a json file. You should also note all values you see in the app to later compare the data.

Here's how to use the bluetti-readall command:

usage: bluetti-readall [-h] [-m MAC] [-v VERSION] [-e ENCRYPTION]

Detect bluetti devices

options:
  -h, --help            show this help message and exit
  -m MAC, --mac MAC     Mac-address of the powerstation
  -v VERSION, --version VERSION
                        IoT protocol version
  -e ENCRYPTION, --encryption ENCRYPTION
                        Add this if encryption is needed

With the separate tool at bluetti-bt-raw-reader you can view those values in a more understandable way.

You can also share the output with me using this form

To test added fields with the created json file, use bluetti-parse:

usage: bluetti-parse [-h] file

Parse readall output files

positional arguments:
  file        JSON file of the powerstation readall output

options:
  -h, --help  show this help message and exit

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bluetti_bt_lib-0.1.5b1.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bluetti_bt_lib-0.1.5b1-py3-none-any.whl (51.1 kB view details)

Uploaded Python 3

File details

Details for the file bluetti_bt_lib-0.1.5b1.tar.gz.

File metadata

  • Download URL: bluetti_bt_lib-0.1.5b1.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for bluetti_bt_lib-0.1.5b1.tar.gz
Algorithm Hash digest
SHA256 0fd837cbcfb4a94778759cef9d626e12e199d8f309fe167cb7ced0d48843303f
MD5 177a7f515ca77ac7eb515ef755eb0765
BLAKE2b-256 e691e030361334c71958b0d9c13f82f296c68ef48cc286edaec917ce30bbe61c

See more details on using hashes here.

File details

Details for the file bluetti_bt_lib-0.1.5b1-py3-none-any.whl.

File metadata

File hashes

Hashes for bluetti_bt_lib-0.1.5b1-py3-none-any.whl
Algorithm Hash digest
SHA256 9c898b5f4cd28188078cb96a919a834a9d322004ea6b93fe98f919ad290d51f9
MD5 fb1d87553d35fb6dbf8178583f611217
BLAKE2b-256 e33e6a9b348950af9f08d041354218193a535c691b04e9b33d4ac7e409d860cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page