42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import os
|
|
import time
|
|
from wakeonlan import send_magic_packet
|
|
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', '')
|
|
|
|
# MAC detectada de la placa base del sobremesa
|
|
PC_MAC = '74-56-3C-CB-0E-CE'
|
|
|
|
def main():
|
|
print('1. Encendiendo monitor via Tapo...')
|
|
try:
|
|
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(' -> Error al encender Tapo: ' + str(e))
|
|
|
|
print('2. Esperando 3 segundos para estabilidad eléctrica...')
|
|
time.sleep(3)
|
|
|
|
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')
|
|
send_magic_packet(PC_MAC, ip_address='192.168.1.255')
|
|
print(' -> Comando de arranque enviado con éxito.')
|
|
|
|
if __name__ == '__main__':
|
|
main()
|