03-oct: migracion juanjo - rutas dinamicas (.py/.ps1/.ts) + changelog (apps, OmniRoute 3.8.51, UFW 5001)

This commit is contained in:
Juanjo Minguez
2026-10-03 22:24:12 +02:00
parent 3f20313f6d
commit a75211cd05
17 changed files with 104 additions and 41 deletions

View File

@@ -5,13 +5,10 @@
## Pendientes de replicar
- **2026-09-30-fix-telegram-watcher-telethon-1-44-encoding-utf-8** [watchers] Fix telegram_watcher (telethon 1.44 + encoding UTF-8) (aplicado en: portatil)
- **2026-10-02-superguardado-py-protocolo-guardado-total-automatico-portati** [scripts] superguardado.py: protocolo guardado total automatico portatil+sobremesa (aplicado en: portatil)
- **2026-10-03-superwhisper-enter-ahk-f13-boton-auxiliar-logitech-tarea-pro** [scripts] SuperWhisper Enter: AHK F13 boton auxiliar Logitech + tarea programada (aplicado en: portatil)
- **2026-10-03-monitor-de-estado-telegram-correo-jira-en-segundo-plano** [servicios] Monitor de estado (Telegram + correo + Jira) en segundo plano (aplicado en: portatil)
- **2026-10-03-acceso-remoto-al-sobremesa-openssh-server-tailscale-ssh-powe** [servicios] Acceso remoto al sobremesa: OpenSSH Server + Tailscale (ssh -> PowerShell) (aplicado en: portatil)
- **2026-10-03-voicemonkey-sustituido-por-home-assistant-alexa** [servicios] VoiceMonkey sustituido por Home Assistant (Alexa) (aplicado en: portatil)
- **2026-10-03-omniroute-3-8-48-3-8-51-fix-catalogo-live-antigravity** [omniroute] OmniRoute 3.8.48 -> 3.8.51: fix catalogo live antigravity (aplicado en: portatil)
- **2026-10-03-perfil-juanjo-instaladas-dependencias-python-21-paquetes-en-** [scripts] Perfil juanjo: instaladas dependencias Python (21 paquetes) en C:\Python314 (aplicado en: sobremesa)
- **2026-10-03-sobremesa-juanjo-instaladas-17-apps-de-usuario-que-estaban-e** [scripts] Sobremesa juanjo: instaladas 17 apps de usuario que estaban en juanm (aplicado en: sobremesa)
- **2026-10-03-migracion-cuenta-juanjo-rutas-juanm-dinamicas-os-path-expand** [scripts] Migracion cuenta juanjo: rutas juanm -> dinamicas (os.path.expanduser / \C:\Users\juanjo / USERPROFILE) (aplicado en: sobremesa)
## Historial
@@ -28,7 +25,7 @@
- **Equipo**: portatil
- **Categoria**: servicios
- **Transferible**: si
- **Aplicado en**: portatil
- **Aplicado en**: portatil, sobremesa
- **Detalle**: Proceso Python (scripts/monitor_estado.py) que cada 30 min recoge Telegram (5 fuentes), correo jminguez@prolongo.es y Jira DS (nuevos + sin asignar), archiva por fuente, resume con IA (OmniRoute) y avisa por voz local. Arranque por tarea programada 'Monitor Estado' + plugin global monitor-estado-bootstrap.ts; watchdog idempotente; sesion Telegram dedicada (sessions/monitor, login por QR); tests pytest en tests/. Requiere en el otro equipo: pip install pytest qrcode, login Telegram QR y re-ejecutar instalar_global.ps1.
### 2026-10-03 · Acceso remoto al sobremesa: OpenSSH Server + Tailscale (ssh -> PowerShell)
@@ -36,7 +33,7 @@
- **Equipo**: portatil
- **Categoria**: servicios
- **Transferible**: si
- **Aplicado en**: portatil
- **Aplicado en**: portatil, sobremesa
- **Detalle**: Scripts en scripts/acceso_remoto/: setup_tailscale.ps1 (malla privada) y setup_ssh_server.ps1 (OpenSSH Server, shell PowerShell, firewall solo Tailscale+LAN, instala clave publica). Clave SSH del portatil: ~/.ssh/id_ed25519. Doc: docs/ACCESO_REMOTO_SOBREMESA.md. Permite ssh juanm@sobremesa desde cualquier red sin abrir puertos. Requiere en cada equipo: ejecutar setup_tailscale; en el sobremesa ademas setup_ssh_server (admin).
### 2026-10-03 · VoiceMonkey sustituido por Home Assistant (Alexa)
@@ -44,7 +41,7 @@
- **Equipo**: portatil
- **Categoria**: servicios
- **Transferible**: si
- **Aplicado en**: portatil
- **Aplicado en**: portatil, sobremesa
- **Detalle**: Validado con efecto real (anuncio por voz + comando 'apaga/enciende barras'). Nuevo helper biblioteca/scripts/ha_alexa.py (announce/command via HA REST). Migrados: netatmo_tool.notificar_alexa, telegram_read_tracker.notificar_alexa, protocolo_apagado.py y protocolo_apagado_test.py (apagar_luces_alexa). .env: +HOMEASSISTANT_URL/TOKEN (long-lived), -VOICEMONKEY_TOKEN/DEVICE. Obsoletos: alexa_notify.js, configurar_voicemonkey.py. Requiere en el otro equipo: git pull + tener HOMEASSISTANT_TOKEN en .env.
### 2026-10-03 · OmniRoute 3.8.48 -> 3.8.51: fix catalogo live antigravity
@@ -52,7 +49,7 @@
- **Equipo**: portatil
- **Categoria**: omniroute
- **Transferible**: si
- **Aplicado en**: portatil
- **Aplicado en**: portatil, sobremesa
- **Detalle**: Actualizado omniroute a 3.8.51 (npm i -g omniroute@latest). Ahora valida contra el 'active live catalog' de Antigravity: los modelos deprecados (gemini-3.5-flash-*, gemini-2.5-*, claude-* en antigravity) devuelven HTTP 400 en vez de texto de deprecacion. Funcionan: gemini-3.1-pro-low/high, gemini-3.1-flash-lite, gemini-pro-agent, gpt-oss-120b-medium. Servidor relanzado via omniroute_watchdog.ps1 -Once.
### 2026-10-03 · Fix ACL setup_ssh_server.ps1 (SIDs, no nombres en ingles)
@@ -63,12 +60,36 @@
- **Aplicado en**: sobremesa
- **Detalle**: icacls fallaba en Windows es-ES al usar BUILTIN\Administrators; ahora usa *S-1-5-18 y *S-1-5-32-544. Aplicado y verificado en sobremesa (sshd Automatic/Running, key portatil autorizada).
### 2026-10-03 · Perfil juanjo: instaladas dependencias Python (21 paquetes) en C:\Python314
- **id**: `2026-10-03-perfil-juanjo-instaladas-dependencias-python-21-paquetes-en-`
- **Equipo**: sobremesa
- **Categoria**: scripts
- **Transferible**: si
- **Aplicado en**: sobremesa
- **Detalle**: Tras migrar a la cuenta juanjo, Python solo tenia pip. Instalados: pycryptodome PyP100 caldav python-dotenv edge-tts feedparser flask ftfy google-auth-oauthlib google-api-python-client openpyxl psutil qrcode requests telethon todoist-api-python urllib3 wakeonlan watchdog win10toast + setuptools<81 + pywin32. Necesario para watchers/tablero/Jira.
### 2026-10-03 · Sobremesa juanjo: instaladas 17 apps de usuario que estaban en juanm
- **id**: `2026-10-03-sobremesa-juanjo-instaladas-17-apps-de-usuario-que-estaban-e`
- **Equipo**: sobremesa
- **Categoria**: scripts
- **Transferible**: si
- **Aplicado en**: sobremesa
- **Detalle**: VS Code, GitHub Desktop, Postman, HeidiSQL, Inno Setup, FFmpeg, Rclone, WinDbg(pend), Obsidian, Ollama, Antigravity IDE, Claude, Discord, Telegram Desktop, Stremio, superwhisper, Greenshot. Via winget (ids del inventario docs/formateo/01-INVENTARIO_PROGRAMAS.md). Requiere winget elevado.
### 2026-10-03 · Migracion cuenta juanjo: rutas juanm -> dinamicas (os.path.expanduser / \C:\Users\juanjo / USERPROFILE)
- **id**: `2026-10-03-migracion-cuenta-juanjo-rutas-juanm-dinamicas-os-path-expand`
- **Equipo**: sobremesa
- **Categoria**: scripts
- **Transferible**: si
- **Aplicado en**: sobremesa
- **Detalle**: 50 ficheros .py + 8 .ps1 + 2 .ts: rutas C:\Users\juanm -> dinamicas para que funcionen en juanm (portatil) y juanjo (sobremesa). Incluye .env de INFRA scripts, gestion_jira, gestion_jira, contabo key, plugins opencode. Tambien: clave SSH contabo copiada, OmniRoute 3.8.51, UFW 5001 solo IP sobremesa, Google OAuth reautorizado.
### 2026-10-02 · superguardado.py: protocolo guardado total automatico portatil+sobremesa
- **id**: `2026-10-02-superguardado-py-protocolo-guardado-total-automatico-portati`
- **Equipo**: portatil
- **Categoria**: scripts
- **Transferible**: si
- **Aplicado en**: portatil
- **Aplicado en**: portatil, sobremesa
- **Detalle**: Script scripts/superguardado.py en biblioteca_negocio_prolongo. 7 pasos: ESTADO_DIARIO + git biblioteca + engram cloud + sync_continuo + obsidian + git INFRAESTRUCTURA + aviso sonoro. Palabra clave: superguardado/guarda/memoria. Descripcion auto si no se indica.
### 2026-09-30 · Fix telegram_watcher (telethon 1.44 + encoding UTF-8)
@@ -76,7 +97,7 @@
- **Equipo**: portatil
- **Categoria**: watchers
- **Transferible**: si
- **Aplicado en**: portatil
- **Aplicado en**: portatil, sobremesa
- **Detalle**: MessageRead(outbox=True) rompe en telethon 1.44 (kwarg eliminado) -> usar MessageRead(). Anadido reconfigure UTF-8 en stdout/stderr para evitar UnicodeEncodeError cp1252 al lanzar desde tarea programada sin PYTHONUTF8.
### 2026-09-29 · Migración de watchers al VPS

