оце за мотивами github/Frankkkkk/python-pylontech написав скриптик
misc scripts for hosting and distribution. Contribute to muwlgr/scripts development by creating an account on GitHub.
github.com
який міняє байт в команді інвертора з 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 у двох байтах)