Arduino + Voltronics

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
Uživatelský avatar
youda
Příspěvky: 3074
Registrován: stř dub 27, 2016 12:12 am

Arduino + Voltronics

Příspěvek od youda »

Chlapi,

máte někdo rozchozený monitoring invertorů Axpert, Infini či jiných od Voltronicsu pomocí Arduina?

Jak jste na to šli? SNMP, Modbus nebo RS232?
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
dequeue
Příspěvky: 44
Registrován: úte úno 21, 2017 11:29 pm

Re: Arduino + Voltronics

Příspěvek od dequeue »

Arduino nie.
Ja som pouzil RPi Zero W + RS232 (funguje mi aj USB ale obcas sa zasekne a treba reboot)
Software pouzivam vlastny Python + MQTT na vlastny server.
3120Wp + 100Ah 48V Pb + PIP-4048MS
Uživatelský avatar
youda
Příspěvky: 3074
Registrován: stř dub 27, 2016 12:12 am

Re: Arduino + Voltronics

Příspěvek od youda »

Ahoj Dequeue,

moc díky za feedback! Bohužel, Raspberry bych se já osobně potřeboval vyhnout. Vím, že je to násobně flexibilnější platforma než Arduino, ale jeho stabilita v provozu 24x7 je prý horší. Navíc, Arduino už na pár věcí používám, tak bych chtěl držet linii.

Mimochodem, používáš na rozklíčování té sériové komunikace z Axperta nějakou knihovnu, nebo sis prostě jen vyparsoval těch pár údajů, které tě zajímaly?
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
dequeue
Příspěvky: 44
Registrován: úte úno 21, 2017 11:29 pm

Re: Arduino + Voltronics

Příspěvek od dequeue »

Ahoj,

kniznicu nepouzivam (o ziadnej neviem), len si parsujem to co ma zaujima.

Prvotne som isiel do RPi, lebo som chcel pouzit USB, to sa neosvedcilo ale inak to bol vyborna volba.
3120Wp + 100Ah 48V Pb + PIP-4048MS
Uživatelský avatar
Honza_H
Příspěvky: 57
Registrován: ned říj 23, 2016 11:14 am

Re: Arduino + Voltronics

Příspěvek od Honza_H »

Ahoj.

Já jsem vše našel tady: http://www.homoandroidus.com/viator/pagina_02.html
Je tam komukace arduino axpert přes 232. Šlape to bez problémů.

H.
FVE 7,6kW, VE 500W, 2x Axpert 4kW, 1x Epewer 2,2 kW, 48x LiFePo 100Ah, 32x LiFePo 280Ah
Uživatelský avatar
youda
Příspěvky: 3074
Registrován: stř dub 27, 2016 12:12 am

Re: Arduino + Voltronics

Příspěvek od youda »

Honza_H,
tak to vypadá výborně! Dobré je to upozornění na nutnost zvětšit sériový buffer:
An IMPORTANT thing is to modify the serial buffer, contained in the SoftwareSerial library (HardwareSerial if we use a mega arduino). You will have to go into the arduino dir and look for the SoftwareSerial.h file in the libraries. You will have to replace the line:
#define _SS_MAX_RX_BUFF 64 // RX buffer size

with:
#define _SS_MAX_RX_BUFF 128 // RX buffer size

This is because the characters coming in from 4048 are sometimes more than 64. Typical example is the QPIGS, which in response shoots about 100 bytes and if there was no change the data would be truncated to about half.
Bohužel, povedlo se mi stáhnout jen PDF schéma k základnímu zapojení. Všechny ZIPy se zdrojáky hlásí, že soubor neexistuje :cry: Prosím, měl bys sketch k té sériové komunikaci?
Přílohy
Viator RS232.JPG
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
Uživatelský avatar
youda
Příspěvky: 3074
Registrován: stř dub 27, 2016 12:12 am

Re: Arduino + Voltronics

Příspěvek od youda »

