softwarecrash/Solar2MQTT

only QPIGS

mihaigsm2003 opened this issue · 31 comments

i test software on MPP Solar GK model, and i see only QPIGS command request. other command not sent.

When the qpigs command Not answered succesfull Other commands dont send

When the qpigs command Not answered succesfull Other commands dont send

command sent and received successfuly, but commands like QMOD, QID, QPI, QLT or QET not exist.

Ahhh.... These commands Not implemented yet.
I Work on it to collect more Data from These commands.
actual only QPIGS, QPIRI and QMOD command used.
my inverter software doenst give me info about QET or QLT
have you build it or used the precompiled binary?

good, i have version with all this data, not for public, i can see you if u need
http://www.gsx.ro/dashboards

good, i have version with all this data, not for public, i can see you if u need http://www.gsx.ro/dashboards

nice,
but i have build this project with target to get the data in my smarthome ovber mqtt, i only need it to manage the power regualtions of the house.
so im not a pro programmer, so this in the acutal state cost me a lot of time

good, i have version with all this data, not for public, i can see you if u need http://www.gsx.ro/dashboards

nice, but i have build this project with target to get the data in my smarthome ovber mqtt, i only need it to manage the power regualtions of the house. so im not a pro programmer, so this in the acutal state cost me a lot of time

i am not a pro programmer too, i spent lot of time too. any way good job!

good, i have version with all this data, not for public, i can see you if u need http://www.gsx.ro/dashboards

nice, but i have build this project with target to get the data in my smarthome ovber mqtt, i only need it to manage the power regualtions of the house. so im not a pro programmer, so this in the acutal state cost me a lot of time

i am not a pro programmer too, i spent lot of time too. any way good job!

when you have time and fun, you can help make this little thing better, i have a lot ideas but not a lot knowledge

good, i have version with all this data, not for public, i can see you if u need http://www.gsx.ro/dashboards

nice, but i have build this project with target to get the data in my smarthome ovber mqtt, i only need it to manage the power regualtions of the house. so im not a pro programmer, so this in the acutal state cost me a lot of time

i am not a pro programmer too, i spent lot of time too. any way good job!

when you have time and fun, you can help make this little thing better, i have a lot ideas but not a lot knowledge

sure, but i use diferent mode:

` if (Serial.available() <= 0) {
Serial.print(QVFW); // send an initial string RESQUEST
delay(100);}else {}
stringZr = Serial.readString();
//Serial.println (stringOne);

if (Serial.available() <= 0) {
Serial.print(QPIGS); // send an initial string RESQUEST
delay(100);}else {}
stringOne = Serial.readString();
//Serial.println (stringOne);

if (Serial.available() <= 0) {
Serial.print(QMOD); // send an initial string RESQUEST
delay(100);}else {}
stringTwo = Serial.readStringUntil('\r');
//Serial.println (stringTwo);

if (Serial.available() <= 0) {
Serial.print(QID);    // send an initial string RESQUEST
delay(100);}else {}

stringThree = Serial.readString();
//Serial.println (stringThree);

if (Serial.available() <= 0) {
Serial.print(QPI);    // send an initial string RESQUEST
delay(100);}else {}

stringQPI = Serial.readString();
stringQPI.remove(0, 1);
stringQPI.remove(4, 4);
//Serial.println (stringQPI);

 if (Serial.available() <= 0) {
Serial.print(QLT);    // send an initial string RESQUEST // modificat aici
delay(100);}else {}

stringFour = Serial.readString();

  if (Serial.available() <= 0) {
Serial.print(QET);    // send an initial string RESQUEST
delay(100);}else {}

stringFive = Serial.readString();

stringFour.remove(0, 1);
stringFour.remove(8, 4);
stringFive.remove(0, 1);
stringFive.remove(8, 4);
//Serial.println(stringFour.length());
//Serial.println(stringFive.length());
  if (stringFour.length() == 8 && stringFive.length() == 8) {

//Serial.println (stringFour);
//Serial.println (stringFive);
} else {
stringFour = "-";
stringFive = "-";
}
if (Serial.available() <= 0) {
Serial.print(QPIGS2); // send an initial string RESQUEST
delay(100);}else {}
stringSix = Serial.readString();
stringSix.remove(0, 1);
stringSix.remove(16, 4);
if (stringSix.length() == 16) {

} else {
stringSix = "PV2 NO_DATA";
}

stringTwo.remove(0, 1);
stringTwo.remove(1, 4);
stringThree.remove(0, 1);
stringThree.remove(14, 4);
stringOne.remove(107, 4);
stringOne.remove(0, 1);
stringOne.replace(':', ',');
stringOne.replace(' ', ',');
stringOne.remove(35, 4);
stringSix.replace(' ', ',');
`

good, i have version with all this data, not for public, i can see you if u need http://www.gsx.ro/dashboards

nice, but i have build this project with target to get the data in my smarthome ovber mqtt, i only need it to manage the power regualtions of the house. so im not a pro programmer, so this in the acutal state cost me a lot of time

i am not a pro programmer too, i spent lot of time too. any way good job!

when you have time and fun, you can help make this little thing better, i have a lot ideas but not a lot knowledge

sure, but i use diferent mode:

` if (Serial.available() <= 0) { Serial.print(QVFW); // send an initial string RESQUEST delay(100);}else {} stringZr = Serial.readString(); //Serial.println (stringOne);

if (Serial.available() <= 0) { Serial.print(QPIGS); // send an initial string RESQUEST delay(100);}else {} stringOne = Serial.readString(); //Serial.println (stringOne);

if (Serial.available() <= 0) { Serial.print(QMOD); // send an initial string RESQUEST delay(100);}else {} stringTwo = Serial.readStringUntil('\r'); //Serial.println (stringTwo);

if (Serial.available() <= 0) {
Serial.print(QID);    // send an initial string RESQUEST
delay(100);}else {}

stringThree = Serial.readString(); //Serial.println (stringThree);

if (Serial.available() <= 0) {
Serial.print(QPI);    // send an initial string RESQUEST
delay(100);}else {}

stringQPI = Serial.readString(); stringQPI.remove(0, 1); stringQPI.remove(4, 4); //Serial.println (stringQPI);

 if (Serial.available() <= 0) {
Serial.print(QLT);    // send an initial string RESQUEST // modificat aici
delay(100);}else {}

stringFour = Serial.readString();

  if (Serial.available() <= 0) {
Serial.print(QET);    // send an initial string RESQUEST
delay(100);}else {}

stringFive = Serial.readString();

stringFour.remove(0, 1);
stringFour.remove(8, 4);
stringFive.remove(0, 1);
stringFive.remove(8, 4);
//Serial.println(stringFour.length());
//Serial.println(stringFive.length());
  if (stringFour.length() == 8 && stringFive.length() == 8) {

//Serial.println (stringFour); //Serial.println (stringFive); } else { stringFour = "-"; stringFive = "-"; } if (Serial.available() <= 0) { Serial.print(QPIGS2); // send an initial string RESQUEST delay(100);}else {} stringSix = Serial.readString(); stringSix.remove(0, 1); stringSix.remove(16, 4); if (stringSix.length() == 16) {

} else { stringSix = "PV2 NO_DATA"; }

stringTwo.remove(0, 1); stringTwo.remove(1, 4); stringThree.remove(0, 1); stringThree.remove(14, 4); stringOne.remove(107, 4); stringOne.remove(0, 1); stringOne.replace(':', ','); stringOne.replace(' ', ','); stringOne.remove(35, 4); stringSix.replace(' ', ','); `

sure, other inverters send other command, i have seen that from an 5kw inverter (big one of mine) the ordering from pqigs is diferent, so my initial idea was to get the version number and communication protokol number from the inverter and then select the command and data ordering

the qed command is interessting, but i strugle to set and get the actual datetime in my code

QET, QLT work on invertor with HPV with panel detachable and all hybrid. for daily , month need to sent data with hour and date. actually not work for me, i can't set time on my esp

for year and monthly u can preset on esp

i have tried it yet, it seems my inverter doenst support storage and data report, QT, QET command doenst give a replay

my time is splited... actualy i build new power storages with daly bms, and plane to set up an old code from antoher people, so porting it to esp and platformio, i hope it works.

i have modified the code and updated, you can try it, but i think someting goes wrong and i cant test it with my inverter

For my battery I use dlc ( dynamic load control) this check any cells and control change Curent , direct communications with inverter . Some video: https://youtu.be/xS_6yuDDnYA. It’s Romanian language. My cells here: http://gsx.ro/d/WtYnKJoGk/mihaita-dlc?orgId=1&refresh=5s

interesting, my inverter doenst support communication with bms or someting.
dlc? sounds good, but my project its a little bit smaler, its a german "schrebergarten" i would power up the tiny house and swiming pool, and the rest of the automated smart garden/house ;)

Use modified software on inverter to send commands like change Curent
http://forums.aeva.asn.au/viewtopic.php?f=64&t=4332
see if ur inverter support

Use modified software on inverter to send commands like change Curent http://forums.aeva.asn.au/viewtopic.php?f=64&t=4332 see if ur inverter support

Cool, but i have a 3kw with 24v

so i figured out, that a some different protocols for the inverters.
my inverter doenst support most of the commands so i cant programm or test it.
i have added some raw output for the comminucation version and other, i hope i can figured out what protokol number wich options support.

edit:
added some raw output to mqtt
enable it in the settings.h and take a look what you get from the inverter

i have add some things and fix a little bug, try the debug variant that you get data from inverter

i test both version but for me not work, Only inverter mode will see "Battery" also all data is 0 (zero)

image

i try both type, only inverter mode

WhatsApp Image 2021-11-10 at 18 26 21
only this data!

there is no serial monitor when the esp is setted up and running.
you can grab the raw data from the inverter over mqtt, thats what i need

No data data sent via mqtt, tested.

Pe 10 nov. 2021, la 18:34, Rocky @.***> a scris:  there is no serial monitor when the esp is setted up and running. you can grab the raw data from the inverter over mqtt, thats what i need — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

there a raw folder in the mqtt topic, this field are empty? then you dont get data from the inverter or communication wrong

I put monitor because software is stuck in this position. Request sent one time, after stuck. I have monitor to mqtt too, no data sent because software stopped. I set to 10s, 30s and 60 seconds only one time is sent request

Pe 10 nov. 2021, la 19:42, Rocky @.> a scris:  No data data sent via mqtt, tested. … Pe 10 nov. 2021, la 18:34, Rocky @.> a scris:  there is no serial monitor when the esp is setted up and running. you can grab the raw data from the inverter over mqtt, thats what i need — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. there a raw folder in the mqtt topic, this field are empty? then you dont get data from the inverter or communication wrong — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

what request is one send?
can you grab the logs from powerwatch software?
after setting up the esp, set the inverter type in settings to pip

data
script is stop working after send this data becouse no date received. no data sent via mqtt, In your script if no data receiving script stop working.

data script is stop working after send this data becouse no date received. no data sent via mqtt, In your script if no data receiving script stop working.

after finnishing the wifi setup no more data comes over the com port, the serial0 is used for communication with the inverter after wifi settings. so what you see is the raw data was send to or from the inverter, this looks like your inverter answer wrong, or the rs232 converter dosnt do her job right, or cable wireing is wrong.
the micro pice of rs232 in the description is from the other fork, i dont have tested it. but i think it should work too.

have you tried it after the wifi setup is finish to go to the web interface and set the inverter under setting to pip again and check the other data?

and again, can you provide me the watchpower pc software logfiles so that i can see what for a version and type of communication your device using?