Комунікація інвертора Anenji 6.2kw і батареї Dyness B4850

по-перше, трохи не ясно, чому інвертор виставляє номер модуля 01 (остання цифра перед контрольною сумою FD33)
по-друге, пітонівська бібліотека не розуміє відповідь Dyness B3 на запит get_values(), де номер модуля FF
1. Цей момент не дуже чітко прописаний в специфікації пілон протоколу, тому кожен виробник тулить туди що забажає. В Аненжі цей байт не передається взагалі і все норм. І він там насправді не потрібен, так як адрес модуля є у другому байті "02" (в пілон-протоколі адресація починається з 2).
2. То не бібліотека, то батарея не розуміє. Dyness реалізував пілон тільки частково і не вміє консолідувати данні усих під'єднаних модулів в один респонс, а шкода.
 
1. Цей момент не дуже чітко прописаний в специфікації пілон протоколу, тому кожен виробник тулить туди що забажає. В Аненжі цей байт не передається взагалі і все норм. І він там насправді не потрібен, так як адрес модуля є у другому байті "02" (в пілон-протоколі адресація починається з 2).
2. То не бібліотека, то батарея не розуміє. Dyness реалізував пілон тільки частково і не вміє консолідувати данні усих під'єднаних модулів в один респонс, а шкода.
оце за мотивами github/Frankkkkk/python-pylontech написав скриптик
який міняє байт в команді інвертора з 0x61 на 0x42 і перекидає її на батарею.
а потім відповідь з батареї перекидає на інвертор.
все це робив дистанційно, тому на bms-екрани інвертора зможу подивитися лише завтра.
наче скориговані команди викликають довгі відповіді від батареї, схожі на правду.
але чи зрозуміє їх інвертор ? чи не знадобиться там коригувати NumberOfModule ? з'ясую завтра з ранку.
 
вирішив поділитися результатами вивчення протоколу Пілон різних версій , складеними у збірний файл.
можливо допоможе допрацювати адаптер на роботу з паралельно з'єднаними батареями (там є як звертатися до підлеглих батарей через головну)
Читаю документ і бачу в тексті такі слова:
"Примітка: INFO містить INFOFLAG та DATAI"
трохи не можу второпати, що таке INFOFLAG

судячи з коду Frankkkkk, це просто нульовий байт на початку INFO, який далі ігнорується
чи я помиляюся ?

[upd:] З'ясував: INFOFLAG - це те саме, що й DATA_FLAG. А "Значення команди" - це те, що бібліотека Frankkkkk/python-pylontech читає як NumberOfModule=2 в get_values_single(2), а в get_values() воно через цю саму циферку фейлиться, бо не знаходить дані для другого модуля.
У відповіді на команду 0x61 ця цифра взагалі не використовується.
 
Останнє редагування:
День 10
Оптимізував схему, підрехтував программу - Dyness Adapter v0.2

Схема:
Переглянути вкладення 6656
Прошивка:
dyness-adapter-0.2.zip

P.S. Схоже це фінальна версія, далі оптимізувати вже нікуди, хіба що програмно!
Доброго часу спільнота, маю таку саму проблему АНЕНДЖИ 6.2 + ДЮНЕС 4850: зі схемою усе зрозуміло, {трохи юзав ардуінки (помиготів світлодіодом :))).)} не розумію як залити прошивки (dyness-adapter-0.2.zip) через ардуіно ІДЄ оболонка видаэ похибку
 

Вкладення

  • Знімок екрана 2025-12-03 185441.png
    Знімок екрана 2025-12-03 185441.png
    63,8 Кб · Перегляди: 8
Ви можете під'єднати USB шнурок до ардуїнки, відкрити будь-який Serial Monitor і побачити увесь протокол обміну, типу такого:

Переглянути вкладення 6641

Працює це так:
1. Команда 61h (Get System analog data) надходить від інвертора.
2. Адаптер підміняє її на команду 42h (Get analog value) і відправляє її до батареї.
3. Приходить респонс на 42h команду з батареї.
4. Адаптер розбирає його на окремі значення і формує фейковий респонс на 61h команду для інвертора.
От я і підійшов до формування фейкової відповіді вбудованими засобами Пітона.
Якби ж тільки мати алгоритм (бажано початковий код), який формує із відповіді на команду 0x42 відповідь на команду 0x61 (як в п.4 на процитованій картинці) ...
Я поки що все намагаюся досягти реверс-інжинірингом, та дуже сумніваюся, що мені все вдасться з першого разу.
Щось там у відповіді на 0x61 забагато температур (t. комірки, MOSFETа, BMS і по кожній набір из 5 параметрів, а у відповіді на 0x41 лише 5 температур, середня для BMS та 4 для груп комірок). Доведеться творчо брехати :>

Якийсь ще "Середній SOH" та "Мінімум SOH" бачу.
Це SOC чи щось інше ? Якщо туди поставити ((Залишкова ємність 1)*100-1)/(Загальна ємність 1) , інвертор не образиться ?