V zápalu nadšení jsem vyhledal dva PDF manuály k sériové komunikaci. Jeden měl být pro Axpert, druhý pro InfiniSolar (kdyžtak na požádání PDF zašlu). V detailech protokolu se Axpert a Infini mírně liší, nicméně celková forma je identická. Měnič prostě očekává příkazy jako QPIGS, QMOD, QID, QVFW, QVFW2 ... A data vrací ve formátu (BBB.B FF.F ...

Vyzkoušel jsem tedy pár výše uvedených příkazů po RS232 poslat na InfiniSolar Plus 5K, ale ten se semnou nechtěl vůbec bavit. Až monitor komunikace Infini + SolarPower ukázal, že ti dva se spolu baví novou verzí protokolu!

Příkazy už nezačínají znaky QP ale ^P002^P016.
Příkazu QPIGS nově odpovídá ^P003GS
QPIRI se nám změnilo na ^P005PIRI
Každý příkaz je třeba potvrdit 0x0d, tedy terminálovým znakem <Carriage_Return>

Nový je také formát odpovědí. Data se nově vracejí jako ^Dxxx aaaa,bbb,cccc ..., kde xxx je trojmístné číslo, ihned následované odpovědí v ASCII kódu, kdy jednotlivé hodnoty jsou odděleny čárkou. Například:

Challenge: ^P005PIRI
Reponse: ^D0472300,500,0217,2300,0217,0100,0480,2,01,0,1,0
Obsahem response jsou štítkové hodnoty zařízení:
- Grid rating 230V
- Frekvence 50Hz
- Max proud 21.7A
- Výstupní napětí 230V
- Výstupní proud 21.7A
- Proud MPPT vstupu 10A
- AKU 48V
- Počet MPPT trackerů 2
- .
- .
- .

Nechal jsem tedy SolarPower chvilku běžet a ten během pár minut naposílal tyto příkazy:
^P002T
^P003DM
^P003FT
^P003GS
^P003ID
^P003MD
^P003PS
^P003SV
^P003WS
^P004CFS
^P004FET
^P004GOF
^P004LST
^P004MAR
^P004MOD
^P004PLE
^P004VFW
^P005AAPF
^P005ACCT
^P005BATS
^P005FLAG
^P005FPPF
^P005GPMP
^P005HECS
^P005OPMP
^P005PIRI
^P005VFW2
^P006FPADJ
^P006GLTHV
^P006MPPTV
^P016EH2018050718210
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
Uživatelský avatar
youda
Příspěvky: 3074
Registrován: stř dub 27, 2016 12:12 am

Re: Arduino + Voltronics

Příspěvek od youda »

A ještě info k fyzickému zapojení. Port RS232 na měniči je ve formě DB9 female:
InfiniSolar RS232.JPG
Kabel pro zapojení do PC je obyčejná produžka DB9 samec-samice. Piny jsou zapojeny napřímo a to pouze tyto:
2---2
3---3
5---5
shield---shield
DB9 RS232 pinout.png
Takže na ebay objednávám k arduinu převodník TTL na RS232 v provedení "samec", tak aby šel použít s obyčejnou prodlužkou.
max3232.JPG
max3232.JPG (20.7 KiB) Zobrazeno 4282 x
PS: Nemáte někdo vyčítání toho nového protokolu už hotové, ať nemusím znovu objevovat Ameriku? ;)
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
Uživatelský avatar
Honza_H
Příspěvky: 57
Registrován: ned říj 23, 2016 11:14 am

Re: Arduino + Voltronics

Příspěvek od Honza_H »

Ahoj.

Snad se ti podaří toto rozchodit. Je to prvotní kód, který jsem stáhnul z viatoru. Já už mám ve svém programu jen chaos :oops: . Tohle chodilo na prvmí dobrou.

Honza H.
Přílohy
viator_light_01.ino
(7.49 KiB) Staženo 417 x
FVE 7,6kW, VE 500W, 2x Axpert 4kW, 1x Epewer 2,2 kW, 48x LiFePo 100Ah, 32x LiFePo 280Ah
Uživatelský avatar
youda
Příspěvky: 3074
Registrován: stř dub 27, 2016 12:12 am

Re: Arduino + Voltronics

Příspěvek od youda »

Diky Honzo :)
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
Uživatelský avatar
youda
Příspěvky: 3074
Registrován: stř dub 27, 2016 12:12 am

Re: Arduino + Voltronics

Příspěvek od youda »

Informační update pro nadšence:

Sketch viator_light_01.ino samozřejmě nejde přímo použít pro InifiniSolar, jelikož ten už mluví novým, výše popsanýn protokolem. Nicméně jsem z něj pochopil několik funkčních principů, takže ještě jednou díky Honzovi za pomoc!

InfiniSolar chci připojit přes Z-Wave protokol, abych data dostal s co nejmenším počtem převodníků až do Z-Wave gatewaye, kde je budu finálně zpracovávat. (Už dnes tím zapínám a sleduji všechny termostaty, čerpadla, zavlažování, čističku, bojler, pračku, garáž...no prostě skoro všecko. Až se to jednou podělá, tak budu mít doma jen tmu, zimu a potopu.)

