20-sep: [scripts] Script de RPi actualizado para usar PyP100 sincronos en lugar de plugp100 asyncio

This commit is contained in:
juanminsanz
2026-09-20 20:20:35 +02:00
parent 63d33acab9
commit aab08f5fce

View File

@@ -1,36 +1,41 @@
import os
import time
import asyncio
from wakeonlan import send_magic_packet
from plugp100.api.tapo_client import TapoClient
from plugp100.api.plug_device import PlugDevice
from PyP100 import PyP100
from dotenv import load_dotenv
load_dotenv()
# Credenciales de TAPO (leer del entorno en la Raspberry)
TAPO_USER = os.getenv("TAPO_USER")
TAPO_PASS = os.getenv("TAPO_PASS")
TAPO_IP = os.getenv("TAPO_IP") # La IP local del enchufe Tapo
TAPO_USER = os.getenv('TAPO_USER', '')
TAPO_PASS = os.getenv('TAPO_PASS', '')
TAPO_IP = os.getenv('TAPO_IP', '')
# MAC detectada de la placa base del sobremesa
PC_MAC = "74-56-3C-CB-0E-CE"
PC_MAC = '74-56-3C-CB-0E-CE'
async def main():
print("1. Encendiendo monitor via Tapo...")
def main():
print('1. Encendiendo monitor via Tapo...')
try:
client = TapoClient(TAPO_USER, TAPO_PASS)
device = PlugDevice(client, TAPO_IP)
await device.login()
await device.turn_on()
print(" -> Enchufe Tapo encendido correctamente.")
if TAPO_USER and TAPO_PASS and TAPO_IP:
p100 = PyP100.P100(TAPO_IP, TAPO_USER, TAPO_PASS)
p100.handshake()
p100.login()
p100.turnOn()
print(' -> Enchufe Tapo encendido correctamente.')
else:
print(' -> Saltando Tapo: Faltan credenciales o IP en el .env.')
except Exception as e:
print(f" -> Error al encender Tapo: {e}")
print(' -> Error al encender Tapo: ' + str(e))
print("2. Esperando 3 segundos para estabilidad eléctrica...")
print('2. Esperando 3 segundos para estabilidad eléctrica...')
time.sleep(3)
print(f"3. Enviando paquete Wake-On-LAN al PC (MAC: {PC_MAC})...")
# Broadcast global para asegurar que llega de la 192.168.50.x a la 192.168.1.x
print('3. Enviando paquete Wake-On-LAN al PC (MAC: ' + PC_MAC + ')...')
# Broadcast global para asegurar que llega a la 192.168.1.x
send_magic_packet(PC_MAC, ip_address='255.255.255.255')
print(" -> Comando de arranque enviado con éxito.")
send_magic_packet(PC_MAC, ip_address='192.168.1.255')
print(' -> Comando de arranque enviado con éxito.')
if __name__ == "__main__":
asyncio.run(main())
if __name__ == '__main__':
main()