plexus-python 0.11.4__py3-none-any.whl → 0.11.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- plexus/__init__.py +1 -1
- plexus/_skills/plexus/SKILL.md +5 -6
- {plexus_python-0.11.4.dist-info → plexus_python-0.11.5.dist-info}/METADATA +4 -2
- {plexus_python-0.11.4.dist-info → plexus_python-0.11.5.dist-info}/RECORD +7 -7
- {plexus_python-0.11.4.dist-info → plexus_python-0.11.5.dist-info}/WHEEL +1 -1
- {plexus_python-0.11.4.dist-info → plexus_python-0.11.5.dist-info}/entry_points.txt +0 -0
- {plexus_python-0.11.4.dist-info → plexus_python-0.11.5.dist-info}/licenses/LICENSE +0 -0
plexus/__init__.py
CHANGED
plexus/_skills/plexus/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plexus
|
|
3
|
-
description: Integrate with the Plexus telemetry API — send data, query metrics, subscribe to live streams
|
|
3
|
+
description: Integrate with the Plexus telemetry API — send data, query metrics, subscribe to live streams. Use when the user mentions Plexus, plexus.company, gateway.plexus.company, plexus-data-api.fly.dev, or plx_ API keys. ALSO USE when the request involves IoT/hardware telemetry, fleet observability, sending sensor data to a backend, querying device time-series, building a fleet dashboard, monitoring drones/satellites/robots/edge devices, or any phrase like "send my sensor readings somewhere", "store telemetry", "track a fleet", "ingest metrics", or "device observability" — even if "Plexus" is never said.
|
|
4
4
|
tools: Read, Write, Edit, Bash, WebFetch
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ Plexus is a telemetry/observability platform for hardware fleets (drones, satell
|
|
|
13
13
|
Trigger on any of:
|
|
14
14
|
|
|
15
15
|
- The user mentions "Plexus", "plexus.company", `plx_` keys, `gateway.plexus.company`, or `plexus-data-api.fly.dev`
|
|
16
|
-
- The user wants to ingest telemetry, query device metrics, stream live points
|
|
16
|
+
- The user wants to ingest telemetry, query device metrics, or stream live points
|
|
17
17
|
- The user is building a dashboard, alert pipeline, or analysis on top of fleet telemetry
|
|
18
18
|
- The user pastes a Plexus curl example and asks for help
|
|
19
19
|
|
|
@@ -27,7 +27,7 @@ Two base URLs. Authenticate with an `x-api-key` header on HTTP.
|
|
|
27
27
|
| Purpose | Host |
|
|
28
28
|
| -------------------------------------------------- | -------------------------------- |
|
|
29
29
|
| Ingest | `https://gateway.plexus.company` |
|
|
30
|
-
| Read API (sources, metrics, logs, fleet,
|
|
30
|
+
| Read API (sources, metrics, logs, fleet, live stream) | `https://plexus-data-api.fly.dev` |
|
|
31
31
|
|
|
32
32
|
```
|
|
33
33
|
x-api-key: plx_...
|
|
@@ -141,9 +141,9 @@ You do **not** need to answer application-level pings on this endpoint; keepaliv
|
|
|
141
141
|
|
|
142
142
|
The gateway's own sockets (`/ws/device`, `/ws/browser`) are for the Python SDK and the Plexus app respectively. Don't write third-party clients against them. There is no `/v1/stream` on the gateway.
|
|
143
143
|
|
|
144
|
-
### Control
|
|
144
|
+
### Control
|
|
145
145
|
|
|
146
|
-
`POST /v1/sources/{id}/commands`
|
|
146
|
+
There is no API for sending commands to devices. `POST /v1/sources/{id}/commands` was turned off and returns `410 Gone`. Don't write code that calls it, and don't offer to trigger device behavior through the API.
|
|
147
147
|
|
|
148
148
|
## Standard scaffolding
|
|
149
149
|
|
|
@@ -216,7 +216,6 @@ let the pipeline settle first.
|
|
|
216
216
|
- **Telemetry frames are batched** — `points` is an array. Handling one frame as one point silently drops data.
|
|
217
217
|
- `start`/`end` are **ISO date-times on every endpoint** that takes them — `query`, `logs` and `fleet/metrics` alike. `last=1h` is easier and works on all three.
|
|
218
218
|
- `auto_downsampled: true` in a query response means the bucket size was picked for you — surface it in the UI so users understand what they're looking at.
|
|
219
|
-
- Commands queue on the device; they don't execute synchronously. Don't promise the user "it rebooted" — promise "reboot queued".
|
|
220
219
|
|
|
221
220
|
## When unsure
|
|
222
221
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: plexus-python
|
|
3
|
-
Version: 0.11.
|
|
3
|
+
Version: 0.11.5
|
|
4
4
|
Summary: Thin Python SDK for Plexus — send telemetry in one line
|
|
5
5
|
Project-URL: Homepage, https://plexus.company
|
|
6
6
|
Project-URL: Documentation, https://docs.plexus.company
|
|
@@ -255,7 +255,7 @@ px.send("temperature", 72.5, timestamp=t) # your timestamp, used as-is, no cor
|
|
|
255
255
|
By default the SDK connects over a **WebSocket** to `/ws/device` on the gateway — the gateway's device wire protocol. This gives you:
|
|
256
256
|
|
|
257
257
|
- lower-latency streaming of telemetry,
|
|
258
|
-
-
|
|
258
|
+
- the channel that will carry actions triggered from a Plexus dashboard.
|
|
259
259
|
|
|
260
260
|
If the socket is unavailable, sends transparently fall back to `POST /ingest` so no data is lost.
|
|
261
261
|
|
|
@@ -283,6 +283,8 @@ px.send("temperature", 72.5) # opens the socket, waits for auth
|
|
|
283
283
|
|
|
284
284
|
The SDK sends an `ack` frame before invoking the handler, then a `result` frame with whatever the handler returns (or an `error` frame if it raises).
|
|
285
285
|
|
|
286
|
+
> **Note:** nothing in Plexus can currently trigger a custom handler. The API route for sending commands was turned off on 2026-09-21. Triggering handlers from a dashboard, with permissions and a record of every run, is being rebuilt.
|
|
287
|
+
|
|
286
288
|
## Environment Variables
|
|
287
289
|
|
|
288
290
|
| Variable | Description | Default |
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
plexus/__init__.py,sha256=
|
|
1
|
+
plexus/__init__.py,sha256=m5CEi_FQT7_gW36vrWebsu0F1i8xwvmVu6w6580i8lc,808
|
|
2
2
|
plexus/_log.py,sha256=3fjXrHFZghQ_17umMcvDUjjTH6aTQB3J4SpVDBiH03w,335
|
|
3
3
|
plexus/batching.py,sha256=mPMa3m9xK-DCwRmuyL_aqaTltimIOtwoDzz4PfKWyh8,10452
|
|
4
4
|
plexus/buffer.py,sha256=UNv_jEcrDwbkjJ6uhCehb7uBI2EuFEwO40waDpZn_5I,9579
|
|
@@ -9,11 +9,11 @@ plexus/ws.py,sha256=xQhJCOizX-V34tF3-r7Zpzs_wnBbNSCeEoZeFFXWH7E,19763
|
|
|
9
9
|
plexus/cameras/__init__.py,sha256=AVu1vE1xfYk9lz1cprHlTfi0ieHf84UhQh9Z92E05b8,490
|
|
10
10
|
plexus/cameras/thermal.py,sha256=-klCEJQG5GlLtELaowWOPYomwMsLK8O5pmmX0PqUrTA,12022
|
|
11
11
|
plexus/_skills/README.md,sha256=9TNo9mssmBiBPkrYBiA2JJHWOIAEw6DvCWCYAvfzmjM,3243
|
|
12
|
-
plexus/_skills/plexus/SKILL.md,sha256=
|
|
12
|
+
plexus/_skills/plexus/SKILL.md,sha256=imC6CuWSItyN3j_5YSxfhvMTSxz3Qo5xBN2ewlO4Fdg,13459
|
|
13
13
|
plexus/_skills/plexus-dashboard/SKILL.md,sha256=8xjdvI3orM31XHTLv1fSAWstCGMwt1HnEbo0SlpTxV4,9508
|
|
14
14
|
plexus/_skills/plexus-firmware/SKILL.md,sha256=C5tOGu0_LOb76n8US2SLpWSdZdeHQIa4e_5fvkX4DGU,12093
|
|
15
|
-
plexus_python-0.11.
|
|
16
|
-
plexus_python-0.11.
|
|
17
|
-
plexus_python-0.11.
|
|
18
|
-
plexus_python-0.11.
|
|
19
|
-
plexus_python-0.11.
|
|
15
|
+
plexus_python-0.11.5.dist-info/METADATA,sha256=-iTng_ciXZM_KAUTE-9Yb8XfLyFYLRkxmzslRnS7Ve4,13784
|
|
16
|
+
plexus_python-0.11.5.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
17
|
+
plexus_python-0.11.5.dist-info/entry_points.txt,sha256=YlkOtTn_7Q_IGuJaKdvpU-90dCeBSPx2p_UTGMAz5Zs,43
|
|
18
|
+
plexus_python-0.11.5.dist-info/licenses/LICENSE,sha256=nm3qP1F-JAGcfLpRVtIX24L20LMnRpxmZ2oKZzFpLVo,10755
|
|
19
|
+
plexus_python-0.11.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|