GithubHelp home page GithubHelp logo

patrick762 / hassio-bluetti-bt Goto Github PK

View Code? Open in Web Editor NEW
25.0 25.0 5.0 183 KB

Bluetti Integration for Home Assistant

License: MIT License

Python 99.79% Shell 0.21%
bluetooth bluetti custom-component hacs-integration smart-home

hassio-bluetti-bt's People

Contributors

patrick762 avatar supaflav avatar viper5000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

hassio-bluetti-bt's Issues

[Bug]: Documentation

What happened?

Bought a Bluetti AC300 mainly because of the HA integration.
Sadly, i'm not sure where to start, there is no documentation on how to use this integration.

FWIW, I try to stay no-more than 1 HA version behind.

I have a bluetooth dongle on my HA (Blue) device. Besides installing this integration through HACS and having a bluetooth dongle, what else do I need to do?

More details:

I can see the bluetti-bt integration when I click on "Add integration" from the settings menu.
When I click it, it just has a drop-down full of MAC address which I assume are bluetooth MACs.
I installed an app on my android device to scan MAC addresses, so now I know the MAC for the AC300, but I can't find its MAC in the values listed on the dropdown.
I assume I'm missing a step somewhere.

Thanks in advance!

Version

0.0.17

What device are you seeing the problem on?

AC300

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No response

[Bug]: Entities are 'unknown' for AC500

What happened?

Just added the integration and configured integration for a AC500, which completed successfully. However, all entities for the this AC500 have a state of 'unknown'

image

Running beta version 0.0.16 for support of PBOX.
USB device is internal USB/Wifi module of the Raspberry Pi 4

Version

0.0.11

What device are you seeing the problem on?

AC500

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No response

[Bug]: AC70 support

What happened?

Configuration fault on homeassistant

Version

0.0.17

What device are you seeing the problem on?

AC60

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No response

[Bug]:

What happened?

hi Patrick, just tried to connect my new EP600. Doesn't work :( No Entities.
After the last firmware update the device appears as PBOX... instead of EP600... , I noticed.
Some general changes there?

Version

0.0.17

What device are you seeing the problem on?

EP900

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

EP 600
BT RasPi4

Relevant log output

2024-03-29 15:56:14.933 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry PBOX2246000632802 for bluetti_bt
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 504, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/bluetti_bt/__init__.py", line 55, in async_setup_entry
    coordinator = PollingCoordinator(hass, address, device_name, polling_interval, persistent_conn, polling_timeout, max_retries)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/bluetti_bt/coordinator.py", line 153, in __init__
    bluetti_device = build_device(address, device_name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/bluetti_mqtt/bluetooth/__init__.py", line 28, in build_device
    if match[1] == 'AC200M':
       ~~~~~^^^
TypeError: 'NoneType' object is not subscriptable

DC Input power/current 1 and 2 (From two set of PV panels) separately

Thanks for this. Much appreciated.
Feature request: Any possibility to get DC Input power/current 1 and 2 (From two set of PV panels) separately? I have not dug into the code yet. If you could do, will appreciate it. Otherwise, I will try to work on this find out the feasibility and provide a pull request when I have time.

AC300: Version up to 0.0.23 Incorrect values and batteries are not recognized.

What happened?

Hi Patrick !
my 2 cent's debug on ac300 with version 0.0.23

  1. no data for total_battery_voltage.
    on logs...

2024-05-21 21:42:47.141 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (total_battery_voltage)

  1. battery packs ..
    on logs...

2024-05-22 21:26:51.842 DEBUG (MainThread) [custom_components.bluetti_bt.bluetti_bt_lib.bluetooth.device_reader] Parsed pack_num(None) does not match expected '4'

grafik

How can i help you ?
Thanks a lot
Cheers

Version

0.0.17

What device are you seeing the problem on?

AC300

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No response

Failing to poll data (Invalid data from coordinator)

Hello,

First off, thank you very much for all your efforts getting this integration together!

Getting setup with my AC200M and able to poll data occasionally (between 30min to 4 hours), but unfortunately receiving errors most of the time.

2023-08-20 20:08:32.692 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Bleak error: failed to discover services, device disconnected
2023-08-20 20:08:32.695 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Finished fetching Bluetti polling coordinator data in 4.228 seconds (success: True)
2023-08-20 20:08:32.695 DEBUG (MainThread) [custom_components.bluetti_bt.binary_sensor] Updating state of ac200max_ac_output
2023-08-20 20:08:32.695 ERROR (MainThread) [custom_components.bluetti_bt.binary_sensor] Invalid data from coordinator (sensor.ac200max_ac_output)
2023-08-20 20:08:32.696 DEBUG (MainThread) [custom_components.bluetti_bt.binary_sensor] Updating state of ac200max_dc_output
2023-08-20 20:08:32.696 ERROR (MainThread) [custom_components.bluetti_bt.binary_sensor] Invalid data from coordinator (sensor.ac200max_dc_output)
2023-08-20 20:08:32.698 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_dc_input_power
2023-08-20 20:08:32.699 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_dc_input_power)
2023-08-20 20:08:32.702 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_ac_input_power
2023-08-20 20:08:32.702 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_ac_input_power)
2023-08-20 20:08:32.704 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_ac_output_power
2023-08-20 20:08:32.705 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_ac_output_power)
2023-08-20 20:08:32.707 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_dc_output_power
2023-08-20 20:08:32.707 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_dc_output_power)
2023-08-20 20:08:32.708 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_total_power_generation
2023-08-20 20:08:32.708 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_total_power_generation)
2023-08-20 20:08:32.709 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_total_battery_percent
2023-08-20 20:08:32.709 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_total_battery_percent)
2023-08-20 20:08:32.710 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_ac_output_mode
2023-08-20 20:08:32.711 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_ac_output_mode)
2023-08-20 20:08:32.712 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_internal_ac_voltage
2023-08-20 20:08:32.712 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_internal_ac_voltage)
2023-08-20 20:08:32.712 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_internal_current_sensor_1
2023-08-20 20:08:32.712 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_internal_current_sensor_1)
2023-08-20 20:08:32.714 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_internal_power_sensor_1
2023-08-20 20:08:32.714 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_internal_power_sensor_1)
2023-08-20 20:08:32.715 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_internal_ac_frequency
2023-08-20 20:08:32.715 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_internal_ac_frequency)
2023-08-20 20:08:32.716 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_total_battery_voltage
2023-08-20 20:08:32.716 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_total_battery_voltage)
2023-08-20 20:08:32.717 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_screen_auto_sleep_mode
2023-08-20 20:08:32.717 ERROR (MainThread) [custom_components.bluetti_bt.sensor] Invalid data from coordinator (sensor.ac200max_screen_auto_sleep_mode)

