thx, Moppi,

das wesentliche - meldung und rückmeldung in verständlichen und auf dem fahrrad auch "erfahrbaren" signalen - funktioniert nun. hier der AP
Code:
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const int ledPin_rt =  D5;
const int ledPin_gn =  D6;
const int ledPin_bl =  D7;

int ledState_rt = LOW;
int ledState_gn = LOW;
int ledState_bl = LOW;

//int LED_rt = LOW;

long previousMillis_rt = 0;
long previousMillis_gn = 0;
long previousMillis_bl = 0;

long interval_rt = 100;
long interval_gn = 250;
long interval_bl = 50;

WiFiServer server(80);
IPAddress IP(192, 168, 4, 15);
IPAddress mask = (255, 255, 255, 0);

//adresse vom slave
IPAddress remoteIP(192, 168, 4, 114);

// remote port to listen on
unsigned int remotePort = 4210;

char befehl[10];

WiFiUDP Udp;

uint32_t aktMillis;
uint32_t prevMillis;

boolean ledStatus = false;

char udp_buffer[WIFICLIENT_MAX_PACKET_SIZE + 1];

void setup()
{

  pinMode(ledPin_rt, OUTPUT);
  pinMode(ledPin_gn, OUTPUT);
  pinMode(ledPin_bl, OUTPUT);

  Serial.begin(115200);

  //Inizialisiere WIFI
  WiFi.mode(WIFI_AP);
  WiFi.softAP("fahrrad_echo", "12345678");
  WiFi.softAPConfig(IP, IP, mask);

  digitalWrite(ledPin_bl, HIGH);
  delay(500);

  server.begin();

  Serial.println();
  Serial.println("accesspoint_fahrrad_echo");
  Serial.println("Server started.");
  Serial.print("IP: ");     Serial.println(WiFi.softAPIP());
  Serial.print("MAC:");     Serial.println(WiFi.softAPmacAddress());
}

void loop()
{

  // schalten der LEDs auf dem client
  aktMillis = millis();
  digitalWrite(ledPin_bl, LOW);
  if (aktMillis - prevMillis >= 500)
  {
    prevMillis = aktMillis;
    Serial.print("LED schalten auf ");
    if (ledStatus)
    {
      Serial.println("An");
      befehl[0] = 1;
    }
    else
    {
      Serial.println("Aus");
      befehl[0] = 0;
    }
    Udp.beginPacket(remoteIP, remotePort);
    Udp.write(befehl, 1);
    Udp.endPacket();
    ledStatus = !ledStatus;
  }

  WiFiClient client = server.available();
  if (!client)
  {
    return;
  }

  //schalten der LEDs auf dem server (echo empfang)
  byte request = client.read();
  Serial.println("********************************");
  Serial.print("From the station: ");
  Serial.println(request);
  client.flush();

  if ((request == 1) || (request == 255))
  {
    digitalWrite(ledPin_rt, LOW);
    digitalWrite(ledPin_gn, LOW);
    delay(100);
    // LED_rt = LOW;
  }

  digitalWrite(ledPin_gn, LOW);
  delay(100);
  //LED_rt = LOW;

  //if (LED_rt == LOW)
  {
    digitalWrite(ledPin_gn, HIGH);
    digitalWrite(ledPin_rt, LOW);
  }
}

void rt_blinken (void)
{

  unsigned long currentMillis_rt = millis();  // aktueller Wert rot
  if (currentMillis_rt - previousMillis_rt > interval_rt)
  {
    previousMillis_rt = currentMillis_rt;   // aktuellen Wert speichern
    ledState_rt = ((ledState_rt == LOW) ? HIGH : LOW); // toggeln
    digitalWrite(ledPin_rt, ledState_rt);   // LED ansteuern
  }
}
und hier der client
Code:
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const int ledPin_rt =  D5;
const int ledPin_gn =  D6;
const int ledPin_bl =  D7;

int ledState_rt = LOW;
int ledState_gn = LOW;
int ledState_bl = LOW;

long previousMillis_rt = 0;
long previousMillis_gn = 0;
long previousMillis_bl = 0;

long interval_rt = 100;
long interval_gn = 250;
long interval_bl = 50;

//Variablen deklarieren
byte echoPin = 4;                    // GPIO 4 wird mit einem "echoPin" beschaltet
byte temp, memo = 0;                // Merker für echoPin status & Hilfsmerker
char ssid[] = "fahrrad_echo";           // SSID of your AP
char password[] = "12345678";         // password of your AP

IPAddress server(192, 168, 4, 15);  // IP address of the AP
WiFiClient client;

WiFiUDP Udp;
unsigned int localUdpPort = 4210;  // local port to listen on
char befehl[10];  // buffer for incoming packets
boolean ledStatus = false;

char udp_buffer[WIFICLIENT_MAX_PACKET_SIZE + 1];


void setup()
{
  pinMode(ledPin_rt, OUTPUT);
  pinMode(ledPin_gn, OUTPUT);
  pinMode(ledPin_bl, OUTPUT);


  Serial.begin(115200);
  
  pinMode(echoPin, INPUT_PULLUP);

  digitalWrite(ledPin_bl, HIGH);
  delay(500);
  digitalWrite(ledPin_bl, LOW);
  digitalWrite(ledPin_rt, LOW);

  //Inizialisiere WIFI
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  Serial.println();
  Serial.println("Connection to the AP");

  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.println("Connected");
  Serial.println("station_bare_01.ino");
  Serial.print("LocalIP:"); Serial.println(WiFi.localIP());
  Serial.println("MAC:" + WiFi.macAddress());
  Serial.print("Gateway:"); Serial.println(WiFi.gatewayIP());
  Serial.print("AP MAC:"); Serial.println(WiFi.BSSIDstr());


  //Inizialisiere UDP
  Udp.begin(localUdpPort);
  Serial.print(" connected. UDP-Server bereit an IP: ");
  Serial.println(WiFi.localIP());
  Serial.println("UDP-Server bereit.");
}


//Daten an AP senden
void data_to_AP (byte temp)
{
  client.connect(server, 80);

  Serial.println("********************************");
  Serial.print("Byte sent to the AP: ");
  Serial.println(temp);
  Serial.println(client.write(temp));
  client.flush();
  client.stop();
}


void loop()
{
  digitalWrite(ledPin_rt, LOW);

  int packetSize, len;

  // UDP
  packetSize = Udp.parsePacket();

  // Da ist was da
  if (packetSize)
  {
    Serial.print("Empfangen "); Serial.print(packetSize);
    Serial.print(" von IP "); Serial.print(Udp.remoteIP());
    Serial.print(" Port "); Serial.println(Udp.remotePort());
    
    len = Udp.read(befehl, 10);
    ledStatus = befehl[0]; // erstes Byte 0 oder 1
    if (ledStatus)
    {
      digitalWrite(ledPin_rt, LOW);
      digitalWrite(ledPin_gn, LOW);
      Serial.println("LED einschalten");
      //LED_rt = LOW;
      taste_druecken();
    }
    else
    {
      digitalWrite(ledPin_rt, LOW);
      digitalWrite(ledPin_gn, LOW);
      Serial.println("LED ausschalten");
      //LED_rt = LOW;
      taste_loslassen();
    }
  }
  
  {
    digitalWrite(ledPin_gn, HIGH);
    digitalWrite(ledPin_rt, LOW);
  }
}


void taste_druecken (void)
{
  //digitalWrite(ledPin_rt, LOW);
  digitalWrite(echoPin, HIGH);
  temp = digitalRead(echoPin);
  data_to_AP(temp);
  Serial.println(temp);
}

void taste_loslassen (void)
{
  //digitalWrite(ledPin_rt, LOW);
  digitalWrite(echoPin, LOW);
  temp = digitalRead(echoPin);
  data_to_AP(temp);
  Serial.println(temp);
}

void rt_blinken (void)
{

  unsigned long currentMillis_rt = millis();  // aktueller Wert rot
  if (currentMillis_rt - previousMillis_rt > interval_rt)
  {
    previousMillis_rt = currentMillis_rt;   // aktuellen Wert speichern
    ledState_rt = ((ledState_rt == LOW) ? HIGH : LOW); // toggeln
    digitalWrite(ledPin_rt, ledState_rt);   // LED ansteuern
  }
}
und das video...