operx-cli 0.11.1__tar.gz → 0.12.0__tar.gz
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.
- {operx_cli-0.11.1/operx_cli.egg-info → operx_cli-0.12.0}/PKG-INFO +33 -3
- operx_cli-0.11.1/PKG-INFO → operx_cli-0.12.0/README.md +344 -329
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/AGENTES.md +3 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/__init__.py +1 -1
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/connect.py +55 -1
- operx_cli-0.12.0/operx_cli/forwarding/__init__.py +2 -0
- operx_cli-0.12.0/operx_cli/forwarding/buffer.py +90 -0
- operx_cli-0.12.0/operx_cli/forwarding/read.py +193 -0
- operx_cli-0.12.0/operx_cli/forwarding/run.py +64 -0
- operx_cli-0.12.0/operx_cli/forwarding/send.py +114 -0
- operx_cli-0.12.0/operx_cli/forwarding/sources.py +306 -0
- operx_cli-0.11.1/README.md → operx_cli-0.12.0/operx_cli.egg-info/PKG-INFO +359 -315
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli.egg-info/SOURCES.txt +7 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli.egg-info/requires.txt +1 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/pyproject.toml +3 -1
- operx_cli-0.12.0/tests/test_forward.py +544 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/agent_guide.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/api_fields.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/app.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/browser_login.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/client.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/__init__.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/account.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/ambiental.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/articulos.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/avisos.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/campos.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/chat.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/common.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/completar.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/empresas.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/inventario.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/lecturas.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/muestreo.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/ordenes.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/personas.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/planta.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/preventivos.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/raw.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/registros.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/reportes.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/rutinas.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/search.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/sst.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/commands/update.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/lookup.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/output.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/record_completion.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/self_update.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/settings.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/shell.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/spreadsheet.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/updates.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/values.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli/welcome.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli.egg-info/dependency_links.txt +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli.egg-info/entry_points.txt +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/operx_cli.egg-info/top_level.txt +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/setup.cfg +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_agentes.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_api_campos.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_app.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_articulos.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_campos.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_cards.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_chat.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_client.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_completar.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_connect.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_daily_flows.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_inventario_lecturas.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_json_writes.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_login.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_logout_and_routes.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_lookup.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_more_of_the_api.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_muestreo.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_ordenes.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_output.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_personas.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_preventivos.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_record_completion.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_registros.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_rutinas.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_self_update.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_settings.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_shell.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_spreadsheet.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_sst_ambiental.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_updates.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_values.py +0 -0
- {operx_cli-0.11.1 → operx_cli-0.12.0}/tests/test_welcome.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: operx-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.0
|
|
4
4
|
Summary: La línea de comandos de OperX: tu empresa desde la terminal, con tu token de API.
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -8,6 +8,7 @@ Requires-Dist: typer>=0.27
|
|
|
8
8
|
Requires-Dist: httpx>=0.28
|
|
9
9
|
Requires-Dist: keyring>=25
|
|
10
10
|
Requires-Dist: openpyxl>=3.1
|
|
11
|
+
Requires-Dist: paho-mqtt>=2.2
|
|
11
12
|
Requires-Dist: prompt_toolkit>=3.0
|
|
12
13
|
Provides-Extra: test
|
|
13
14
|
Requires-Dist: pytest>=8; extra == "test"
|
|
@@ -224,8 +225,37 @@ operx connect mapear d-7f3k2m planta/comp2/temp --equipo "Compresor 2" --punto "
|
|
|
224
225
|
operx connect silenciar d-7f3k2m planta/comp2/temp --hasta "05/11/2026 18:00" --motivo "Mantenimiento"
|
|
225
226
|
```
|
|
226
227
|
|
|
227
|
-
Las claves de los dispositivos
|
|
228
|
-
|
|
228
|
+
Las claves de los dispositivos se crean y se ven solo en la app, en la
|
|
229
|
+
pestaña Clave del dispositivo: el CLI no las crea ni las muestra.
|
|
230
|
+
|
|
231
|
+
### Reenviar desde un computador de la planta
|
|
232
|
+
|
|
233
|
+
`operx connect forward` corre en un computador de la planta, sin parar: lee el
|
|
234
|
+
broker de la planta o una carpeta de archivos CSV y lo envía a OperX por HTTPS.
|
|
235
|
+
Lo que no puede enviar queda en ese computador, en orden, hasta que vuelve
|
|
236
|
+
internet.
|
|
237
|
+
|
|
238
|
+
```sh
|
|
239
|
+
operx connect forward "mqtt://localhost/planta/#" # el broker de la planta
|
|
240
|
+
operx connect forward "mqtts://broker.planta:8883/planta/#" --usuario lector --ca ca.crt
|
|
241
|
+
operx connect forward "C:\scada\exportes" # una carpeta de CSV
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
- Usa la clave de un dispositivo, no tu sesión: créalo en la app, en Agregar
|
|
245
|
+
dispositivo › «Computador de la planta» (hasta 300.000 valores al día). Ponla en la variable
|
|
246
|
+
`OPERX_DEVICE_KEY`, o te la pide sin mostrarla; nunca va como opción. La
|
|
247
|
+
clave del broker va en `OPERX_BROKER_CLAVE`.
|
|
248
|
+
- Cada tema es un canal (`planta/comp2/temp`); en un JSON, cada clave va bajo
|
|
249
|
+
su tema. De cada canal envía el primer valor de cada minuto.
|
|
250
|
+
- Un CSV lleva una columna Fecha y una columna por canal, o Fecha, Canal y
|
|
251
|
+
Valor. Lee lo nuevo de la carpeta cada 30 segundos.
|
|
252
|
+
- Lo que espera queda en la carpeta de `operx` (o en el archivo de `--datos`),
|
|
253
|
+
hasta 2 millones de valores. Cada minuto escribe una línea con lo leído, lo
|
|
254
|
+
enviado y lo que espera.
|
|
255
|
+
- Para que corra solo al prender el computador: el Programador de tareas de
|
|
256
|
+
Windows o un servicio de systemd, con la clave en `OPERX_DEVICE_KEY` y lo que
|
|
257
|
+
escribe guardado en un archivo. La guía «Desde un computador de la planta»
|
|
258
|
+
de Connect lo explica paso a paso.
|
|
229
259
|
|
|
230
260
|
SG-SST y Ambiental van por empresa: sin `--empresa`, la de tu cuenta. Si
|
|
231
261
|
llevas el SG-SST o lo ambiental de tus clientes, `operx sst empresas` y
|