import network
import time
from machine import Pin
from utelegram import Bot

TOKEN =("7367312964:AAFCAphBlJpKytgMVACmuQweBGIvJwH1vfc")

bot = Bot(TOKEN)

# Pines de los relés
rele1 = Pin(18, Pin.OUT)
rele2 = Pin(19, Pin.OUT)
rele3 = Pin(33, Pin.OUT)
rele4 = Pin(22, Pin.OUT)
rele5 = Pin(23, Pin.OUT)
rele6 = Pin(25, Pin.OUT)
rele7 = Pin(26, Pin.OUT)

sensorM = Pin(21, Pin.IN, Pin.PULL_DOWN)
sensorM2 = Pin(5,Pin.IN, Pin.PULL_DOWN)

def conectarWIFI(red, password):
    global miRed
    miRed = network.WLAN(network.STA_IF)
    if not miRed.isconnected():
        miRed.active(True)
        miRed.connect(red, password)
        print('Conectandose a la red', red + "...")
        timeout = time.time()
        while not miRed.isconnected():
            if time.ticks_diff(time.time(), timeout) > 10:
                return False
    return True

def control_reles(estado):
    relays = [rele1, rele2, rele3, rele4, rele5, rele6, rele7]
    for rele in relays:
        if estado == "on":
            rele.value(1)
        else:
            rele.value(0)

def control_rele(update, rele, estado):
    if estado == "on":
        rele.value(1)
        update.reply("Luz encendida")
        print("Luz encendida")
    else:
        rele.value(0)
        update.reply("Luz apagada")
        print("Luz apagada")

if conectarWIFI("Wokwi-GUEST", ""):
    print("Conexión exitosa!")
    print("Datos de la red (IP/netmask/gw/DNS):", miRed.ifconfig())
    print("Ya está conectado, puede hacer pruebas")

    @bot.add_message_handler("Menu")
    def menu(update):
        update.reply("Comandos disponibles:\n"
            "OnCuarto1 - Encender Habitación 1\n"
            "OffCuarto1 - Apagar Habitación 1\n"
            "OnCuarto2 - Encender Habitación 2\n"
            "OffCuarto2 - Apagar Habitación 2\n"
            "OnCocina - Encender Cocina\n"
            "OffCocina - Apagar Cocina\n"
            "OnSala - Encender Sala\n"
            "OffSala - Apagar Sala\n"
            "OnPasillo - Encender Pasillo\n"
            "OffPasillo - Apagar Pasillo\n"
            "OnPatioF - Encender Patio Frontal\n"
            "OffPatioF - Apagar Patio Frontal\n"
            "OnPatioT - Encender Patio Trasero\n"
            "OffPatioT - Apagar Patio Trasero\n"
            "OnTodo - Encender Todas las Luces\n"
            "OffTodo - Apagar Todas las Luces")

    @bot.add_message_handler("OnTodo")
    def on_all(update):
        control_reles("on")
        update.reply("Todas las luces están encendidas.")
        print("Todas las luces están encendidas.")

    @bot.add_message_handler("OffTodo")
    def off_all(update):
        control_reles("off")
        update.reply("Todas las luces están apagadas.")
        print("Todas las luces están apagadas.")

    @bot.add_message_handler("OnCuarto1")
    def on1(update): control_rele(update, rele1, "on")

    @bot.add_message_handler("OffCuarto1")
    def off1(update): control_rele(update, rele1, "off")

    @bot.add_message_handler("OnCuarto2")
    def on2(update): control_rele(update, rele2, "on")

    @bot.add_message_handler("OffCuarto2")
    def off2(update): control_rele(update, rele2, "off")

    @bot.add_message_handler("OnCocina")
    def on3(update): control_rele(update, rele3, "on")

    @bot.add_message_handler("OffCocina")
    def off3(update): control_rele(update, rele3, "off")

    @bot.add_message_handler("OnSala")
    def on4(update): control_rele(update, rele4, "on")

    @bot.add_message_handler("OffSala")
    def off4(update): control_rele(update, rele4, "off")

    @bot.add_message_handler("OnPasillo")
    def on5(update): control_rele(update, rele5, "on")

    @bot.add_message_handler("OffPasillo")
    def off5(update): control_rele(update, rele5, "off")

    @bot.add_message_handler("OnPatioF")
    def on6(update): control_rele(update, rele6, "on")

    @bot.add_message_handler("OffPatioF")
    def off6(update): control_rele(update, rele6, "off")

    @bot.add_message_handler("OnPatioT")
    def on7(update): control_rele(update, rele7, "on")

    @bot.add_message_handler("OffPatioT")
    def off7(update): control_rele(update, rele7, "off")

    bot.start_loop()

else:
    print("Imposible conectar")
    miRed.active(False)
$abcdeabcde151015202530fghijfghij
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module