Komunikacja SEPLOS 3.0

Admin/ 18 czerwca, 2024/ Dashboard, Inne/ 13Komentarze

Jako, że stałem się posiadaczem nowego BMS postanowiłem zintegrować go nie tylko z Deye ale też z HA. Co nam to daje? Mamy podgląd online na to co dzieje się aktualnie na baterii z dokładnością do poszczególnych ogniw.

Większość wiadomości w wpisie pochodzi z bardzo ciekawego repo na githubie – syssi.

Co potrzebujemy ? Oczywiście znany już Nam zestaw czyli esp32 z RS485 ( całość była już omawiana na blogu, ale może warto to przypomnieć). Poniżej schemat połączenia:

Dodajemy nasze nowe urządzenie do ESPHOME i wgrywamy poniższy kod:

  1. Urządzenie ALL-IN-ONE

2. ESP32 + RS485

Mamy już działające urządzenie w ESPHOME:

Przechodzimy do Ustawienia => Urządzenia oraz usługi => Klikamy w ESPHOME => wybieramy Seplos , zobaczymy wszystkie interesujące nas encje:

Jeżeli wszystkie odczyty są poprawne, możemy przystąpić do wizualizacji naszej baterii.

Udajemy się do naszego dashboard, wybieramy dodaj kartę (w prawym dolnym rogu), następnie wybieramy Edytor konfiguracji YAML:

I wklejamy poniższy kod:

Jeżeli wszystkie kroki wykonaliśmy prawidłowo, na karcie zobaczymy następujący widok:

Jeśli ten wpis na blogu okazał się dla Ciebie wartościowy i inspirujący, byłoby mi niezmiernie miło, gdybyś mógł postawić mi kawę za podziękowanie. Twój gest będzie dla mnie miłym wsparciem, które dodatkowo zainspiruje mnie do dalszego dzielenia się wiedzą i doświadczeniem. Dziękuję za docenienie mojej pracy!🌟☕️

Share this Post

