20-sep: [scripts] Script de RPi actualizado para usar PyP100 sincronos en lugar de plugp100 asyncio
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user