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