Devices

Manage devices in account.

amount

Gets the amount of data stored in a device.

See:

Parameters:

deviceID: GenericID
Device ID

Returns:

Union[int, float]

Example:
    resources = Resources()
    amount = resources.devices.amount("device-id-123")
    print(amount)  # 15234

create

Creates a new device in the account with specified configuration and returns device credentials.

See:

Parameters:

deviceObj: DeviceCreateInfo
Object data to create new device

Returns:

Example:
    resources = Resources()
    result = resources.devices.create({
        "name": "Temperature Sensor",
        "network": "network-id-123",
        "connector": "connector-id-456",
        "type": "immutable",
        "chunk_period": "month",
        "chunk_retention": 6,
        "active": True
    })
    print(result)  # {'device_id': '...', 'bucket_id': '...', 'token': '...'}

dataBackup

Schedule to export the device’s data to TagoIO Files. For mutable devices, exports all data. For immutable devices with chunkID, exports specific chunk.

See:

Parameters:

Parameters for device data backup operation
chunkID: Optional[GenericID]
[Optional] Chunk ID if backup is for a specific chunk

Returns:

Example:
    resources = Resources()
    import time
    timestamp = int(time.time())
    result = resources.devices.dataBackup({
        "deviceID": "device-id-123",
        "file_address": f"/backups/device-id-123/{timestamp}",
        "headers": True
    })
    print(result)  # {'file_address': 'backups/device-id-123/1736433519380.csv'}

dataRestore

Restores data to a device from a CSV file in TagoIO Files.

See:

Parameters:

Parameters for device data restore operation

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.dataRestore({
        "deviceID": "device-id-123",
        "file_address": "/backups/backup.csv"
    })
    print(result)  # Data import added to the queue successfully!

delete

Permanently deletes a device from the account along with all its data.

See:

Parameters:

deviceID: GenericID
Device ID

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.delete("device-id-123")
    print(result)  # Successfully Removed

deleteChunk

Deletes a chunk from an immutable device.

See:

Parameters:

deviceID: GenericID
Device ID
chunkID: GenericID
Chunk ID

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.deleteChunk("device-id-123", "chunk-id-123")
    print(result)  # Chunk chunk-id-123 deleted

deleteDeviceData

Deletes data from a device based on specified query parameters.

See:

Parameters:

deviceID: GenericID
Device ID
queryParam: Optional[DataQuery]
[Optional] Query parameters to filter the results

Returns:

str

Example:
    resources = Resources()
    # Delete specific records by ID
    result = resources.devices.deleteDeviceData("device-id-123", {
        "ids": ["record-id-1", "record-id-2"]
    })
    # Delete by variable
    result = resources.devices.deleteDeviceData("device-id-123", {
        "variables": ["old_sensor"],
        "qty": 100
    })
    print(result)  # Successfully Removed

edit

Modifies any property of an existing device.

See:

Parameters:

deviceID: GenericID
Device ID
deviceObj: DeviceEditInfo
Device object with fields to replace

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.edit("device-id-123", {
        "name": "Updated Sensor Name",
        "active": False,
        "tags": [{"key": "location", "value": "warehouse"}]
    })
    print(result)  # Successfully Updated

editDeviceData

Modifies existing data records in a device. Requires the data record ID.

See:

Parameters:

deviceID: GenericID
Device ID
updatedData: Union[DataEdit, List[DataEdit]]
An array or one object with data to be updated

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.editDeviceData("device-id-123", {
        "id": "data-record-id",
        "value": 30.0,
        "unit": "°F"
    })
    # Edit multiple records
    result = resources.devices.editDeviceData("device-id-123", [
        {"id": "record-1-id", "value": 25.5},
        {"id": "record-2-id", "value": 65}
    ])
    print(result)  # Device Data Updated

emptyDeviceData

Permanently removes all data from a device. This operation cannot be undone.

See:

Parameters:

deviceID: GenericID
Device ID

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.emptyDeviceData("device-id-123")
    print(result)  # All data has been removed

getChunk

Retrieves chunk information from an immutable device.

See:

Parameters:

deviceID: GenericID
Device ID

Returns:

Example:
    resources = Resources()
    chunks = resources.devices.getChunk("device-id-123")
    print(chunks)  # [{'amount': 0, 'id': 'chunk-id-123', 'from_date': '2025-01-09T00:00:00.000+00:00', ...}]

getDeviceData

Retrieves data from all variables in the device with optional query filters.

See:

Parameters:

deviceID: GenericID
Device ID
queryParams: Optional[DataQuery]
[Optional] Query parameters to filter the results

Returns:

List[Data]

