MUST a CANBUS batérie

Souhrn tématu

MUST měniče podporují ovládání BMS přes CANBUS protokol, což umožňuje využití SoC pro přesnější řízení baterií. Konfigurace YAML pro MUST PV1800 inverter ukazuje, jak posílat CAN zprávy s aktuálním stavem baterie, včetně SoC, SOH, napětí, proudu a teploty. Použití SoC z BMS pomáhá předcházet přepnutí měniče do bypass režimu při poklesu napětí, i když je stav nabití stále relativně vysoký.
tRp
Příspěvky: 110
Registrován: čtv kvě 05, 2022 6:32 pm
Reputace:14

Re: MUST a CANBUS batérie

Příspěvek od tRp »

Jak mas napsany kod pro vypis CAN frame? (pro cteni z CANBUSu)
Uživatelský avatar
TomHC
Příspěvky: 4288
Registrován: pát lis 11, 2022 8:14 am
Reputace:991
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 10650
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: MUST a CANBUS batérie

Příspěvek od TomHC »

tRp píše:
Jak mas napsany kod pro vypis CAN frame? (pro cteni z CANBUSu)
Nechal som tam len výpis na konzolu, ale ani ťuk.

Kód: Vybrat vše

canbus:
  - platform: esp32_can
    rx_pin: GPIO35
    tx_pin: GPIO33
    can_id: 0x1fff
    id: canbusmust
    use_extended_id: true
    bit_rate: 100kbps
    on_frame:
    - can_id: 0x0cc20201
      use_extended_id: true
      then:
      - lambda: |-
          ESP_LOGI("main", "CAN msg 0x0cc20201 received");
          //float can_napatie_bat = ((int)(x[1]) << 8) + x[0];
          //can_napatie_bat = can_napatie_bat / 10;
          //id(napeti_baterie).publish_state(can_napatie_bat);
          //ESP_LOGI("main", "CAN napatie baterie: can_napatie_bat");
    - can_id: 0x0cc10201
      use_extended_id: true
      then:
      - lambda: |-
          ESP_LOGI("main", "CAN msg 0x0cc10201 received");
          //float can_napatie_pv = ((int)(x[1]) << 8) + x[0];
          //can_napatie_pv = can_napatie_pv / 10;
          //ESP_LOGI("main", "CAN napatie panelov: can_napatie_pv");
          //float can_vykon_pv = ((int)(x[7]) << 8) + x[6];
          //ESP_LOGI("main", "CAN vykon panelov: can_vykon_pv");
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 11 kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
Uživatelský avatar
TomHC
Příspěvky: 4288
Registrován: pát lis 11, 2022 8:14 am
Reputace:991
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 10650
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: MUST a CANBUS batérie

Příspěvek od TomHC »

Skúsim ešte druhý receiver, iný pin a potom napichnem na RX pin Saleae Logic :)
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 11 kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
tRp
Příspěvky: 110
Registrován: čtv kvě 05, 2022 6:32 pm
Reputace:14

Re: MUST a CANBUS batérie

Příspěvek od tRp »

TomHC píše:
tRp píše:
Jak mas napsany kod pro vypis CAN frame? (pro cteni z CANBUSu)
Nechal som tam len výpis na konzolu, ale ani ťuk.

Kód: Vybrat vše

canbus:
  - platform: esp32_can
    rx_pin: GPIO35
    tx_pin: GPIO33
    can_id: 0x1fff
    id: canbusmust
    use_extended_id: true
    bit_rate: 100kbps
    on_frame:
    - can_id: 0x0cc20201
      use_extended_id: true
      then:
      - lambda: |-
          ESP_LOGI("main", "CAN msg 0x0cc20201 received");
          //float can_napatie_bat = ((int)(x[1]) << 8) + x[0];
          //can_napatie_bat = can_napatie_bat / 10;
          //id(napeti_baterie).publish_state(can_napatie_bat);
          //ESP_LOGI("main", "CAN napatie baterie: can_napatie_bat");
    - can_id: 0x0cc10201
      use_extended_id: true
      then:
      - lambda: |-
          ESP_LOGI("main", "CAN msg 0x0cc10201 received");
          //float can_napatie_pv = ((int)(x[1]) << 8) + x[0];
          //can_napatie_pv = can_napatie_pv / 10;
          //ESP_LOGI("main", "CAN napatie panelov: can_napatie_pv");
          //float can_vykon_pv = ((int)(x[7]) << 8) + x[6];
          //ESP_LOGI("main", "CAN vykon panelov: can_vykon_pv");

Zkopiroval jsem tento kousek kodu do meho:

Kód: Vybrat vše

    - can_id: 0x0cc20201
      use_extended_id: true
      then:
      - lambda: |-
          ESP_LOGI("main", "CAN msg 0x0cc20201 received");
          //float can_napatie_bat = ((int)(x[1]) << 8) + x[0];
          //can_napatie_bat = can_napatie_bat / 10;
          //id(napeti_baterie).publish_state(can_napatie_bat);
          //ESP_LOGI("main", "CAN napatie baterie: can_napatie_bat");
