Ankündigung

Einklappen
Keine Ankündigung bisher.

Zugriff auf WLAN-Sensor mit Node-MCU/ESP8266 mittels HTTP Request funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Zugriff auf WLAN-Sensor mit Node-MCU/ESP8266 mittels HTTP Request funktioniert nicht

    Hallo zusammen,

    ich habe bereits einen funktionierenden "WLAN-Sensor" am eibPC. Nun wollte ich fuer mein neues "Pool-Projekt" einen solchen Sensor mit einem OneWire temperaturfühler aufbauen ( DS18B20 ) der im Browser auch die Werte korrekt anzeigt. Mittles der eibPC Funktion IPGetClient bekomme ich aber keine Werte ... Ich vermute den Fehler allerdings im Arduino-Script: hat hier im Formum ggf. auch sowas mit Arduino und WLAN gelöst ?


    Hier kurz die verwendete "Methode" im eibPC:


    [highlight=epc]

    c_IP_SolarSensor = 192.168.178.54
    ..
    IPGetClient(PoolSensor, c_IP_PoolSensor,$ $, 100, c_PoolSensor_Flag, 3000)

    Zuletzt geändert von wetronic; 13.05.2021, 15:02.
    ETS 4, EibPC V3.x

    #2
    Hoppla - ich muss vermutlich innerhalb den $-Zeichen bei IPGetClient das korrekte Schluesselwort eintragen - teste mal ... 🙄
    ETS 4, EibPC V3.x

    Kommentar


      #3
      Pech gehabt ... ich bekomme weiterhin kein connect !
      Seltsam: auf den ersten WLAN-Sensor klappt es - beim zweiten WLAN Sensor mit einer anderen IP-Adresse "klemmt" es
      ( - obwohl dieser per PING erreichbar ist ! )

      Muss wohl weiter den Fehler suchen ...

      Hat jemand eine Idee, wie ich herausfinden kann, warum ich keinen Connect bekomme - in WireShark sehe ich auf der IP nichts - im Browser ist die IP erreichbar !,

      Hier noch das Sketch meines ESP8266 / NodeMCU der den TempSensor hat ( Auszug ):
      ( - im Aufruf über den Browser bekomme ich die Temperatur angezeigt ! )

      PHP-Code:
      // Route for root / web page
      server.on("/"HTTP_GET, [](AsyncWebServerRequest request) {
      request->send_P(200"text/html"index_htmlprocessor);
      });
      server.on("/temperaturec"HTTP_GET, [](AsyncWebServerRequest request) {
          
      request->send_P(200"text/plain"c_s1);
      });
      // Start server
      server.begin(); 
      Und hier die Auszüge aus dem eibPC:

      Das Makro ( Bais ist das Makro aus der EnertexTCP-Lib ):

      WE_IPGetClient(PoolSensor, c_IP_PoolSensor,$/temperaturec$, 100, c_PoolSensor_Flag, 3000)

      Und hier die Verarbeitung im eibPC:


      PHP-Code:
      if ( PoolSensorConnectionState == ) or (PoolSensorConnectionState == 2then c_PoolSensor_ok AUS else c_PoolSensor_ok EIN endif

      // Abfragen PoolRaumSensor ueber HTTP-Request und eintragen in die TimeTable

      if cycle(5,0then {

      c_PoolSensor_Flag AUS/* Starten Makro zum HTTP-Request */;
      c_PoolSensor_Flag EIN/* Starten Makro zum HTTP-Request */;

      if ( 
      c_PoolSensor_ok == AUS then {
      pdisplayPoolTemp_ID, $ ? $, TEMPERATUREINACTIVEGREENVisu_ID )
      } endif;

      if ( 
      PoolSensorConnectionState != then {

      c_PoolSensorPayLoad PoolSensorRawData;

      c_PosStrg Find(c_PoolSensorPayLoad, $%$, 0u16);
      c_TmpString Split(c_PoolSensorPayLoadc_PosStrg 1u16Size(c_PoolSensorPayLoad));
      c_PoolSensor_Temp convertc_TmpString0f16) + c_Pool_Tmp_Offset;
      write('6/03/8'f16c_PoolSensor_Temp);
      pdisplayPoolTemp_IDconvertc_PoolSensor_Temp, $ $ ), TEMPERATUREACTIVEGREENVisu_ID );
      // timebufferadd(c_Chart_Pool_T, c_PoolSensor_Temp);
      } endif

      } endif 
      Zuletzt geändert von wetronic; 18.05.2021, 10:20.
      ETS 4, EibPC V3.x

      Kommentar


        #4
        Zitat von wetronic Beitrag anzeigen
        Hat jemand eine Idee, wie ich herausfinden kann, warum ich keinen Connect bekomme - in WireShark sehe ich auf der IP nichts - im Browser ist die IP erreichbar !,
        <Klugscheissermode> Naja, Wireshark richtig verwenden wäre ein Anfang </Klugscheissermode>

        Lass mich mal raten: Du lässt Wireshark auf dem Rechner laufen mit dem zu auch den Webzugriff machst ...

        Das KANN nicht funktionieren, denn du willst die Kommunikation zwischen EIBPC und ESP loggen. Alle Netzwerkinstallationen heute verwenden Switche - die gerade dafür sorgen das jeder Rechner nur die Pakete bekommt die überhaupt für ihn gedacht sind.
        Du musst deinen Logger entweder mit einem speziellen Sniffadapter, oder auch einem alten Ethernet-Hub an den EIBPC anschließen, DANN siehst du auch dessen Pakete ...


        Zu deinem Code:

        Du hast zwar dein komplettes Makro nicht eingestellt, aber ich rate mal das du mit
        c_PoolSensor_Flag = AUS; /* Starten Makro zum HTTP-Request */;
        c_PoolSensor_Flag = EIN; /* Starten Makro zum HTTP-Request */;

        ein einmaliges Auslesen triggern willst. Das sind aber keine Makroaufrufe, daher vermute ich das dein Makro auf dieses Flag reagieren soll.
        Da ist dann schonmal ein Problem. Der EiBPC macht kein Multitasking, bei dem dein Makro in einem Hintergrundtask laufen würde. Das Makro sieht also immer nur das Flag = EIN.

        Das ist wahrscheinlich auch dein Problem ....

        Zuletzt geändert von cds; 20.05.2021, 14:46.

        Kommentar


          #5
          @CDS: Trotz "Klugscheissermode" Danke: kenne mich sicher nicht tief in WireShark aus - daher wirst Du wohl recht haben ...

          Zum Thema Makroaufruf: tatsächlich gehe ich davon aus, dass dieser i.o ist, da dieser genauso mit meinem 1. WLAN-Sensor funktioniert ... weiterhin ist diese Makro nach meinem Verständnis der Doku und Beschreibung ei "Sonderfall", da es hier einen asynchronen Mechanismus gibt ...

          Ich vermute aktuell meinen Fehler im Sketch / Aufbau des Webservers ...

          Gruss

          Wolfgang
          ETS 4, EibPC V3.x

          Kommentar


            #6
            Hi,

            hast du den Thread hier gesehen?
            https://knx-user-forum.de/forum/supp...etclient-makro

            Was in dem alten Makro ebenfalls fehlt ist eine

            $Host: $+c_IP_PoolSensor + Name^CRLF

            im StringGet. Das mögen manche Server nicht.

            Was haben denn die Makro-Variablen für Werte, also insbesondere PoolSensorRawData und PoolSensorConnectionState?




            Kommentar


              #7
              Zitat von cds Beitrag anzeigen
              DANN siehst du auch dessen Pakete ...
              Oder du hast eine FritzBox und loggst die WLAN-Schnittstelle (google fritzbox traffic aufzeichnen)

              Kommentar


                #8
                Hallo,

                @foobar0815: habe zum Glück eine FB und schaue mir gerade das Capture-file an ! Muß nur noch schauen, welche Ausleitung passt 👍
                das mit dem Makro schau ich mir mal an ... bei ConnectionState bekomme ich nur „2“ 😟
                ETS 4, EibPC V3.x

                Kommentar


                  #9
                  Dann schau bitte mal in den Ereignisspeicher (Fenstermenü->EibPC->Ereignisse), ob da ein Ereignis aufgezeichnet wird.

                  Kommentar

                  Lädt...
                  X