Example:
    resources = Resources()
    # Get all data
    data = resources.devices.getDeviceData("device-id-123")
    # Get specific variable data
    temp_data = resources.devices.getDeviceData("device-id-123", {
        "variables": ["temperature"],
        "qty": 10
    })
    print(temp_data)  # [{'variable': 'temperature', 'value': 25.5, 'time': '...', ...}]

info

Retrieves detailed information about a specific device.

See:

Parameters:

deviceID: GenericID
Device ID

Returns:

Example:
    resources = Resources()
    device_info = resources.devices.info("device-id-123")
    print(device_info)  # {'id': '...', 'name': '...', 'type': 'mutable', ...}

listDevice

Retrieves a list of all devices from the account with optional filtering and pagination.

See:

Parameters:

queryObj: Optional[DeviceQuery]
[Optional] Search query params

Returns:

Example:
    resources = Resources()
    devices = resources.devices.listDevice({
        "page": 1,
        "amount": 20,
        "fields": ["id", "name", "active"],
        "filter": {"name": "Temperature*"},
        "orderBy": ["name", "asc"]
    })
    print(devices)  # [{'id': 'device-id-123', 'name': 'Temperature Sensor', ...}]

paramList

Retrieves a list of configuration parameters for a device.

See:

Parameters:

deviceID: GenericID
Device ID
sentStatus: Optional[bool]
[Optional] True return only sent=true, False return only sent=false

Returns:

Example:
    resources = Resources()
    # Get all parameters
    params = resources.devices.paramList("device-id-123")
    # Get only sent parameters
    sent_params = resources.devices.paramList("device-id-123", sentStatus=True)
    print(params)  # [{'id': '...', 'key': 'threshold', 'value': '25.5', 'sent': False}]

paramRemove

Removes a specific configuration parameter from a device.

See:

Parameters:

deviceID: GenericID
Device ID
paramID: GenericID
Parameter ID

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.paramRemove("device-id-123", "param-id-456")
    print(result)  # Successfully Removed

paramSet

Creates new configuration parameters or updates existing ones for a device.

See:

Parameters:

deviceID: GenericID
Device ID
configObj: Union[ConfigurationParams, List[ConfigurationParams]]
Configuration Data
paramID: Optional[GenericID]
[Optional] Parameter ID

Returns:

str

Example:
    resources = Resources()
    # Create new parameter
    result = resources.devices.paramSet("device-id-123", {
        "key": "threshold",
        "value": "25.5",
        "sent": False
    })
    # Update existing parameter
    result = resources.devices.paramSet("device-id-123", {
        "key": "threshold",
        "value": "30.0",
        "sent": False
    }, "param-id-456")
    print(result)  # Successfully Updated

sendDeviceData

Sends data to a device. Accepts a single data object or an array of data objects.

See:

Parameters:

deviceID: GenericID
Device ID
data: Union[DataCreate, List[DataCreate]]
An array or one object with data to be sent to TagoIO

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.sendDeviceData("device-id-123", {
        "variable": "temperature",
        "value": 25.5,
        "unit": "°C",
        "time": "2025-01-09 13:44:33",
        "location": {"lat": 42.2974279, "lng": -85.628292}
    })
    # Send multiple data points
    result = resources.devices.sendDeviceData("device-id-123", [
        {"variable": "temperature", "value": 25.5},
        {"variable": "humidity", "value": 60}
    ])
    print(result)  # Successfully Inserted

tokenCreate

Generates and retrieves a new authentication token for a device.

See:

Parameters:

deviceID: GenericID
Device ID
tokenParams: TokenData
Params for new token

Returns:

Example:
    resources = Resources()
    result = resources.devices.tokenCreate("device-id-123", {
        "name": "Production Token",
        "permission": "write",
        "expire_time": "never"
    })
    print(result)  # {'token': 'new-token-value', 'expire_date': None}

tokenDelete

Permanently deletes an authentication token.

See:

Parameters:

Token to delete

Returns:

str

Example:
    resources = Resources()
    result = resources.devices.tokenDelete("token-to-delete")
    print(result)  # Successfully Removed

tokenList

Retrieves a list of all authentication tokens for a device with optional filtering.

See:

Parameters:

deviceID: GenericID
Device ID
queryObj: Optional[ListDeviceTokenQuery]
[Optional] Search query params

Returns:

Example:
    resources = Resources()
    tokens = resources.devices.tokenList("device-id-123", {
        "page": 1,
        "amount": 20,
        "fields": ["name", "token", "permission"],
        "orderBy": ["created_at", "desc"]
    })
    print(tokens)  # [{'name': 'Default Token', 'token': '...', 'permission': 'full', ...}]