Skip to main content

edgelens-robot

Robot Framework library for the EdgeLens Edge AI Device Farm. Keyword- driven wrapper around the Python SDK — write Request Device, Deploy Model, Run Inference, and let Robot drive the camera.

Counterpart to edgelens-pytest for pytest users and @edgelens/playwright-plugin for JS/TS.

Install

pip install edgelens-robot

Requires Python 3.9+ and Robot Framework 6.0+.

Quickstart

*** Settings ***
Library             EdgeLensLibrary    api_key=%{EDGELENS_API_KEY}
Suite Teardown      Release Device

*** Test Cases ***
Camera Renders The Test Pattern
    Request Device    os=stock-os
    Deploy Model    ./face.cvimodel
    Start Inference
    ${stats}=    Run Inference    duration=30
    Should Be True    ${stats}[fps][avg] > 15

Run it:

EDGELENS_API_KEY=el_test_xxx robot tests/

Keywords

Session lifecycle

Keyword Arguments Returns
Request Device device_type=recamera-2002, os=stock-os, timeout=3600, wait_timeout=300 Session id
Release Device — (no-op if no session)
Get Session Id — Session id
Get Session Status — Refreshes + returns status string

Device operations

Keyword Arguments Returns
Execute On Device command, timeout=60.0 {stdout, stderr, exit_code} dict
Deploy Model model, config=None, files=None dict
Get SSH Details — {user, host, port} dict
Set SSH Password Variable name=${SSH_PASSWORD}, scope=TEST Sets the variable without logging the value
Get SSH Password — Password string; Robot logs the assigned value at INFO, so prefer Set SSH Password Variable
Get Device Info — full info report dict
Get Stream URL — URL string (stock OS only)

Display

Keyword Arguments
Play On Display source, loop=False
Show On Display source
Stop Display —
Get Display Status — → {ready, state, source}

Inference (stock OS only)

Keyword Arguments
Start Inference —
Stop Inference —
Run Inference Once — → detection dict
Get Inference Stats — → snapshot dict
Run Inference duration=30.0, collect_frames=False → full stats dict

Library scope

Default is SUITE — one camera per suite, shared across every test in the file. The right tradeoff for read-only suites where allocation takes 30s+. Override on the Library line:

Library    EdgeLensLibrary    scope=TEST     # fresh camera per test
Library    EdgeLensLibrary    scope=GLOBAL   # one camera across the whole run

Configuration

Argument Default Purpose
api_key %{EDGELENS_API_KEY} API key. Pass via env or library import.
base_url — Self-hosted EdgeLens deployments.
scope SUITE SUITE / TEST / GLOBAL.

CI

The edgelensai/edgelens-sdk image ships Robot Framework — drop the library in and you're set:

GitHub Actions

- uses: edgelens-ai/edgelens-sdk/ci/github-action@v0.2.1
  with:
    api-key: ${{ secrets.EDGELENS_API_KEY }}
    command: robot --output output.xml tests/
    junit-file: output.xml

GitLab CI

include:
  - remote: "https://raw.githubusercontent.com/edgelens-ai/edgelens-sdk/main/ci/gitlab/edgelens.gitlab-ci.yml"

edgelens-robot:
  extends: .edgelens:robot

Develop

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest

See also

Pairs with edgelens-pytest and @edgelens/playwright-plugin.

Metadata

Release files for edgelens-robot 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for edgelens-robot 0.2.1
File Size Uploaded Provenance Actions
edgelens_robot-0.2.1.tar.gz 6.9 kB With provenance Details for edgelens_robot-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for edgelens-robot 0.2.1
File Interpreter ABI Platform Actions
edgelens_robot-0.2.1-py3-none-any.whl Python 3 none any Details for edgelens_robot-0.2.1-py3-none-any.whl

Total release size: 15.1 kB

Release files / edgelens_robot-0.2.1.tar.gz

Download URL edgelens_robot-0.2.1.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b39624724ca5426f76e4990a476246d5c5a772769988739cd252c04842a8f3af
BLAKE2b-256 checksum
How to use checksums
ac5e775ab6d5cc165414d5f02ba6329aab5b4ce08230e21cf51e545b83293fd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / edgelens_robot-0.2.1-py3-none-any.whl

Download URL edgelens_robot-0.2.1-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1038147f8892099cd12d93b01c7c4ff681932d146ace85566351037ebdd2939b
BLAKE2b-256 checksum
How to use checksums
eb1ccee5bea3f2c0c361657176a18e97d867f28817f20133fa43845c34f2e185
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Security for edgelens-robot 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for edgelens_robot-0.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page