І також: "Середня кількість циклів", "Максимальна кількість циклів" - це про що ?
У відповіді на 0x42 є просто "Кількість циклів", або CycleNumber у Frankkkkk. Якщо це число просто повторити двічі у відповіді на 0x61, проканає ?
 
Останнє редагування:
не розумію як залити прошивки (dyness-adapter-0.2.zip) через ардуіно ІДЄ оболонка видаэ похибку
Наприклад ось так:
або так:
 
Якийсь ще "Середній SOH" та "Мінімум SOH" бачу.
Це SOC чи щось інше ? Якщо туди поставити ((Залишкова ємність 1)*100-1)/(Загальна ємність 1) , інвертор не образиться ?

І також: "Середня кількість циклів", "Максимальна кількість циклів" - це про що ?
У відповіді на 0x42 є просто "Кількість циклів", або CycleNumber у Frankkkkk. Якщо це число просто повторити двічі у відповіді на 0x61, проканає ?
Це SOC, якщо модулів багато то це має сенс. По циклам теж саме.
 
Наприклад ось так:
або так:
Подякував буду копать :) фух докопався нарешті :) все завантажив другу версію, замовляю RS485
 

Вкладення

  • Знімок екрана 2025-12-04 145213.png
    Знімок екрана 2025-12-04 145213.png
    101,8 Кб · Перегляди: 10
Останнє редагування:
оце за мотивами github/Frankkkkk/python-pylontech написав скриптик
який міняє байт в команді інвертора з 0x61 на 0x42 і перекидає її на батарею.
скриптик вже працює і малює на bms-екранах інвертора GOOTÜ JSY-H4862E120-D цілком правдоподібні цифри.
можете скачувати собі, ознайомлюватися та адаптувати під свої потреби.
це буде корисно для тих, хто вже має постійно працюючий linux-сервер з usb-портами.
щоб не купувати Arduino та додатковий RS485-адаптер для нього.
в даному сценарії додатково знадобилися лише 2 USB-RS485 адаптери по 50 грн/шт з prom.ua, дві двометрові пари дротів та два джека RJ45.
плюс амортизація обтискних кліщів.
заодно алгоритм перетворення 0x42-відповіді на 0x61-відповідь тепер доступний у відкритому джерелі, і його можна переносити на інші мови програмування.
щоправда, пакети протоколу Pylon я розбираю не через construct, а просто через регулярні вирази, що не завжди виглядає бездоганно.
але займає менше місця за текстом :>

у планах на майбутнє: обробляти _UserDefinedItems ("Користувацьке число"), якщо воно не 2, а 4, і в кінці додані 3-байтові значення поточної та повної ємності у mAh.
у Dyness B3 такого нема, хоч її паспортна ємність 75000 mAh, вона на запит 0x42 повідомляє повну ємність 34000 (0x84d0 у двох байтах)
 
Останнє редагування:
Привіт всім.
Перечитав цю всю тему, але так і не зрозумів).
Комусь вдалось подружити
- інвертор anj-6200w-48v-wifi
- батарею dyness dl5.0c

Я бачу, що умільці змогли подружити b4850, а ось з новішими вдалось?
Бо мені китайці сказали, що b4850 вже не будуть випускати (сказали не вигідно і будуть тільки 100А моделі).

Якщо ще не подружили з dl5.0c - давайте разом?)
Добрий вечір, я подружив, без ніяких костелів як виявилося. Берете кабель з коробки у якого обжаті піни 1-2 з обох сторін, підключаєте в роз'єми, виставляєте діпи на батареї 2-3 вверх, вмикаєте батарею , затискаєте на 3сек кнопку sw. Потім запускаєте інвертор, в налаштуваннях виставляєте тип батареї Li4, і вони починають комунікувати, спочатку індикатор Li буде мигати. Якось так)
 
Вітаю. В мене дакстромн 6.2 та дві батарейки дайнес 4850. От вже пітора року юзаю все це, спочатку одну а згодом другу добавив. Налаштування по напрузі. Але було б цікаво, що собі думають БМС на батарейці, скільк циклів вже нарахувало і т.д. тому маю бажання замовити у когось з вас оцей адаптер, про який тема.
Хто може зробити та продати адаптер? Будь ласка - пропозиції надсилайте в приватні повідомлення. Дякую
 
День 10
Оптимізував схему, підрехтував программу - Dyness Adapter v0.2

Схема:
Переглянути вкладення 6656
Прошивка:
dyness-adapter-0.2.zip

P.S. Схоже це фінальна версія, далі оптимізувати вже нікуди, хіба що програмно!
Що ще можу докласти до цього відосіка, на дес моніторі тай в мобдодатку змінилися відношення %/напруга, раніше коли були налаштування "юзерс" то при напрузі 49.7 вольта % був-би десь 80, але на леддісплеї аджея під іконкою аккума ні чого не пише, так при
примусовому розриві зв'язку зявляється похибка 19, при підєднанні з першу чекав декілька хвилин похибка згасла, тоді ще пару раз пробував розєднувати то похибка тікала швидше, такі справи:cool:Знімок екрана 2025-12-23 170241.png
 
Те що 94% при 49.7 вольтах це нормально, по напрузі батереї не можна однозначно сказати скільки ємності там залишалось. Цей процент предає бмс батареї, і їй видніше скільки там ємності. Можна перевірити ще так: четвертий світлодіод на батареї загоряється коли SOC 75-100%, тобто якщо інвертор показує 75%, то горять всі чотири, а якщо 74% то вже три. На рахунок "моргання літію", я не пам'ятаю як там в аненжі, але якщо 19 помилки немає, то звїязок є.
 
Те що 94% при 49.7 вольтах це нормально
ні, не нормально це не більше 30% а скоріше 10 %
бо графік розряду це все таки не зовсім горизонтальна лінія і 3.1 вольта це меше половини точно
 

Вкладення

  • разряд.png
    разряд.png
    31,2 Кб · Перегляди: 3
Останнє редагування:
ні, не нормально це не більше 30%
бо графік розряду це все таки не зовсім горизонтальна лінія і 3.1 вольта це меше половини точно
Та ці батареї ущербні.
В них не 16, а 15 комірок. 49.7В/15=3.31В
 
І це ще коли заряд іде, при розряді картина гірша.

1766569699912.png
 
Те що 94% при 49.7 вольтах це нормально, по напрузі батереї не можна однозначно сказати скільки ємності там залишалось. Цей процент предає бмс батареї, і їй видніше скільки там ємності. Можна перевірити ще так: четвертий світлодіод на батареї загоряється коли SOC 75-100%, тобто якщо інвертор показує 75%, то горять всі чотири, а якщо 74% то вже три. На рахунок "моргання літію", я не пам'ятаю як там в аненжі, але якщо 19 помилки немає, то звїязок є.
Поюзав адаптер більше доби, таке враження що зв'язок тільки з ведучою батарейкою, при навантажени 2 кВт вискакує помилка 21 (перевантаження по току) хоча маю 4 збірки, при старті від першої заводяться всі, коли одна збірка видає 0,7 то 4 має видавати 2.8, чи можливо низька температура в зоні батарейок 9 градусів? (коли з навісного монтажу зроблю більш культурну приблуду добавлю резюків)
Я так дослідив моргає літій коли є хоч якійсь заряд, не морга коли розряд і так при розряді/заряді відсотки з напругою взагалі не так себе ведуть як при юзерс налаштуваннях.
Ще зараз переробляв буду:rolleyes: для акумів зробив з екструдованого пінопласту (трохи зимно було може потеплішає :) до речі підігрів за рахунок тепла що виділяє інвертор, в картонній буді різниця з майстернею була 4 градуса ) перепідключав адаптер зв'язок з'явився одразу без перезавантаження акумів. Але через пару годин э але помітив якусь аномалію (мережа є акум 50.1в та -0.7А з батарейки) пішов до інвертора похибка 19, відключаю мережу похибка зникає, підключаю мережу іде заряд похибка знов зявляється (пробував з перезавантаженням акумів все теж саме) перейшов знов на юзіка нема як гратись зараз мають вимкнути світло:(
 
Останнє редагування:
Є рішення і для другої версії. Ідея в тому щоб інвертор і батарея не бачили один одного, але бачили адаптер. Резюки можна збільшити якщо проблема зберігається, у мене так:

Переглянути вкладення 8917
По версії прошивки 2.0.1 і такими рекзюками, проблема збереглась (рандомно відвалюється раз на день), зараз перешив на версію 2.0, тестую. Може збільшити резистори, як хто вважає?
 
Поюзав адаптер більше доби, таке враження що зв'язок тільки з ведучою батарейкою, при навантажени 2 кВт вискакує помилка 21 (перевантаження по току) хоча маю 4 збірки, при старті від першої заводяться всі, коли одна збірка видає 0,7 то 4 має видавати 2.8, чи можливо низька температура в зоні батарейок 9 градусів?
Ні, температура тут ні до чого. Dyness реалізував протокол обміну частково і не вміє консолідувати данні з усих модулів, тому адаптер передає данні тільки від майстер модуля, а там ліміти зашиті виробником 25А на заряд/розряд. Вихід, поки що, бачу в кастомній прошивці під ваш набір модулів. Буде домножати 25 (під кінець заряду ліміт зменшуеться) на кількість модулів, або як забажаєте. Пишіть в особисті.
П.С.: Це актуально для інверторів Anenji/EASUN, на більш тупіших типу Daxtromn ліміти ігноруються і ця проблема не стоїть.
 
Назад
Угорі