Electric Single Line Diagram (SLD) Automation (desktop app) for residential solar
During my final year at the University of New South Wales (UNSW), I worked part-time as a residential rooft-top solar system designer for a solar installer. My primary responsibility involved creating Single Line Diagrams (SLD) tailored to each house, using information provided by our sales team and various product specifications. After manually designing numerous SLDs and gaining a deep understanding of their mechanics, I began to automate the process.
Initially, I developed Excel templates featuring pre-filled formulas for calculations like voltage. I also introduced a main page in these templates, incorporating parameters and Visual Basic for Applications (VBA) functions. These functions helped in selecting the appropriate template for each job and removing unnecessary geometrical shapes (eg. templates had 3 phase as default but if single phase house it would delete 2 phases from SLD).
Eventually, after creating numerous templates, I developed a user interface (UI) using Python and Tkinter. This UI included a comprehensive product database in JSON format and several advanced features, such as the ability to save projects, retrieve job information from our CRM APIs, and generate PDFs. You can view the final result in the video below:
In this first big coding project, I not only enhanced my existing Python skills (previously applied in a high-school project to develop a Snake game) but also acquired new competencies in GitHub versioning, Excel VBA, packaging python for desktop application and Bash for file. Creating this software not only expanded my skill set, but also reduced the time required to create a single SLD, from 2 hours to just 5-10 minutes. This efficiency gain enabled me to learn about and contribute to commercial solar projects at my workplace.