If I quickly connect/disconnect from my Android device via the Bluetti app it seems to kickstart a polling interval for HA, but then reverts back to the errors above. For infrequent successful polls from HA that can occur, I'm uncertain if my Android device is having any influence in the background.

2023-08-20 20:44:49.467 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Polling data
2023-08-20 20:44:52.844 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Requesting ReadHoldingRegisters(starting_address=10, quantity=40)
2023-08-20 20:44:53.069 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Got 85 bytes
2023-08-20 20:44:53.069 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Parsed data: {'device_type': 'AC200M', 'serial_number': 0, 'arm_version': Decimal('4030.15'), 'dsp_version': Decimal('4005.07'), 'dc_input_power': 0, 'ac_input_power': 470, 'ac_output_power': 0, 'dc_output_power': 0, 'power_generation': Decimal('0'), 'total_battery_percent': 22, 'ac_output_on': False, 'dc_output_on': False}
2023-08-20 20:44:53.069 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Requesting ReadHoldingRegisters(starting_address=70, quantity=21)
2023-08-20 20:44:53.294 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Got 47 bytes
2023-08-20 20:44:53.295 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Parsed data: {'ac_output_mode': <OutputMode.BYPASS_OUTPUT_C: 2>, 'internal_ac_voltage': 0, 'internal_current_one': Decimal('0'), 'internal_power_one': 0, 'internal_ac_frequency': Decimal('0'), 'internal_dc_input_voltage': 0, 'internal_dc_input_power': Decimal('0'), 'internal_dc_input_current': Decimal('0')}
2023-08-20 20:44:53.295 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Requesting ReadHoldingRegisters(starting_address=3001, quantity=61)
2023-08-20 20:44:53.510 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Got 127 bytes
2023-08-20 20:44:53.511 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Parsed data: {'pack_num': 1, 'ac_output_on': False, 'dc_output_on': False, 'power_off': False, 'auto_sleep_mode': <AutoSleepMode.THIRTY_SECONDS: 2>}
2023-08-20 20:44:55.447 DEBUG (MainThread) [custom_components.bluetti_bt.coordinator] Finished fetching Bluetti polling coordinator data in 5.980 seconds (success: True)
2023-08-20 20:44:55.447 DEBUG (MainThread) [custom_components.bluetti_bt.binary_sensor] Updating state of ac200max_ac_output
2023-08-20 20:44:55.447 DEBUG (MainThread) [custom_components.bluetti_bt.binary_sensor] Updating state of ac200max_dc_output
2023-08-20 20:44:55.448 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_dc_input_power
2023-08-20 20:44:55.448 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_ac_input_power
2023-08-20 20:44:55.449 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_ac_output_power
2023-08-20 20:44:55.450 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_dc_output_power
2023-08-20 20:44:55.450 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_total_power_generation
2023-08-20 20:44:55.450 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_total_battery_percent
2023-08-20 20:44:55.451 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_ac_output_mode
2023-08-20 20:44:55.451 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_internal_ac_voltage
2023-08-20 20:44:55.452 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_internal_current_sensor_1
2023-08-20 20:44:55.452 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_internal_power_sensor_1
2023-08-20 20:44:55.453 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_internal_ac_frequency
2023-08-20 20:44:55.453 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_total_battery_voltage
2023-08-20 20:44:55.453 DEBUG (MainThread) [custom_components.bluetti_bt.sensor] Updating state of ac200max_screen_auto_sleep_mode

