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.2
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.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| edgelens_robot-0.2.2.tar.gz | 6.9 kB | With provenance | Details for edgelens_robot-0.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| edgelens_robot-0.2.2-py3-none-any.whl | Python 3 | none | any | Details for edgelens_robot-0.2.2-py3-none-any.whl |
Total release size: 15.1 kB
Release files / edgelens_robot-0.2.2.tar.gz
| Download URL | edgelens_robot-0.2.2.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90871975a3b98e7379d44a0fd4e90d8b44f2954b8f40c493aba24a80aa3b915c
|
|
BLAKE2b-256 checksum How to use checksums |
e09ca6da906edb9e5f1ca51bc7879defcb16d20e0790fe43d15bf94fab1bc2a1
|
| 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 logRelease files / edgelens_robot-0.2.2-py3-none-any.whl
| Download URL | edgelens_robot-0.2.2-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b27618e174fffa57b0fc9494704ee224c7a9dd07f65ea96324ad7867507ddcd5
|
|
BLAKE2b-256 checksum How to use checksums |
1d43fd646e071367f168640074d378e0c4278a231d6a92e34957adbf9790c13a
|
| 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 logSecurity for edgelens-robot 0.2.2
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.
Attestation for edgelens_robot-0.2.2.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 logA 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.