def start(self): super(Kwh2Kw, self).start() self.running = True self._history = KwList(self._window_size) self._sid = SM.create_polled({self._nid:self.link}) # retrieve an initial value to start things off value = ts = None result = SM.poll_all(self._sid) if result is None: # still waiting try: value = as_node(self.link).get() ts = time.time() except: pass else: try: value = result[self._nid]['value'] ts = result[self._nid]['timestamp'] except: pass if isinstance(value, MpxException): value = None if value and ts: self._history.add(value, ts) self._scheduled = scheduler.seconds_from_now_do(self.sample_period, self.run_update) return
def _proxy_get_link(self, skip_cache=0): try: if self._proxy_start_exception: #if there was an exception during start, repeat it now self._start_proxy_get() #try again until it starts ok answer = None if self.use_subscription: if (self._proxy_sid is None): self._proxy_sid = SM.create_polled( {1:self._proxy_linked_node()}, timeout=None ) answer = SM.poll_all(self._proxy_sid)[1] if isinstance(answer, dict): answer = answer['value'] if isinstance(answer, Exception): raise answer else: answer = self._proxy_linked_node().get() # @fixme skip_cache) how to use gets that dont have skip cache self._proxy_set_exception(None) return answer except Exception, e: #transfer any exception over to the proxy if hasattr(self, 'error_response'): if self.error_response != '%ERROR%': #default error response is to pass exception up if self.error_response == '%NONE%': return None return self.error_response #return specific desired value when an error occurs self._proxy_set_exception(e) raise # reraise the exception
def start(self): super(Kwh2Kw, self).start() self.running = True self._history = KwList(self._window_size) self._sid = SM.create_polled({self._nid: self.link}) # retrieve an initial value to start things off value = ts = None result = SM.poll_all(self._sid) if result is None: # still waiting try: value = as_node(self.link).get() ts = time.time() except: pass else: try: value = result[self._nid]['value'] ts = result[self._nid]['timestamp'] except: pass if isinstance(value, MpxException): value = None if value and ts: self._history.add(value, ts) self._scheduled = scheduler.seconds_from_now_do( self.sample_period, self.run_update) return
def _proxy_get_link(self, skip_cache=0): try: if self._proxy_start_exception: #if there was an exception during start, repeat it now self._start_proxy_get() #try again until it starts ok answer = None if self.use_subscription: if (self._proxy_sid is None): self._proxy_sid = SM.create_polled( {1: self._proxy_linked_node()}, timeout=None) answer = SM.poll_all(self._proxy_sid)[1] if isinstance(answer, dict): answer = answer['value'] if isinstance(answer, Exception): raise answer else: answer = self._proxy_linked_node().get( ) # @fixme skip_cache) how to use gets that dont have skip cache self._proxy_set_exception(None) return answer except Exception, e: #transfer any exception over to the proxy if hasattr(self, 'error_response'): if self.error_response != '%ERROR%': #default error response is to pass exception up if self.error_response == '%NONE%': return None return self.error_response #return specific desired value when an error occurs self._proxy_set_exception(e) raise # reraise the exception
def create_polled(self, node_reference_table=None, timeout=300): if not self._properties_loaded: self._load_properties() if node_reference_table is None: node_reference_table = {} points = self._get_points() for point in points: node_reference_table[str((point.ptype, point.name))] = point.reference return SM.create_polled(node_reference_table, timeout)
def create_polled(self, node_reference_table=None, timeout=300): if node_reference_table is None: node_reference_table = {} for mount_point, nodepath in self.get_mount_points(): try: node_reference_table[nodepath] = mount_point.host except: msg = 'Failed to establish presence monitoring for %s' % nodepath msglog.log('Entity Manager', msglog.types.WARN, msg) return SM.create_polled(node_reference_table, timeout)
def create_polled(self, node_reference_table=None, timeout=300): if not self._properties_loaded: self._load_properties() if node_reference_table is None: node_reference_table = {} points = self._get_points() for point in points: node_reference_table[str( (point.ptype, point.name))] = point.reference return SM.create_polled(node_reference_table, timeout)
def create_polled(self, node_reference_table=None, timeout=300): if node_reference_table is None: node_reference_table = {} for mount_point, nodepath in self.get_mount_points(): try: node_reference_table[nodepath] = mount_point.host except: msg = 'Failed to establish presence monitoring for %s' % nodepath msglog.log('Entity Manager', msglog.types.WARN, msg) return SM.create_polled(node_reference_table, timeout)
def create_polled(self, node_reference_table=None, timeout=300): if node_reference_table is None: node_reference_table = {} for setpoint_id in self._entity_map.keys(): for entity_map in self._entity_map.get(setpoint_id, []): try: property = entity_map.get_property_reference() except: continue entity_path = entity_map.entity_path nrt_id = str([setpoint_id, entity_path]) node_reference_table[nrt_id] = property return SM.create_polled(node_reference_table, timeout)
def create_polled(self, node_reference_table=None, timeout=300): if node_reference_table is None: node_reference_table = {} for setpoint_id in self._entity_map.keys(): for entity_map in self._entity_map.get(setpoint_id, []): try: property = entity_map.get_property_reference() except: continue entity_path = entity_map.entity_path nrt_id = str([setpoint_id, entity_path]) node_reference_table[nrt_id] = property return SM.create_polled(node_reference_table, timeout)
t.change_hardware_settings('IP','eth0','1','47428') from mpx.lib.node import as_node ai1 = as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01') aipv=as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01/present_value') ain=as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01/object_name') from mpx.lib.bacnet._bacnet import read_property_multiple_g3 as rpm rpm(aipv.bacnet_property.device, [aipv.bacnet_property.property_tuple, ain.bacnet_property.property_tuple]) from mpx.service.subscription_manager._manager import SUBSCRIPTION_MANAGER as SM from mpx.lib.node import as_node ai1 = as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01') aipv=as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01/present_value') ain=as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01/object_name') sid = SM.create_polled({1:aipv, 2:ain}) from mpx.service.subscription_manager._manager import SUBSCRIPTION_MANAGER as SM from mpx.lib.node import as_node aipv=as_node('services/network/BACnet/internetwork1/Devices/1/8/1/77') ain =as_node('services/network/BACnet/internetwork1/Devices/1/8/1/79') pcm1=as_node('services/network/BACnet/internetwork1/Devices/1/151/1/85') pcm2=as_node('services/network/BACnet/internetwork1/Devices/1/151/1/79') up = as_node('services/network/BACnet/internetwork1/Devices/1/151/1/10209') mdd= as_node('services/network/BACnet/internetwork1/Devices/1/151/1/10210') sid = SM.create_polled({1:aipv, 2:ain, 3:pcm1, 4:pcm2, 5:up, 6:mdd}) sid = SM.create_polled({5:up,6:mdd}) SM.poll_all(sid) SM.destroy(sid)