The goal is obviously to have HA gather the data reliably by itself without an external device kickstarting the process. So close to getting it working, but alas something is amiss. Your help is greatly appreciated!

[Bug]: integration freezes

What happened?

The integration freezes after a certain time and can no longer be started and does not display any current values.
Is the problem known?

Version

0.0.11

What device are you seeing the problem on?

AC200M

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No response

AC200M: Adding battery_pack_x_dc_input fields please and some fields Unknown

What happened?

Hi there, I've migrated over from the previous SSMCD/bluetti2mqtt integration because it wasnt working with my newly installed esp32 BT proxy. Found this integration and tried it out.

I have an AC200Max with 2x B230 batteries. I have solar panels connected to my AC200M Aviator plug but I also purchased a D050S DC Enhancer to plug into one of the B230 for extra solar charging.

However, I dont have access to the battery_pack_x_dc_input field.
I had access to those fields with the previous SSMCD/bluetti2mqtt. Is it possible to expose those fields?

I also noticed that some of the fields are Unknown.

Thank you, appreciate the work you've done!

Version

0.0.17

What device are you seeing the problem on?

AC200M

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

image

Add AC180P support

Is it possible to add AC180P support?

Logger: homeassistant.config_entries
Source: config_entries.py:406
First occurred: 15:59:42 (1 occurrences)
Last logged: 15:59:42