Nejdu tedy programátorsky pohodlnější cestou SNMP-LAN-Linux-LAN-Gateway, ale kratší, trnitější, RS232-Arduino-Gateway. Místo klasického Arduina používám Z-UNO, což je miniaturní destička s čipem SigmaDesigns ZM5101, který umí rovnou bezdrátový protokol Z-WAVE. Bohužel není to programátorsky úplně nejpříjemnější, jelikož k němu například není knihovna SoftwareSerial.h a kvůli nekompatibilitě AVR vs 8051 ani spousta dalších knihoven. Nezná to proměnné typu String, ale jenom Long, Int, Byte, Word a Char. A zrovna při práci s RS232 tedy absence Stringů a souvisejících funkcí docela naštve :lol:
ZUNO.JPG
Místo SoftwareSerial.h jsem tedy použil vestavěný HW UART, místo Stringů kopec Charů a i ten problém s malým bufferem na UART (64 Byte) se nakonec dal vyřešit ;)

Do měniče posílám příkaz ^P003GS<CR> a čekám na odpověď, která pro tento příkaz vždy začíná 5-ti znaky ^D086 a končí <CR>. Díky tomu poznám, že řetězec skutečně obsahuje ty informace, na které jsem se měniče ptal a nikoliv odpověď na jiný příkaz nebo garbage.

Jakmile z řetězce vyčtu hodnoty MPPT, výkonu a zatížení, nacpu je do proměnných a posílám příkaz ^P003PS<CR>. Tím požádám o druhou sadu hodnot, kde jsou údaje o nabíjení AKU. Druhou odpověď poznám podle response ^D061.

Oba příkazy znovu opakuji pouze tehdy, pokud si Z-Wave gateway řekne o aktualizaci údajů. Intervaly komunikace přes Z-Wave i RS232 jsou tedy sladěné a lze je díky tomu měnit on-the-fly, přímo ve webovém rozhraní gatewaye. Mohl bych se měniče ptát každou sekundu, ale to patří mezi dvě věci, které nemám rád:

1) moc převodníků mezi systémy
2) zbytečně častý polling

Challenge: ^P003GS
Response: ^D0865500,1500,0000,0000,0000,000,+00000,2318,,,4995,0000,,,2316,,,4995,,,,028,028,000,0

Challenge: ^P003PS
Response: ^D06100000,00000,,,,,,0392,,,00392,0415,,,00415,008,1,0,0,0,0,1

Další krok bude prověřit detailní význam všech údajů v obou typech response. To nejdůležitější info už jsem asi rozklíčoval, ale pořád tam zbývají nějaké údaje k prozkoumání.

Youda
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
eSumo
Příspěvky: 22
Registrován: úte kvě 09, 2017 10:50 am
Bydliště: FnO

Re: Arduino + Voltronics

Příspěvek od eSumo »

Zdar!
Mám doma něco podobného - používám Domoticz, RFLink GW, MySensor GW a hromadu MySensors...
Jeden takový MySensor jsem taky různě ohýbal, aby mi posílal z EASun (Voltronics) do Domoticzu...
Hledal jsem hledal a nakonec jsem použil podle mne dokonale napsaný kod odtud:
https://github.com/MHassanNadeem/WatchPower

Dá se číst vše a posílat cokoli... I s CRC...

Hodně úspěchů! ;)
12x SOLYNDRA 200; ISolar SMV II 5k-48; Arduino PLC; 18650 - 14S120P
Uživatelský avatar
youda
Příspěvky: 3074
Registrován: stř dub 27, 2016 12:12 am

Re: Arduino + Voltronics

Příspěvek od youda »

eSumo tak to je mazec. Ta knihovna SolarPower.h je fakt pěkná. Nechápu, že jsem na tohle sám nenarazil.
Bohužel, jak koukám dovnitř, i tady je komunikace starší verzí protokolu, takže je to vhodné pro klony Axpertu a možná první verze Infini. Nové verze "Plus" a "Super" už mluví jinak :(

Prozkoumám to, možná by do toho šlo nové příkazy naportovat.

Díky!!!
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
proasnet
Příspěvky: 376
Registrován: čtv kvě 27, 2021 12:06 pm
Lokalita: Rajecké Teplice
Systémové napětí: 48V
Výkon panelů [Wp]: 5000
Kapacita baterie [kWh]: 14,5

Re: Arduino + Voltronics

Příspěvek od proasnet »

eSumo píše:Zdar!
Mám doma něco podobného - používám Domoticz, RFLink GW, MySensor GW a hromadu MySensors...
Jeden takový MySensor jsem taky různě ohýbal, aby mi posílal z EASun (Voltronics) do Domoticzu...
Hledal jsem hledal a nakonec jsem použil podle mne dokonale napsaný kod odtud:
https://github.com/MHassanNadeem/WatchPower

Dá se číst vše a posílat cokoli... I s CRC...

Hodně úspěchů! ;)
Máte prosím někdo zkušenost s touto knihovnou na Arduinu? Nedaří se mi ji rozchodit na Mega2560, kompilace projde v pohodě, ale v knihovně někde zamrzne inicializace sériového portu a nerozjdede se ani setup().
Zkoušel jsem i nejzákladnější example a nic, prostě zamrzne ještě dřív než se rozběhne program.
Nebo pokud máte někdo tip na nějakou jinou ekvivalentní knihovnu co funguje, prosím o pomoc.
Díky
2x5kW paralel SML-5K jako ostrov se zálohou z DS, 5kWp, Lifepo4
Franta2776
Příspěvky: 3117
Registrován: pon úno 01, 2021 4:00 pm

