Du-te la conținut

Conectare si control Invertor DEYE pe Modbus prin ESP la HomeAssistant - Tutoriale IT & Tech

Omite meniul
Tutoriale IT & Tech

Tutoriale

IT & Tech

Invertorul EaSun SMW 8KW 48v 2xMPPT - Tutoriale IT & Tech
Setare Cookie
Pagina cu Butoane
Descriere:

M-am chinuit enorm să reușesc să conectez invertorul DEYE (da, am trecut de la EaSun la DEYE) la HomeAssistant prin ESP. Unii vor spune că există tot ce vrei pe net și așa am crezut și eu, până m-am apucat și am constatat că registrii sunt total dați peste cap între versiunile de invertoare. Fie nu citesc nimic, fie citesc baliverne. Eu am rezolvat întreaga problemă cu un scanner de registri. Mi-am făcut un scanner, l-am încărcat pe ESP și de acolo mi-am notat valorile... am făcut-o în modul bătrânesc.

Am reușit să aflu registrii care mă interesau și să citesc, dar surpriză... nu puteam scrie valori. Și de aici, dă-i și caută... toată lumea se lega de registrul 60, care, chipurile, este pentru deblocarea scrierii în invertor. Bineînțeles, am luat-o și eu pe acest drum... dar mi-am dat seama că nu era deloc așa și nu avea nicio treabă. Acum... rezolvarea a fost mai simplă decât credeam și totul s-a rezumat la cum îi trimiteam mesajele invertorului. Să ne înțelegem... nu spun că registrul 60 nu este pentru deblocarea scrierii (nu spun nici că este), spun doar că nu l-am folosit și deocamdată bănuiesc că este pentru modificarea valorilor din setările de Grid, care și în interfață și pe display sunt protejate cu un cod.

Gata cu palavrageala, să trecem la treabă... dar, înainte de toate, să vă spun ce model de invertor am folosit: este un SUN-8K-SG05LP1-EU, adică un invertor monofazic de 8 kW.

De ce ai nevoie să faci asta? Păi, un ESP32 cu un DevBoard (nu este obligatoriu), un convertor RS485 la TTL și un cablu de rețea pe care ești dispus să-l tai... sau să-ți faci un cablu. Eu am luat toate astea de pe OptimusDigital. Bine, ele erau achiziționate de ceva vreme și zăceau prin casă... și, ca idee, le găsiți pe AliExpress sau Temu fără probleme.
Conexiunile... Ei bine, aici am avut niște mici probleme, dar nimic de nerezolvat. Pentru început, conectorul Modbus de pe invertor l-am conectat după cum urmează: PIN-ul 6 = GND, PIN-ul 7 = RS485 A și PIN-ul 8 = RS485 B. Acestea le-am conectat la convertor astfel: GND la GND, A la A și B la B.

Partea interesantă a început când am vrut să conectez convertorul la ESP. Probabil, când a proiectat acest convertor, inginerul chinez era puțin amețit, deoarece firele de alimentare sunt total contraintuitive, în sensul că roșu este alimentare - și negru este alimentare +. Dar cel mai simplu este să te ghidezi după ce scrie pe PCB și să ignori culoarea firelor. (vezi schema)

Conexiunea este mai mult decât simplă: GND la GND pe ESP, VCC la 3V3 pe ESP, RXD la RX2 pe ESP și TXD la TX2 pe ESP. Asta a fost tot. Am programat ESP-ul, i-am dat drumul și imediat am început să primesc date. Incorecte, dar am început să primesc date.
Pentru cei care nu vor să își bată capul sau să piardă timp cu trivialități de genul acesta, mai jos ai configurația invertorului meu. Tot ce trebuie să faci este să introduci numele și cheia API a ESP-ului și să încarci informațiile. Și era să uit, în cazul în care nu ai configurat deja "Secrets", unde există datele de conectare la rețeaua WiFi, va trebui să faci această parte mai întâi. Nu este complicat, așa că navighează în Settings > Add-ons > ESPHome Device Builder > Open web UI și aici mergi la "SECRETS". Ajuns aici, pur și simplu copiază și lipește conținutul, completează cu datele tale și salvează.

Odată terminată această parte, editează fișierul invertorului, copiază și lipește conținutul, modifică numele și cheia API, adaugă adresa IP, Subnet Mask și Gateway corecte, compilează, încarcă pe ESP și ești gata. Ca idee, am să pun și ceva testat pentru un invertor trifazic de 12 kW (nu știu exact modelul, dar cred că este SUN-12K-SG04LP3-EU), dar nu am testat personal această configurație, ci am primit-o de la cineva căruia îi merge fără probleme. Este o configurație minimalistă, dar este un punct de plecare.

