Tack för all kod!
Jag har solceller som laddar ett 10kwh batteri. En Victron BMV-700 mäter SOC på batteriet.
Jag har gjort ett hack som kollar SOC var femte minut och som pause/resume laddning beroende på SOC.
Varför får jag exception när jag anropar pause/resume ?
Annars fungerar koden bra...
Kod: Markera allt
import requests, json, time, dbus
class connect:
def __init__(self,
access_token=None,
):
if (access_token is None):
access_token_resp = self.get_access_token()
access_token = access_token_resp["accessToken"]
self.headers = {"Authorization": "Bearer {}".format(access_token)}
def get_access_token(self):
return requests.post("https://api.easee.cloud/api/accounts/token", json={"grantType":"password","username":"+46xxxxx","password":"xxxx"}).json()
def pause(self):
try:
return requests.post("https://api.easee.cloud/api/chargers/EHxxxxxx/commands/pause_charging", headers=self.headers).json()
except:
print "Oooops!"
def resume(self):
try:
return requests.post("https://api.easee.cloud/api/chargers/EHxxxxxx/commands/resume_charging", headers=self.headers).json()
except:
print "Oooops!"
bus = dbus.SystemBus()
bmv = bus.get_object('com.victronenergy.battery.ttyUSB0','/Soc')
my_charger = connect()
while True:
soc = bmv.GetValue()
print(soc)
if soc >= 90:
my_charger.resume()
if soc <= 88:
my_charger.pause()
time.sleep(300)
Denna exception får när jag anropar resume:
Traceback (most recent call last):
File "Nylogic.py", line 30, in <module>
my_charger.resume()
File "Nylogic.py", line 20, in resume
return requests.post("
https://api.easee.cloud/api/chargers/EH ... e_charging", headers=s
File "/usr/lib/python2.7/site-packages/requests/models.py", line 892, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
raise ValueError("No JSON object could be decoded")