import network
import socket
import machine
import time

ipRequerant = '192.168.1.104'
tempsImmeuble = 4
tempsEntree = 2

immeuble = machine.Pin(4, machine.Pin.OUT)
entree = machine.Pin(8, machine.Pin.OUT)

immeuble.off()
entree.off()

ssid = 'Livebox-LMP'
password = '2357111317192329'

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)

while not wlan.isconnected():
    time.sleep(1)
print('Connecté au Wi-Fi, IP:', wlan.ifconfig()[0])

addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)

print('Serveur démarré, en écoute sur', addr)

while True:
    cl, addr = s.accept()
    requete = cl.recv(1024).decode()
    print('Requête reçue de', addr, ':', requete)

    if addr[0] != ipRequerant:
        cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nRequérant inconnu.')
        cl.close()
    
    elif 'GET /immeuble' in requete:
        immeuble.on()
        cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nEffectué.')
        cl.close()
        time.sleep(tempsImmeuble)
        immeuble.off()
    
    elif 'GET /entree' in requete:
        entree.on()
        cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nEffectué.')
        cl.close()
        time.sleep(tempsEntree)
        entree.off()
    
    else:
        cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nRequête inconnue.')
        cl.close()    