Error setting up entry AC180P2341000448157 for bluetti_bt
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/bluetti_bt/__init__.py", line 55, in async_setup_entry
    coordinator = PollingCoordinator(hass, address, device_name, polling_interval, persistent_conn, polling_timeout, max_retries)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/bluetti_bt/coordinator.py", line 153, in __init__
    bluetti_device = build_device(address, device_name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/bluetti_mqtt/bluetooth/__init__.py", line 28, in build_device
    if match[1] == 'AC200M':
       ~~~~~^^^
TypeError: 'NoneType' object is not subscriptable

[Bug]: no data connection to EB3A since new Firmware update

What happened?

No data connection since i updated my EB3A. All stats are unknown. i only can add the EB3A but no data gets loaded.

integration Version 0.0.21

ARM: v2063,03
DSP: v2052,11

what i tried

Soft Reboot
Hard Reboot
Integration Reinstall (remove device -> Uninstall -> Reboot -> Install -> Reboot -> adding device works but no data
Swtich From Internal BT to BT dongle and back

i cant provied any Debug. Debug issnt working

Version

0.0.17

What device are you seeing the problem on?

EB3A

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

2024-03-31 20:24:27.925 ERROR (MainThread) [custom_components.bluetti_bt.bluetti_bt_lib.bluetooth.device_reader] Polling timed out
2024-03-31 20:24:27.927 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXdc_input_power
2024-03-31 20:24:27.928 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXac_input_power
2024-03-31 20:24:27.928 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXac_output_power
2024-03-31 20:24:27.929 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXdc_output_power
2024-03-31 20:24:27.929 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXtotal_power_generation
2024-03-31 20:24:27.930 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXtotal_battery_percent
2024-03-31 20:24:27.930 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXac_input_voltage
2024-03-31 20:24:27.930 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXinternal_dc_input_voltage
2024-03-31 20:24:27.931 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXled_mode
2024-03-31 20:24:27.932 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXeco_shutdown
2024-03-31 20:24:27.933 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for eb3a23XXXXXXXXXXcharging_mode
2024-03-31 20:24:27.934 ERROR (MainThread) [custom_components.bluetti_bt.switch] Invalid data from coordinator (switch.eb3a23XXXXXXXXXXac_output)
2024-03-31 20:24:27.934 ERROR (MainThread) [custom_components.bluetti_bt.switch] Invalid data from coordinator (switch.eb3a23XXXXXXXXXXdc_output)
2024-03-31 20:24:27.935 ERROR (MainThread) [custom_components.bluetti_bt.switch] Invalid data from coordinator (switch.eb3a23XXXXXXXXXXpower_off)
2024-03-31 20:24:27.936 ERROR (MainThread) [custom_components.bluetti_bt.switch] Invalid data from coordinator (switch.eb3a23XXXXXXXXXXeco_mode)
2024-03-31 20:24:27.936 ERROR (MainThread) [custom_components.bluetti_bt.switch] Invalid data from coordinator (switch.eb3a23XXXXXXXXXXpower_lifting)

Tried version 0.0.11 and beta 0.0.22 not possible make integration in home assistant[Bug]:

What happened?

hassio-bluetti-bt is not being integrated after intsalling over hacs. I also tried mannualy adding the files but without success.

Version

0.0.11

What device are you seeing the problem on?

AC200M

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

Hassio bluetti bt pops up a windows without ending the integration

No stats on sensors

Installed without issues via HACS.
It detected my Bluetti EB3A and shows 1 device with 13 entities. However the entities have no stats.
Also worth noting I have an external MQTT integration already setup on HASS. Not sure if this is trying to use its own or how it stores the values?
Any suggestions where I need to start looking?

Hard Locks HA Docker

Hello,

Thanks for the integration! When I have it installed, within a few minutes Home Assistant stops responding. Nothing showing up in the logs, but it just stop responding. I have to restart the container to get it back up, and within a few minutes it stops responding again. When I remove the integration and restart the container, it's stable again, for days. Without anything different in my logs, I realize it's not very helpful information, but it is specific to this integration and repeatable/easily reproducible by just installing it, restarting the container, configuring the integration to work with a couple of EB3A batteries, and waiting a few minutes.

"Few minutes" is vague, but it seems like it's up to ~10 minutes. I've had time to configure the integration and see a few of my EB3A batteries before it locks up. I do check the boxes to allow controlling the switches and persistent bluetooth connections.

I hope that helps.

[Bug]: Cannot rename entities?

What happened?

This is working pretty well overall. However, I renamed my entity_ids to be human readable. Things were fine for a while, but then I noticed all my entities were unavailable. When I checked the integration, my renamed entities were unavailable but the original entities were back. So it seems it does not honor entity id changes for some reason.

Version

0.0.11

What device are you seeing the problem on?

EB3A

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

Yes (Please write down the changed settings in the next step)

Integration settings (if you changed them)

Polling interval changed to 45 seconds.

Relevant log output

No response

AC500+2B300S difference between 0.0.16 and 0.0.20

There are quite some sensors which don't work anymore or show wrong values after updating from 0.0.16 to 0.0.20.
I thought you were just adding new Powerstations and the working ones don't get changed, but it seems you changed a lot.

First: how it looked with 0.0.16:
Result1 AC500 and 2xB300S Bluetti BT 0 0 16
Result2 AC500 and 2xB300S Bluetti BT 0 0 16

And with 0.0.20:

  1. AC DC output controls: you can't really see if they are on or off, the 0.0.16 way showed it clearly
  2. AC Input Frequency is now "unknown"
  3. AC Output mode only shows numbers, no text.
  4. Battery Range start/End is missing.
  5. Grid charge is now "unknown"
  6. internal AC Frequency is 500Hz instead of 50Hz
  7. internal AC Voltage is 2288V instead of 228,8V
  8. Split phase machine type ist "unknown"
  9. Time Control is "unknown"
  10. UPS Working mode is "unknown"
  11. Battery Pack 1 and 2 Infos are "unavailable"
Result1 AC500 and 2xB300S Bluetti BT 0 0 20 Result2 AC500 and 2xB300S Bluetti BT 0 0 20

v0.0.11 connection issues on Core 2024.1.2 (working on 2023.11.3)

Tested with OS 11.3 + Core 2023.11.3 and all appeared well, but updating to Core 2024.1.2 causes a recurring connection fault. Last error repeated thereafter every ~15s.

2024-01-06 09:58:51.917 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Polling timed out for device XX:XX:XX:XX:XX:95 2024-01-06 09:58:51.917 WARNING (MainThread) [custom_components.bluetti_bt] You are using controls with this integration at your own risk! 2024-01-06 09:59:09.921 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Bleak error: failed to discover services, device disconnected

Running AC200M - controls enabled, persistent connection enabled, 15s polling, 45 poll timeout, 5 max connect retries

[Bug]: AC500+b300s - only one battery appears used

What happened?

I noticed a mismatch between bluetti app and hassio: first two batteries are always reported at 100% while the 3rd one fluctuates between 75-87, voltage has similar pattern.
sensor.blue_ac500_battery_pack_2_percent
sensor.blue_ac500_battery_pack_1_voltage
sensor.blue_ac500_battery_pack_2_status - unknown

Minor issue as total seems to be fine:
sensor.blue_ac500_total_battery_percent

I'm leaning towards this being untested/bug with ac500 here. It is possible bluetti app is misreporting as well but data looks more realistic.

Let me know/point me how I can send you better debug info/tests.

cheers

Screenshot_2024-01-30-03-21-58-12_c3a231c25ed346e59462e84656a70e50

Screenshot_2024-01-30-03-23-32-89_f1c106e665bed24c8e00c9069bf9ec39

Version

0.0.11

What device are you seeing the problem on?

AC500

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No response

EB3A not working anymore

Bluetooth connection lost every few hours. Reconnect not possible.

Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht

Logger: custom_components.bluetti_bt.coordinator
Source: custom_components/bluetti_bt/coordinator.py:259
Integration: Bluetti BT (documentation, issues)
First occurred: 8. Januar 2024 um 23:56:19 (1857 occurrences)
Last logged: 17:44:25

Polling timed out for device XX:XX:XX:XX:XX:C6

[Bug]: Installation not possible

What happened?

I am just getting this window when trying to add the integration:

image

Version

0.0.11

What device are you seeing the problem on?

AC200M

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No response

[Bug]: All entities 'unknown' after reinstallation no entities found

What happened?

I had this add-on working for a while, but suddenly the situation arose again (after an update) in which entities were given the status 'unknown'.
I've removed my configuration, restarted my EP600, restarted HA and tried to connect.
The device was now auto discovered (though an ESPhome bluetooth proxy). After selection the auto discovered device the add-on throws me the following error: 'setup failed, will try again' and 'no devices or entities found'.

Version

0.0.17

What device are you seeing the problem on?

EP500

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

false

Integration settings (if you changed them)

It's an EP600, but this device was not selectable in the above dropdown.
Using version 0.0.21 (which was not selectable in the above dropdown).

Relevant log output

Error setting up entry U2246000761042 for bluetti_bt
13:06:29 - (FOUT) config_entries.py

Bleak error: No backend with an available connection slot that can reach address: E0:5a:1B:45:5C:45 was found
13:05:30 - (FOUT) Bluetti BT  (custom integration) - message first came at 13:05:03 and appears 46 times

Polling timed out
13:05:30 - (FOUT) Bluetti BT  (custom integration) - message first came at 13:05:03 and appears 3 times

[Bug]: AC200M : many errors in settings -> system -> logs

What happened?

Problem : AC-OUTPUT ON/OFF and DC-OUTPUT ON/OFF are executed after reboot of
raspberrypi v3plus
dashboard not updated, battery status and charge power freeze sometimes

Version

0.0.11

What device are you seeing the problem on?

AC200M

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

Yes (Please write down the changed settings in the next step)

Integration settings (if you changed them)

Options
Use Controls ON
Polling interval  90 sec
Polling timeout   50 sec

Relevant log output

Error log 
This error originated from a custom integration.

Logger: custom_components.bluetti_bt.switch
Source: custom_components/bluetti_bt/switch.py:126
integration: Bluetti BT (documentation, issues)
First occurred: 17:47:13 (2 occurrences)
Last logged: 17:47:13

Invalid data from coordinator (switch.ac200mXXXXXXXXXXac_output)
Invalid data from coordinator (switch.ac200mXXXXXXXXXXdc_output)

warnings 
This error originated from a custom integration.

Logger: custom_components.bluetti_bt.sensor
Source: custom_components/bluetti_bt/sensor.py:163
integration: Bluetti BT (documentation, issues)
First occurred: 17:43:57 (8 occurrences)
Last logged: 17:45:32

No data for available for (total_battery_voltage)
No data for available for (pack_status1)
No data for available for (pack_status2)
No data for available for (pack_status3)

This error originated from a custom integration.

Logger: custom_components.bluetti_bt.sensor
Source: custom_components/bluetti_bt/sensor.py:147
integration: Bluetti BT (documentation, issues)
First occurred: 17:47:13 (22 occurrences)
Last logged: 17:47:13

Data from coordinator is None. Skipping update for ac200mXXXXXXXXXXbattery_pack_2_voltage
Data from coordinator is None. Skipping update for ac200mXXXXXXXXXXbattery_pack_2_percent
Data from coordinator is None. Skipping update for ac200mXXXXXXXXXXbattery_pack_3_status
Data from coordinator is None. Skipping update for ac200mXXXXXXXXXXbattery_pack_3_voltage
Data from coordinator is None. Skipping update for ac200mXXXXXXXXXXbattery_pack_3_percent

This error originated from a custom integration.

Logger: custom_components.bluetti_bt
Source: custom_components/bluetti_bt/__init__.py:61
integration: Bluetti BT (documentation, issues)
First occurred: 17:42:17 (1 occurrences)
Last logged: 17:42:17

You are using controls with this integration at your own risk!

Logger: homeassistant.helpers.frame
Source: helpers/frame.py:188
First occurred: 17:42:10 (1 occurrences)
Last logged: 17:42:10

Detected that custom integration 'hacs' accesses hass.components.frontend. This is deprecated and will stop working in Home Assistant 2024.9, it should be updated to import functions used from frontend directly at custom_components/hacs/frontend.py, line 68: hass.components.frontend.async_register_built_in_panel(, please create a bug report at https://github.com/hacs/integration/issues

[Bug]: AC200L support

What happened?

Hi, is it possible to add support also on AC200L??? the integration can recognize it but it doesn't show any entities, do I have to change something on the yaml file?? Thanks in advance

Version

0.0.17

What device are you seeing the problem on?

AC200M

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No response

Bluetti EP760 Home Assistant intigrieren

Hallo Patrick,

könntest du mir Bitte Helfen?
eventuell kurz beschreiben was ich alles machen muss um meine ep760 zu intigrieren.

Habe schon hassio-bluetti-bt in Hacs installiert aber komme nicht weiter.

Ich muss ja irgendwie eine Bluetooth verbindung herstellen und den Sensor einbinden, weiß leider nicht wie es geht.

No polling with Ac200max

I have no polling with my AC200Max, just once on Home Assistant start but after nothing even with persistent connection and 10s polling.

Bluetti EB3A - no entities shown

Got the integration manually installed through HACS, restarted HA amd added in integration.
Power station EB3A was automatically identified and added. BT connection using BT proxy.

However device setup fails: no entities available.

Any thoughts? Thanks.

No stats/values for entities

I've installed the integration without issues via HACS.
It detected my Bluetti EP600 and it directly showed my EP600 device with his 36 entities. However all these entities have no stats/values, even after 24 hours.
The EP600 is running but at the moment with the inverter on 'off' state as shown within the official Bluetti app.

[no issue] Thank you

Hi there,

I discovered your project yesterday and just wanted to thank you for your work!

The installation via HACS using v.0.0.2 worked flawlessly ootb and the upgrade to v0.0.3 as well.
My AC300 lost its BT connection in between, but I doubt this is project related.
Seems like all available sensors were detected successfully.
Thanks a lot! :)

Fix manifest dependencies

Trying to read from my AC300

Fresh Pi with bluetooth dongle. The system sees my AC300, and EB3A, and prompts me to configure them. it won't pull data, logs are filled with this:

2024-01-27 11:55:10.872 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for ac3002XXXXXXXXXXbattery_pack_4_voltage
2024-01-27 11:55:10.872 WARNING (MainThread) [custom_components.bluetti_bt.sensor] Data from coordinator is None. Skipping update for ac3002XXXXXXXXXXbattery_pack_4_percent
2024-01-27 11:55:30.864 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Bleak error: No backend with an available connection slot that can reach address 00:15:XX:XX:XX:XX was found

I also get one of these on boot:

This error originated from a custom integration.

Logger: mqtt
Source: custom_components/bluetti_bt/const.py:3
Integration: Bluetti BT (documentation, issues)
First occurred: 11:46:50 AM (1 occurrences)
Last logged: 11:46:50 AM

We renamed asyncio-mqtt to aiomqtt and released a version 1.0.0 in the process. This is the last release under the asyncio-mqtt name. You can find the new repository at https://github.com/sbtinstruments/aiomqtt

[Bug]: AC500 + 2xB300S: all Battery Infos are "unknown", "DC Input 1" missing

What happened?

I just moved from Bluetti_MQTT Integration on a Raspberry PI to your integration. Thanks for all the effort.

I got all the infos from my AC500 except:

  1. all battery infos are missing except "Total Battery Percent".
  2. "DC Input 1" is missing

With the Bluetti_MQTT 0.11 I got the battery percent infos for both batteries and also for "DC Input 1" (for PV Input 1, additional to "DC Input" for complete PV Input).

Battery Info1 Battery Info2

Version

0.0.11

What device are you seeing the problem on?

AC500

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

Yes (Please write down the changed settings in the next step)

Integration settings (if you changed them)

Use Controls changed to "Enabled" and Debug changed to "Enabled"

Relevant log output

This error originated from a custom integration.

Logger: custom_components.bluetti_bt.sensor
Source: custom_components/bluetti_bt/sensor.py:163
Integration: Bluetti BT (documentation, issues)
First occurred: 15:33:21 (6230 occurrences)
Last logged: 21:14:18

No data for available for (pack_voltage1)
No data for available for (pack_battery_percent1)
No data for available for (pack_status2)
No data for available for (pack_voltage2)
No data for available for (pack_battery_percent2)

[Priority] Invalid values

Some values don't seem right (most likely decoding problems with negative values) at the AC output power entities

[Bug]: > 0.16 working with old firmware?

What happened?

I can't get v 0.17+ to run on my AC300 with older firmware. v 0.16 works great. I'm about to send this unit back (because it won't update to the latest firmware - Wifi is unstable).

My firmware(s) are:
IoT: v9014.09 ARM: v4032.10 DSP: v4031.16 Battery: v1024.04

Version

0.0.17

What device are you seeing the problem on?

AC300

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

No log output - just constantly says it can't connect.  The front panel of the AC300 says there's a Bluetooth connection.

[Bug]: Integration broken for EP600 with current Firmware (IOT v9043,12)

What happened?

The integration does not load. The device name is not EP600... anymore but PBOX... instead.

Version

0.0.11

What device are you seeing the problem on?

EP600

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

Error setting up entry PBOX22460... for bluetti_bt
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/bluetti_bt/__init__.py", line 55, in async_setup_entry
    coordinator = PollingCoordinator(hass, address, device_name, polling_interval, persistent_conn, polling_timeout, max_retries)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/bluetti_bt/coordinator.py", line 153, in __init__
    bluetti_device = build_device(address, device_name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/bluetti_mqtt/bluetooth/__init__.py", line 28, in build_device
    if match[1] == 'AC200M':
       ~~~~~^^^
TypeError: 'NoneType' object is not subscriptable

AC60 no output power control

Thank you for this great integration!

Ich would like to control the DC output on my AC60 but i can´t get control of it.
Maybe i´m doing something wrong, but i don´t think so ;)

Can you help?

Best regards, Ralf

[Bug]: AC300 + 2x Battery not showing battery data

What happened?

AC300 + 2x Battery not showing battery data
grafik
Thanks a lot

Version

0.0.11

What device are you seeing the problem on?

AC300

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

2024-02-10 13:31:13.695 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent4)
2024-02-10 13:31:52.460 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Got an invalid request error for ReadHoldingRegisters(starting_address=91, quantity=37): MODBUS Exception ReadHoldingRegisters(starting_address=91, quantity=37): 5
2024-02-10 13:31:53.045 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Got an invalid request error for ReadHoldingRegisters(starting_address=91, quantity=37): MODBUS Exception ReadHoldingRegisters(starting_address=91, quantity=37): 5
2024-02-10 13:31:53.705 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Got an invalid request error for ReadHoldingRegisters(starting_address=91, quantity=37): MODBUS Exception ReadHoldingRegisters(starting_address=91, quantity=37): 5
2024-02-10 13:31:54.275 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Got an invalid request error for ReadHoldingRegisters(starting_address=91, quantity=37): MODBUS Exception ReadHoldingRegisters(starting_address=91, quantity=37): 5
2024-02-10 13:31:56.695 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (total_battery_voltage)
2024-02-10 13:31:56.695 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (total_battery_current)
2024-02-10 13:31:56.695 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_status1)
2024-02-10 13:31:56.696 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_voltage1)
2024-02-10 13:31:56.696 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent1)
2024-02-10 13:31:56.696 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_status2)
2024-02-10 13:31:56.696 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_voltage2)
2024-02-10 13:31:56.696 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent2)
2024-02-10 13:31:56.696 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_status3)
2024-02-10 13:31:56.697 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_voltage3)
2024-02-10 13:31:56.697 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent3)
2024-02-10 13:31:56.697 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_status4)
2024-02-10 13:31:56.697 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_voltage4)
2024-02-10 13:31:56.697 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent4)
2024-02-10 13:32:35.683 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Got an invalid request error for ReadHoldingRegisters(starting_address=91, quantity=37): MODBUS Exception ReadHoldingRegisters(starting_address=91, quantity=37): 5
2024-02-10 13:32:36.283 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Got an invalid request error for ReadHoldingRegisters(starting_address=91, quantity=37): MODBUS Exception ReadHoldingRegisters(starting_address=91, quantity=37): 5
2024-02-10 13:32:36.950 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Got an invalid request error for ReadHoldingRegisters(starting_address=91, quantity=37): MODBUS Exception ReadHoldingRegisters(starting_address=91, quantity=37): 5
2024-02-10 13:32:37.535 WARNING (MainThread) [custom_components.bluetti_bt.coordinator] Got an invalid request error for ReadHoldingRegisters(starting_address=91, quantity=37): MODBUS Exception ReadHoldingRegisters(starting_address=91, quantity=37): 5
2024-02-10 13:32:39.692 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (total_battery_voltage)
2024-02-10 13:32:39.692 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (total_battery_current)
2024-02-10 13:32:39.692 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_status1)
2024-02-10 13:32:39.692 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_voltage1)
2024-02-10 13:32:39.693 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent1)
2024-02-10 13:32:39.693 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_status2)
2024-02-10 13:32:39.693 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_voltage2)
2024-02-10 13:32:39.693 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent2)
2024-02-10 13:32:39.693 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_status3)
2024-02-10 13:32:39.693 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_voltage3)
2024-02-10 13:32:39.693 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent3)
2024-02-10 13:32:39.694 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_status4)
2024-02-10 13:32:39.694 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_voltage4)
2024-02-10 13:32:39.694 WARNING (MainThread) [custom_components.bluetti_bt.sensor] No data for available for (pack_battery_percent4)

