You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.9 KiB
43 lines
1.9 KiB
import json |
|
import requests |
|
import base64 |
|
import time |
|
import urllib3 |
|
import logging |
|
import os |
|
|
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) |
|
logging.basicConfig(level=logging.INFO, filename=os.path.join(os.path.dirname(__file__),'enphase.log'), filemode="a+",format="%(asctime)-15s %(levelname)-8s %(message)s") |
|
|
|
user='christophe.scaya@gmail.com' |
|
password='92@!Z&KYxt8shT' |
|
envoy_serial='482330092358' |
|
ip='192.168.0.201' |
|
ip_esp='192.168.0.115' |
|
|
|
"""data = {'user[email]': user, 'user[password]': password} |
|
response = requests.post('http://enlighten.enphaseenergy.com/login/login.json?',data=data) |
|
response_data = json.loads(response.text) |
|
data = {'session_id': response_data['session_id'], 'serial_num': envoy_serial, 'username': user} |
|
response = requests.post('http://entrez.enphaseenergy.com/tokens', json=data) |
|
token=response.text""" |
|
|
|
token='eyJraWQiOiI3ZDEwMDA1ZC03ODk5LTRkMGQtYmNiNC0yNDRmOThlZTE1NmIiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiI0ODIzMzAwOTIzNTgiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxNzM5MTA4NTIzLCJpYXQiOjE3MDc1NzI1MjMsImp0aSI6IjE5MmI0YjJhLTNjMTktNDc3YS1hZTc5LTdlM2FkZTY4ZWI3MSIsInVzZXJuYW1lIjoiY2hyaXN0b3BoZS5zY2F5YUBnbWFpbC5jb20ifQ.crL1eSrSfZ76AtrQT_vPCukcjA0I9Yyj7HO1bMJSbl6KiAznrETfr85HluwAJrd2KI7mTwNzHZZrVnwPiN4rAA' |
|
|
|
headers = {'Accept': 'application/json', |
|
'Authorization': 'Bearer '+token,} |
|
|
|
while True: |
|
try: |
|
response = requests.get('http://'+ip+'/ivp/meters/reports/consumption', verify=False, headers=headers) |
|
json=response.json() |
|
total = round(json[0]['cumulative']['currW']) |
|
net = round(json[1]['cumulative']['currW']) |
|
panneaux = total-net |
|
#esp_cmd = requests.get('http://'+ip_esp+'/control?cmd=event,setPwr='+str(net)) |
|
logging.info("Total: "+str(total)+" Panneaux: "+str(panneaux)+" Enedis: "+str(net)) |
|
print("Total: "+str(total)+" Panneaux: "+str(panneaux)+" Enedis: "+str(net)) |
|
time.sleep(2) |
|
except requests.exceptions.RequestException as e: |
|
logging.error(e) |
|
time.sleep(30)
|
|
|