diff --git a/dbus-node-red-grid-meter/grid_meter.py b/dbus-node-red-grid-meter/grid_meter.py index 201b678..d9e76aa 100644 --- a/dbus-node-red-grid-meter/grid_meter.py +++ b/dbus-node-red-grid-meter/grid_meter.py @@ -40,7 +40,7 @@ class NodeRedMetergrid-meter: self._dbusservice.add_path('/Latency', None) self._dbusservice.add_path('/FirmwareVersion', 1.0) self._dbusservice.add_path('/HardwareVersion', 0) - self._dbusservice.add_path('/Connected', 1) + self._dbusservice.add_path('/Connected', 0) self._dbusservice.add_path('/Role', 'grid') self._dbusservice.add_path('/Position', 0) self._dbusservice.add_path('/Serial', 12345678) @@ -70,19 +70,20 @@ class NodeRedMetergrid-meter: def _getNodeRedData(self): URL = "http://localhost:1880/meters" - meter_r = requests.get(url = URL) - - # check for response - if not meter_r: + try: + meter_r = requests.get(url = URL, timeout=5) + except requests.exceptions.RequestException as e: + self._dbusservice['/Connected'] = 0 raise ConnectionError("No response from NodeRed - %s" % (URL)) - + meter_data = meter_r.json() # check for Json if not meter_data: + self._dbusservice['/Connected'] = 0 raise ValueError("Converting response to JSON failed") - + self._dbusservice['/Connected'] = 1 return meter_data