View File

@@ -198,7 +198,8 @@
"titulo": "Fix telegram_watcher (telethon 1.44 + encoding UTF-8)",
"transferible": true,
"aplicado_en": [
"portatil"
"portatil",
"sobremesa"
],
"detalle": "MessageRead(outbox=True) rompe en telethon 1.44 (kwarg eliminado) -> usar MessageRead(). Anadido reconfigure UTF-8 en stdout/stderr para evitar UnicodeEncodeError cp1252 al lanzar desde tarea programada sin PYTHONUTF8."
},
@@ -210,7 +211,8 @@
"titulo": "superguardado.py: protocolo guardado total automatico portatil+sobremesa",
"transferible": true,
"aplicado_en": [
"portatil"
"portatil",
"sobremesa"
],
"detalle": "Script scripts/superguardado.py en biblioteca_negocio_prolongo. 7 pasos: ESTADO_DIARIO + git biblioteca + engram cloud + sync_continuo + obsidian + git INFRAESTRUCTURA + aviso sonoro. Palabra clave: superguardado/guarda/memoria. Descripcion auto si no se indica."
},
@@ -234,7 +236,8 @@
"titulo": "Monitor de estado (Telegram + correo + Jira) en segundo plano",
"transferible": true,
"aplicado_en": [
"portatil"
"portatil",
"sobremesa"
],
"detalle": "Proceso Python (scripts/monitor_estado.py) que cada 30 min recoge Telegram (5 fuentes), correo jminguez@prolongo.es y Jira DS (nuevos + sin asignar), archiva por fuente, resume con IA (OmniRoute) y avisa por voz local. Arranque por tarea programada 'Monitor Estado' + plugin global monitor-estado-bootstrap.ts; watchdog idempotente; sesion Telegram dedicada (sessions/monitor, login por QR); tests pytest en tests/. Requiere en el otro equipo: pip install pytest qrcode, login Telegram QR y re-ejecutar instalar_global.ps1."
},
@@ -246,7 +249,8 @@
"titulo": "Acceso remoto al sobremesa: OpenSSH Server + Tailscale (ssh -> PowerShell)",
"transferible": true,
"aplicado_en": [
"portatil"
"portatil",
"sobremesa"
],
"detalle": "Scripts en scripts/acceso_remoto/: setup_tailscale.ps1 (malla privada) y setup_ssh_server.ps1 (OpenSSH Server, shell PowerShell, firewall solo Tailscale+LAN, instala clave publica). Clave SSH del portatil: ~/.ssh/id_ed25519. Doc: docs/ACCESO_REMOTO_SOBREMESA.md. Permite ssh juanm@sobremesa desde cualquier red sin abrir puertos. Requiere en cada equipo: ejecutar setup_tailscale; en el sobremesa ademas setup_ssh_server (admin)."
},
@@ -258,7 +262,8 @@
"titulo": "VoiceMonkey sustituido por Home Assistant (Alexa)",
"transferible": true,
"aplicado_en": [
"portatil"
"portatil",
"sobremesa"
],
"detalle": "Validado con efecto real (anuncio por voz + comando 'apaga/enciende barras'). Nuevo helper biblioteca/scripts/ha_alexa.py (announce/command via HA REST). Migrados: netatmo_tool.notificar_alexa, telegram_read_tracker.notificar_alexa, protocolo_apagado.py y protocolo_apagado_test.py (apagar_luces_alexa). .env: +HOMEASSISTANT_URL/TOKEN (long-lived), -VOICEMONKEY_TOKEN/DEVICE. Obsoletos: alexa_notify.js, configurar_voicemonkey.py. Requiere en el otro equipo: git pull + tener HOMEASSISTANT_TOKEN en .env."
},
@@ -270,7 +275,8 @@
"titulo": "OmniRoute 3.8.48 -> 3.8.51: fix catalogo live antigravity",
"transferible": true,
"aplicado_en": [
"portatil"
"portatil",
"sobremesa"
],
"detalle": "Actualizado omniroute a 3.8.51 (npm i -g omniroute@latest). Ahora valida contra el 'active live catalog' de Antigravity: los modelos deprecados (gemini-3.5-flash-*, gemini-2.5-*, claude-* en antigravity) devuelven HTTP 400 en vez de texto de deprecacion. Funcionan: gemini-3.1-pro-low/high, gemini-3.1-flash-lite, gemini-pro-agent, gpt-oss-120b-medium. Servidor relanzado via omniroute_watchdog.ps1 -Once."
},
@@ -285,6 +291,42 @@
"sobremesa"
],
"detalle": "icacls fallaba en Windows es-ES al usar BUILTIN\\Administrators; ahora usa *S-1-5-18 y *S-1-5-32-544. Aplicado y verificado en sobremesa (sshd Automatic/Running, key portatil autorizada)."
},
{
"id": "2026-10-03-perfil-juanjo-instaladas-dependencias-python-21-paquetes-en-",
"fecha": "2026-10-03",
"equipo": "sobremesa",
"categoria": "scripts",
"titulo": "Perfil juanjo: instaladas dependencias Python (21 paquetes) en C:\\Python314",
"transferible": true,
"aplicado_en": [
"sobremesa"
],
"detalle": "Tras migrar a la cuenta juanjo, Python solo tenia pip. Instalados: pycryptodome PyP100 caldav python-dotenv edge-tts feedparser flask ftfy google-auth-oauthlib google-api-python-client openpyxl psutil qrcode requests telethon todoist-api-python urllib3 wakeonlan watchdog win10toast + setuptools<81 + pywin32. Necesario para watchers/tablero/Jira."
},
{
"id": "2026-10-03-sobremesa-juanjo-instaladas-17-apps-de-usuario-que-estaban-e",
"fecha": "2026-10-03",
"equipo": "sobremesa",
"categoria": "scripts",
"titulo": "Sobremesa juanjo: instaladas 17 apps de usuario que estaban en juanm",
"transferible": true,
"aplicado_en": [
"sobremesa"
],
"detalle": "VS Code, GitHub Desktop, Postman, HeidiSQL, Inno Setup, FFmpeg, Rclone, WinDbg(pend), Obsidian, Ollama, Antigravity IDE, Claude, Discord, Telegram Desktop, Stremio, superwhisper, Greenshot. Via winget (ids del inventario docs/formateo/01-INVENTARIO_PROGRAMAS.md). Requiere winget elevado."
},
{
"id": "2026-10-03-migracion-cuenta-juanjo-rutas-juanm-dinamicas-os-path-expand",
"fecha": "2026-10-03",
"equipo": "sobremesa",
"categoria": "scripts",
"titulo": "Migracion cuenta juanjo: rutas juanm -> dinamicas (os.path.expanduser / \\C:\\Users\\juanjo / USERPROFILE)",
"transferible": true,
"aplicado_en": [
"sobremesa"
],
"detalle": "50 ficheros .py + 8 .ps1 + 2 .ts: rutas C:\\Users\\juanm -> dinamicas para que funcionen en juanm (portatil) y juanjo (sobremesa). Incluye .env de INFRA scripts, gestion_jira, gestion_jira, contabo key, plugins opencode. Tambien: clave SSH contabo copiada, OmniRoute 3.8.51, UFW 5001 solo IP sobremesa, Google OAuth reautorizado."
}
]
}

View File

@@ -23,7 +23,7 @@ import { existsSync } from "node:fs"
// Vigilante canonico (repo INFRAESTRUCTURA). Se puede sobreescribir con MONITOR_ESTADO_WATCHDOG.
const WATCHDOG =
process.env.MONITOR_ESTADO_WATCHDOG ??
"C:\\Users\\juanm\\Documents\\Github\\INFRAESTRUCTURA\\scripts\\monitor_estado_watchdog.ps1"
`${process.env.USERPROFILE}\\Documents\\Github\\INFRAESTRUCTURA\\scripts\\monitor_estado_watchdog.ps1`
const POWERSHELL =
process.env.SystemRoot

View File

@@ -23,7 +23,7 @@ import { existsSync } from "node:fs"
// Vigilante canonico (repo INFRAESTRUCTURA). Se puede sobreescribir con OMNIROUTE_WATCHDOG.
const WATCHDOG =
process.env.OMNIROUTE_WATCHDOG ??
"C:\\Users\\juanm\\Documents\\Github\\INFRAESTRUCTURA\\omniroute\\omniroute_watchdog.ps1"
`${process.env.USERPROFILE}\\Documents\\Github\\INFRAESTRUCTURA\\omniroute\\omniroute_watchdog.ps1`
const POWERSHELL =
process.env.SystemRoot

