Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project GSoC: Solar Panel Inverter data #59

Closed
peterdudfield opened this issue Feb 26, 2024 · 45 comments
Closed

Project GSoC: Solar Panel Inverter data #59

peterdudfield opened this issue Feb 26, 2024 · 45 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@peterdudfield
Copy link
Contributor

peterdudfield commented Feb 26, 2024

Working Progress ....

Project Description: Connect our Open Souce Quarts Solar Forecast to use live data from an PV system using the Enphase Inverter. This would allow users with Enphase inverters to gain 20% more accurate PV forecasts and show the accuracy of their forecast versus the actual generation figures.

Expected Outcome: Open Quartz Solar is able to use live data from the Enphase inverter, added as a module to the library.

Context

Possible Implementation

  • Build code that can easily get the last ~1 hour of enphase data. I suspect users will have to pass in their enphase api details for this.
@peterdudfield peterdudfield added the enhancement New feature or request label Feb 26, 2024
@peterdudfield peterdudfield changed the title Project: Solar Panel Inverter data Project GSoC: Solar Panel Inverter data Feb 26, 2024
@peterdudfield peterdudfield added help wanted Extra attention is needed and removed enhancement New feature or request labels Feb 26, 2024
@aryanbhosale
Copy link
Member

Thank you @peterdudfield for tagging the issue, will research more regarding this.

@327840386
Copy link

Thank you @peterdudfield for the newest information!

@Ckjely
Copy link

Ckjely commented Feb 28, 2024

Hey @peterdudfield , I want to contribute towards Solar Panel Inverter data label help wanted. Can you please explain the issue with a bit more details?

@peterdudfield
Copy link
Contributor Author

Hey @peterdudfield , I want to contribute towards Solar Panel Inverter data label help wanted. Can you please explain the issue with a bit more details?

A slightly quicker way, might be for you to ask questions and then I can try to answer them / add them to the github issue?

@aryanbhosale
Copy link
Member

aryanbhosale commented Feb 28, 2024

Hi @peterdudfield , I am trying to create my enphase account to get the API credential to move forward with #36 .
I am following this manual: https://developer.enphase.com/docs/quickstart.html
Upon clicking Register, I am led to a page that says "Signup disabled"
If you could please look into this issue it'd be great. Otherwise I can simply write placeholders for the API credentials in the file if that works?

@peterdudfield
Copy link
Contributor Author

Perhaps send them an email, and put place holders for the moment. Thanks @aryanbhosale for doing this

@aryanbhosale
Copy link
Member

Perhaps send them an email, and put place holders for the moment. Thanks @aryanbhosale for doing this

Done, I've opened a new PR for the same. I'm enjoying this haha :P

@peterdudfield
Copy link
Contributor Author

As an extention to this task. We might want to make a list of other inverters companies, and see if we can connect to them

@aryanbhosale
Copy link
Member

As an extention to this task. We might want to make a list of other inverters companies, and see if we can connect to them

Alright, I'll start looking for some more companies like Enphase this week

@aryanbhosale
Copy link
Member

As an extention to this task. We might want to make a list of other inverters companies, and see if we can connect to them
Hi @peterdudfield

  1. SolarEdge Photo Voltaic Micro Inverters: https://developers.solaredge.com/
  2. SunGrow(does not publish APIs): Details for SunGrow API kronicd/sungrow2pvoutput#1 (comment)
  3. SMA Inverters: https://developer.sma.de/sma-apis
  4. Enris(huawei): https://eniris.be/en/huawei-fusionsolar-api/

Here are a few good ones that I could find

@aryanbhosale
Copy link
Member

aryanbhosale commented Mar 1, 2024

Hey @peterdudfield , I had some questions about gsoc and openclimatefix. It would be really helpful if you could

  1. provide a brief description of what the end goal is on completion
  2. Duration of the project
  3. Mentors involved
  4. Tech stack needed apart from python/xarr/pytorch
  5. New developments apart from the existing codebase
  6. What is expected of the applicant

Thank you!

@aryanbhosale
Copy link
Member

Hi @peterdudfield , I had a few questions about the Google Summer of Code application. I'm not sure what template I could use and what to add about the project timeline. Could you please help me out here?
Thanks

@peterdudfield
Copy link
Contributor Author

Hi @aryanbhosale let me try and get back to you on this. I'm hoping some of this issues description will help you

@aryanbhosale
Copy link
Member

Hi @aryanbhosale let me try and get back to you on this. I'm hoping some of this issues description will help you

The issues description does help give me a brief idea, but when I'm actually making changes to the code and adding Enphase support to it, I can't think of a lot to do. So if you could please give like a break-down of the issue here, it would be really great.
Thank you.

@peterdudfield
Copy link
Contributor Author

Well I think your PR #66 is a good start. To b honest thought it might be a lot more work than that. So building on #66.

  • test with real credentials
  • Make example code of how to run it with credentials
  • add other inverter types (im sure there will be weird and wonderful differences to do with that)

@aryanbhosale
Copy link
Member

Well I think your PR #66 is a good start. To b honest thought it might be a lot more work than that. So building on #66.

  • test with real credentials
  • Make example code of how to run it with credentials
  • add other inverter types (im sure there will be weird and wonderful differences to do with that)

Oh okay, this gives more insights to the topic, thank you so much. Will it be possible for us to connect on email so that I could send my rough application to you to just make sure it's reviewed first before I can make more changes to it/add more interesting things to do. It would be really helpful.

@peterdudfield
Copy link
Contributor Author

Well I think your PR #66 is a good start. To b honest thought it might be a lot more work than that. So building on #66.

  • test with real credentials
  • Make example code of how to run it with credentials
  • add other inverter types (im sure there will be weird and wonderful differences to do with that)

Oh okay, this gives more insights to the topic, thank you so much. Will it be possible for us to connect on email so that I could send my rough application to you to just make sure it's reviewed first before I can make more changes to it/add more interesting things to do. It would be really helpful.

We are trying to keep it fair for all applicants, so please do ask any questions here and I'll try and answer. And then it can be fair between everyone. I hope thats ok

@aryanbhosale
Copy link
Member

Well I think your PR #66 is a good start. To b honest thought it might be a lot more work than that. So building on #66.

  • test with real credentials
  • Make example code of how to run it with credentials
  • add other inverter types (im sure there will be weird and wonderful differences to do with that)

Oh okay, this gives more insights to the topic, thank you so much. Will it be possible for us to connect on email so that I could send my rough application to you to just make sure it's reviewed first before I can make more changes to it/add more interesting things to do. It would be really helpful.

We are trying to keep it fair for all applicants, so please do ask any questions here and I'll try and answer. And then it can be fair between everyone. I hope thats ok

Understandable. That's fair. Thank you for the information!

@aryanbhosale
Copy link
Member

Well I think your PR #66 is a good start. To b honest thought it might be a lot more work than that. So building on #66.

  • test with real credentials
  • Make example code of how to run it with credentials
  • add other inverter types (im sure there will be weird and wonderful differences to do with that)

Oh okay, this gives more insights to the topic, thank you so much. Will it be possible for us to connect on email so that I could send my rough application to you to just make sure it's reviewed first before I can make more changes to it/add more interesting things to do. It would be really helpful.

We are trying to keep it fair for all applicants, so please do ask any questions here and I'll try and answer. And then it can be fair between everyone. I hope thats ok

Hi @peterdudfield , the application format for Google Summer of Code 2024 requires me to include a brief CV about me. Should I write the contents of my CV in the application document or is it OK if I simply include a link to my CV for that section?
Thank you.

@peterdudfield
Copy link
Contributor Author

Well I think your PR #66 is a good start. To b honest thought it might be a lot more work than that. So building on #66.

  • test with real credentials
  • Make example code of how to run it with credentials
  • add other inverter types (im sure there will be weird and wonderful differences to do with that)

Oh okay, this gives more insights to the topic, thank you so much. Will it be possible for us to connect on email so that I could send my rough application to you to just make sure it's reviewed first before I can make more changes to it/add more interesting things to do. It would be really helpful.