13 Comments

  1. Cześć, mam pytanie czy da radę użyć liligo t-can 1 sztuki aby porozmawiać z falownikiem deye i dodatkowo z seplos bms 3.0 ?:) tak aby jedno gadało po can drugie po RS? jeśli tak czy masz przykładową konfigurację?

    Pozdrawiam.

    1. Cześć, niestety do magazynów mam osobny ESP.

      1. Czy posiadasz więcej jak jedną baterię seplosa i mógłbyś uaktualnić informację jak to ogarnąć dla 2+ baterii połączonych razem ? 😉 bo za cholerę przez esphome nie udało mi się tego osiągnąć, jedynie zewnętrznym skryptem w pythonie (przez co HA mi się rzuca o niewspierane oprogramowanie) który wysyła dane do mqtt…

  2. Skąd brać zasilanie do konwertera USB i reszty – dla zestawu Seplosa ?

    1. Można „rozdzielić” zasilanie z pinów 7 i 8 ( CN2) albo zakupić jakiś dedykowany zasilacz.

  3. Witaj. Po uruchomieniu wszystkiego mam powtarzające sie errory :
    1. custom element doesn’t exist: button-card
    2. custom element doesn’t exist: bar-card

  4. Ruszyło – brak był doinstalowanych dodatków – warto to info umieścić w treści aby te dwa doinstalować przed uruchomieniem.

  5. Hej, czy jest jakaś opcja na monitorowanie dwóch akumulatorów ?
    Można ten kod powielać z uwzględnieniem zmiany nazw encji ?

    1. Niestety, na ten moment jest problem z monitorowaniem po rs485. Dlaczego ? Komunikacja pomiędzy master i slave jest po RS485 a niestety może być tylko jeden master. Rozwiązaniem jest komunikacja po bluetooth.

      1. Da się już to ogarnąć przez ESP32 podłączonym po rs485 poniżej kod:

        esphome:
        name: seplos-esp32-multi
        friendly_name: Seplos-ESP32-Multi

        esp32:
        board: esp32-s3-devkitc-1
        framework:
        type: arduino

        # Enable logging
        logger:

        # Enable Home Assistant API
        api:
        encryption:
        key: „”

        ota:
        – platform: esphome
        password: „”

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

        # Enable fallback hotspot (captive portal) in case wifi connection fails
        ap:
        ssid: „Seplos-Esp32-Multi”
        password: „Hwp0pNfPgCCV”

        captive_portal:
        web_server:
        port: 80

        external_components:
        – source:
        type: git
        url: https://github.com/DpunktS/seplos_v3_sniffer

        uart:
        •⁠ ⁠id: seplos
        tx_pin: GPIO17
        rx_pin: GPIO18
        baud_rate: 19200
        rx_buffer_size: 2048

        substitutions:
        time: „5” # update interval for all data points

        seplos_parser:
        id: seplos_v3
        bms_count: 2 # max 16 ?
        update_interval: ${time}
        uart_id: seplos

        sensor:
        # bms0
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 pack_voltage
        unit_of_measurement: „V”
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 current
        unit_of_measurement: „A”
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 remaining_capacity
        unit_of_measurement: „Ah”
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 total_capacity
        unit_of_measurement: „Ah”
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 total_discharge_capacity
        unit_of_measurement: „Ah”
        accuracy_decimals: 0
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 soc
        unit_of_measurement: „%”
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 soh
        unit_of_measurement: „%”
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cycle_count
        unit_of_measurement: „cycles”
        accuracy_decimals: 0
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 average_cell_voltage
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 average_cell_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 max_cell_voltage
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 min_cell_voltage
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 max_cell_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 min_cell_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 maxdiscurt
        unit_of_measurement: A
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 maxchgcurt
        unit_of_measurement: A
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_1
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_2
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_3
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_4
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_5
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_5
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_6
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_7
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_8
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_9
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_10
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_11
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_12
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_13
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_14
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_15
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_16
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_temp_1
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_temp_2
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_temp_3
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_temp_4
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 case_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 power_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        # bms1
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 pack_voltage
        unit_of_measurement: „V”
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 current
        unit_of_measurement: „A”
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 remaining_capacity
        unit_of_measurement: „Ah”
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 total_capacity
        unit_of_measurement: „Ah”
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 total_discharge_capacity
        unit_of_measurement: „Ah”
        accuracy_decimals: 0
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 soc
        unit_of_measurement: „%”
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 soh
        unit_of_measurement: „%”
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cycle_count
        unit_of_measurement: „cycles”
        accuracy_decimals: 0
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 average_cell_voltage
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 average_cell_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 max_cell_voltage
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 min_cell_voltage
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 max_cell_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 min_cell_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 maxdiscurt
        unit_of_measurement: A
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 maxchgcurt
        unit_of_measurement: A
        accuracy_decimals: 2
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_1
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_2
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_3
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_4
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_5
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_5
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_6
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_7
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_8
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_9
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_10
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_11
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_12
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_13
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_14
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_15
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_16
        unit_of_measurement: V
        accuracy_decimals: 3
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_temp_1
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_temp_2
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_temp_3
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_temp_4
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 case_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 power_temp
        unit_of_measurement: °C
        accuracy_decimals: 1
        filters:
        – throttle: ${time}s

        text_sensor:
        # bms0
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 system_status
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 active_balancing_cells
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_temperature_alarms
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 cell_voltage_alarms
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 FET_status
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 active_alarms
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms0 active_protections
        # bms1
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 system_status
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 active_balancing_cells
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_temperature_alarms
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 cell_voltage_alarms
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 FET_status
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 active_alarms
        – platform: seplos_parser
        seplos_parser_id: seplos_v3
        name: bms1 active_protections

  6. Witam mam seplosa master plus slave tylko w wersji 2.0 masz może rozwiązanie jak dodać go Ha, chyba ze będzie działać ta opcja z 3.0 w co wątpię

  7. Witam mam seplosa master plus slave tylko w wersji 2.0 masz może rozwiązanie jak dodać go Ha, chyba ze będzie działać ta opcja z 3.0 w co wątpię

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*
*