diff --git a/dbus-node-red-grid-meter/grid_meter.py b/dbus-node-red-grid-meter/grid_meter.py index 424c971..df458dc 100644 --- a/dbus-node-red-grid-meter/grid_meter.py +++ b/dbus-node-red-grid-meter/grid_meter.py @@ -19,7 +19,7 @@ sys.path.insert(1, os.path.join(os.path.dirname(__file__), '/opt/victronenergy/d from vedbus import VeDbusService -class NodeRedMetergrid-meter: +class NodeRedGridMeter: def __init__(self, servicename, deviceinstance, paths, productname='grid-meter', connection='Node RED HTTP JSON service'): self._dbusservice = VeDbusService("{}.http_{:02d}".format(servicename, deviceinstance)) self._paths = paths @@ -99,6 +99,7 @@ class NodeRedMetergrid-meter: self._errorState() raise ValueError("Converting response to JSON failed") + # if there is not error parsing data, set connected to true self._dbusservice['/Connected'] = 1 return meter_data @@ -110,7 +111,7 @@ class NodeRedMetergrid-meter: def _update(self): try: - #get data from NodeRed 3em + #get parsed data from NodeRed fuction meter_data = self._getNodeRedData() #send data to DBus @@ -147,7 +148,8 @@ class NodeRedMetergrid-meter: self._dbusservice['/UpdateIndex'] = index #update lastupdate vars - self._lastUpdate = time.time() + self._lastUpdate = time.time() + except Exception as e: self._errorState() logging.critical('Error at %s', '_update', exc_info=e) @@ -158,8 +160,6 @@ class NodeRedMetergrid-meter: def _handlechangedvalue(self, path, value): logging.debug("someone else updated %s to %s" % (path, value)) return True # accept the change - - def main(): #configure logging @@ -185,7 +185,7 @@ def main(): _v = lambda p, v: (str(round(v, 1)) + ' V') #start our main-service - pvac_output = NodeRedMetergrid-meter( + pvac_output = NodeRedGridMeter( servicename='com.victronenergy.grid', deviceinstance=40, paths={