Bineînțeles, sunt o grămadă de alte chestii utile sau nu pentru fiecare, iar dacă constați că îți este inutil un senzor, fie fizic, fie virtual, fie îl ignori, fie îl ștergi din programare.

NOTĂ! Dacă folosești alt tip de board, trebuie să pui în loc de esp32dev modelul pe care îl ai tu.
View Configuration Buttons
Bun. Acum că am scăpat de cei grăbiți, să trecem la partea distractivă. Ți-am spus că mie nu mi-au corespuns registrii primiți pentru invertorul trifazic și că informațiile găsite pe net nu erau corecte. Am pus mâna și am făcut un scanner, notându-mi tot... așa, încet-încet, am reușit să identific toți registrii care mă interesau pe mine.

Îți arăt acest lucru pentru că poate ai nevoie de altceva față de ce am eu nevoie, așa că nu este rău să știi ce și cum. Poți instala pe același ESP conectat la invertor scannerul (în esență, înlocuiești codul cu acesta). Bineînțeles, ai grijă să modifici parametrii în cod înainte. Odată compilat, totul este clar ca lumina zilei.

Sunt o grămadă de parametri despre care habar nu am ce sunt și, sincer, nici nu prea îmi pasă, dar comparând ce citește scannerul și ce văd pe invertor, am identificat, așa cum am spus, ce mă interesa. Un singur registru lipsește (și sunt sigur că există și acela), cel care arată puterea generată de pe panouri combinată. Dar, deja sătul de căutat, am preferat să merg pe varianta matematică, așa că am adunat ce generează cele două stringuri, iar partea asta este un senzor virtual care asta face: adună și afișează.

Și aici mai avem ceva de discutat, deoarece poți interpreta scanarea fie ca U_WORD, fie ca S_WORD și nu ai idee care este care, așa că fiecare registru este interpretat atât ca U_WORD, cât și ca S_WORD. Dar de ce scanăm fiecare registru de două ori?
Când scanezi un registru Modbus necunoscut, nu știi dacă trebuie interpretat ca U_WORD (Unsigned Word) sau S_WORD (Signed Word). Tocmai de aceea, acest scanner afișează fiecare registru în ambele variante.
Ce înseamnă U_WORD și S_WORD?
- U_WORD = Unsigned Word → doar valori pozitive (0 - 65.535)
- S_WORD = Signed Word → valori pozitive și negative (-32.768 - +32.767)

De ce e important? Dacă citești o valoare negativă (ex: -500W) cu U_WORD, vei vedea valori total ireale (ex: 65.036W) și vei rata registrul! De aceea scanăm cu ambele tipuri - compari rezultatele și identifici care e corect. Atenție la factorul de multiplicare! Invertorul Deye stochează multe valori ca numere întregi (fără zecimale).
De exemplu:
- Tensiunea de 55,5V este stocată ca 5550 (înmulțit cu 100)
- Frecvența de 50,12Hz este stocată ca 5012 (înmulțit cu 100)

În scanner, unele registre au deja aplicate filtre de conversie (multiply: 0.01 sau multiply: 0.1), dar dacă găsești valori mari care par a fi înmulțite cu 10 sau 100, este normal - trebuie împărțit înapoi pentru a obține valoarea reală!
View Configuration Buttons
Tabelul cu registrele de mai sus este valabil pentru invertorul meu și bănuiesc că este valabil și pentru alte modele de invertoare monofazice, de exemplu, cel de 6 kW.

Și, la final, o ultimă chestie...
Obișnuit cu SolarAssistant, pentru mine a fost total contraintuitiv faptul că la încărcare valorile erau negative, iar la descărcare pozitive. Deși, sincer vorbind, pare mai corect așa, într-un exces de zel am setat din ESP să afișeze valorile negative ca fiind pozitive și cele pozitive ca fiind negative. Astfel, în HomeAssistant văd exact cum sunt obișnuit.
Dacă îți place invers, este simplu: la registrele 190 și 191 vei găsi, sub filtre, valoarea de multiplicare -1. Tot ce trebuie să faci este să o schimbi în 1, să salvezi, să compilezi și gata, se va inversa.
🎥 Urmărește și tutorialul video, unde îți arăt tot procesul, pas cu pas tot ce trebuie să știi pentru a face lucrurile ca la carte, fără bătăi de cap.
Totul explicat clar, pe înțelesul tuturor, fără termeni complicați și cu exemple din viața reală. 🎥
Ne vedem acolo! 😉

Tutorial prezentat de: Remus @ Tutoriale IT & Tech

Canale și Platforme Sociale
Înapoi la cuprins