Re: Arduino + Voltronics

Příspěvek od Franta2776 »

Toto je APP Easun+Voltronic netuší někdo proč mi to nepočítá Wh???
Přílohy
Screenshot_20210909-162704_SmartClient (1).jpg
18190Wp=13500Wp jihovýchod 27x500Wp, 4690Wpjihozápad Leapton 14x335Wp, cca 8000W 90ks vakuové trubice jihozápad, Lifepo4 17Sx260Ah, trakční gel 800Ah), Axpert Max 7200VA, Easun Isolar 5500VA,Multiplus 2 48/5000,MPPT 150/85
Pojízdná FV 200Wp=2x100Wp flexibilní+4x280Ah lifepo4+měnič 1500W
proasnet
Příspěvky: 376
Registrován: čtv kvě 27, 2021 12:06 pm
Lokalita: Rajecké Teplice
Systémové napětí: 48V
Výkon panelů [Wp]: 5000
Kapacita baterie [kWh]: 14,5

Re: Arduino + Voltronics

Příspěvek od proasnet »

youda píše:V zápalu nadšení jsem vyhledal dva PDF manuály k sériové komunikaci. Jeden měl být pro Axpert, druhý pro InfiniSolar (kdyžtak na požádání PDF zašlu). V detailech protokolu se Axpert a Infini mírně liší, nicméně celková forma je identická. Měnič prostě očekává příkazy jako QPIGS, QMOD, QID, QVFW, QVFW2 ... A data vrací ve formátu (BBB.B FF.F ...

Vyzkoušel jsem tedy pár výše uvedených příkazů po RS232 poslat na InfiniSolar Plus 5K, ale ten se semnou nechtěl vůbec bavit. Až monitor komunikace Infini + SolarPower ukázal, že ti dva se spolu baví novou verzí protokolu!

Příkazy už nezačínají znaky QP ale ^P002^P016.
Příkazu QPIGS nově odpovídá ^P003GS
QPIRI se nám změnilo na ^P005PIRI
Každý příkaz je třeba potvrdit 0x0d, tedy terminálovým znakem <Carriage_Return>

Nový je také formát odpovědí. Data se nově vracejí jako ^Dxxx aaaa,bbb,cccc ..., kde xxx je trojmístné číslo, ihned následované odpovědí v ASCII kódu, kdy jednotlivé hodnoty jsou odděleny čárkou. Například:

Challenge: ^P005PIRI
Reponse: ^D0472300,500,0217,2300,0217,0100,0480,2,01,0,1,0
Obsahem response jsou štítkové hodnoty zařízení:
- Grid rating 230V
- Frekvence 50Hz
- Max proud 21.7A
- Výstupní napětí 230V
- Výstupní proud 21.7A
- Proud MPPT vstupu 10A
- AKU 48V
- Počet MPPT trackerů 2
- .
- .
- .

Nechal jsem tedy SolarPower chvilku běžet a ten během pár minut naposílal tyto příkazy:
^P002T
^P003DM
^P003FT
^P003GS
^P003ID
^P003MD
^P003PS
^P003SV
^P003WS
^P004CFS
^P004FET
^P004GOF
^P004LST
^P004MAR
^P004MOD
^P004PLE
^P004VFW
^P005AAPF
^P005ACCT
^P005BATS
^P005FLAG
^P005FPPF
^P005GPMP
^P005HECS
^P005OPMP
^P005PIRI
^P005VFW2
^P006FPADJ
^P006GLTHV
^P006MPPTV
^P016EH2018050718210
Ahoj, pozdravuji. Nemáš prosímtě tento protokol v nějaké dokumentaci?
Díky
2x5kW paralel SML-5K jako ostrov se zálohou z DS, 5kWp, Lifepo4

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek