-
-
Save vladyspavlov/5ac21cb58923482eff8e7bbb2d0854b3 to your computer and use it in GitHub Desktop.
| # More info and the latest version of the config are now in the repo: https://github.com/vladyspavlov/esphome-must-inverter | |
| substitutions: | |
| inverter_id: inverter | |
| updates: 5s | |
| api_key: xxx | |
| ota_password: xxx | |
| esphome: | |
| name: inverter-monitor | |
| comment: "Inverter monitor" | |
| esp32: | |
| board: esp32dev | |
| framework: | |
| type: esp-idf | |
| wifi: | |
| ssid: !secret wifi_ssid | |
| password: !secret wifi_password | |
| captive_portal: | |
| logger: | |
| level: DEBUG | |
| api: | |
| encryption: | |
| key: ${api_key} | |
| ota: | |
| password: ${ota_password} | |
| uart: | |
| - id: uart_inverter | |
| baud_rate: 19200 | |
| tx_pin: GPIO19 | |
| rx_pin: GPIO18 | |
| stop_bits: 1 | |
| parity: NONE | |
| data_bits: 8 | |
| debug: | |
| direction: BOTH | |
| dummy_receiver: false | |
| modbus: | |
| - id: modbus_inverter | |
| uart_id: uart_inverter | |
| send_wait_time: 200ms | |
| modbus_controller: | |
| - id: must_inverter | |
| address: 0x04 | |
| modbus_id: modbus_inverter | |
| command_throttle: 200ms | |
| setup_priority: -10 | |
| update_interval: ${updates} | |
| sensor: | |
| # charger sensors | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15201 | |
| name: "PV Charger Workstate" | |
| register_type: holding | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15202 | |
| name: "PV Charger MPPT state" | |
| register_type: holding | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15203 | |
| name: "PV Charger Charging state" | |
| register_type: holding | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15205 | |
| name: "PV Charger Voltage" | |
| register_type: holding | |
| unit_of_measurement: "V" | |
| accuracy_decimals: 1 | |
| icon: mdi:sine-wave | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15206 | |
| name: "PV Charger Battery voltage" | |
| register_type: holding | |
| unit_of_measurement: "V" | |
| accuracy_decimals: 1 | |
| icon: mdi:sine-wave | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15207 | |
| name: "PV Charger Current" | |
| register_type: holding | |
| unit_of_measurement: "A" | |
| accuracy_decimals: 1 | |
| icon: mdi:current-dc | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15208 | |
| register_type: holding | |
| name: "PV Charger power" | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15209 | |
| register_type: holding | |
| name: "PV Charger Radiator temp" | |
| unit_of_measurement: "°C" | |
| accuracy_decimals: 1 | |
| icon: mdi:temperature-celsius | |
| # - platform: modbus_controller | |
| # modbus_controller_id: must_inverter | |
| # address: 15210 | |
| # register_type: holding | |
| # name: "PV Charger External temp" | |
| # unit_of_measurement: "°C" | |
| # accuracy_decimals: 1 | |
| # icon: mdi:temperature-celsius | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15212 | |
| register_type: holding | |
| name: "PV Relay" | |
| icon: mdi:electric-switch | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15217 | |
| register_type: holding | |
| id: charger_total_mwh | |
| internal: true | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15218 | |
| register_type: holding | |
| id: charger_total_kwh | |
| internal: true | |
| filters: | |
| multiply: 0.1 | |
| - platform: template | |
| name: "PV Charger Accumulated charger power" | |
| unit_of_measurement: kWh | |
| lambda: !lambda 'return (id(charger_total_mwh).state * 1000.0 + id(charger_total_kwh).state );' | |
| accuracy_decimals: 1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15219 | |
| register_type: holding | |
| name: "PV Charger Accumulated day" | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15220 | |
| register_type: holding | |
| name: "PV Charger Accumulated hour" | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 15221 | |
| register_type: holding | |
| name: "PV Charger Accumulated minute" | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| # inverter sensors | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25201 | |
| register_type: holding | |
| name: "Inverter Work state" | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25205 | |
| name: "Inverter Battery Voltage" | |
| register_type: holding | |
| unit_of_measurement: "V" | |
| accuracy_decimals: 1 | |
| icon: mdi:sine-wave | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25206 | |
| name: "Inverter Voltage" | |
| register_type: holding | |
| unit_of_measurement: "V" | |
| accuracy_decimals: 1 | |
| icon: mdi:sine-wave | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25207 | |
| name: "Inverter Grid voltage" | |
| register_type: holding | |
| unit_of_measurement: "V" | |
| accuracy_decimals: 1 | |
| icon: mdi:sine-wave | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25207 | |
| name: "Inverter Grid voltage" | |
| register_type: holding | |
| unit_of_measurement: "V" | |
| accuracy_decimals: 1 | |
| icon: mdi:sine-wave | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25208 | |
| name: "Inverter BUS Voltage" | |
| register_type: holding | |
| unit_of_measurement: "V" | |
| accuracy_decimals: 1 | |
| icon: mdi:sine-wave | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25209 | |
| name: "Inverter Control current" | |
| register_type: holding | |
| unit_of_measurement: "A" | |
| accuracy_decimals: 1 | |
| icon: mdi:current-dc | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25210 | |
| name: "Inverter Current" | |
| register_type: holding | |
| unit_of_measurement: "A" | |
| accuracy_decimals: 1 | |
| icon: mdi:current-dc | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25211 | |
| name: "Inverter Grid current" | |
| register_type: holding | |
| unit_of_measurement: "A" | |
| accuracy_decimals: 1 | |
| icon: mdi:current-ac | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25212 | |
| name: "Inverter Load current" | |
| register_type: holding | |
| unit_of_measurement: "A" | |
| accuracy_decimals: 1 | |
| icon: mdi:current-ac | |
| filters: | |
| multiply: 0.1 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25213 | |
| name: "Inverter Power" | |
| register_type: holding | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25214 | |
| name: "Inverter Grid power" | |
| register_type: holding | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| value_type: S_WORD | |
| icon: mdi:flash | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25215 | |
| name: "Inverter Load power" | |
| register_type: holding | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25216 | |
| name: "Inverter System load" | |
| register_type: holding | |
| unit_of_measurement: "%" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| # MOST INFO | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25233 | |
| register_type: holding | |
| name: "Inverter AC radiator temp" | |
| accuracy_decimals: 1 | |
| unit_of_measurement: "°C" | |
| icon: mdi:temperature-celsius | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25234 | |
| register_type: holding | |
| name: "Inverter Transformer temp" | |
| unit_of_measurement: "°C" | |
| accuracy_decimals: 1 | |
| icon: mdi:temperature-celsius | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25235 | |
| register_type: holding | |
| name: "Inverter DC Radiator temp" | |
| unit_of_measurement: "°C" | |
| accuracy_decimals: 1 | |
| icon: mdi:temperature-celsius | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25237 | |
| register_type: holding | |
| name: "Inverter Relay state" | |
| icon: mdi:electric-switch | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25238 | |
| register_type: holding | |
| name: "Inverter Relay state Grid" | |
| icon: mdi:electric-switch | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25239 | |
| register_type: holding | |
| name: "Inverter Relay state Load" | |
| icon: mdi:electric-switch | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25240 | |
| register_type: holding | |
| name: "Inverter Relay state NLine" | |
| icon: mdi:electric-switch | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25241 | |
| register_type: holding | |
| name: "Inverter Relay state DC" | |
| icon: mdi:electric-switch | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25242 | |
| register_type: holding | |
| name: "Inverter Relay state Earth" | |
| icon: mdi:electric-switch | |
| # Inverter Accumulated discharge power | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25247 | |
| register_type: holding | |
| id: discharger_total_mwh | |
| internal: true | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25248 | |
| register_type: holding | |
| id: discharger_total_kwh | |
| internal: true | |
| filters: | |
| multiply: 0.1 | |
| - platform: template | |
| name: "Accumulated discharger power" | |
| unit_of_measurement: kWh | |
| accuracy_decimals: 1 | |
| lambda: !lambda 'return (id(discharger_total_mwh).state * 1000.0 + id(discharger_total_kwh).state);' | |
| # Inverter Accumulated buy power | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25249 | |
| register_type: holding | |
| id: buy_mwh | |
| internal: true | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25250 | |
| register_type: holding | |
| id: buy_kwh | |
| internal: true | |
| filters: | |
| multiply: 0.1 | |
| - platform: template | |
| name: "Accumulated buy power" | |
| unit_of_measurement: kWh | |
| lambda: |- | |
| return (id(buy_mwh).state * 1000.0 + id(buy_kwh).state); | |
| accuracy_decimals: 1 | |
| # Inverter Accumulated sell power | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25251 | |
| register_type: holding | |
| id: sell_mwh | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25252 | |
| register_type: holding | |
| id: sell_kwh | |
| filters: | |
| multiply: 0.1 | |
| - platform: template | |
| name: "Accumulated sell power" | |
| unit_of_measurement: kWh | |
| accuracy_decimals: 1 | |
| lambda: !lambda return (id(sell_mwh).state * 1000.0 + id(sell_kwh).state); | |
| # Inverter Accumulated load power | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25253 | |
| register_type: holding | |
| id: load_mwh | |
| internal: True | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25254 | |
| register_type: holding | |
| id: load_kwh | |
| internal: True | |
| filters: | |
| multiply: 0.1 | |
| - platform: template | |
| name: "Accumulated load power" | |
| unit_of_measurement: kWh | |
| accuracy_decimals: 1 | |
| lambda: !lambda return (id(load_mwh).state * 1000.0 + id(load_kwh).state); | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25273 | |
| register_type: holding | |
| value_type: S_WORD | |
| name: "Inverter Battery power" | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25274 | |
| register_type: holding | |
| value_type: S_WORD | |
| name: "Inverter Battery current" | |
| unit_of_measurement: "A" | |
| accuracy_decimals: 1 | |
| icon: mdi:current-dc | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25275 | |
| register_type: holding | |
| value_type: S_WORD | |
| name: "Inverter Battery grade" | |
| unit_of_measurement: "V" | |
| icon: mdi:alpha-V | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 25277 | |
| register_type: holding | |
| name: "Inverter Rated power" | |
| unit_of_measurement: "W" | |
| accuracy_decimals: 1 | |
| icon: mdi:flash | |
| select: | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| id: energy_use_mode | |
| name: "Inverter Energy use mode (parameter 00)" | |
| address: 20109 | |
| optionsmap: | |
| "SBU (Solar/battery/utility)": 1 | |
| "SUB (Solar/utility/battery)": 2 | |
| "UTI (Utility only)": 3 | |
| "SOL (Solar only)": 4 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| id: charger_source_priority | |
| name: "Inverter Charger source priority (parameter 10)" | |
| address: 20143 | |
| optionsmap: | |
| "CSO (Solar first)": 0 | |
| "SNU (Solar and utility)": 2 | |
| "OSO (Solar only)": 3 | |
| - platform: modbus_controller | |
| modbus_controller_id: must_inverter | |
| address: 20111 | |
| id: inverter_ac_input_voltage_range | |
| name: "Inverter AC input voltage range (02)" | |
| optionsmap: | |
| "VDE (184-253VAC)": 0 | |
| "UPS (170-280VAC)": 1 | |
| "APL (90-280VAC)": 2 | |
| "GEN (Generator)": 3 | |
| number: | |
| - platform: modbus_controller | |
| id: batt_float_voltage | |
| name: "PV Charger Float voltage" | |
| unit_of_measurement: "V" | |
| address: 10103 | |
| value_type: U_WORD | |
| multiply: 10 | |
| - platform: modbus_controller | |
| id: batt_absorb_voltage | |
| name: "PV Charger Absorb voltage" | |
| unit_of_measurement: "V" | |
| address: 10104 | |
| value_type: U_WORD | |
| multiply: 10 | |
| - platform: modbus_controller | |
| id: batt_stop_dischg | |
| name: "Inverter Battery stop discharging voltage" | |
| unit_of_measurement: "V" | |
| address: 20118 | |
| value_type: U_WORD | |
| lambda: "return x * 0.1; " | |
| write_lambda: |- | |
| return x * 10 ; | |
| - platform: modbus_controller | |
| id: batt_stop_chg | |
| name: "Inverter Battery stop charging voltage" | |
| unit_of_measurement: "V" | |
| address: 20119 | |
| value_type: U_WORD | |
| multiply: 10 | |
| - platform: modbus_controller | |
| id: batt_low_voltage | |
| name: "Inverter Battery low voltage" | |
| unit_of_measurement: "V" | |
| address: 20127 | |
| value_type: U_WORD | |
| multiply: 10 | |
| - platform: modbus_controller | |
| id: batt_high_voltage | |
| name: "Inverter Battery high voltage" | |
| unit_of_measurement: "V" | |
| address: 20128 | |
| value_type: U_WORD | |
| multiply: 10 | |
| - platform: modbus_controller | |
| id: solar_charger_current | |
| name: "Inverter Charger current" | |
| unit_of_measurement: "A" | |
| address: 20132 | |
| value_type: U_WORD | |
| multiply: 10 |
Всем привет. Взял платку по ссылке из гита https://github.com/vladyspavlov/esphome-must-inverter и спокойно стал ждать, не вдаваясь в подробности. Платка пришла и тут оказалось что у неё с одной стороны 4 контакта с другой 3, а на скринах 4Х4. Ну тут по идее всё ясно - берём с ЮСБ центральные жилы и землю на троих, питание на ЕСП 5в, с ЕСП забираем землю и 3.3 на другую сторону платки, туда же рх.тх, А+Б+ чередуем, РХ\ТХ тоже если не пошло. НО - А какую в итоге взять прошивку? esp32-pv18.yaml? Только вот у меня серия не 1800, а eco. По смыслу я надеюсь что регистры у них должны +- совпадать.
И ещё вопрос - а на платах с3 кто то подобное собирал? А то я смотрю все в едином порыве берут s3 и чуть ли не nvidia shild - зачем так мощьно?
Блин, ребят - подскажите кто чем может, не хочет у меня работать ни в какую. Грешил что случайно спалил рс485 платку пока подключал, заказал ещё одну. та же фигня - на ней постоянно моргает рх и никакие данные не приходят, ни в юсб порту, ни в езернет по 1,2,3 жилам. Что за прошивка под ЮСБ? Загнал в ЖПТ чат, тот рассказывает дивные истории про то что оно там напрямую может работать без рс485 переходников, хотя тут ни у кого не видел такого сетапа...
В логах пишет какую то фигню -
12:33:46 | [W] | [modbus_controller:284] | Duplicate modbus command found: type=0x3 address=25226 count=1
12:33:46 | [W] | [modbus_controller:284] | Duplicate modbus command found: type=0x3 address=25233 count=3
12:33:46 | [W] | [modbus_controller:284] | Duplicate modbus command found: type=0x3 address=25237 count=6
12:33:46 | [W] | [modbus_controller:284] | Duplicate modbus command found: type=0x3 address=25247 count=8
В общем подскажите какую всётаки прошивку нужно шить? Может в самом инверторе ещё нужно что то включать?
Блин, ребят - подскажите кто чем может, не хочет у меня работать ни в какую. Грешил что случайно спалил рс485 платку пока подключал, заказал ещё одну. та же фигня - на ней постоянно моргает рх и никакие данные не приходят, ни в юсб порту, ни в езернет по 1,2,3 жилам. Что за прошивка под ЮСБ? Загнал в ЖПТ чат, тот рассказывает дивные истории про то что оно там напрямую может работать без рс485 переходников, хотя тут ни у кого не видел такого сетапа... В логах пишет какую то фигню - 12:33:46 | [W] | [modbus_controller:284] | Duplicate modbus command found: type=0x3 address=25226 count=1 12:33:46 | [W] | [modbus_controller:284] | Duplicate modbus command found: type=0x3 address=25233 count=3 12:33:46 | [W] | [modbus_controller:284] | Duplicate modbus command found: type=0x3 address=25237 count=6 12:33:46 | [W] | [modbus_controller:284] | Duplicate modbus command found: type=0x3 address=25247 count=8 В общем подскажите какую всётаки прошивку нужно шить? Может в самом инверторе ещё нужно что то включать?
Начните с того, что в кабеле между инвертором и батареей оставьте только необходимые для коммуникации CAN провода (2 для CAN и GND).
Я имел такую же ситуацию, пока не обрезал лишнее. Судя по всему, BMS много чего кричит и в CAN, и в RS485. И это ТОТ ЖЕ САМЫЙ RS485, что и в жилах D+/D- бокового порта USB-A.
https://gist.github.com/vladyspavlov/5ac21cb58923482eff8e7bbb2d0854b3?permalink_comment_id=5961143#gistcomment-5961143 -
Нет кабеля между инвертором и батареей. Взял юсб, вытащил с него центральные на А\Б, питание 5 вольт на есп32, землю на землю ЕСП и рс485, 3.3 вольта с ЕСП на рс485. В общем то там сложно как то сильно перепутать. Но реакции ноль - никакие данные не идут.
Может у моей модели кардинально другие настройки? по смыслу тот де пв18, но у меня ECO-2012, они их запихали в отдельную категорию на сайте - https://www.mustpower.com/product/eco-series-2-12kw/
https://gist.github.com/vladyspavlov/5ac21cb58923482eff8e7bbb2d0854b3?permalink_comment_id=5961143#gistcomment-5961143 - Нет кабеля между инвертором и батареей. Взял юсб, вытащил с него центральные на А\Б, питание 5 вольт на есп32, землю на землю ЕСП и рс485, 3.3 вольта с ЕСП на рс485. В общем то там сложно как то сильно перепутать. Но реакции ноль - никакие данные не идут. Может у моей модели кардинально другие настройки? по смыслу тот де пв18, но у меня ECO-2012, они их запихали в отдельную категорию на сайте - https://www.mustpower.com/product/eco-series-2-12kw/
Насчет ECO-2012 информации (и даже общего понятия) не имею, увы.

@Alexandrmv
Ще можна спробувати: