Inital Commit
This commit is contained in:
		
						commit
						651a4db540
					
				
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | .direnv/* | ||||||
|  | __pycache__/* | ||||||
|  | .env | ||||||
							
								
								
									
										
											BIN
										
									
								
								Biko_Regular.otf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Biko_Regular.otf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										11
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | # Solar Edge Status Updater | ||||||
|  | When placed in a cron job this uppdater will make an https call to a json api to retrieve the co2 savings and equivenant trees planted and overlay those numbers on a graphic and upload them to the website.  | ||||||
|  | 
 | ||||||
|  | # Dependancies | ||||||
|  | Python 3 and the packages `python-dotenv` and `Pillow` | ||||||
|  | The font `Biko_Regular.otf` | ||||||
|  | A `.png` graphic to write text on. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Bulid Instructions | ||||||
|  | 
 | ||||||
							
								
								
									
										
											BIN
										
									
								
								environmental_benefits_blank.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								environmental_benefits_blank.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 12 KiB | 
							
								
								
									
										14
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | asn1crypto==0.24.0 | ||||||
|  | bcrypt==3.1.6 | ||||||
|  | cffi==1.12.2 | ||||||
|  | cryptography==2.4.2 | ||||||
|  | idna==2.8 | ||||||
|  | paramiko==2.4.2 | ||||||
|  | Pillow==6.0.0 | ||||||
|  | pkg-resources==0.0.0 | ||||||
|  | pyasn1==0.4.5 | ||||||
|  | pycparser==2.19 | ||||||
|  | PyNaCl==1.3.0 | ||||||
|  | python-dotenv==0.10.1 | ||||||
|  | scp==0.13.2 | ||||||
|  | six==1.12.0 | ||||||
							
								
								
									
										51
									
								
								solar_edge.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								solar_edge.py
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | #!/usr/bin/env python3 | ||||||
|  | 
 | ||||||
|  | import urllib.request | ||||||
|  | import json | ||||||
|  | import os | ||||||
|  | from PIL import ImageFont | ||||||
|  | from PIL import ImageDraw | ||||||
|  | from PIL import Image | ||||||
|  | from dotenv import load_dotenv | ||||||
|  | from paramiko import SSHClient | ||||||
|  | from scp import SCPClient | ||||||
|  | 
 | ||||||
|  | ## get JSON from solar edge server | ||||||
|  | url = os.getenv('URL')  | ||||||
|  | infile = os.getenv('INFILE') | ||||||
|  | outfile = os.getenv('OUTFILE') | ||||||
|  | font_face = os.getenv('FONT_FACE') | ||||||
|  | ssh_host = os.getenv('SSH_HOST') | ||||||
|  | ssh_user = os.getenv('SSH_USER') | ||||||
|  | ssh_folder = os.getenv('SSH_FOLDER') | ||||||
|  | req = urllib.request.Request(url) | ||||||
|  | 
 | ||||||
|  | # parsing response | ||||||
|  | r = urllib.request.urlopen(req).read() | ||||||
|  | cont = json.loads(r.decode('utf-8')) | ||||||
|  | 
 | ||||||
|  | co2 = str(round(cont['envBenefits']['gasEmissionSaved']['co2']))+" lb" | ||||||
|  | trees = str(round(cont['envBenefits']['treesPlanted'])) | ||||||
|  | 
 | ||||||
|  | ## create image for website | ||||||
|  | fill_color = "#298246" | ||||||
|  | xpos = 91 | ||||||
|  | image = Image.open(infile) | ||||||
|  | font = ImageFont.truetype(font_face, 19) | ||||||
|  | 
 | ||||||
|  | draw = ImageDraw.Draw(image) | ||||||
|  | draw.text((xpos, 81), co2, font=font, fill=fill_color) | ||||||
|  | draw.text((xpos, 157), trees, font=font, fill=fill_color) | ||||||
|  | image.save(outfile) | ||||||
|  | 
 | ||||||
|  | ## upload image to website | ||||||
|  | ssh = SSHClient() | ||||||
|  | ssh.load_system_host_keys() | ||||||
|  | ssh.connect(hostname=ssh_host, username=ssh_user) | ||||||
|  | 
 | ||||||
|  | scp = SCPClient(ssh.get_transport()) | ||||||
|  | scp.put(outfile, ssh_folder) | ||||||
|  | scp.close() | ||||||
|  | ssh.close() | ||||||
|  | 
 | ||||||
|  | os.remove(outfile) | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user