Home Assistant Esphome JK-BMS

Diskuze, rady a návody ohledně HomeAssistant
bob030
Příspěvky: 4
Registrován: stř říj 05, 2022 8:26 am
Bydliště: u Ivančic

Re: Home Assistant Esphome JK-BMS

Příspěvek od bob030 »

Už funguje přes kabel i zapínání/vypínání nabíjení a vybíjení.
Honza
rva
Příspěvky: 3743
Registrován: úte dub 23, 2013 10:21 am
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 40
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Re: Home Assistant Esphome JK-BMS

Příspěvek od rva »

Nějak mi u vyčítání hodnot přes BT roste nepravidelnost čtení. Dříve (horní čtveřice) to vyčítalo celkem pravidelně. A dnes (spodní čtveřice) to u JK-BMS 1/a vyčítá dost nepravděpodobně.
4xJK-BMS přes BLE (3x ESP32) - nepravidelnost vyčítání dat
4xJK-BMS přes BLE (3x ESP32) - nepravidelnost vyčítání dat
_______________________________________________________________________
43 kWp, LiFePO4 46 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS
Uživatelský avatar
TomHC
Příspěvky: 1466
Registrován: pát lis 11, 2022 8:14 am
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 5520
Kapacita baterie [kWh]: 14
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: Home Assistant Esphome JK-BMS

Příspěvek od TomHC »

rva píše: úte úno 27, 2024 3:10 pm Nějak mi u vyčítání hodnot přes BT roste nepravidelnost čtení. Dříve (horní čtveřice) to vyčítalo celkem pravidelně. A dnes (spodní čtveřice) to u JK-BMS 1/a vyčítá dost nepravděpodobně.JK-BMS v Home Assistant přes ble 2.jpg
Jeej, to je pekné ten bodkovaný graf, daj návod ako na to, dík.
MUST PV1800 VHM 48V 5.5kW, 5.52kWp (12x TPL mono 460W, 2S2P východ, 2S4P juh), 16x 280 Ah LiFePO4 (14.3 kWh) BMS JBD-AP21S001-L21S-200A-B, SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT..., HW: ESPlan (ESP32 + LAN 8720 + RS485 + UART). Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome 02/2023 -> 07/2024 = 6.1 MWh
rva
Příspěvky: 3743
Registrován: úte dub 23, 2013 10:21 am
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 40
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Re: Home Assistant Esphome JK-BMS

Příspěvek od rva »

To ne já, to sama grafana, do které jsem přidával další série (napětí na článcích 1 - 16). V json to vypadá nějak takto (jestli to někdo vidí):

Kód: Vybrat vše

{
  "datasource": {
    "type": "influxdb",
    "uid": "XBRsPxX7k"
  },
  "description": "",
  "fieldConfig": {
    "defaults": {
      "custom": {
        "drawStyle": "line",
        "lineInterpolation": "linear",
        "barAlignment": 0,
        "lineWidth": 1,
        "fillOpacity": 0,
        "gradientMode": "none",
        "spanNulls": false,
        "insertNulls": false,
        "showPoints": "auto",
        "pointSize": 5,
        "stacking": {
          "mode": "none",
          "group": "A"
        },
        "axisPlacement": "auto",
        "axisLabel": "",
        "axisColorMode": "text",
        "axisBorderShow": false,
        "scaleDistribution": {
          "type": "linear"
        },
        "axisCenteredZero": false,
        "hideFrom": {
          "tooltip": false,
          "viz": false,
          "legend": false
        },
        "thresholdsStyle": {
          "mode": "area"
        }
      },
      "unitScale": true,
      "color": {
        "mode": "palette-classic"
      },
      "mappings": [],
      "thresholds": {
        "mode": "absolute",
        "steps": [
          {
            "color": "green",
            "value": null
          },
          {
            "color": "blue",
            "value": 3.38
          },
          {
            "color": "red",
            "value": 3.55
          }
        ]
      }
    },
    "overrides": []
  },
  "gridPos": {
    "h": 8,
    "w": 12,
    "x": 0,
    "y": 0
  },
  "id": 2,
  "options": {
    "tooltip": {
      "mode": "single",
      "sort": "none"
    },
    "legend": {
      "showLegend": true,
      "displayMode": "list",
      "placement": "bottom",
      "calcs": []
    }
  },
  "targets": [
    {
      "alias": "1",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "A",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_1"
        }
      ]
    },
    {
      "alias": "2",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "C",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_2"
        }
      ]
    },
    {
      "alias": "3",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "D",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_3"
        }
      ]
    },
    {
      "alias": "4",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "E",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_4"
        }
      ]
    },
    {
      "alias": "5",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "F",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_5"
        }
      ]
    },
    {
      "alias": "6",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "G",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_6"
        }
      ]
    },
    {
      "alias": "7",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "H",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_7"
        }
      ]
    },
    {
      "alias": "8",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "I",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_8"
        }
      ]
    },
    {
      "alias": "9",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "J",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_9"
        }
      ]
    },
    {
      "alias": "10",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "K",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_10"
        }
      ]
    },
    {
      "alias": "11",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "L",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_11"
        }
      ]
    },
    {
      "alias": "12",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "M",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_12"
        }
      ]
    },
    {
      "alias": "13",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "N",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_13"
        }
      ]
    },
    {
      "alias": "14",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "O",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_14"
        }
      ]
    },
    {
      "alias": "15",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "P",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_15"
        }
      ]
    },
    {
      "alias": "16",
      "datasource": {
        "type": "influxdb",
        "uid": "XBRsPxX7k"
      },
      "groupBy": [
        {
          "params": [
            "$__interval"
          ],
          "type": "time"
        },
        {
          "params": [
            "null"
          ],
          "type": "fill"
        }
      ],
      "hide": false,
      "measurement": "V",
      "orderByTime": "ASC",
      "policy": "autogen",
      "refId": "Q",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "field"
          },
          {
            "params": [],
            "type": "mean"
          }
        ]
      ],
      "tags": [
        {
          "key": "entity_id::tag",
          "operator": "=",
          "value": "esp32_5_bms1_cell_voltage_16"
        }
      ]
    }
  ],
  "title": "246 Ah ve sklepě - napětí na článcích",
  "type": "timeseries"
}
Je to to, co je nacvakané tady (v plném rozlišení je vidět, co bylo v grafana zvoleno):
nacvakaný graf v grafana
nacvakaný graf v grafana
A navíc jsem ten popis popletl. Mám 4x JK-BMS, které jsou připojeny na 3x ESP32. Tedy jedna ESP32 komunikuje se dvěma JK-BMS a u ní to začíná nějak drhnout s plynulostí přenosu dat.
_______________________________________________________________________
43 kWp, LiFePO4 46 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS
acmetelka
Příspěvky: 21
Registrován: úte kvě 02, 2023 4:09 pm
Lokalita: kousek na východ od Prahy
Systémové napětí: >48V