View File

@@ -9,12 +9,12 @@ Start-Transcript -Path $log -Force | Out-Null
Write-Output "=== BOOTSTRAP AUTOLOGON $(Get-Date -Format s) ==="
Write-Output "Usuario: $env:USERDOMAIN\$env:USERNAME"
$infra = 'C:\Users\juanm\Documents\Github\INFRAESTRUCTURA'
$bib = 'C:\Users\juanm\Documents\Github\biblioteca_negocio_prolongo'
$infra = Join-Path $env:USERPROFILE 'Documents\Github\INFRAESTRUCTURA'
$bib = Join-Path $env:USERPROFILE 'Documents\Github\biblioteca_negocio_prolongo'
$pwsh = Join-Path $env:SystemRoot 'System32\WindowsPowerShell\v1.0\powershell.exe'
# 1) Git: identidad + safe.directory (los repos son de otro usuario) + helper
git config --global user.name "juanminsanz"
git config --global user.name "Juanjo Minguez"
git config --global user.email "desarrollo@faccsa.es"
git config --global --add safe.directory '*'
git config --global credential.helper manager

View File

@@ -2,7 +2,7 @@ import requests
import os
from dotenv import load_dotenv
load_dotenv(r'C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env')
load_dotenv(os.path.expanduser('~/Documents/GitHub/biblioteca_negocio_prolongo/.env'))
url = os.getenv('HOMEASSISTANT_URL')
token = os.getenv('HOMEASSISTANT_TOKEN')

View File

@@ -15,7 +15,7 @@ if sys.platform == 'win32':
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')
# Cargar .env
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
def main():

View File

@@ -20,7 +20,7 @@ def check_homeassistant():
"""Verifica si Home Assistant esta corriendo en el VPS"""
try:
result = subprocess.run(
["ssh", "-i", r"C:\Users\juanm\Documents\GitHub\contabo",
["ssh", "-i", os.path.expanduser("~/Documents/GitHub/contabo"),
"root@185.187.169.109",
"docker ps | grep homeassistant | grep -q Up && echo OK || echo NOK"],
capture_output=True,
@@ -49,7 +49,7 @@ Add-Type -AssemblyName System.Windows.Forms
try:
subprocess.run([
"python",
r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\scripts\aviso_sonoro.py",
os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/scripts/aviso_sonoro.py"),
"ok"
])
except Exception:

View File

@@ -6,7 +6,7 @@ import urllib.request
from dotenv import load_dotenv
# Cargar variables de entorno locales (.env de biblioteca_negocio_prolongo)
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
# Permitir importar modulos del repo de negocio (ha_alexa).

View File

@@ -23,7 +23,7 @@ if sys.platform == 'win32':
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')
# Cargar variables de entorno locales (.env de biblioteca_negocio_prolongo)
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
def cerrar_ventanas():
@@ -101,7 +101,7 @@ p100.turnOff()"""
# Comando SSH en dos saltos: local -> VPS -> RPi
cmd = [
"ssh", "-i", r"C:\Users\juanm\Documents\GitHub\contabo",
"ssh", "-i", os.path.expanduser("~/Documents/GitHub/contabo"),
"root@185.187.169.109",
f"ssh -i /root/.ssh/pi_deploy -p 2222 -o StrictHostKeyChecking=no pi@127.0.0.1 'python3 -c \"{tapo_script}\"'"
]

View File

@@ -23,7 +23,7 @@ if sys.platform == 'win32':
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')
# Cargar variables de entorno locales (.env de biblioteca_negocio_prolongo)
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
def cerrar_ventanas():
@@ -101,14 +101,14 @@ p100.turnOff()"""
# Paso 1: Crear script en VPS
cmd1 = [
"ssh", "-i", r"C:\Users\juanm\Documents\GitHub\contabo",
"ssh", "-i", os.path.expanduser("~/Documents/GitHub/contabo"),
"root@185.187.169.109",
f"echo '{script_content}' > /tmp/tapo_off.py"
]
# Paso 2: Copiar a RPi y ejecutar
cmd2 = [
"ssh", "-i", r"C:\Users\juanm\Documents\GitHub\contabo",
"ssh", "-i", os.path.expanduser("~/Documents/GitHub/contabo"),
"root@185.187.169.109",
"scp -i /root/.ssh/pi_deploy -P 2222 -o StrictHostKeyChecking=no /tmp/tapo_off.py pi@127.0.0.1:/tmp/ && ssh -i /root/.ssh/pi_deploy -p 2222 -o StrictHostKeyChecking=no pi@127.0.0.1 'python3 /tmp/tapo_off.py'"
]

View File

@@ -23,7 +23,7 @@ if sys.platform == 'win32':
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')
# Cargar variables de entorno locales (.env de biblioteca_negocio_prolongo)
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
def cerrar_ventanas():
@@ -90,7 +90,7 @@ p100.turnOff()"""
# Comando SSH en dos saltos: local -> VPS -> RPi
cmd = [
"ssh", "-i", r"C:\Users\juanm\Documents\GitHub\contabo",
"ssh", "-i", os.path.expanduser("~/Documents/GitHub/contabo"),
"root@185.187.169.109",
f"ssh -i /root/.ssh/pi_deploy -p 2222 -o StrictHostKeyChecking=no pi@127.0.0.1 'python3 -c \"{tapo_script}\"'"
]

View File

@@ -24,7 +24,7 @@ if sys.platform == 'win32':
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')
# Cargar variables de entorno locales (.env de biblioteca_negocio_prolongo)
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
# Permitir importar modulos del repo de negocio (ha_alexa).
@@ -78,7 +78,7 @@ p100.turnOff()"""
# Comando SSH en dos saltos: local -> VPS -> RPi
cmd = [
"ssh", "-i", r"C:\Users\juanm\Documents\GitHub\contabo",
"ssh", "-i", os.path.expanduser("~/Documents/GitHub/contabo"),
"root@185.187.169.109",
f"ssh -i /root/.ssh/pi_deploy -p 2222 -o StrictHostKeyChecking=no pi@127.0.0.1 'python3 -c \"{tapo_script}\"'"
]

View File

@@ -12,7 +12,7 @@ from flask import Flask, request, jsonify
from dotenv import load_dotenv
# Cargar .env
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
app = Flask(__name__)

View File

@@ -20,7 +20,7 @@ from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Application, CommandHandler, CallbackQueryHandler, ContextTypes
# Cargar .env
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
# Configuración

View File

@@ -17,7 +17,7 @@ if sys.platform == 'win32':
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer, 'strict')
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
def enviar_comando_voz(echo_entity, comando):

View File

@@ -20,7 +20,7 @@ if sys.platform == 'win32':
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')
# Cargar .env
dotenv_path = r"C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\.env"
dotenv_path = os.path.expanduser("~/Documents/GitHub/biblioteca_negocio_prolongo/.env")
load_dotenv(dotenv_path)
def main():