softwarecrash / Solar2MQTT

ESP8266 based WiFi and MQTT interface for MPPT Inverters that use watchpower
Other
139 stars 32 forks source link

only QPIGS #6

Closed mihaigsm2003 closed 2 years ago

mihaigsm2003 commented 3 years ago

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

softwarecrash commented 3 years ago

When the qpigs command Not answered succesfull Other commands dont send

mihaigsm2003 commented 2 years ago

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.

softwarecrash commented 2 years ago

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?

mihaigsm2003 commented 2 years ago

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

mihaigsm2003 commented 2 years ago

image

softwarecrash commented 2 years ago

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

mihaigsm2003 commented 2 years ago

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!

softwarecrash commented 2 years ago

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

mihaigsm2003 commented 2 years ago

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(' ', ','); `

softwarecrash commented 2 years ago

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

softwarecrash commented 2 years ago

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

mihaigsm2003 commented 2 years ago

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

mihaigsm2003 commented 2 years ago

for year and monthly u can preset on esp

softwarecrash commented 2 years ago

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

softwarecrash commented 2 years ago

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

mihaigsm2003 commented 2 years ago

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

softwarecrash commented 2 years ago

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 ;)

mihaigsm2003 commented 2 years ago

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

softwarecrash commented 2 years ago

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

softwarecrash commented 2 years ago

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

softwarecrash commented 2 years ago

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

mihaigsm2003 commented 2 years ago

I will try 

Trimis din Yahoo Mail pentru iPhone

La vineri, octombrie 29, 2021, 3:34 p.m., Rocky @.***> a scris:

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

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mihaigsm2003 commented 2 years ago

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

mihaigsm2003 commented 2 years ago

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

softwarecrash commented 2 years ago

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

mihaigsm2003 commented 2 years ago

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.

softwarecrash commented 2 years ago

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

mihaigsm2003 commented 2 years ago

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.

softwarecrash commented 2 years ago

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

mihaigsm2003 commented 2 years ago

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.

softwarecrash commented 2 years ago

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?