Benachrichtigungen
Alles löschen

JK-BMS + ESPHome-JK-BMS Home Assistant Dashboard

36 Beiträge
13 Benutzer
5 Reactions
4,743 Ansichten
(@concierge)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 221
 

Hallo zusammen, nach nun fast einem Jahr, vielen Frustpausen und wenig zeit wollte ich´s nun doch wissen ob ich es schaffe.

Mein Haupt BMS ist ein B2A24S15P, das hängt aber 2 autostunden von mir weg und ist zum Probieren einfach nicht greifbar. Ich hab mir als es raus kam ein JK_PB2A16S15P (Inverter BMS) gekauft und das nun mal mit der neuesten Firmware versehen und zum test der Kommunikation mit dem ESP eingebunden.

Der ESP verbindet sich mit HA und BMS (jubel) nur es kommen keine sinvollen werte (nona sind ja keine zellen dran) ich wäre zum test (weil ich ein relais schalten will mit dem SOC schalten will) mit den temperatursensoren zufrieden das einzige was kommt ist der Balancer schalter.

Deshalb wollte ich fragen ob die yaml noch für das inverter BMS weiter entwickelt wird? sonnst muss ich mir halt was einfallen lassen damit ich die Automatisierung hier ausprobieren kann ohne damit jedes mal stunden mit fahren zu verbringen.

Danke im voraus und alles gute 

 

Wer fragt ist ein Narr für 5 minuten, wer nicht fragt ein Narr für immer.

Deye 5KSG03LP1
Hoymiles HM800
(ACTIIAC7392) NICHT KAUFEN-Schlechter Support nach nur 18 Monaten Kaputt
3,28kw/p DAH 54x10 (8*410) WSW
2,75kw/p Future Solar FSM72S30-550M (5x550) ONO
850w/p TSM-425DE09R.08 Vertex S (2*425) WSW
16S230ah Catl B Grade mit
JK B2A24S15P


   
Wolfgang reacted
AntwortZitat
 JUF
(@juf)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 249
 

@concierge

Ich habe mein Inverter BMS mit dieser yaml am laufen.

GitHub https://github.com/txubelaxu/esphome-jk-bms

 

grüße

BMS: JK_PB2A16S15P FW 15.17
Akku: LiFePo4 16 x 200Ah 48V
Laderegler: Victron 150/60
Inverter: Victron MultiPuls 2 48/3000/32
Solarmodule: 4 x Q.PEAK DUO-G8 355; 3 x 380W JA SOLAR; 3 x DHM-60L9(BW)-380W

Strings: 3s3p


   
concierge reacted
AntwortZitat
(@concierge)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 221
 

@juf vielen danke für die info, den code hab ich ans laufen gebracht  jetzt versuch ich mal das dasboard zu bekommen, ich sags alt darfst nicht werden:)

Eine frage hätte ich dann doch noch,

welchen esp verwendest du? denn 

#power_save_mode: NONE
 musste ich auskommentieren da ich immer die fehlermeldung von nicht esp 32 kompatibel bekam

Wer fragt ist ein Narr für 5 minuten, wer nicht fragt ein Narr für immer.

Deye 5KSG03LP1
Hoymiles HM800
(ACTIIAC7392) NICHT KAUFEN-Schlechter Support nach nur 18 Monaten Kaputt
3,28kw/p DAH 54x10 (8*410) WSW
2,75kw/p Future Solar FSM72S30-550M (5x550) ONO
850w/p TSM-425DE09R.08 Vertex S (2*425) WSW
16S230ah Catl B Grade mit
JK B2A24S15P


   
AntwortZitat
 JUF
(@juf)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 249
 

@concierge 

habe einen, aber den Code so noch nicht getestet. Hatte dazu nur was recherchiert und schauen.

wemos_d1_mini32

Danke schon mal für den Tipp.
Grüße

 

 

