def run(self, registry): import copy from liota.dccs.graphite import Graphite from liota.dcc_comms.socket_comms import Socket # Acquire resources from registry # Creating a copy of system object to keep original object "clean" edge_system = copy.copy(registry.get("edge_system")) # Get values from configuration file config_path = registry.get("package_conf") config = {} execfile(config_path + '/sampleProp.conf', config) # Initialize DCC object with transport self.graphite = Graphite( Socket(ip=config['GraphiteIP'], port=config['GraphitePort'])) # Register gateway system graphite_edge_system = self.graphite.register(edge_system) registry.register("graphite", self.graphite) registry.register("graphite_edge_system", graphite_edge_system)
# -------------------------------------------------------------------------- # In this example, we demonstrate how data from a simulated device generating # random numbers can be directed to graphite data center component using Liota. # The program illustrates the ease of use Liota brings to IoT application developers. if __name__ == '__main__': edge_system = Dk300EdgeSystem(config['EdgeSystemName']) # Sending data to Graphite data center component # Socket is the underlying transport used to connect to the Graphite # instance graphite = Graphite( Socket(ip=config['GraphiteIP'], port=config['GraphitePort'])) graphite_reg_edge_system = graphite.register(edge_system) metric_name_temp_degC = config['MetricNameTempDegC'] temp_metric_degC = Metric(name=metric_name_temp_degC, unit=ureg.degC, interval=33, aggregation_size=6, sampling_function=getTempDegC) reg_temp_metric_degC = graphite.register(temp_metric_degC) graphite.create_relationship(graphite_reg_edge_system, reg_temp_metric_degC) reg_temp_metric_degC.start_collecting() metric_name_temp_degF = config['MetricNameTempDegF'] temp_metric_degF = Metric(name=metric_name_temp_degF,