ESP8266 DNS du Proxy

Bonjour
Pour une appli je configure un ESP en proxy avec DNS mais voilà, impossible d’appeler la page html via ce DNS avec le smartphone (wifi connecté) → vfd.local
alors que par l’ip ça fonctionne.

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

//const char* ssid = "";
//const char* password = "";

//const char* newssid = "";
//const char* newpassword = "";

ESP8266WebServer server(80);

/******************************************************************/

String postForms1 = "<html>\
  <head>\
    <title>ESP8266 onduleur</title>\
    <style>\
    body { background-color: lightblue; font-family: Comic Sans MS, Arial; Color: #000088;text-align: center }\     
    td {text-align: center;}\
    .divbtn { position:absolute; top: 50px; right: 50px;}\
    .btn {width:85px;height:85px;background:#cc0000;font: 18px Comic Sans  MS;border-radius:50%;border:5px;color:#fff;cursor:pointer}\
    .btn:hover{background:#ffffff;color: #cc04c2;}\
    table, th, td {border: 1px solid black; border-collapse: collapse;}\
    #cadre{padding-bottom:19px;padding-left: 1px;position: relative;}\
    .inforp {background-color: grey;color:white;font-family:verdana;width: 30px;position: absolute;}\
    input {width: 2.5em;font-size: 1.5em;}\
    </style>\
  </head>\
  <body onload=\"initVar()\">\
    <h1>Variateur de fr&eacute;quence sinuso&iuml;dal
pour moteur asynchrone monophas&eacute; •</h1>\
  <h2>Modulation &agrave; largeur d'impulsion
&nbsp;
</h2>\
    <form method=\"post\" action=\"\" >\
  <table border=\"border:1px solid black\" width=\"90%\" align=\"center\">\
    <tr>\
      <td colspan=\"3\"><h3>Fr&eacute;quence:</h3></td>\
    </tr>\
    <tr>\
      <td width=\"10%\">\
        <input type=\"button\" value=\"-\" id=\"d2\" onclick=\"decalefreq(a=-1)\" onmouseover = \"myVar=setInterval(delais2, 200);\" onmouseout = \"clearInterval(myVar);\"/>\
      </td>\
      <td id=\"cadre\">\
        <p class=\"inforp\" id=\"freq\">0</p>\
      </td>\
      <td width=\"10%\">\
        <input type=\"button\" value=\"+\" id=\"d1\" onclick=\"decalefreq(a=1)\" onmouseover = \"myVar=setInterval(delais1, 200);\" onmouseout = \"clearInterval(myVar);\"/>\
      </td>\
    </tr>\
    <tr>\
      <td colspan=\"3\">\
        <h3>Temps de d&eacute;marrage:</h3>\
      </td>\
    </tr>\
    <tr>\
      <td>\
        <input type=\"button\" value=\"-\" id=\"d4\" onclick=\"decaleramp(a=-1)\" onmouseover = \"myVar=setInterval(delais4, 300);\" onmouseout = \"clearInterval(myVar);\"/>\
      </td>\
      <td id=\"cadre\">\
        <p class=\"inforp\" id=\"ramp\">0</p>\
      </td>\
      <td>\
        <input type=\"button\" value=\"+\" id=\"d3\" onclick=\"decaleramp(a=1)\" onmouseover = \"myVar=setInterval(delais3, 300);\" onmouseout = \"clearInterval(myVar);\"/>\
      </td>\
    </tr>\
  </table>\
  <h3>• Moteur &agrave; spire de Frager ou &agrave; boucle de d&eacute;phasage<h3/>\
  <div class=\"divbtn\"><input type=\"submit\" class=\"btn\" value=\"Valider\"/></div>\
  <input type=\"hidden\" value=\"";
  
String postForms2 = "\" name=\"frequence\"/>\
  <input type=\"hidden\" value=\"";
  
String postForms3 = "\" name=\"rampe\"/>\
    </form>\
  <script>\
    var y1;\
    var y2;\
    var elmtfreq;\
    var elmtramp;\
    var x = 0;\
    var r = 0;\
    var myVar;\
    function initVar() {\
      y = parseInt(window.innerWidth,10)*0.8;\
      y1 = (y/75);\
      y2 = Math.round(y/6);\
      elmtfreq = document.getElementById('freq');\
      elmtramp = document.getElementById('ramp');\
      a = document.getElementsByName('frequence')[0].value;\
      decalefreq(a);\
      a = document.getElementsByName('rampe')[0].value;\
      decaleramp(a);\
      }\
    function decalefreq() {\
      x += (y1*a);\
      if(x > -1 & x < (y1*61)){elmtfreq.style.left = Math.round(x) + 'px';};\
      x = parseInt(elmtfreq.style.left);\
      document.getElementById('freq').textContent = Math.round(x/y1);\
      document.getElementsByName('frequence')[0].value = Math.round(x/y1);}\
    function decaleramp() {\
      r += (y2*a);\
      if(r > -1 & r < (y2*6)){elmtramp.style.left = r + 'px';};\
      r = parseInt(elmtramp.style.left);\
      document.getElementById('ramp').textContent = r/y2;\
      document.getElementsByName('rampe')[0].value = r/y2;}\
    function delais1(){decalefreq(a=1);}\
    function delais2(){decalefreq(a=-1);}\
    function delais3(){decaleramp(a=1);}\
    function delais4(){decaleramp(a=-1);}\
window.addEventListener('load', function(){\    
var d1 = document.getElementById('d1');\    
var d2 = document.getElementById('d2');\    
var d3 = document.getElementById('d3');\    
var d4 = document.getElementById('d4');\    
var a;\   
d1.addEventListener('touchstart', function(e){a=setInterval(delais1, 200);e.preventDefault()},false);\
d1.addEventListener('touchend', function(e){clearInterval(a);e.preventDefault()}, false);\
d2.addEventListener('touchstart', function(e){a=setInterval(delais2, 200);e.preventDefault()},false);\
d2.addEventListener('touchend', function(e){clearInterval(a);e.preventDefault()}, false);\
d3.addEventListener('touchstart', function(e){a=setInterval(delais3, 300);e.preventDefault()},false);\
d3.addEventListener('touchend', function(e){clearInterval(a);e.preventDefault()}, false);\
d4.addEventListener('touchstart', function(e){a=setInterval(delais4, 300);e.preventDefault()},false);\
d4.addEventListener('touchend', function(e){clearInterval(a);e.preventDefault()}, false);}\
,false)\
  </script>\
  </body>\
</html>";
 
String postForms ;
int frequence = 0;
float rampe = 0;
/**************************************************************** */


/******************************************************************/
void handleRoot()
  {if ( server.hasArg("frequence") )
    {frequence = server.arg("frequence").toInt();
     rampe   = server.arg("rampe").toFloat();}
    
  postForms = postForms1 + String(frequence) + postForms2  + String(rampe) + postForms3 ;
  server.send(200, "text/html", postForms);
}


/***********************************************************/
void setup(void)
{
  Serial.begin(115200);
  for(uint8_t t = 4; t > 0; t--) 
    {USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
     USE_SERIAL.flush();
     delay(1000);}
  
  //WiFi.softAP(newssid, newpassword);

  MDNSResponder mdns;
  mdns.begin ( "vfd", WiFi.localIP () ); 
  if (MDNS.begin("vfd"))
    {Serial.println("MDNS responder started");}
  

  server.on("/", handleRoot);
  MDNS.addService ("http", "tcp", 80);
  //server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP Server Started");
  
  //WiFiMulti.addAP(ssid, password);
}


/*********************************************************/
void loop(void){
  server.handleClient();
}

Auriez vous une idée
Merci