BMS: JK_PB2A16S15P FW 15.17
Akku: LiFePo4 16 x 200Ah 48V
Laderegler: Victron 150/60
Inverter: Victron MultiPuls 2 48/3000/32
Solarmodule: 4 x Q.PEAK DUO-G8 355; 3 x 380W JA SOLAR; 3 x DHM-60L9(BW)-380W

Strings: 3s3p


   
AntwortZitat
(@concierge)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 221
 

@juf , bitte gerne ich hab zu danken. Ich dachte du hast den code so im einsatz deshalb fragte ich

der code liest zumindest aus und funktioniert das dasboard ist für rs485 muss komplett umgefrickelt werden:) da seh ich schon ma richtig schwarz in den codezeilen rumzuwühlen Smile /p>

Wer fragt ist ein Narr für 5 minuten, wer nicht fragt ein Narr für immer.

Deye 5KSG03LP1
Hoymiles HM800
(ACTIIAC7392) NICHT KAUFEN-Schlechter Support nach nur 18 Monaten Kaputt
3,28kw/p DAH 54x10 (8*410) WSW
2,75kw/p Future Solar FSM72S30-550M (5x550) ONO
850w/p TSM-425DE09R.08 Vertex S (2*425) WSW
16S230ah Catl B Grade mit
JK B2A24S15P


   
JUF reacted
AntwortZitat
(@concierge)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 221
 

Hallo zusammen, 

Gestern endlich eine Sternstunde auf meinem holprigen weg, Der HA hat seinen Platz neben dem BMS eingenommen, Der ESP sendet DATEN 😂🤦‍♀️ und in HA wird's zumindest teilweise am Dashboard schon dargestellt. Auch der Fernzugriff funktioniert. Leider kann man dann nicht alle Einstellungen am HA vornehmen da der HA durch den VPN glaubt er ist lokal. 

Aber soweit so gut ich sehe zumindest mal was los ist und dafür hab ich nur ein Jahr und zig Anläufe gebraucht. Klar wenn das ganze Gedöns gleich hier vor Ort wäre wäre es schneller und leichter gewesen.

Eine frage an euch, hätte jemand ein Smartphone taugliches Dashboard und würde dies auch zur Verfügung stellen bitte Smile was zu meinem ESP passt. 

Spoiler
ESP-Yaml
#esphome:
  #name: jk-bt
  #friendly_name: jk-BT

substitutions:
  name: jk-bms
  device_description: "Monitor and control a JK-BMS via bluetooth"
  external_components_source: github://syssi/esphome-jk-bms@main
  #B2A24S15P Black One - "C8:47:XX:XX:XX:XX"
  mac_address: C8:47:XX:XX:XX:XX
 

  # Defaults to "JK02_24S" (hardware version >= 6.0 and < 11.0)
  # Please use "JK02_32S" if you own a new JK-BMS >= hardware version 11.0 (f.e. JK-B2A8S20P hw 11.XW, sw 11.26)
  # Please use "JK04" if you have some old JK-BMS <= hardware version 3.0 (f.e. JK-B2A16S hw 3.0, sw. 3.3.0)
  #protocol_version: JK02_24S
  #protocol_version: JK02_32S
  protocol_version: JK02_24S

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

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

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

logger:
  level: DEBUG

# Enable Home Assistant API
api:
  encryption:
    key: !secret api_key

ota:
  password: "jk2espbt"
  #password: !secret ota_pwd

wifi:
  ssid: !secret wifi_ssid2
  password: !secret wifi_password2

# Optional manual IP
  manual_ip:
    static_ip: 192.168.0.192
    gateway: 192.168.0.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "ESP_Jk-Bms-Bluetooth"
    password: "12345678"

captive_portal:

web_server:
  port: 80
  auth:
    username: jkesp
    password: jkesp  
 
esp32_ble_tracker:
  on_ble_advertise:
    then:
      - lambda: |-
          if (x.get_name().rfind("JK-", 0) == 0) {
            ESP_LOGI("ble_adv", "New JK-BMS 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: ${mac_address}
    id: client0
    on_connect:
      then:
        - switch.turn_on: BluetoothLED
    on_disconnect:
      then:    
        - switch.turn_off: BluetoothLED
       
jk_bms_ble:
  - ble_client_id: client0
    protocol_version: ${protocol_version}
    throttle: 5s
    id: bms0

binary_sensor:
  - platform: jk_bms_ble
    balancing:
      name: "${name} balancing"
    charging:
      name: "${name} charging"
    discharging:
      name: "${name} discharging"
    online_status:
      name: "${name} online status"
button:
  - platform: jk_bms_ble
    retrieve_settings:
      name: "${name} retrieve settings"
    retrieve_device_info:
      name: "${name} retrieve device info"

number:
  - platform: jk_bms_ble
    jk_bms_ble_id: bms0
    balance_trigger_voltage:
      name: "${name} balance trigger voltage"
    cell_count:
      name: "${name} cell count"
    total_battery_capacity:
      name: "${name} total battery capacity"
    cell_voltage_overvoltage_protection:
      name: "${name} cell voltage overvoltage protection"
    cell_voltage_overvoltage_recovery:
      name: "${name} cell voltage overvoltage recovery"
    cell_voltage_undervoltage_protection:
      name: "${name} cell voltage undervoltage protection"
    cell_voltage_undervoltage_recovery:
      name: "${name} cell voltage undervoltage recovery"
    balance_starting_voltage:
      name: "${name} balance starting voltage"
    voltage_calibration:
      name: "${name} voltage calibration"
    current_calibration:
      name: "${name} current calibration"
    power_off_voltage:
      name: "${name} power off voltage"
    max_balance_current:
      name: "${name} max balance current"
    max_charge_current:
      name: "${name} max charge current"
    max_discharge_current:
      name: "${name} max discharge current"

sensor:
  - platform: jk_bms_ble
    jk_bms_ble_id: bms0
    min_cell_voltage:
      name: "${name} min cell voltage"
    max_cell_voltage:
      name: "${name} max cell voltage"
    min_voltage_cell:
      name: "${name} min voltage cell"
    max_voltage_cell:
      name: "${name} max voltage cell"
    delta_cell_voltage:
      name: "${name} delta cell voltage"
    average_cell_voltage:
      name: "${name} average cell voltage"
    cell_voltage_1:
      name: "${name} cell voltage 1"
      id: v1
    cell_voltage_2:
      name: "${name} cell voltage 2"
      id: v2
    cell_voltage_3:
      name: "${name} cell voltage 3"
      id: v3
    cell_voltage_4:
      name: "${name} cell voltage 4"
      id: v4
    cell_voltage_5:
      name: "${name} cell voltage 5"
      id: v5
    cell_voltage_6:
      name: "${name} cell voltage 6"
      id: v6
    cell_voltage_7:
      name: "${name} cell voltage 7"
      id: v7
    cell_voltage_8:
      name: "${name} cell voltage 8"
      id: v8
    cell_voltage_9:
      name: "${name} cell voltage 9"
      id: v9    
    cell_voltage_10:
      name: "${name} cell voltage 10"
      id: v10
    cell_voltage_11:
      name: "${name} cell voltage 11"
      id: v11
    cell_voltage_12:
      name: "${name} cell voltage 12"
      id: v12
    cell_voltage_13:
      name: "${name} cell voltage 13"
      id: v13
    cell_voltage_14:
      name: "${name} cell voltage 14"
      id: v14
    cell_voltage_15:
      name: "${name} cell voltage 15"
      id: v15
    cell_voltage_16:
      name: "${name} cell voltage 16"
      id: v16
   
    #cell_resistance_1:
      #name: "${name} cell resistance 1"
    #cell_resistance_2:
      #name: "${name} cell resistance 2"
    #cell_resistance_3:
      #name: "${name} cell resistance 3"
    #cell_resistance_4:
      #name: "${name} cell resistance 4"
    #cell_resistance_5:
      #name: "${name} cell resistance 5"
    #cell_resistance_6:
      #name: "${name} cell resistance 6"
    #cell_resistance_7:
      #name: "${name} cell resistance 7"
    #cell_resistance_8:
      #name: "${name} cell resistance 8"
    #cell_resistance_9:
      #name: "${name} cell resistance 9"
    #cell_resistance_10:
      #name: "${name} cell resistance 10"
    #cell_resistance_11:
      #name: "${name} cell resistance 11"
    #cell_resistance_12:
      #name: "${name} cell resistance 12"
    #cell_resistance_13:
      #name: "${name} cell resistance 13"
    #cell_resistance_14:
      #name: "${name} cell resistance 14"
    #cell_resistance_15:
      #name: "${name} cell resistance 15"
    #cell_resistance_16:
      #name: "${name} cell resistance 16"
    total_voltage:
      name: "${name} total voltage"
      id: total_voltage
    current:
      name: "${name} current"
      id: current
    power:
      name: "${name} power"
      id: power
    charging_power:
      name: "${name} charging power"
      id: charging_power
    discharging_power:
      name: "${name} discharging power"
      id: discharging_power
    temperature_sensor_1:
      name: "${name} temperature sensor 1"
      id: temp1
    temperature_sensor_2:
      name: "${name} temperature sensor 2"
      id: temp2
    power_tube_temperature:
      name: "${name} power tube temperature"
    state_of_charge:
      name: "${name} state of charge"
      id: state_of_charge
    capacity_remaining:
      name: "${name} capacity remaining"
    total_battery_capacity_setting:
      name: "${name} total battery capacity setting"
    charging_cycles:
      name: "${name} charging cycles"
    total_charging_cycle_capacity:
      name: "${name} total charging cycle capacity"
    total_runtime:
      name: "${name} total runtime"
    balancing_current:
      name: "${name} balancing current"
    errors_bitmask:
      name: "${name} errors bitmask"

  - platform: wifi_signal
    name: "WiFi jk-bms-BT"
    update_interval: 60s  
    id: wifisignal

 

switch:
  - platform: jk_bms_ble
    charging:
      name: "${name} charging"
    discharging:
      name: "${name} discharging"
    balancer:
      name: "${name} balancer"

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

   
  - platform: restart
    name: "jk-bms Restart"

  - platform: gpio
    pin: 2
    id: WlanLed # die ID kann optional vergeben werden
    name: "Wlan Led JK-bms"
    disabled_by_default: true
    internal: true
    inverted: false
 
  - platform: gpio
    pin: 4
    id: BluetoothLED # die ID kann optional vergeben werden
    name: "Bluetooth Led JK-bms"
    disabled_by_default: true
    internal: true
    inverted: false

text_sensor:
  - platform: jk_bms_ble
    errors:
      name: "${name} errors"
    total_runtime_formatted:
      name: "${name} total runtime formatted"
interval:
  - interval: 5s
    then:
      if:
        condition:
          wifi.connected:
        then:
          - switch.turn_on: WlanLed
        else:
          - switch.turn_off: WlanLed
   

Das was bei Syssi auf github ist will bei mir nicht viel anzeigen, Die Werte kommen aber in HA an und sind verfügbar.

 

Ich danke mal und wünsche einen schönen tag

Wer fragt ist ein Narr für 5 minuten, wer nicht fragt ein Narr für immer.

Deye 5KSG03LP1
Hoymiles HM800
(ACTIIAC7392) NICHT KAUFEN-Schlechter Support nach nur 18 Monaten Kaputt
3,28kw/p DAH 54x10 (8*410) WSW
2,75kw/p Future Solar FSM72S30-550M (5x550) ONO
850w/p TSM-425DE09R.08 Vertex S (2*425) WSW
16S230ah Catl B Grade mit
JK B2A24S15P


   
Wolfgang reacted
AntwortZitat
Seite 3 / 3
Teilen: