Sperrt der MS UDP-Ports????

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • ChrisR
    Extension Master
    • 07.12.2020
    • 192

    #31
    Code:
    #include "bsec.h"
    #include "ESP8266WiFi.h"
    #include "WiFiUdp.h"
    
    #ifndef STASSID
    #define STASSID "XXXXXXXXXXXX"
    #define STAPSK "XXXXXXXXXXXX"
    #endif
    
    const char * udpAddress = "192.168.178.XX"; // Miniserver
    
    // Hier sind einige der Ports die ich schon probiert hab und die jetzt geblockt sind. Ich hab aber noch mehr ausprobiert
    const int udpPort = 56575; // 56564 //8445 // 7009 //55057 / 8444 //33021 //27099
    const String sensor= "ESP8266-1: ";
    
    //create UDP instance
    WiFiUDP Udp;
    
    // Helper functions declarations
    void checkIaqSensorStatus(void);
    // void errLeds(void);
    
    // Create an object of the class Bsec
    Bsec iaqSensor;
    
    String output;
    int count;
    double pres;
    int iaq_;
    int iaqaccu;
    double temp;
    double hum;
    double iaqstat;
    double co2equiv;
    double VOCequiv;
    
    void setup(void)
    {
    Serial.begin(115200);
    Wire.begin(0, 2);
    
    WiFi.mode(WIFI_STA);
    WiFi.begin(STASSID, STAPSK);
    while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(500);
    }
    Serial.print("Connected! IP address: ");
    Serial.println(WiFi.localIP());
    Serial.printf("UDP server on port %d\n", udpPort);
    
    output = sensor + "startet auf UDP-Port: " + String(udpPort);
    
    Udp.begin(udpPort);
    Udp.beginPacket(udpAddress, udpPort);
    Udp.print(output);
    Udp.endPacket();
    
    iaqSensor.begin(BME680_I2C_ADDR_SECONDARY, Wire);
    checkIaqSensorStatus();
    
    bsec_virtual_sensor_t sensorList[10] = {
    BSEC_OUTPUT_RAW_TEMPERATURE,
    BSEC_OUTPUT_RAW_PRESSURE,
    BSEC_OUTPUT_RAW_HUMIDITY,
    BSEC_OUTPUT_RAW_GAS,
    BSEC_OUTPUT_IAQ,
    BSEC_OUTPUT_STATIC_IAQ,
    BSEC_OUTPUT_CO2_EQUIVALENT,
    BSEC_OUTPUT_BREATH_VOC_EQUIVALENT,
    BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE,
    BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY,
    };
    
    iaqSensor.updateSubscription(sensorList, 10, BSEC_SAMPLE_RATE_LP);
    checkIaqSensorStatus();
    }
    
    
    // Function that is looped forever
    void loop(void)
    {
    //unsigned long time_trigger = millis();
    if (iaqSensor.run()) { // If new data is available
    pres += iaqSensor.pressure;
    iaq_ += iaqSensor.iaq;
    iaqaccu = iaqSensor.iaqAccuracy;
    temp += iaqSensor.temperature;
    hum += iaqSensor.humidity;
    iaqstat += iaqSensor.staticIaq;
    co2equiv += iaqSensor.co2Equivalent;
    VOCequiv += iaqSensor.breathVocEquivalent;
    count += 1;
    
    if (count == 50) {
    pres = pres / 50;
    iaq_ = iaq_ / 50;
    temp = temp / 50;
    hum = hum / 50;
    iaqstat = iaqstat / 50;
    co2equiv = co2equiv / 50;
    VOCequiv = VOCequiv / 50;
    
    count = 0;
    
    output = String(sensor);
    output += "2@ " + String(pres);
    output += " 5@ " + String(iaq_);
    output += " 6@ " + String(iaqaccu);
    output += " 7@ " + String(temp);
    output += " 8@ " + String(hum);
    output += " 9@ " + String(iaqstat);
    output += " 10@ " + String(co2equiv);
    output += " 11@ " + String(VOCequiv);
    
    Udp.beginPacket(udpAddress, udpPort);
    Udp.print(output);
    Udp.endPacket();
    
    pres = 0;
    iaq_ = 0;
    // iaqaccu = 0;
    temp = 0;
    hum = 0;
    iaqstat = 0;
    co2equiv = 0;
    VOCequiv = 0;
    }
    
    Serial.println(count);
    
    } else {
    checkIaqSensorStatus();
    }
    }
    
    // Helper function definitions
    void checkIaqSensorStatus(void)
    {
    if (iaqSensor.status != BSEC_OK) {
    if (iaqSensor.status < BSEC_OK) {
    output = sensor + "BSEC error code: " + String(iaqSensor.status);
    
    } else {
    output = sensor + "BSEC warning code: " + String(iaqSensor.status);
    }
    Serial.println(output);
    Udp.beginPacket(udpAddress, udpPort);
    Udp.print(output);
    Udp.endPacket();
    delay(30000);
    }
    
    if (iaqSensor.bme680Status != BME680_OK) {
    if (iaqSensor.bme680Status < BME680_OK) {
    output = sensor + "BME680 error code: " + String(iaqSensor.bme680Status);
    
    } else {
    output = sensor + "BME680 warning code: " + String(iaqSensor.bme680Status);
    }
    Serial.println(output);
    Udp.beginPacket(udpAddress, udpPort);
    Udp.print(output);
    Udp.endPacket();
    delay(30000);
    }
    }

    So...hier mal mein Skript. Ist nichts Besonderes. Und bevor jetzt jemand fragt, NEIN, wenn nichts mehr vom MS empfangen wird, handelt es sich nicht um eine Fehler- oder Warnmeldung, denn auch diese müsste ja dann ankommen.

    Auch ein stromlos machen oder ein neues flashen des ESP bringt nichts. Nur das Ändern des Ports bringt was. Und ja, ich habe auch schon alle Gertäte inkl. MS & Router mal stromlos gemacht.

    Ich bin ratlos.

    Kommentar

    • ChrisR
      Extension Master
      • 07.12.2020
      • 192

      #32
      svethi

      Was muss ich hier starten? Ich bin total überfordert?

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2021-02-01 um 22.30.58.png
Ansichten: 231
Größe: 136,9 KB
ID: 289428



      Kommentar

      • Sammy
        LoxBus Spammer
        • 23.08.2018
        • 413

        #33
        Hallo ChrisR,

        ich habe mal Deinen Code durchforstet. Soweit ich das sehe, hast Du in der Schleife void(loop) keinerlei Pause drin. Entweder ist der BME beim Auslesen unsagbar langsam oder die vielen Serial.print() bremsen Dein Programm soweit aus, dass halbwegs vernünftige Sende-Intervalle rauskommen. Gefühlt müsste der ESP bei Deiner Routine deutlich fixer unterwegs sein und viel häufiger senden (mehrmals pro Sekunde).

        Kannst Du alternativ das angehängte Programm mit Deinen Netzwerkeinstellungen testen?

        Ich habe nur den Bereich void(loop) geändert.

        Ich würde mich über ein Feedback freuen

        Schöne Grüße,
        Michael
        Angehängte Dateien

        Kommentar


        • svethi
          svethi kommentierte
          Kommentar bearbeiten
          Ich muss mal sehen wie ich das mache. Aber ich denke schon, dass in der Schleife ein Delay ist

        • ChrisR
          ChrisR kommentierte
          Kommentar bearbeiten
          @Svethi
          Und? Mit Delay? Hast du die original Bosch Bibliothek oder eine von Adafruit? Welchen BME680 hast du?

        • svethi
          svethi kommentierte
          Kommentar bearbeiten
          ChrisR meiner läuft noch im Bastelmodus. Ja, ich verwende auch die Lib von Bosch für die Luftqualität. Ich versende aber nicht per UDP sondern über MQTT und das macht der alle 2 Sekunden.
      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6313

        #34
        Das kann ich Dir nicht sagen, da ich nicht wissen kann, an welchem Port der MS hängt.
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar


        • ChrisR
          ChrisR kommentierte
          Kommentar bearbeiten
          @Svethi
          Selbstverständlich ist die MS da angeschlossen. Ich finde Sie auch im Capture Log

          @Romildo
          Das hab ich gemacht. Ich finde sämtliche Geräte...einfach alles. Nur keinen einzigen der ESP, obwohl diese nachweislich im Netzwerk sind und in dieser Zeit auch gesendet haben. Zumindest finde ich die ESPs nicht über die IP oder den Namen.

          Ich muss am Wochenende mal einen extra Netzwerkaufbau machen, mit nur einem Router und dem MS. Dann kann ich alles nochmal einzeln prüfen.

        • Sammy
          Sammy kommentierte
          Kommentar bearbeiten
          @ChrisR: mit Capture machst ja nur eine kurze Momentaufnahme - vielleicht hat da der/die ESP gerade nicht gesendet.

        • ChrisR
          ChrisR kommentierte
          Kommentar bearbeiten
          @Sammy
          Doch doch, hat er schon. Ich hab mehrere Minuten gemacht, sogar noch 2 ESPs extra mit drauf gehangen und geschaut, dass mehrere UDPs eingegangen sind.
      • ChrisR
        Extension Master
        • 07.12.2020
        • 192

        #35
        Danke erst mal an Alle die sich viel Zeit genommen haben und versucht haben das Problem zu lösen.

        Ich werde jetzt mal zuerst mein komplettes Netzwerk auseinander nehmen und von der Seite rangehen.

        Kommentar

        • ChrisR
          Extension Master
          • 07.12.2020
          • 192

          #36
          UPDATE 06.02.

          Eigentlich wollte ich ja dieses Wochenende mein Netzwerk auseinander nehmen und neu aufsetzten. Aber komischerweise hat es seit Tagen bei keinem der ESPs Probleme gegeben. Wirklich geändert habe ich allerdings nur 2 Dinge:

          - Sonderzeichen aus den UDP-Paketen entfernt
          - statische IPs der ESP entfernt

          Ich lass meine Tests jetzt einfach mal weiter laufen und wenn bis kommendes Wochenende immer noch alles läuft, dann kann ich mir nur einen der beide oberen Punkte als Problem vorstellen. Ich hab natürlich auch viele Neustarts und andere Versuche unternommen, aber dann müsste das Problem ja trotzdem wieder auftauchen.

          Ich bleib am Ball


          UPDATE 14.03.

          Mittlerweile scheinen sich die Probleme in Luft aufgelöst zu haben. So wie es scheint war die Fritzbox bzw. die damalige Firmwareversion das Problem. Es gab zur gleichen Zeit als ich die Änderungen (siehe oben) durchgeführt habe auch ein Firmwareupdate. Danch ging (fast) alles gut und es sind nur sehr selten Probleme aufgetaucht.
          Habe jetzt mein ganzes Sensornetzwerk an einen Asusrouter verschoben und seitdem läuft alles ohne Probleme.

          Nochmal meinen herzlichsten Dank an Alle die geholfen haben das Problem einzugrenzen
          Zuletzt geändert von ChrisR; 14.03.2021, 16:20.

          Kommentar

          Lädt...