diff --git a/DeviceAPI/classAPI/classAPI_vav_rtu.py b/DeviceAPI/classAPI/classAPI_vav_rtu.py index 18a756a..b747d4c 100755 --- a/DeviceAPI/classAPI/classAPI_vav_rtu.py +++ b/DeviceAPI/classAPI/classAPI_vav_rtu.py @@ -63,7 +63,7 @@ def __init__(self,**kwargs): #default color is white self.variables = kwargs address_parts = self.get_variable('address').split(':') self.set_variable('address',address_parts[0]) - self.set_variable('slave_id',int(address_parts[1])) + self.set_variable('subordinate_id',int(address_parts[1])) self.set_variable('offline_count',0) self.set_variable('connection_renew_interval',6000) #nothing to renew @@ -115,7 +115,7 @@ def getDeviceStatus(self): client = ModbusTcpClient(self.get_variable('address'),port=502) client.connect() if (self.get_variable('model')=='VC1000'): - result = client.read_input_registers(0,8,unit=self.get_variable('slave_id')) + result = client.read_input_registers(0,8,unit=self.get_variable('subordinate_id')) if int(result.registers[0])==32767: self.set_variable('temperature',None) else: @@ -126,14 +126,14 @@ def getDeviceStatus(self): self.set_variable('supply_temperature',None) else: self.set_variable('supply_temperature',float('%.1f' % self.cel2far(float(int(result.registers[7]))/100.0))) - result = client.read_holding_registers(159,2,unit=self.get_variable('slave_id')) + result = client.read_holding_registers(159,2,unit=self.get_variable('subordinate_id')) if (int(result.registers[0])==1): self.set_variable('flap_override','ON') else: self.set_variable('flap_override','OFF') self.set_variable('flap_position',int(result.registers[1])) elif (self.get_variable('model')=='M1000'): - result = client.read_input_registers(0,26,unit=self.get_variable('slave_id')) + result = client.read_input_registers(0,26,unit=self.get_variable('subordinate_id')) if int(result.registers[18])==32767: self.set_variable('temperature',None) else: @@ -163,12 +163,12 @@ def getDeviceStatus(self): self.set_variable('fan_status','ON') else: self.set_variable('fan_status','OFF') - result = client.read_holding_registers(129,1,unit=self.get_variable('slave_id')) + result = client.read_holding_registers(129,1,unit=self.get_variable('subordinate_id')) if int(result.registers[0]) > 100: self.set_variable('heating',0) else: self.set_variable('heating',int(result.registers[0])) - result = client.read_holding_registers(10,1,unit=self.get_variable('slave_id')) + result = client.read_holding_registers(10,1,unit=self.get_variable('subordinate_id')) if int(result.registers[0]) == 0: self.set_variable('cooling_mode','None') self.set_variable('cooling_status','OFF') @@ -216,48 +216,48 @@ def setDeviceStatus(self, postmsg): client.connect() if (self.get_variable('model')=='VC1000'): if 'heat_setpoint' in postmsg.keys(): - client.write_register(6,int(self.far2cel(float(postmsg.get('heat_setpoint')))*100.0),unit=self.get_variable('slave_id')) + client.write_register(6,int(self.far2cel(float(postmsg.get('heat_setpoint')))*100.0),unit=self.get_variable('subordinate_id')) if 'cool_setpoint' in postmsg.keys(): - client.write_register(6,int(self.far2cel(float(postmsg.get('cool_setpoint')))*100.0),unit=self.get_variable('slave_id')) + client.write_register(6,int(self.far2cel(float(postmsg.get('cool_setpoint')))*100.0),unit=self.get_variable('subordinate_id')) if 'flap_override' in postmsg.keys(): if postmsg.get('flap_override') == 'ON' or postmsg.get('flap_override') == True: - client.write_register(159,1,unit=self.get_variable('slave_id')) + client.write_register(159,1,unit=self.get_variable('subordinate_id')) elif postmsg.get('flap_override') == 'OFF' or postmsg.get('flap_override') == False: - client.write_register(159,0,unit=self.get_variable('slave_id')) + client.write_register(159,0,unit=self.get_variable('subordinate_id')) if 'flap_position' in postmsg.keys(): - client.write_register(160,int(postmsg.get('flap_position')),unit=self.get_variable('slave_id')) + client.write_register(160,int(postmsg.get('flap_position')),unit=self.get_variable('subordinate_id')) elif (self.get_variable('model')=='M1000'): if 'heat_setpoint' in postmsg.keys(): - client.write_register(187,int(self.far2cel(float(postmsg.get('heat_setpoint')))*100.0),unit=self.get_variable('slave_id')) + client.write_register(187,int(self.far2cel(float(postmsg.get('heat_setpoint')))*100.0),unit=self.get_variable('subordinate_id')) if 'cool_setpoint' in postmsg.keys(): - client.write_register(188,int(self.far2cel(float(postmsg.get('cool_setpoint')))*100.0),unit=self.get_variable('slave_id')) + client.write_register(188,int(self.far2cel(float(postmsg.get('cool_setpoint')))*100.0),unit=self.get_variable('subordinate_id')) if 'outside_damper_position' in postmsg.keys(): - client.write_register(274,int(postmsg.get('outside_damper_position')),unit=self.get_variable('slave_id')) + client.write_register(274,int(postmsg.get('outside_damper_position')),unit=self.get_variable('subordinate_id')) if 'bypass_damper_position' in postmsg.keys(): - client.write_register(275,int(postmsg.get('bypass_damper_position')),unit=self.get_variable('slave_id')) + client.write_register(275,int(postmsg.get('bypass_damper_position')),unit=self.get_variable('subordinate_id')) if 'fan_status' in postmsg.keys(): if postmsg.get('fan_status') == 'ON' or postmsg.get('fan_status') == True: - client.write_register(130,2,unit=self.get_variable('slave_id')) + client.write_register(130,2,unit=self.get_variable('subordinate_id')) elif postmsg.get('fan_status') == 'OFF' or postmsg.get('fan_status') == False: - client.write_register(130,1,unit=self.get_variable('slave_id')) + client.write_register(130,1,unit=self.get_variable('subordinate_id')) if 'cooling_status' in postmsg.keys(): if postmsg.get('cooling_status') == 'ON': - client.write_registers(124,[1,2,2,2],unit=self.get_variable('slave_id')) + client.write_registers(124,[1,2,2,2],unit=self.get_variable('subordinate_id')) elif postmsg.get('cooling_status') == 'OFF': - client.write_registers(124,[0,1,1,1],unit=self.get_variable('slave_id')) + client.write_registers(124,[0,1,1,1],unit=self.get_variable('subordinate_id')) if 'cooling_mode' in postmsg.keys(): if postmsg.get('cooling_mode') == 'None': - client.write_register(10,0,unit=self.get_variable('slave_id')) + client.write_register(10,0,unit=self.get_variable('subordinate_id')) elif postmsg.get('cooling_mode') == 'STG1': - client.write_register(10,1,unit=self.get_variable('slave_id')) + client.write_register(10,1,unit=self.get_variable('subordinate_id')) elif postmsg.get('cooling_mode') == 'STG2': - client.write_register(10,2,unit=self.get_variable('slave_id')) + client.write_register(10,2,unit=self.get_variable('subordinate_id')) elif postmsg.get('cooling_mode') == 'STG3': - client.write_register(10,3,unit=self.get_variable('slave_id')) + client.write_register(10,3,unit=self.get_variable('subordinate_id')) elif postmsg.get('cooling_mode') == 'STG4': - client.write_register(10,4,unit=self.get_variable('slave_id')) + client.write_register(10,4,unit=self.get_variable('subordinate_id')) if 'heating' in postmsg.keys(): - client.write_register(129,int(postmsg.get('heating')),unit=self.get_variable('slave_id')) + client.write_register(129,int(postmsg.get('heating')),unit=self.get_variable('subordinate_id')) client.close() except: diff --git a/DeviceAPI/discoverAPI/Modbus.py b/DeviceAPI/discoverAPI/Modbus.py index b8257d8..d7f5a4d 100755 --- a/DeviceAPI/discoverAPI/Modbus.py +++ b/DeviceAPI/discoverAPI/Modbus.py @@ -113,16 +113,16 @@ def discover(type): client = ModbusTcpClient(ip,port=502) client.connect() if type == 'Prolon_VAV': - possible_slave_ids = [1,2,7] + possible_subordinate_ids = [1,2,7] elif type == 'Prolon_RTU': - possible_slave_ids = [15,20] + possible_subordinate_ids = [15,20] else: - possible_slave_ids = [] + possible_subordinate_ids = [] - for slave_id in possible_slave_ids: - result = client.read_input_registers(0,unit=slave_id) + for subordinate_id in possible_subordinate_ids: + result = client.read_input_registers(0,unit=subordinate_id) if result is not None: - responses.append(ip+':'+str(slave_id)) + responses.append(ip+':'+str(subordinate_id)) client.close() except: diff --git a/volttron/drivers/file_driver.py b/volttron/drivers/file_driver.py index f70d7e3..993cec6 100755 --- a/volttron/drivers/file_driver.py +++ b/volttron/drivers/file_driver.py @@ -160,7 +160,7 @@ def scrape_all(self): except (IOError): print ("ERROR: Failed to scrape device at " + self.ip_address + ":" + str(self.port) + " " + - "ID: " + str(self.slave_id)) + "ID: " + str(self.subordinate_id)) return None return result_dict diff --git a/volttron/drivers/modbus.py b/volttron/drivers/modbus.py index 4264230..99c4d80 100755 --- a/volttron/drivers/modbus.py +++ b/volttron/drivers/modbus.py @@ -93,15 +93,15 @@ class ModbusInterfaceException(ModbusException): pass class ModbusRegisterBase(BaseRegister): - def __init__(self, address, register_type, read_only, pointName, units, description = '', slave_id=0): + def __init__(self, address, register_type, read_only, pointName, units, description = '', subordinate_id=0): super(ModbusRegisterBase, self).__init__(register_type, read_only, pointName, units, description = '') self.address = address - self.slave_id = slave_id + self.subordinate_id = subordinate_id class ModbusBitRegister(ModbusRegisterBase): - def __init__(self, address, type_string, pointName, units, read_only, description = '', slave_id=0): + def __init__(self, address, type_string, pointName, units, read_only, description = '', subordinate_id=0): super(ModbusBitRegister, self).__init__(address, "bit", read_only, pointName, units, - description = description, slave_id=slave_id) + description = description, subordinate_id=subordinate_id) self.python_type = bool @@ -119,12 +119,12 @@ def get_state_callback(self, response_bits): return response_bits.bits[0] def get_state_async(self, client): - d = client.read_discrete_inputs(self.address, unit=self.slave_id) if self.read_only else client.read_coils(self.address, unit=self.slave_id) + d = client.read_discrete_inputs(self.address, unit=self.subordinate_id) if self.read_only else client.read_coils(self.address, unit=self.subordinate_id) d.addCallback(self.get_state_callback) return d def get_state_sync(self, client): - response_bits = client.read_discrete_inputs(self.address, unit=self.slave_id) if self.read_only else client.read_coils(self.address, unit=self.slave_id) + response_bits = client.read_discrete_inputs(self.address, unit=self.subordinate_id) if self.read_only else client.read_coils(self.address, unit=self.subordinate_id) return self.get_state_callback(response_bits) def set_state_callback(self, response): @@ -136,21 +136,21 @@ def set_state_callback(self, response): def set_state_sync(self, client, value): if not self.read_only: - r = client.write_coil(self.address, value, unit=self.slave_id) + r = client.write_coil(self.address, value, unit=self.subordinate_id) return self.set_state_callback(r) return None def set_state_async(self, client, value): if not self.read_only: - r = client.write_coil(self.address, value, unit=self.slave_id) + r = client.write_coil(self.address, value, unit=self.subordinate_id) r.addCallback(self.set_state_callback) return r return None class ModbusByteRegister(ModbusRegisterBase): - def __init__(self, address, type_string, pointName, units, read_only, description = '', slave_id=0): + def __init__(self, address, type_string, pointName, units, read_only, description = '', subordinate_id=0): super(ModbusByteRegister, self).__init__(address, "byte", read_only, - pointName, units, description = description, slave_id=slave_id) + pointName, units, description = description, subordinate_id=subordinate_id) try: self.parse_struct = struct.Struct(type_string) @@ -187,17 +187,17 @@ def get_state_callback(self, response): def get_state_async(self, client): if self.read_only: - d = client.read_input_registers(self.address, count=self.get_register_count(), unit=self.slave_id) + d = client.read_input_registers(self.address, count=self.get_register_count(), unit=self.subordinate_id) else: - d = client.read_holding_registers(self.address, count=self.get_register_count(), unit=self.slave_id) + d = client.read_holding_registers(self.address, count=self.get_register_count(), unit=self.subordinate_id) d.addCallback(self.get_state_callback) return d def get_state_sync(self, client): if self.read_only: - response = client.read_input_registers(self.address, count=self.get_register_count(), unit=self.slave_id) + response = client.read_input_registers(self.address, count=self.get_register_count(), unit=self.subordinate_id) else: - response = client.read_holding_registers(self.address, count=self.get_register_count(), unit=self.slave_id) + response = client.read_holding_registers(self.address, count=self.get_register_count(), unit=self.subordinate_id) return self.get_state_callback(response) @@ -205,7 +205,7 @@ def set_state_sync(self, client, value): if not self.read_only: value_bytes = self.parse_struct.pack(value) register_values = PYMODBUS_REGISTER_STRUCT.unpack_from(value_bytes) - client.write_registers(self.address, register_values, unit=self.slave_id) + client.write_registers(self.address, register_values, unit=self.subordinate_id) return self.get_state_sync(client) return None @@ -216,16 +216,16 @@ def set_state_async(self, client, value): if not self.read_only: value_bytes = self.parse_struct.pack(value) register_values = PYMODBUS_REGISTER_STRUCT.unpack_from(value_bytes) - r = client.write_registers(self.address, register_values, unit=self.slave_id) + r = client.write_registers(self.address, register_values, unit=self.subordinate_id) r.addCallback(self.set_state_callback, client) return r return None class ModbusInterface(BaseInterface): - def __init__(self, ip_address, port=Defaults.Port, slave_id=0, config_file=configFile, **kwargs): + def __init__(self, ip_address, port=Defaults.Port, subordinate_id=0, config_file=configFile, **kwargs): super(ModbusInterface, self).__init__(**kwargs) - self.slave_id=slave_id + self.subordinate_id=subordinate_id self.ip_address = ip_address self.port = port self.build_ranges_map() @@ -312,7 +312,7 @@ def scrape_byte_registers(self, client, read_only): for group in xrange(start, end + 1, MODBUS_READ_MAX): count = min(end - group + 1, MODBUS_READ_MAX) - response = client.read_input_registers(group, count, unit=self.slave_id) if read_only else client.read_holding_registers(group, count, unit=self.slave_id) + response = client.read_input_registers(group, count, unit=self.subordinate_id) if read_only else client.read_holding_registers(group, count, unit=self.subordinate_id) if response is None: raise ModbusInterfaceException("pymodbus returned None") response_bytes = response.encode() @@ -337,7 +337,7 @@ def scrape_bit_registers(self, client, read_only): for group in xrange(start, end + 1, MODBUS_READ_MAX): count = min(end - group + 1, MODBUS_READ_MAX) - response = client.read_discrete_inputs(group, count, unit=self.slave_id) if read_only else client.read_coils(group, count, unit=self.slave_id) + response = client.read_discrete_inputs(group, count, unit=self.subordinate_id) if read_only else client.read_coils(group, count, unit=self.subordinate_id) if response is None: raise ModbusInterfaceException("pymodbus returned None") result += response.bits @@ -362,7 +362,7 @@ def scrape_all(self): except (ConnectionException, ModbusIOException, ModbusInterfaceException) as e: print ("ERROR: Failed to scrape device at " + self.ip_address + ":" + str(self.port) + " " + - "ID: " + str(self.slave_id) + str(e)) + "ID: " + str(self.subordinate_id) + str(e)) return None finally: client.close() @@ -390,7 +390,7 @@ def parse_config(self, config_file): units = regDef['Units'] klass = ModbusBitRegister if bit_register else ModbusByteRegister - register = klass(address, io_type, point_path, units, read_only, description = description, slave_id=self.slave_id) + register = klass(address, io_type, point_path, units, read_only, description = description, subordinate_id=self.subordinate_id) self.insert_register(register) @@ -402,11 +402,11 @@ def setup(self, opts): def get_interface(self, opts): ip_address = opts['ip_address'] - slave_id = int(opts.get('slave_id',0)) + subordinate_id = int(opts.get('subordinate_id',0)) port = int(opts.get('port',502)) catalyst_config = opts.get('register_config', configFile) - return ModbusInterface(ip_address, slave_id=slave_id, port=port, config_file=catalyst_config) + return ModbusInterface(ip_address, subordinate_id=subordinate_id, port=port, config_file=catalyst_config) if __name__ == "__main__": from pprint import pprint