[Bug]: Still cannot rename entities

What happened?

A continuation of #49, which was erroneously closed...

I upgraded to 0.0.22, which did fix the breaking change that blocked me in that original thread. Then I decided to go ahead with renaming all my entities. I assumed it was working, but now I see I have two of each entity again, the names I provided and a copy with "_2". My originally named entities are all unavailable. So the entity renaming is still not working for me.

image

Version

0.0.17

What device are you seeing the problem on?

EB3A

What bluetooth connection are you using?

ESPHome bluetooth proxy

Have you changed the integration settings?

Yes (Please write down the changed settings in the next step)

Integration settings (if you changed them)

Use Controls On
Persistent Connection Off
Polling interval 450
Polling timeout 10
Retries 5

Relevant log output

I did not check the log on the reboot where the duplicate entities, but this is after my last reboot:

2024-04-19 06:43:59.140 WARNING (MainThread) [custom_components.bluetti_bt] You are using controls with this integration at your own risk!
2024-04-19 06:43:59.191 ERROR (MainThread) [homeassistant.components.binary_sensor] Platform bluetti_bt does not generate unique IDs. ID network_bluetti_ac_output already exists - ignoring binary_sensor.network_bluetti_ac_output_2
2024-04-19 06:43:59.192 ERROR (MainThread) [homeassistant.components.binary_sensor] Platform bluetti_bt does not generate unique IDs. ID network_bluetti_dc_output already exists - ignoring binary_sensor.network_bluetti_dc_output_2

[Bug]: Adding AC200L says failed to setup

What happened?

Hi is it possible to install the AC200L?

It finds it on Bluetooth ok but then fails to setup entity’s for the device.

Using Raspberry Pi4 for HA and Bluetooth

image

Version

0.0.17

What device are you seeing the problem on?

AC200M

What bluetooth connection are you using?

USB dongle

Have you changed the integration settings?

false

Integration settings (if you changed them)

No response

Relevant log output

Error setting up entry AC200L234xxxxxxxxxx for bluetti_bt
20:18:36 - (ERROR) config_entries.py - message first occurred at 14:57:39 and shows up 3 times

Possible to control EP600

Hey Patrick,

do you think that is possible to control the EP600 and change some values over HA?
For me it would be perfekt to switch the "Main Switch" from the App to on/off.

Greetings ausm Saarland ;-)
Steffen

IMG_9626

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.