def edit_device(): deviceId = select_configured_device() params = {} params['deviceId'] = deviceId params['name'] = raw_input("\nEnter the new \"name\" of the device: ") response = nymea.send_command("Devices.EditDevice", params) nymea.print_device_error_code(response['params']['deviceError'])
def add_configured_device(deviceClassId): deviceClass = get_deviceClass(deviceClassId) params = {} params['deviceClassId'] = deviceClassId params['name'] = raw_input("\nEnter the \"name\" of the device: ") deviceParams = parameters.read_params(deviceClass['paramTypes']) if deviceParams: params['deviceParams'] = deviceParams print "\nAdding device with params:", nymea.print_json_format(params) response = nymea.send_command("Devices.AddConfiguredDevice", params) nymea.print_device_error_code(response['params']['deviceError'])
def execute_action(): deviceId = devices.select_configured_device() if deviceId == None: return None device = devices.get_device(deviceId) actionType = select_actionType(device['deviceClassId']) #print nymea.print_json_format(actionType) if actionType == None: print "\n This device has no actions" return None actionTypeId = actionType['id'] params = {} params['actionTypeId'] = actionTypeId params['deviceId'] = deviceId actionType = get_actionType(actionTypeId) actionParams = parameters.read_params(actionType['paramTypes']) params['params'] = actionParams response = nymea.send_command("Actions.ExecuteAction", params) if response: nymea.print_device_error_code(response['params']['deviceError'])
def remove_configured_device(): deviceId = select_configured_device() if not deviceId: return None print "Removing device with DeviceId%s" % deviceId params = {} params['deviceId'] = deviceId response = nymea.send_command("Devices.RemoveConfiguredDevice", params) if response['params']['deviceError'] == 'DeviceErrorDeviceInRule': selectionString = "This device is used in a rule. How do you want to remove the device from the rules?" removePolicys = [ "Remove the device from the rules", "Delete all offending rules" ] selection = nymea.get_selection(selectionString, removePolicys) if removePolicys[selection] == "Remove the device from the rules": params['removePolicy'] = "RemovePolicyUpdate" else: params['removePolicy'] = "RemovePolicyCascade" response = nymea.send_command("Devices.RemoveConfiguredDevice", params) nymea.print_device_error_code(response['params']['deviceError'])
def add_discovered_device(deviceClassId, deviceDescriptorId): deviceClass = get_deviceClass(deviceClassId) if deviceClass['setupMethod'] == "SetupMethodJustAdd": params = {} params['deviceClassId'] = deviceClassId params['deviceDescriptorId'] = deviceDescriptorId params['name'] = raw_input("\nEnter the \"name\" of the device: ") response = nymea.send_command("Devices.AddConfiguredDevice", params) if not response['status'] != "success": nymea.print_device_error_code(response['params']['deviceError']) else: print "Device added successfully. Device ID: %s\n" % response[ 'params']['deviceId'] elif deviceClass['setupMethod'] == "SetupMethodPushButton": params = {} params['deviceClassId'] = deviceClassId params['deviceDescriptorId'] = deviceDescriptorId params['name'] = raw_input("\nEnter the \"name\" of the device: ") response = nymea.send_command("Devices.PairDevice", params) #nymea.print_json_format(response) if not response['status'] == "success": print "Pairing failed: %s", response['params']['deviceError'] return print "\nPairing device %s\n\n%s\n\n" % ( deviceClass['displayName'], response['params']['displayMessage']) if response['params']['setupMethod'] == "SetupMethodPushButton": raw_input("\nPress \"enter\" to confirm\n") params = {} params['pairingTransactionId'] = response['params'][ 'pairingTransactionId'] response = nymea.send_command("Devices.ConfirmPairing", params) nymea.print_device_error_code(response['params']['deviceError']) elif deviceClass['setupMethod'] == "SetupMethodDisplayPin": params = {} params['deviceClassId'] = deviceClassId params['deviceDescriptorId'] = deviceDescriptorId params['name'] = raw_input("\nEnter the \"name\" of the device: ") response = nymea.send_command("Devices.PairDevice", params) #nymea.print_json_format(response) if not response['status'] == "success": print "Pairing failed: %s", response['params']['deviceError'] return print "\nPairing device %s\n\n%s\n\n" % ( deviceClass['displayName'], response['params']['displayMessage']) if response['params']['setupMethod'] == "SetupMethodDisplayPin": pin = raw_input("Pin: ") params = {} params['secret'] = pin params['pairingTransactionId'] = response['params'][ 'pairingTransactionId'] response = nymea.send_command("Devices.ConfirmPairing", params) nymea.print_device_error_code(response['params']['deviceError'])
def reconfigure_device(): deviceId = select_configured_device() device = get_device(deviceId) if not device: return None deviceClass = get_deviceClass(device['deviceClassId']) if not deviceClass: return None deviceParamTypes = deviceClass['paramTypes'] currentDeviceParams = device['params'] createMethod = select_createMethod( "Please select how do you want to edit this device", deviceClass['createMethods']) print " --> Using create method \"%s\"\n" % (createMethod) params = {} if createMethod == "CreateMethodUser": newDeviceParams = parameters.edit_params(currentDeviceParams, deviceParamTypes) params['deviceId'] = deviceId params['deviceParams'] = newDeviceParams response = nymea.send_command("Devices.ReconfigureDevice", params) nymea.print_device_error_code(response['params']['deviceError']) elif createMethod == "CreateMethodDiscovery": deviceDescriptorId = discover_device(device['deviceClassId']) if not deviceDescriptorId: return None print "using descriptorId %s" % (deviceDescriptorId) params['deviceId'] = deviceId params['deviceDescriptorId'] = deviceDescriptorId response = nymea.send_command("Devices.ReconfigureDevice", params) nymea.print_device_error_code(response['params']['deviceError']) elif createMethod == "CreateMethodAuto": newDeviceParams = parameters.edit_params(currentDeviceParams, deviceParamTypes) params['deviceId'] = deviceId params['deviceParams'] = newDeviceParams response = nymea.send_command("Devices.ReconfigureDevice", params) nymea.print_device_error_code(response['params']['deviceError'])