Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Read out two Neey balancers? #545

Closed
mathschut opened this issue Jul 26, 2024 · 5 comments · Fixed by #546
Closed

Read out two Neey balancers? #545

mathschut opened this issue Jul 26, 2024 · 5 comments · Fixed by #546

Comments

@mathschut
Copy link

Hi, can someone tell me what the config should look like if I want to monitor two Neey Balancers?

@syssi syssi linked a pull request Jul 26, 2024 that will close this issue
@mathschut
Copy link
Author

mathschut commented Jul 26, 2024

Hi, thanks for the file. I have now set up my Mac addresses and I always get data. Unfortunately it always hangs up. Do you have any idea what could be causing this?

Is it possible that the ESP is overloaded with two devices?

Here the eror:

INFO ESPHome 2024.7.2
INFO Reading configuration /config/esphome/neey.yaml...
INFO Updating https://github.com/syssi/esphome-jk-bms.git@main
INFO Starting log output from 192.168.1.201 using esphome API
INFO Successfully connected to heltec-balancer @ 192.168.1.201 in 7.213s
WARNING Can't connect to ESPHome API for heltec-balancer @ 192.168.1.201: Timeout waiting for HelloResponse, ConnectResponse after 30.0s (TimeoutAPIError)
INFO Trying to connect to heltec-balancer @ 192.168.1.201 in the background
WARNING heltec-balancer @ 192.168.1.201: Connection error occurred: heltec-balancer @ 192.168.1.201: Connection lost

@syssi
Copy link
Owner

syssi commented Jul 26, 2024

Let's start with a super simple and lightweight setup just for comparison:

substitutions:
  name: heltec-balancer
  balancer0: "${name} device0"
  balancer1: "${name} device1"
  device_description: "Monitor and control a Heltec/NEEY 4A balancer via bluetooth"
  external_components_source: github://syssi/esphome-jk-bms@main
  balancer0_mac_address: C8:47:8C:E1:E2:FF
  balancer1_mac_address: C8:47:8C:E1:E2:EE

esphome:
  name: ${name}
  comment: ${device_description}
  min_version: 2024.6.0
  project:
    name: "syssi.esphome-jk-bms"
    version: 2.0.0

esp32:
  board: wemos_d1_mini32
  framework:
    type: esp-idf

external_components:
  - source: ${external_components_source}
    refresh: 0s

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

ota:
  platform: esphome
  on_begin:
    then:
      - switch.turn_off: ble_client_switch0
      - switch.turn_off: ble_client_switch1
      - logger.log: "BLE connection suspended for OTA update"

logger:
  level: DEBUG

# If you don't use Home Assistant please remove this `api` section and uncomment the `mqtt` component!
api:

# mqtt:
#   broker: !secret mqtt_host
#   username: !secret mqtt_username
#   password: !secret mqtt_password
#   id: mqtt_client

esp32_ble_tracker:
  on_ble_advertise:
    then:
      - lambda: |-
          if (x.get_name().rfind("GW-", 0) == 0) {
            ESP_LOGI("ble_adv", "New Heltec/NEEY balancer found");
            ESP_LOGI("ble_adv", "  Name: %s", x.get_name().c_str());
            ESP_LOGI("ble_adv", "  MAC address: %s", x.address_str().c_str());
            ESP_LOGD("ble_adv", "  Advertised service UUIDs:");
            for (auto uuid : x.get_service_uuids()) {
              ESP_LOGD("ble_adv", "    - %s", uuid.to_string().c_str());
            }
          }

ble_client:
  - mac_address: ${balancer0_mac_address}
    id: client0
  - mac_address: ${balancer1_mac_address}
    id: client1

heltec_balancer_ble:
  - ble_client_id: client0
    throttle: 5s
    id: balancer0
  - ble_client_id: client1
    throttle: 5s
    id: balancer1


sensor:
  - platform: heltec_balancer_ble
    heltec_balancer_ble_id: balancer0
    total_voltage:
      name: "${balancer0} total voltage"
    temperature_sensor_1:
      name: "${balancer0} temperature sensor 1"
    temperature_sensor_2:
      name: "${balancer0} temperature sensor 2"
    total_runtime:
      name: "${balancer0} total runtime"
    balancing_current:
      name: "${balancer0} balancing current"

  - platform: heltec_balancer_ble
    heltec_balancer_ble_id: balancer1
    total_voltage:
      name: "${balancer1} total voltage"
    temperature_sensor_1:
      name: "${balancer1} temperature sensor 1"
    temperature_sensor_2:
      name: "${balancer1} temperature sensor 2"
    total_runtime:
      name: "${balancer1} total runtime"
    balancing_current:
      name: "${balancer1} balancing current"

switch:
  - platform: heltec_balancer_ble
    heltec_balancer_ble_id: balancer0
    balancer:
      name: "${balancer0} balancer"

  - platform: heltec_balancer_ble
    heltec_balancer_ble_id: balancer1
    balancer:
      name: "${balancer1} balancer"

  - platform: ble_client
    ble_client_id: client0
    id: ble_client_switch0
    name: "${balancer0} enable bluetooth connection"

  - platform: ble_client
    ble_client_id: client1
    id: ble_client_switch1
    name: "${balancer1} enable bluetooth connection"

Another important change to free some resources is to decrease the log level:

logger:
  level: INFO

@mathschut
Copy link
Author

Which esp should I use for 2 devices?

@syssi
Copy link
Owner

syssi commented Jul 26, 2024

I have no recommendation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants