Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Welchen Luftgütesensor

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Welchen Luftgütesensor

Geplant Angeheftet Gesperrt Verschoben Hardware
226 Beiträge 16 Kommentatoren 53.7k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #155

    aber das ist die einzige Stelle.

    • ich will ja Learnen beim Doing.

    Gruß

    Rainer

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • K Offline
      K Offline
      klassisch
      Most Active
      schrieb am zuletzt editiert von
      #156

      @Homoran

      Zu den Parametern:

      Bei mir im Sketch steht:

        /*********** BME280 setup ***********  */
      
        /* excerpt from Bosch datasheet chapter 3.5.1 Weather monitoring
          Table 7: Settings and performance for weather monitoring
          Suggested settings for weather monitoring
          Sensor mode forced mode, 1 sample / minute
          Oversampling settings pressure *1, temperature *1, humidity *1
          IIR filter settings filter off
          Performance for suggested settings
          Current consumption 0.16 μA
          RMS Noise 3.3 Pa / 30 cm, 0.07 %RH
          Data output rate 1/60 Hz
        * ** End excerpt from Bosch datasheet chapter 3.5.1 Weather monitoring **/
      
        byte chipID = 0; // for BME280 Cip IF
        chipID = BME280.readChipId();
      #ifdef FSDEBUG
        DBG_OUTPUT_PORT.print (F("BME280 Chip Id (0x): "));
        DBG_OUTPUT_PORT.println (chipID, HEX);
      #endif // FSDEBUG
        // need to read the NVM compensation parameters
        BME280.readCompensationParams();
      
        // Need to turn on 1x oversampling, default is os_skipped, which means it doesn't measure anything
        BME280.writeOversamplingPressure(os1x);     // 1x over sampling (ie, just one sample)
        BME280.writeOversamplingTemperature(os1x);  // 1x over sampling (ie, just one sample)
        BME280.writeOversamplingHumidity(os1x);     // 1x over sampling (ie, just one sample)
        measuringTime = (int) (0.5 + (1.25 + (2.3 * 1) + (2.3 * 1 + 0.575) + (2.3 * 1 + 0.575))); // measuringTime is unsigned long
        /* in forced mode with oversampling=1 in all 3 values the max measuring time should be < 22.8ms
           in forced mode with all oversamplings to x16 (max value) the measring time should be <112,8
           for other oversampling settings refer Bosch datasheet chapter 9.1 Measurement time
           measuringTime = 1.25+(2.3*temp_os) + (2.3*humid_os + 0.575) + (2.3*press_os + 0.575)  */
      
        // init a forced sample.  After taking the measurement the chip goes back to sleep
        BME280.writeMode(smForced);
      
      

      Das mag bei Dir etwas anders heißen, wenn Du den BoschWrapper verwendest.

      1 Antwort Letzte Antwort
      0
      • HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #157

        Danke klassisch,

        dann bin ich tatsächlich leider raus 😞

        das ist (noch) zu hoch für mich.

        Danke nochmals

        Rainer

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Antwort Letzte Antwort
        0
        • K Offline
          K Offline
          klassisch
          Most Active
          schrieb am zuletzt editiert von
          #158

          @Homoran:

          aber das ist die einzige Stelle.

          • ich will ja Learnen beim Doing. `
            Wahrscheinlich ist Dein Sketch für diese Lib ausgelegt und an dieser Stelle wird diese Lib instanziert.

          Du hast jetzt 2 Möglichkeiten: Die Lib (mit dem Boschwrapper) mit Stupf und Stiel aus Deinem Sketch reissen und durch die andere (die auch ich verwende) ersetzen oder sie drinlassen und die Stellen aufsuchen, wo die Parameter eingestellt werden.

          Drinlassen könnte einfacher sein. Und wenn da wirklich die Original-Bosch-Lib drinsteckt, dann solte das auch möglich sein. Parameter stehen ja oben.

          1 Antwort Letzte Antwort
          0
          • K Offline
            K Offline
            klassisch
            Most Active
            schrieb am zuletzt editiert von
            #159

            Könnte sein, daß wir der Sache näher kommen.

            Verwendest Du diese Lib von Jan Wasserbauer:

            https://github.com/vodnik12/JWA_BME280/ … /README.md

            ?

            1 Antwort Letzte Antwort
            0
            • HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #160

              Na, mach mir nur Mut.

              @klassisch:

              Wahrscheinlich ist Dein Sketch `
              Der Sketch ist von Maik, und für mich ist das der erste Sketch überhaupt den ich mir mal ansehe 😉

              http://forum.iobroker.net/viewtopic.php … 100#p78500

              @klassisch:

              und die Stellen aufsuchen, wo die Parameter eingestellt werden. `
              Yeah :shock:

              Mache ich jetzt - erst mal im Notepad++

              Vielleicht wird ja doch noch mal was aus mir 😉

              Gruß

              Rainer

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #161

                @klassisch:

                Verwendest Du diese Lib von Jan Wasserbauer:

                https://github.com/vodnik12/JWA_BME280/ … /README.md

                ? `

                Ja!

                Gruß

                Rainer

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                1 Antwort Letzte Antwort
                0
                • K Offline
                  K Offline
                  klassisch
                  Most Active
                  schrieb am zuletzt editiert von
                  #162

                  Dann schauen wir mal in seinem git, ob wir die Stelle sehen, wo die Parameter gesetzt werden. Er hat ja auch vom Temperaturunterschied gesprochen aber nicht in welche Richtung….

                  1 Antwort Letzte Antwort
                  0
                  • K Offline
                    K Offline
                    klassisch
                    Most Active
                    schrieb am zuletzt editiert von
                    #163

                    Steht bei Dir

                    Bme280BoschWrapper bme280(true);
                    

                    ? Wenn ich das richtig verstanden habe, dann würde er im forced mode starten. Aber die anderen Parameter habe ich noch nicht gefunden. Und ich habe den Genauigkeitsgrad noch nicht gesehen. Der macht aber wahrscheinlich keine 3 bis 4 K aus. Bosch hat die Kompensationrechnung aus dem Sensor rausverlagert in den host-Rechner. Das macht es so kompliziert. Und weil Bosch gerne optimiert (manchmal bis zum Geiz) gibt es 3 Genauigkeitsklassen, wenn ich mich recht erinner. Je nach vorhandener Rechenleistung kann man eine passende Kompensationsrechnung verwenden. Für die WeMos habe ich immer die genaueste Rechnung verwendet. Die Dinger sind schnell genug. Aber wie gesagt, das sollte keine 3 bis 4 K ausmachen, denke ich.

                    Die von mir referenzierte Lib ermöglicht diese Wahl. Ein klassischer Arduino könnte aber bei der genaueren Rechnung ins Schwitzen kommen.

                    1 Antwort Letzte Antwort
                    0
                    • HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #164

                      @klassisch:

                      Steht bei Dir `
                      Ja!

                      // BME280 initialisieren
                      Bme280BoschWrapper bme280(true);
                      unsigned long syncTime;
                      

                      und da hatte ich gedacht es reicht den Namen auszutauschen gegen den der neuen Bibliothek.

                      habe gerade versucht das in github zu verstehen und dabei gemerkt, dass mein Vorhaben eine Schnapsidee war 😞

                      Gruß

                      Rainer

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      0
                      • K Offline
                        K Offline
                        klassisch
                        Most Active
                        schrieb am zuletzt editiert von
                        #165

                        Nochwas: In welchen Zeitabständen rufst Du

                        bme280.measure()
                        

                        auf?

                        1 Antwort Letzte Antwort
                        0
                        • HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #166

                          Wenn ich Maik richtig verstanden habe hat er das in der http://forum.iobroker.net/viewtopic.php?f=34&t=3954&start=100#p78500 von etwa 6 sec auf 60sec angehoben.

                          Gruß

                          Rainer

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Antwort Letzte Antwort
                          0
                          • K Offline
                            K Offline
                            klassisch
                            Most Active
                            schrieb am zuletzt editiert von
                            #167

                            6 Sekunden wäre zu häufig, 60 Sekunden ist o. k.

                            Gesendet von meinem ZTE A2016 mit Tapatalk

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              MaikB85
                              schrieb am zuletzt editiert von
                              #168

                              Das mit den 60Sekunden hatte nur leider keine Auswirkung weil der BME280 so oft misst wie in den Settings eingestellt ist. Mit der library konnte man den BME280 aber überhaupt nicht so konfigurieren.

                              Ich implementiere eben die MOD-1022 library und poste das sofort. dann kannst du das testen

                              1 Antwort Letzte Antwort
                              0
                              • K Offline
                                K Offline
                                klassisch
                                Most Active
                                schrieb am zuletzt editiert von
                                #169

                                Super, vielen Dank!

                                Settings habe ich oben gepostet. Falls Du noch was brauchst, einfach melden, dann schaue ich gschwind bei mir nach.

                                1 Antwort Letzte Antwort
                                0
                                • M Offline
                                  M Offline
                                  MaikB85
                                  schrieb am zuletzt editiert von
                                  #170

                                  So hier mal die geänderte Version. Wieder oben die Variablen für IP-Adresse usw. anpassen.

                                  ! ```
                                  `//#include <bme280boschwrapper.h>
                                  #include <ethernet.h>
                                  #include <stdlib.h>
                                  #include <avr pgmspace.h="">
                                  #include <pubsubclient.h>
                                  #include "Wire.h"
                                  ! #include <bme280_mod-1022.h>
                                  ! // Modultexte für MQTT Adapter
                                  char modul_name[] = "Raumsensor_Wohnzimmer";
                                  char humidity_str[] = "/Wohnzimmer/Luftfeuchtigkeit";
                                  char temperature_str[] = "/Wohnzimmer/Raumtemperatur";
                                  char pressure_str[] = "/Wohnzimmer/Luftdruck";
                                  char co2_str[] = "/Wohnzimmer/CO2";
                                  char status_str[] = "/Wohnzimmer/iAQ_Status";
                                  char resistance_str[] = "/Wohnzimmer/iAQ_Widerstand";
                                  char tvoc_str[] = "/Wohnzimmer/TVOC";
                                  ! //Setup Ethernet Library
                                  byte mac[] = { 0xAB, 0xAD, 0xBE, 0xEF, 0xEF, 0xDE }; //MAC Adresse des Ethernet Moduls
                                  IPAddress arduino_ip(192, 168, 178, 102); //IP des Teensy
                                  IPAddress server_ip(192, 168, 178, 100); //MQTT Broker (= Raspberry Pi)
                                  EthernetClient client;
                                  ! // BME280 initialisieren
                                  //Bme280BoschWrapper bme280(true);
                                  unsigned long syncTime;
                                  ! //IAQ Core C Setup
                                  #define iaqaddress 0x5A
                                  ! uint16_t predict;
                                  uint8_t statu;
                                  int32_t resistance;
                                  uint16_t tvoc;
                                  ! // ===========================================================
                                  // Callback Funktion von MQTT. Die Funktion wird aufgerufen
                                  // wenn ein Wert empfangen wurde.
                                  // ===========================================================
                                  void callback(char* topic, byte* payload, unsigned int length)
                                  {
                                  //char message_buff[100];
                                  ! //Serial.print("Nachricht erhalten mit Topic: ");
                                  //Serial.println(topic);
                                  ! //// Kopieren der Nachricht und erstellen eines Bytes mit abschließender \0
                                  //unsigned int i = 0;
                                  //for (i = 0; i<length; 8/16/1883/i++)/{/message_buff[i]="payload[i];" }/;/serial.print("nachricht:/");/serial.println(message_buff);/mqtt/client/zur/kommunikation/mit/dem/server/server_ip/-/variable/des/types/byte/serveradresse/ist/der/standard/tcp/port/callback/function/wird/aufgerufen/wen/nachrichten/eintreffen/angabe/ethernet/clients/pubsubclient/mqttclient(server_ip,/1883,/callback,/client);/messdaten/vom/iaq/core/lesen/void/readallbytes()/wire.requestfrom(iaqaddress,/9);/predict="(Wire.read()" <</|/wire.read());/statu="Wire.read();" resistance="(Wire.read()" &/0x00)/(wire.read()/16)/tvoc="(Wire.read()" status/ermitteln/checkstatus()/if/(statu="=" 0x10)/serial.println("aufwärmphase...");/else/serial.println("bereit");/0x01)/serial.println("belegt");/0x80)/serial.println("fehler");/serial.println("kein/empfangen,/modul/prüfen");/setup()/ethernet.begin(mac,/arduino_ip);/delay(1000);/shield/zeit/geben/zum/initialisieren/serial.begin(115200);/wire.begin();/while/(!bme280.begini2c(0x76))/serial.println("sensor/nicht/gefunden.");/synctime="millis();" loop()/aufbau/verbindung/mqtt-broker/falls/diese/offen/ist./(!mqttclient.connected())/mqttclient.connect(modul_name);/abonieren/von/angegebenen/topic/mqttclient.subscribe("/wohnzimmer/settings/#");/schleife/für/(mqttclient.loop())/serial.println("verbunden");/need/to/read/the/nvm/compensation/parameters/bme280.readcompensationparams();/example/for/"indoor/navigation"/we'll/switch/into/normal/mode/regular/automatic/samples/bme280.writestandbytime(tsb_0p5ms);/tsb="0.5ms" bme280.writefiltercoefficient(fc_16);/iir/filter/coefficient/bme280.writeoversamplingpressure(os16x);/pressure/x16/bme280.writeoversamplingtemperature(os2x);/temperature/x2/bme280.writeoversamplinghumidity(os1x);/humidity/x1/bme280.writemode(smnormal);/(bme280.ismeasuring())/out/data/must/do/this/before/calling/getxxxxx/routines/bme280.readmeasurements();/char/tempbuffer[10];/dtostrf(bme280.gettemperaturemostaccurate(),/2,/tempbuffer);/mqttclient.publish(temperature_str,/delay(500);/dtostrf(bme280.gethumiditymostaccurate(),/3,/mqttclient.publish(humidity_str,/dtostrf(bme280.getpressuremostaccurate(),/4,/mqttclient.publish(pressure_str,/*unsigned/long/currentmillis="millis();" ((unsigned/long)(currentmillis/synctime)="">= 60000) //Alle 15sec ausf�hren
                                  {
                                  // Bosch BME280 Messwerte senden

                                      if (bme280.measure())
                                      {
                                  	    char tempBuffer[10];
                                  

                                  ! dtostrf((bme280.getTemperature() / 100.0), 2, 2, tempBuffer);
                                  mqttClient.publish(temperature_str, tempBuffer);
                                  ! delay(1000);
                                  ! dtostrf((bme280.getHumidity() / 1024.0), 3, 2, tempBuffer);
                                  mqttClient.publish(humidity_str, tempBuffer);
                                  ! delay(1000);
                                  ! dtostrf((bme280.getPressureDouble() / 100.0), 4, 2, tempBuffer);
                                  mqttClient.publish(pressure_str, tempBuffer);
                                  ! delay(1000);
                                  }
                                  else
                                  {
                                  Serial.println("Messung mit BME280 fehlgeschlagen.");
                                  }
                                  ! syncTime = currentMillis;
                                  }*/
                                  ! delay(1000);
                                  ! readAllBytes();
                                  checkStatus();
                                  //char tempBuffer[10];
                                  ! //CO2 Wert
                                  snprintf(tempBuffer, sizeof(tempBuffer), "%u", (predict));
                                  mqttClient.publish(co2_str, tempBuffer);
                                  ! //Status
                                  snprintf(tempBuffer, sizeof(tempBuffer), "%u", (statu));
                                  mqttClient.publish(status_str, tempBuffer);
                                  ! //Widerstandswert
                                  snprintf(tempBuffer, sizeof(tempBuffer), "%lu", (resistance));
                                  mqttClient.publish(resistance_str, tempBuffer);
                                  ! //TVOC Wert
                                  snprintf(tempBuffer, sizeof(tempBuffer), "%u", (tvoc));
                                  mqttClient.publish(tvoc_str, tempBuffer);
                                  ! delay(5000);
                                  }</length;></bme280_mod-1022.h></pubsubclient.h></avr></stdlib.h></ethernet.h></bme280boschwrapper.h>`
                                  ! Gruß Maik[/i][/i][/i]

                                  1 Antwort Letzte Antwort
                                  0
                                  • K Offline
                                    K Offline
                                    klassisch
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #171

                                    Vielen Dank!

                                    erste schnelle RM:

                                    BME280.writeMode(normal);
                                    

                                    ist das böse Teil-

                                    BME280.writeMode(smForced);
                                    ````ist brav.
                                    
                                    example for indoor navigation liest den Drucksensor sehr genau aus und macht den Sensor warm.
                                    
                                    Ich arbeite mit
                                    

                                    // Need to turn on 1x oversampling, default is os_skipped, which means it doesn't measure anything
                                    BME280.writeOversamplingPressure(os1x); // 1x over sampling (ie, just one sample)
                                    BME280.writeOversamplingTemperature(os1x); // 1x over sampling (ie, just one sample)
                                    BME280.writeOversamplingHumidity(os1x); // 1x over sampling (ie, just one sample)
                                    measuringTime = (int) (0.5 + (1.25 + (2.3 * 1) + (2.3 * 1 + 0.575) + (2.3 * 1 + 0.575))); // measuringTime is unsigned long
                                    /* in forced mode with oversampling=1 in all 3 values the max measuring time should be < 22.8ms
                                    in forced mode with all oversamplings to x16 (max value) the measring time should be <112,8
                                    for other oversampling settings refer Bosch datasheet chapter 9.1 Measurement time
                                    measuringTime = 1.25+(2.3temp_os) + (2.3humid_os + 0.575) + (2.3*press_os + 0.575) */

                                    // init a forced sample. After taking the measurement the chip goes back to sleep
                                    BME280.writeMode(smForced);
                                    delay(measuringTime + 25); // wait until measurement is done. With oversampling=1 in all 3 values the max measuring time should be < 22.8ms
                                    // for other oversampling settings refer Bosch datasheet chapter 9.1 Measurement time
                                    BME280.readMeasurements();
                                    if (BME280.isMeasuring()) { // this should not happen becaus wait time is long enough
                                    BME280ReadError = 1;

                                    1 Antwort Letzte Antwort
                                    0
                                    • M Offline
                                      M Offline
                                      MaikB85
                                      schrieb am zuletzt editiert von
                                      #172

                                      okay ich hatte jetzt einfach die settings für Innenraum Messung empfohlen von Bosch

                                      Wie hast du dann die settings für oversampling usw. ?

                                      1 Antwort Letzte Antwort
                                      0
                                      • K Offline
                                        K Offline
                                        klassisch
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #173

                                        habs oben nachgetragen

                                        Oder um es hier komplett zu machen:

                                        ! ````
                                        void initSensorBME280()
                                        {
                                        /*********** BME280 setup *********** /
                                        ! /
                                        excerpt from Bosch datasheet chapter 3.5.1 Weather monitoring
                                        Table 7: Settings and performance for weather monitoring
                                        Suggested settings for weather monitoring
                                        Sensor mode forced mode, 1 sample / minute
                                        Oversampling settings pressure *1, temperature *1, humidity *1
                                        IIR filter settings filter off
                                        Performance for suggested settings
                                        Current consumption 0.16 μA
                                        RMS Noise 3.3 Pa / 30 cm, 0.07 %RH
                                        Data output rate 1/60 Hz

                                        • ** End excerpt from Bosch datasheet chapter 3.5.1 Weather monitoring **/

                                        ! byte chipID = 0; // for BME280 Cip IF
                                        chipID = BME280.readChipId();
                                        #ifdef FSDEBUG
                                        DBG_OUTPUT_PORT.print (F("BME280 Chip Id (0x): "));
                                        DBG_OUTPUT_PORT.println (chipID, HEX);
                                        #endif // FSDEBUG
                                        // need to read the NVM compensation parameters
                                        BME280.readCompensationParams();
                                        ! // Need to turn on 1x oversampling, default is os_skipped, which means it doesn't measure anything
                                        BME280.writeOversamplingPressure(os1x); // 1x over sampling (ie, just one sample)
                                        BME280.writeOversamplingTemperature(os1x); // 1x over sampling (ie, just one sample)
                                        BME280.writeOversamplingHumidity(os1x); // 1x over sampling (ie, just one sample)
                                        measuringTime = (int) (0.5 + (1.25 + (2.3 * 1) + (2.3 * 1 + 0.575) + (2.3 * 1 + 0.575))); // measuringTime is unsigned long
                                        /* in forced mode with oversampling=1 in all 3 values the max measuring time should be < 22.8ms
                                        in forced mode with all oversamplings to x16 (max value) the measring time should be <112,8
                                        for other oversampling settings refer Bosch datasheet chapter 9.1 Measurement time
                                        measuringTime = 1.25+(2.3temp_os) + (2.3humid_os + 0.575) + (2.3*press_os + 0.575) /
                                        ! // init a forced sample. After taking the measurement the chip goes back to sleep
                                        BME280.writeMode(smForced);
                                        delay(measuringTime + 25); // wait until measurement is done. With oversampling=1 in all 3 values the max measuring time should be < 22.8ms
                                        // for other oversampling settings refer Bosch datasheet chapter 9.1 Measurement time
                                        BME280.readMeasurements();
                                        if (BME280.isMeasuring()) { // this should not happen becaus wait time is long enough
                                        BME280ReadError = 1;
                                        #ifdef FSDEBUG
                                        DBG_OUTPUT_PORT.println(F("Mode has been written down to BME280"));
                                        DBG_OUTPUT_PORT.println(F("BME280 Measuring or busy..."));
                                        #endif // FSDEBUG
                                        delay(measuringTime + 300);
                                        if (BME280.isMeasuring()) { // another try failed
                                        BME280ReadError = 1;
                                        #ifdef FSDEBUG
                                        DBG_OUTPUT_PORT.print (F(" Contact to sensor has been lost no further transmission to CCU "));
                                        #endif //FSDEBUG
                                        } // end if 2n try failed
                                        else {
                                        BME280ReadError = 0;
                                        }
                                        ! } // end if 1st trial to measure failed
                                        else {
                                        BME280ReadError = 0;
                                        #ifdef FSDEBUG
                                        DBG_OUTPUT_PORT.println(F("BME280 init Done!"));
                                        #endif // FSDEBUG
                                        ! } // end else => no sensorReadoutError
                                        ! /
                                        ******************* END Setup BME280 **************************/
                                        } // end void initSensorBME280
                                        ! ````

                                        1 Antwort Letzte Antwort
                                        0
                                        • HomoranH Nicht stören
                                          HomoranH Nicht stören
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von
                                          #174

                                          Danke!

                                          ist jetzt bei einem geflasht, der andere hat noch die alte library

                                          In der Zwischenzeit ist mir noch etwas aufgefallen.
                                          144_sensor_vergleich04.jpg

                                          ich hatte schon vorher den Verdacht, jetzt war es wieder.

                                          In der Phase wo der/die IAQ kalibrieren haben anscheinend die Werte ein höheres Rauschen und die BME-Werte scheinen dann auch stärker voneionander abzuweichen.

                                          ist die Kalibrierung erst einmal abgeschlossen (=Fenster zu) werden die Kurven wieder ruhiger und die BME-Werte passen sich wieder aneinender an.

                                          Gruß

                                          Rainer

                                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          370

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe