Improve grid-meter disconnect or parse error, stop ess
This commit is contained in:
parent
bbf202b74d
commit
41d57160be
|
@ -68,19 +68,35 @@ class NodeRedMetergrid-meter:
|
|||
|
||||
return int(value)
|
||||
|
||||
# if there is a grid meter disconnect or some other error, set mandatory values to None to stop ESS and set MPs to passthrough
|
||||
def _errorState(self):
|
||||
self._dbusservice['/Connected'] = 0
|
||||
self._dbusservice['/Ac/Power'] = None
|
||||
self._dbusservice['/Ac/Current'] = None
|
||||
self._dbusservice['/Ac/L1/Voltage'] = None
|
||||
self._dbusservice['/Ac/L2/Voltage'] = None
|
||||
self._dbusservice['/Ac/L3/Voltage'] = None
|
||||
self._dbusservice['/Ac/L1/Current'] = None
|
||||
self._dbusservice['/Ac/L2/Current'] = None
|
||||
self._dbusservice['/Ac/L3/Current'] = None
|
||||
self._dbusservice['/Ac/L1/Power'] = None
|
||||
self._dbusservice['/Ac/L2/Power'] = None
|
||||
self._dbusservice['/Ac/L3/Power'] = None
|
||||
return True
|
||||
|
||||
def _getNodeRedData(self):
|
||||
URL = "http://localhost:1880/meters"
|
||||
try:
|
||||
meter_r = requests.get(url = URL, timeout=5)
|
||||
except requests.exceptions.RequestException as e:
|
||||
self._dbusservice['/Connected'] = 0
|
||||
self._errorState()
|
||||
raise ConnectionError("No response from NodeRed - %s" % (URL))
|
||||
|
||||
meter_data = meter_r.json()
|
||||
|
||||
# check for Json
|
||||
if not meter_data:
|
||||
self._dbusservice['/Connected'] = 0
|
||||
self._errorState()
|
||||
raise ValueError("Converting response to JSON failed")
|
||||
|
||||
self._dbusservice['/Connected'] = 1
|
||||
|
@ -133,6 +149,7 @@ class NodeRedMetergrid-meter:
|
|||
#update lastupdate vars
|
||||
self._lastUpdate = time.time()
|
||||
except Exception as e:
|
||||
self._errorState()
|
||||
logging.critical('Error at %s', '_update', exc_info=e)
|
||||
|
||||
# return true, otherwise add_timeout will be removed from GObject - see docs http://library.isr.ist.utl.pt/docs/pygtk2reference/gobject-functions.html#function-gobject--timeout-add
|
||||
|
|
Loading…
Reference in New Issue