04-oct: encender_sobremesa omite WoL por defecto (--wol opcional)

This commit is contained in:
minguezsanzjuanjose
2026-10-04 01:39:52 +02:00
parent 0e784be152
commit 7f67560a0a
2 changed files with 24 additions and 20 deletions

View File

@@ -24,13 +24,13 @@ Fecha: 03-oct-2026. Objetivo: **encender el sobremesa estando apagado y conectar
**2. Escalera de intentos** (en orden; comprobar el estado tras cada uno):
1. **Wake-on-LAN** — magic packet a la MAC `74:56:3C:CB:0E:CE`.
> Desde el portátil (`.50`) el magic packet **no cruza** a `.1` por el doble NAT → normalmente **falla**. Solo funcionaría desde un equipo en la red `.1`.
2. **Encender la regleta** (comando Alexa vía Home Assistant):
1. **Encender la regleta** (comando Alexa vía Home Assistant):
```powershell
python C:\Users\juanm\Documents\GitHub\biblioteca_negocio_prolongo\scripts\ha_alexa.py command "enciende regleta"
```
3. **Ciclo de regleta** (el **fiable**): apagar la regleta, esperar **1 min**, y volver a encenderla. Con `Restore on AC Power Loss = Power On` en BIOS, el PC **arranca solo**.
2. **Ciclo de regleta** (el **fiable**): apagar la regleta, esperar **1 min**, y volver a encenderla. Con `Restore on AC Power Loss = Power On` en BIOS, el PC **arranca solo**.
> **Wake-on-LAN: OMITIDO por defecto** (no cruza el doble NAT `.50`→`.1`). Se puede probar con `--wol`.
**3. Informar** (aviso voz Carolina) tras cada comprobación.

View File

@@ -4,14 +4,16 @@
Escalera de intentos (acordada):
0. Estado de la regleta (best-effort).
1. Si el PC esta apagado -> intento 1: Wake-on-LAN.
2. Si no responde -> intento 2: encender la regleta (comando Alexa via Home Assistant).
3. Si no responde -> intento 3: apagar la regleta 1 min y volver a encenderla
1. Encender la regleta (comando Alexa via Home Assistant).
2. Si no responde -> apagar la regleta 1 min y volver a encenderla
(BIOS 'Restore on AC Power Loss = Power On' -> arranca solo).
4. Informar por voz (Carolina) tras cada comprobacion.
3. Informar por voz (Carolina) tras cada comprobacion.
Nota: el Wake-on-LAN esta OMITIDO por defecto (no cruza el doble NAT);
se puede probar con --wol.
Uso:
python scripts/encender_sobremesa.py [--espera 120] [--no-voz]
python scripts/encender_sobremesa.py [--espera 120] [--wol] [--no-voz]
"""
from __future__ import annotations
@@ -142,6 +144,7 @@ def aviso(texto: str, voz: bool = True) -> None:
def main() -> int:
ap = argparse.ArgumentParser(description="Encendido remoto del sobremesa.")
ap.add_argument("--espera", type=int, default=120, help="Segundos por intento (defecto 120).")
ap.add_argument("--wol", action="store_true", help="Intentar Wake-on-LAN primero (por defecto omitido).")
ap.add_argument("--no-voz", action="store_true", help="Sin avisos de voz.")
args = ap.parse_args()
voz = not args.no_voz
@@ -155,22 +158,23 @@ def main() -> int:
aviso("El sobremesa ya estaba encendido.", voz)
return 0
# Intento 1 - Wake-on-LAN
print(f"-> Intento 1: Wake-on-LAN...")
wol()
if esperar_encendido(args.espera):
aviso("El sobremesa se ha encendido con Wake on LAN.", voz)
return 0
# Wake-on-LAN (opcional; por defecto OMITIDO para acelerar)
if args.wol:
print("-> Wake-on-LAN (opcional)...")
wol()
if esperar_encendido(args.espera):
aviso("El sobremesa se ha encendido con Wake on LAN.", voz)
return 0
# Intento 2 - encender regleta
print("-> Intento 2: encender regleta (Alexa)...")
# Encender regleta
print("-> Encender regleta (Alexa)...")
encender_regleta()
if esperar_encendido(args.espera):
aviso("El sobremesa se ha encendido al dar corriente la regleta.", voz)
return 0
# Intento 3 - ciclo de regleta (Power On Loss)
print("-> Intento 3: apagar regleta 1 min y volver a encender (Power On Loss)...")
# Ciclo de regleta (Power On Loss)
print("-> Apagar regleta 1 min y volver a encender (Power On Loss)...")
apagar_regleta()
time.sleep(60)
encender_regleta()
@@ -178,7 +182,7 @@ def main() -> int:
aviso("El sobremesa se ha encendido tras el ciclo de regleta. Power On Loss funciona.", voz)
return 0
aviso("No se ha podido encender el sobremesa ni con WoL ni con la regleta.", voz)
aviso("No se ha podido encender el sobremesa ni con la regleta ni por ciclo.", voz)
return 1