Entrada de un Sensor (X) y dos salidas a reles

Hola de nuevo con todos ustedes.

Tengo una nueva inquietud que no me deja dormir durante días y no se como hacerlo.
EXPONGO:
En una entrada tengo un sensor (X) que cuando se activa lo hace por un tiempo indeterminado ( puede estar activo entre 5 minutos o 2 horas, por decir algo).

1º- Cuando se activa (SENSOR- LOW) enciende un led, pero quiero que éste sólo lo haga durante unos 20 segundos, y se apague. Independientemente de que siga activo el sensor.

2º- Cuando el sensor deje de estar activo, encienda otro led distinto, también por un tiempo de 20 segundos, y se apague.

3º- Cuando los pasos 1 y 2 se hayan ejecutados se quede todo en reposo (led apagados) hasta nueva activación del sensor.

Por favor me gustaría que las posibles respuestas fueran graficas y sencillas de entender para mi, y así poder aplicarlo al proyecto que tengo entre manos, quiero aprender pero me cuesta mucho.
GRACIAS por vuestra paciencia.

Gracias, por contestar, aunque me he quedado casi igual. Intentare seguir mirando.
Esto es lo que tengo hasta ahora. Comunicación directa entre dos esp8266-01.
Cliente- entrada sensor lluvia
SERVIDOR- Salida led
Mi nivel de programación es NULO

//SERVIDOR
#include <ESP8266WiFi.h>

const char WiFiClave[] = "";  //Sin clave
const char AP_Nombre[] = "ESP8266";

const int LED_PIN = 2; // rele 
int val;
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);
  WiFi.mode(WIFI_AP);
  WiFi.softAP(AP_Nombre, WiFiClave);   
  server.begin();
}

void loop() {
  WiFiClient client = server.available();   // ¿Hay un cliente conectado?
  if (!client) { return;}
  String req = client.readStringUntil('\r');  // Lee la primera linea de la petición del cliente
  if (req.indexOf("/led/0") != -1) val=0;
  if (req.indexOf("/led/1") != -1) val=1;
  digitalWrite(LED_PIN, val);  
  client.flush();
}