We are trying to keep it fair for all applicants, so please do ask any questions here and I'll try and answer. And then it can be fair between everyone. I hope thats ok

Hi @peterdudfield , the application format for Google Summer of Code 2024 requires me to include a brief CV about me. Should I write the contents of my CV in the application document or is it OK if I simply include a link to my CV for that section? Thank you.

I'm sorry I dont know whats best. But maybe a summary and a link? Might be better to ask someone at GSOC

@aryanbhosale
Copy link
Member

Well I think your PR #66 is a good start. To b honest thought it might be a lot more work than that. So building on #66.

  • test with real credentials
  • Make example code of how to run it with credentials
  • add other inverter types (im sure there will be weird and wonderful differences to do with that)

Oh okay, this gives more insights to the topic, thank you so much. Will it be possible for us to connect on email so that I could send my rough application to you to just make sure it's reviewed first before I can make more changes to it/add more interesting things to do. It would be really helpful.

We are trying to keep it fair for all applicants, so please do ask any questions here and I'll try and answer. And then it can be fair between everyone. I hope thats ok

Hi @peterdudfield , the application format for Google Summer of Code 2024 requires me to include a brief CV about me. Should I write the contents of my CV in the application document or is it OK if I simply include a link to my CV for that section? Thank you.

I'm sorry I dont know whats best. But maybe a summary and a link? Might be better to ask someone at GSOC

I think @zakwatts is a possible mentor for the project: Connect Solar panel inverter (Enphase) to Open Quartz, could you let me know what could be a good format for cv? A link or a summary or both?
Thank you.

@zakwatts
Copy link
Contributor

zakwatts commented Mar 6, 2024

Hi @aryanbhosale. No particular preference. A link would be just fine.

@aryanbhosale
Copy link
Member

Hi @aryanbhosale. No particular preference. A link would be just fine.

Thank you so much. Will it help my application if I mention all the merges my PRs made?

@peterdudfield
Copy link
Contributor Author

Hi @aryanbhosale. No particular preference. A link would be just fine.

Thank you so much. Will it help my application if I mention all the merges my PRs made?

Yea I think its worth putting in the links - thanks

@aryanbhosale
Copy link
Member

Hi @aryanbhosale. No particular preference. A link would be just fine.

Thank you so much. Will it help my application if I mention all the merges my PRs made?

Yea I think its worth putting in the links - thanks

Thank you @peterdudfield , will do so!

@aryanbhosale
Copy link
Member

Hi @peterdudfield and @zakwatts , I have finished drafting my proposal for Google Summer of Code 2024 and Open Climate Fix. Could you please provide a review on it? It would be really helpful so that I can make further modifications in it. If it is possible, where can I share it?
Thank you.

@peterdudfield
Copy link
Contributor Author

Thanks @aryanbhosale , are general approach is for people to send there applications through GSOC. And we will review there. If you have any questions, please right them on here, and we will try to answer .This way it keeps it fair for everyone

@aryanbhosale
Copy link
Member

Hi @peterdudfield , @zakwatts , I will be submitting my draft proposal tomorrow on the Google Summer of Code website. Hoping for a quick review so that I can make necessary changes in it and submit my final application. Looking forward to contributing more to OCF with GSOC :)

@peterdudfield
Copy link
Contributor Author

Hi @peterdudfield , @zakwatts , I will be submitting my draft proposal tomorrow on the Google Summer of Code website. Hoping for a quick review so that I can make necessary changes in it and submit my final application. Looking forward to contributing more to OCF with GSOC :)

We are trying to make things as fair as possible, so please send over any questions here and we can help clarify

@aryanbhosale
Copy link
Member

Hi @peterdudfield , @zakwatts , I will be submitting my draft proposal tomorrow on the Google Summer of Code website. Hoping for a quick review so that I can make necessary changes in it and submit my final application. Looking forward to contributing more to OCF with GSOC :)

We are trying to make things as fair as possible, so please send over any questions here and we can help clarify

Oh no my bad, I meant through the GSOC contributor application portal itself :)

@aryanbhosale
Copy link
Member

Hi @peterdudfield @zakwatts , the project size(for enphase live data) is mentioned as either medium(175hrs)/large(350hrs) in the GSOC ideas list, what do you recommend as the ideal size of the project? I'm leaning towards large, but I want to confirm with what your expectations are.
Thank you.

@aryanbhosale
Copy link
Member

aryanbhosale commented Mar 19, 2024

Hello @peterdudfield and @zakwatts, I have submitted my proposal on the official GSOC Contributor's portal to Open Climate Fix for the project "Connect Solar panel inverter (Enphase) to Open Quartz"!
Will I be getting a review/feedback on the GSOC website itself or here?

@aryanbhosale
Copy link
Member

Hello @peterdudfield @zakwatts , did you have a chance to view my proposal through the official GSOC 2024 page? Do I need to make any changes to it? Or if there is anything that I forgot to add? I can still make modifications to it so I thought I'd ask you here.
Thank you.

@mdeng1110
Copy link

I would also like to contribute to the Google Summer of Code: Connect Solar panel inverter (Enphase) to Open Quartz project.

I looked at the code base. I have some questions. Since it looks like someone is working on the Enphase integration already, does it make sense to take a look at integrating SolarEdge? Or you strictly focused focused on Enphase for Google Summer of Code?

@aryanbhosale
Copy link
Member

I would also like to contribute to the Google Summer of Code: Connect Solar panel inverter (Enphase) to Open Quartz project.

I looked at the code base. I have some questions. Since it looks like someone is working on the Enphase integration already, does it make sense to take a look at integrating SolarEdge? Or you strictly focused focused on Enphase for Google Summer of Code?

Hi May, glad to know that you want to get started too!
From what Ive learnt, we need to test out the live pv data from enphase inverters first with actual credentials,which are difficult to obtain (we need to request enphase for the same). I feel that exploring SolarEdge and other similar inverters in the meanwhile is a great idea

@aryanbhosale
Copy link
Member

Hi @peterdudfield @zakwatts , does ocf have an IRC server or discord/slack where everyday communications can happen?
If not, we could make one!
This would help in creating a better and more active community.
I know how to make a discord channel and I could give it a shot making one for us if you all are fine with it!

@markus-kreft
Copy link

Hi everyone,

I have also been looking into this and wanted to share some of my findings.

The Enphase v2 API that @aryanbhosale has integrated will be deprecated on April 30 this year. I suspect this is also the reason that you can not create a new account. I also noticed that #66 passes a Bearer Token in the Authorization Header, whereas the v2 API required the API Key to be passed as a query parameter (https://developer.enphase.com/docs), so I think the current code does not work.

Instead, I have managed to create a developer account for the v4 API and get live data from a real system. I am working to integrate this, but have some questions.

@peterdudfield I would like to know more about how the live data should be used in operation. Should the integration be focused on system owners running their own forecasts, or rather a "forecast provider" having access to the owners system? In the former case the use of the local API (directly accessing the inverters within the local network) would have major benefits (no API limits/costs, latency). In the latter case, the public Enphase API (and many others) requires to grant system access through a web interface (Oauth2). Here, it also needs to be ensure that refresh tokens are regularly renewed. This seems like something that could eventually even integrate with e.g., pv-site-api?

@aryanbhosale
Copy link
Member

aryanbhosale commented Apr 12, 2024

Hi everyone,

I have also been looking into this and wanted to share some of my findings.

The Enphase v2 API that @aryanbhosale has integrated will be deprecated on April 30 this year. I suspect this is also the reason that you can not create a new account. I also noticed that #66 passes a Bearer Token in the Authorization Header, whereas the v2 API required the API Key to be passed as a query parameter (https://developer.enphase.com/docs), so I think the current code does not work.

Instead, I have managed to create a developer account for the v4 API and get live data from a real system. I am working to integrate this, but have some questions.

@peterdudfield I would like to know more about how the live data should be used in operation. Should the integration be focused on system owners running their own forecasts, or rather a "forecast provider" having access to the owners system? In the former case the use of the local API (directly accessing the inverters within the local network) would have major benefits (no API limits/costs, latency). In the latter case, the public Enphase API (and many others) requires to grant system access through a web interface (Oauth2). Here, it also needs to be ensure that refresh tokens are regularly renewed. This seems like something that could eventually even integrate with e.g., pv-site-api?