Vysledek:

Kód: Vybrat vše

[20:30:57][D][canbus:067]: received can message (#1) extended can_id=0xcc20201 size=8
[20:30:57][I][main:476]: CAN msg 0x0cc20201 received
Uživatelský avatar
TomHC
Příspěvky: 4288
Registrován: pát lis 11, 2022 8:14 am
Reputace:991
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 10650
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: MUST a CANBUS batérie

Příspěvek od TomHC »

Takže dnes nastal čas pre logický analyzátor, a na CAN zbernici nie je nič okrem packetov ktoré posielam ja z ESP32. Pekne vidieť, že idú v sekundových intervaloch, ale inak tam nie je nič. Možno by to chcelo odpojiť ESP8266 z RS485 zbernice, neviem či vedia fungovať paralelne. Alebo reštartovať menič, ale to je trochu problém, lebo je na ňom zavesený celý dom.
Přílohy
MUST-CAN.png
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 11 kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
tRp
Příspěvky: 110
Registrován: čtv kvě 05, 2022 6:32 pm
Reputace:14

Re: MUST a CANBUS batérie

Příspěvek od tRp »

Zkoušel jsi "pověsit" analyzátor přímo na měnič (bez připojeného ESP a CANBus modulu) ?
Uživatelský avatar
TomHC
Příspěvky: 4288
Registrován: pát lis 11, 2022 8:14 am
Reputace:991
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 10650
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: MUST a CANBUS batérie

Příspěvek od TomHC »

tRp píše:
Zkoušel jsi "pověsit" analyzátor přímo na měnič (bez připojeného ESP a CANBus modulu) ?
Ešte nie, bol rodinný víkend, možno dnes - https://support.saleae.com/protocol-ana ... ltage-data
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 11 kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
Uživatelský avatar
TomHC
Příspěvky: 4288
Registrován: pát lis 11, 2022 8:14 am
Reputace:991
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 10650
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: MUST a CANBUS batérie

Příspěvek od TomHC »

tRp píše:
Zkoušel jsi "pověsit" analyzátor přímo na měnič (bez připojeného ESP a CANBus modulu) ?
Takže len takýto bordel
Přílohy
MUST-CAN-1.PNG
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 11 kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
vinwareznic
Příspěvky: 5
Registrován: pát srp 25, 2023 7:03 am
Reputace:0
Lokalita: Ukraine
Systémové napětí: 48V
Výkon panelů [Wp]: 5520
Kapacita baterie [kWh]: 5.0kW

Re: MUST a CANBUS batérie

Příspěvek od vinwareznic »

Hezký den všem.
může někdo sdílet canbus.send
jaké parametry posíláte pro MUSÍ invertor

Aktuální SOC, SOH.
Skutečné volty, ampéry, tep
?
Uživatelský avatar
TomHC
Příspěvky: 4288
Registrován: pát lis 11, 2022 8:14 am
Reputace:991
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 10650
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: MUST a CANBUS batérie

Příspěvek od TomHC »

Kód: Vybrat vše

      - canbus.send:
          use_extended_id: true
          can_id: 0x00030500
          canbus_id: canbusmust
          data: !lambda |-
            uint8_t can_mesg[8];
            can_mesg[0] = uint16_t(id(ha_batt_soc).state) & 0xff;
            can_mesg[1] = uint16_t(id(ha_batt_soc).state) >> 8 & 0xff;
            can_mesg[2] = 0x00;
            can_mesg[3] = 0x64;  // SoH = 100%
            can_mesg[4] = uint16_t(id(ha_batt_soc).state * 100) & 0xff;
            can_mesg[5] = uint16_t(id(ha_batt_soc).state * 100) >> 8 & 0xff;
            ESP_LOGI("main", "Sending CAN ID: 0x00030500 hex: %02X %02X %02X %02X %02X %02X %02X %02X", can_mesg[0], can_mesg[1], can_mesg[2], can_mesg[3], can_mesg[4], can_mesg[5], can_mesg[6], can_mesg[7]);
            return {can_mesg[0], can_mesg[1], can_mesg[2], can_mesg[3], can_mesg[4], can_mesg[5], can_mesg[6], can_mesg[7]};
          #     SOC 80      SOH 95     HiRes SOC   reserved
          #  {0x00, 0x50, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00};
          # HiRes SOC 0.01%
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 11 kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
vinwareznic
Příspěvky: 5
Registrován: pát srp 25, 2023 7:03 am
Reputace:0
Lokalita: Ukraine
Systémové napětí: 48V
Výkon panelů [Wp]: 5520
Kapacita baterie [kWh]: 5.0kW

Re: MUST a CANBUS batérie

Příspěvek od vinwareznic »

předáte pouze 0x00030500
a jako 0x00030400 (odeslání BMS, 0x00030400 (odeslání BMS)

Kód: Vybrat vše

interval:
  - interval: 1000ms
    then:
      - lambda: |-
          ESP_LOGI("main", "capacity_remaining: %f, charging_cycles: %f, total_voltage: %f, current: %f, temperature_sensor_1: %f, temperature_sensor_2: %f",
                   id(capacity_remaining).state, id(charging_cycles).state, id(total_voltage).state, id(current).state, id(temperature_sensor_1).state, id(temperature_sensor_2).state);
      - canbus.send: # Actual SOC, SOH
          use_extended_id: true
          can_id: 0x00030500
          data: !lambda |-
            int soh = round(((id(charging_cycles).state/${max_cycles})-1)*-100);
            uint8_t can_mesg[8] = {0};
            can_mesg[0] = uint16_t(id(capacity_remaining).state) & 0xff;
            can_mesg[1] = uint16_t(id(capacity_remaining).state) >> 8 & 0xff;
            can_mesg[2] = soh & 0xff;
            can_mesg[3] = soh >> 8 & 0xff;
            ESP_LOGI("main", "send can id: 0x00030500 hex: %x %x %x %x", can_mesg[0], can_mesg[1], can_mesg[2], can_mesg[3]);
            return {can_mesg[0], can_mesg[1], can_mesg[2], can_mesg[3], can_mesg[4], can_mesg[5], can_mesg[6], can_mesg[7]};
      - delay: 10ms

      - canbus.send: # Actual Volts, Amps, Temp
          can_id: 0x00030400
          use_extended_id: true
          data: !lambda |-
            uint8_t can_mesg[8] = {0};
            // Запис Battery Voltage (байти 1 та 2), масштаб 0.1V
            can_mesg[0] = uint16_t(id(total_voltage).state * 10) & 0xff;     // Молодший байт напруги
            can_mesg[1] = uint16_t(id(total_voltage).state * 10) >> 8 & 0xff; // Старший байт напруги
            // Запис Battery Current (байти 3 та 4), масштаб 0.1A
            can_mesg[2] = int16_t(id(current).state * 10) & 0xff;           // Молодший байт струму
            can_mesg[3] = int16_t(id(current).state * 10) >> 8 & 0xff;      // Старший байт струму
            // Запис Battery Temperature (байти 5 та 6), масштаб 1°C
            int temperature = max(id(temperature_sensor_1).state, id(temperature_sensor_2).state);
            can_mesg[4] = int16_t(temperature) & 0xff;         // Молодший байт температури
            can_mesg[5] = int16_t(temperature) >> 8 & 0xff;    // Старший байт температури
            // Запис Error and Warning (байти 7 та 8) - залишаємо як 0, якщо немає помилок
            can_mesg[6] = 0x00;
            can_mesg[7] = 0x00;
            // Лог для перевірки перед відправкою
            ESP_LOGI("main", "send can id: 0x00030400 hex: %x %x %x %x %x %x %x %x", can_mesg[0], can_mesg[1], can_mesg[2], can_mesg[3], can_mesg[4], can_mesg[5], can_mesg[6], can_mesg[7]);
            // Відправлення повідомлення
            return {can_mesg[0], can_mesg[1], can_mesg[2], can_mesg[3], can_mesg[4], can_mesg[5], can_mesg[6], can_mesg[7]};
      - delay: 10ms

      - lambda: |- # Detect no CAN reply
           if (id(can_305_rx) > 30) {
             ESP_LOGI("main", "No rx can 0x305 reply, Inverter not connected/responding, Rebooting...");
             id(restart_button).press();
           } else {
             id(can_305_rx) ++;
           }

vinwareznic
Příspěvky: 5
Registrován: pát srp 25, 2023 7:03 am
Reputace:0
Lokalita: Ukraine
Systémové napětí: 48V
Výkon panelů [Wp]: 5520
Kapacita baterie [kWh]: 5.0kW

Re: MUST a CANBUS batérie

Příspěvek od vinwareznic »

četl jsem zde https://github.com/Sleeper85/esphome-yambms

vypadá to, že se provádí nějaká automatizace
ale nepodporují MUST protokol
to je v podstatě to, co se snažím udělat pro MUST
Uživatelský avatar
TomHC
Příspěvky: 4288
Registrován: pát lis 11, 2022 8:14 am
Reputace:991
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 10650
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: MUST a CANBUS batérie

Příspěvek od TomHC »

Obávam sa, že ti vôbec nerozumiem...
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 11 kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
vinwareznic
Příspěvky: 5
Registrován: pát srp 25, 2023 7:03 am
Reputace:0
Lokalita: Ukraine
Systémové napětí: 48V
Výkon panelů [Wp]: 5520
Kapacita baterie [kWh]: 5.0kW

Re: MUST a CANBUS batérie

Příspěvek od vinwareznic »

Můžete sdílet
k čemu využíváte celý canbus.send

all config yaml?
Uživatelský avatar
TomHC
Příspěvky: 4288
Registrován: pát lis 11, 2022 8:14 am
Reputace:991
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 10650
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: MUST a CANBUS batérie

Příspěvek od TomHC »

Celý yaml sem určite nedám. Canbus.send je predsa na odoslanie CAN packetu, komentáre a názvy premenných sú dosť popisné.
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 11 kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér

Kdo je online

Uživatelé procházející toto fórum: Claudebot [Bot]