Re: Home Assistant Esphome JK-BMS

Příspěvek od acmetelka »

Nevíte prosím, je v protokolu přes kabel RS485 i informace o balančním proudu? Nebo aspoň info, že BMS právě balancuje? Hledal jsem to v dokumentaci protokolu horem dolem, ale vypadá to, že toto je pouze v BT komunikaci. Ani sissi to u kabelové komunikace mezi vyčítanými hodnotami nemá. Mám to teď do automatizace napojené pouze kabelem, snažím se rozchodit ESPHome s modulem WT32-ETH01 přes BT, což se mi ale zatím nedaří, prozatím v logu mám neustálé připojování a zase odpojování BLE trackeru, zkoumám, čím to může být.

Jinak taky jsem měl po 3 měsících fungování BMS problém s odemknutím nastavení parametrů přes heslo, které jsem si na začátku změnil. Dostal jsem i nějaké dočasné heslo od podpory od ALI prodejce, ale taky nic. Nakonec mi funguje pouze to, že na první kliknutí po zadání hesla to zahlásí chybu, a na druhé nebo třetí kliknutí heslo normálně vezme a změnu parametrů odemkne. :roll: Tak jen kdyby na toto někdo narazil, zkusit klikat na tlačítko po zadání hesla vícekrát. :D
V1: (6/2023 -> 3/2024) - JJZ 3,3 kWp 6 x "Xtend Solarmi Schutten STM-550/144-S3"; BEL stavebnice + DIY chlazení; AKU 500l ohřev TUV; snad přitápění v přechodných obdobích
V2: (3-2024 -> ) JJZ 4,4 kWp 8 x 550Wp, EASUN SMH-II-7KW, 16xLiFePO4 z NKON 305Ah + JKBMS 150/2A, přepínač sítí, PLC Foxtrot, EmonCMS grafy - ve fázi ladění, dokončování
rva
Příspěvky: 3743
Registrován: úte dub 23, 2013 10:21 am
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 40
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Re: Home Assistant Esphome JK-BMS

Příspěvek od rva »

Po kabelu je informace "balancing".
_______________________________________________________________________
43 kWp, LiFePO4 46 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS
acmetelka
Příspěvky: 21
Registrován: úte kvě 02, 2023 4:09 pm
Lokalita: kousek na východ od Prahy
Systémové napětí: >48V

Re: Home Assistant Esphome JK-BMS

Příspěvek od acmetelka »

rva píše: pát črc 12, 2024 1:29 pm Po kabelu je informace "balancing".
Hm a jaká to je adresa v protokolu? Já prostě nějak nemůžu najít adresu, ze které toto vyčíst. Viz tady např. od @marshal64 soubor s popisem protokolu: viewtopic.php?p=211961#p211961 :dontknow: Díky!
V1: (6/2023 -> 3/2024) - JJZ 3,3 kWp 6 x "Xtend Solarmi Schutten STM-550/144-S3"; BEL stavebnice + DIY chlazení; AKU 500l ohřev TUV; snad přitápění v přechodných obdobích
V2: (3-2024 -> ) JJZ 4,4 kWp 8 x 550Wp, EASUN SMH-II-7KW, 16xLiFePO4 z NKON 305Ah + JKBMS 150/2A, přepínač sítí, PLC Foxtrot, EmonCMS grafy - ve fázi ladění, dokončování
rva
Příspěvky: 3743
Registrován: úte dub 23, 2013 10:21 am
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 40
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Re: Home Assistant Esphome JK-BMS

Příspěvek od rva »

Nevím, neznám. Používám právě integraci od syssi. A tam je tento parametr uveden.

Kód: Vybrat vše

binary_sensor:
  - platform: jk_bms
    balancing:
      name: "${name} balancing"
    balancing_switch:
      name: "${name} balancing switch"
    charging:
      name: "${name} charging"
    discharging:
      name: "${name} discharging"
    dedicated_charger_switch:
      name: "${name} dedicated charger switch"
    online_status:
      name: "${name} online status"
_______________________________________________________________________
43 kWp, LiFePO4 46 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek