Stránka 1 z 1

Arduino + Voltronics

Napsal: ned kvě 06, 2018 5:22 pm
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?

Re: Arduino + Voltronics

Napsal: ned kvě 06, 2018 5:40 pm
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.

Re: Arduino + Voltronics

Napsal: pon kvě 07, 2018 12:59 am
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?

Re: Arduino + Voltronics

Napsal: pon kvě 07, 2018 6:58 am
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.

Re: Arduino + Voltronics

Napsal: pon kvě 07, 2018 7:38 am
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.

Re: Arduino + Voltronics

Napsal: pon kvě 07, 2018 10:50 am
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?

Re: Arduino + Voltronics

Napsal: pon kvě 07, 2018 7:45 pm
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

Re: Arduino + Voltronics

Napsal: úte kvě 08, 2018 12:03 am
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 3667 x
PS: Nemáte někdo vyčítání toho nového protokolu už hotové, ať nemusím znovu objevovat Ameriku? ;)

Re: Arduino + Voltronics

Napsal: úte kvě 08, 2018 8:20 am
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.

Re: Arduino + Voltronics

Napsal: úte kvě 08, 2018 8:22 am
od youda
Diky Honzo :)

Re: Arduino + Voltronics

Napsal: úte kvě 08, 2018 11:47 pm
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

Re: Arduino + Voltronics

Napsal: stř kvě 09, 2018 1:10 pm
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ů! ;)

Re: Arduino + Voltronics

Napsal: stř kvě 09, 2018 11:02 pm
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!!!

Re: Arduino + Voltronics

Napsal: úte srp 31, 2021 12:30 pm
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

Re: Arduino + Voltronics

Napsal: čtv zář 09, 2021 5:16 pm
od Franta2776
Toto je APP Easun+Voltronic netuší někdo proč mi to nepočítá Wh???

Re: Arduino + Voltronics

Napsal: čtv čer 02, 2022 11:13 am
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