Hi @markus-kreft , thank you so much for looking into it and finding out the probable reason for the latest data not being accessible for you. I have built on what you've provided and have added a new commit #106 with the latest v4 api and the correct oauth2 authentication scheme as mentioned in the docs. I will also be creating a developer account and testing it with real data.
Thank you for this.

@aryanbhosale
Copy link
Member

Hi everyone,
I have also been looking into this and wanted to share some of my findings.
The Enphase v2 API that @aryanbhosale has integrated will be deprecated on April 30 this year. I suspect this is also the reason that you can not create a new account. I also noticed that #66 passes a Bearer Token in the Authorization Header, whereas the v2 API required the API Key to be passed as a query parameter (https://developer.enphase.com/docs), so I think the current code does not work.
Instead, I have managed to create a developer account for the v4 API and get live data from a real system. I am working to integrate this, but have some questions.
@peterdudfield I would like to know more about how the live data should be used in operation. Should the integration be focused on system owners running their own forecasts, or rather a "forecast provider" having access to the owners system? In the former case the use of the local API (directly accessing the inverters within the local network) would have major benefits (no API limits/costs, latency). In the latter case, the public Enphase API (and many others) requires to grant system access through a web interface (Oauth2). Here, it also needs to be ensure that refresh tokens are regularly renewed. This seems like something that could eventually even integrate with e.g., pv-site-api?

Hi @markus-kreft , thank you so much for looking into it and finding out the probable reason for the latest data not being accessible for you. I have built on what you've provided and have added a new commit #106 with the latest v4 api and the correct oauth2 authentication scheme as mentioned in the docs. I will also be creating a developer account and testing it with real data. Thank you for this.

Hey @peterdudfield , I have updated my new PR #106 with the latest enphase v4 api as per the latest docs

@peterdudfield
Copy link
Contributor Author

Thank you so much @aryanbhosale and @markus-kreft for looking into all this. I'll have a look at the PR

@peterdudfield
Copy link
Contributor Author

Hi everyone,

I have also been looking into this and wanted to share some of my findings.

The Enphase v2 API that @aryanbhosale has integrated will be deprecated on April 30 this year. I suspect this is also the reason that you can not create a new account. I also noticed that #66 passes a Bearer Token in the Authorization Header, whereas the v2 API required the API Key to be passed as a query parameter (https://developer.enphase.com/docs), so I think the current code does not work.

Instead, I have managed to create a developer account for the v4 API and get live data from a real system. I am working to integrate this, but have some questions.

@peterdudfield I would like to know more about how the live data should be used in operation. Should the integration be focused on system owners running their own forecasts, or rather a "forecast provider" having access to the owners system? In the former case the use of the local API (directly accessing the inverters within the local network) would have major benefits (no API limits/costs, latency). In the latter case, the public Enphase API (and many others) requires to grant system access through a web interface (Oauth2). Here, it also needs to be ensure that refresh tokens are regularly renewed. This seems like something that could eventually even integrate with e.g., pv-site-api?

Great question, This project in general, we've tried to focus on a "out of the box" forecast that works locally for the user. At OCF we have a "forecast as a service" but this project perhaps moves away from that. Of course the learnings from both systems are useful. So in that case, the focus should be on using the Enphase API locally. Does this make sense?

@markus-kreft
Copy link

Thank you for the extra information. I will for sure further explore the local APIs of inverters then.

@aryanbhosale Thanks for jumping on the v4 API so quickly.

@aryanbhosale
Copy link
Member

Hi @peterdudfield, I have added a new PR(#109 ) to increase support for solar inverters by adding SolarEdge support

@aryanbhosale
Copy link
Member

Hi @peterdudfield and @zakwatts , I wanted to ask what all metrics are considered for the gsoc contributor rankings ?
Thank you

@aryanbhosale
Copy link
Member

hey @peterdudfield , i think it is safe to say we can close this :p

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

7 participants