Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Welchen Luftgütesensor

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Welchen Luftgütesensor

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      @kmxak:

      Wie oft aktualisiert ihr die Sensoren? Alles unter einer Minute ist mist musste ich feststellen. Dann messen die nicht richtig. `
      Stimmt das glaube ich habe ich auch schon gelesen.

      Ich fürchte da sind wir weit weg. Etwa alle 7 Sekunden.

      Gruß

      Rainer

      1 Reply Last reply Reply Quote 0
      • kmxak
        kmxak Most Active last edited by

        Kannst nicht auf 30 oder 60 erhöhen und nochmal über Nacht loggen?

        Gesendet von meinem SM-G930F mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • M
          MaikB85 last edited by

          Wäre kein Problem die Abfrage für den BME280 nur jede Minute auszuführen. Müsste der Code dafür geändert werden. Ich würde da jetzt nicht unbedingt das letzte Delay() zu hoch setzten weil dann alles steht für die Zeit und so auch immer wieder die Verbindung neu aufgebaut werden muss. Ist nicht so schön das müsste man dann schon richtig über eine Zeitabfrage machen. Ich kann das aber erst heute Abend ändern…

          Gesendet von meinem SM-G925F mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

            @MaikB85:

            Ich würde da jetzt nicht unbedingt das letzte Delay() zu hoch setzten weil dann alles steht für die Zeit …das müsste man dann schon richtig über eine Zeitabfrage machen. Ich kann das aber erst heute Abend ändern... `
            Danke!

            Als Arduinisch-Anfänger hatte ich mir da zwar schon den sketch angesehen und auch nur die Delays gesehen. aber kein allgemeines Time-setting.

            ich hätte jetzt heute abend alle delays verdoppelt ohne zu wissen was ich tue 😉

            Frage an die Profis: kann man dann nicht auch in den "Settings" eine variable setzen um mal eben verschiedene Zeiten auszutesten ohne jedesmal den Code zu ändern? Oder wird da nur ein Wert geändert?

            Der Drop gestern abend lag daran, dass der Teensy noch am PC hing. beim runterfahren wurde wohl kurz die Stromzuführung gekappt.

            Gruß

            Rainer

            1 Reply Last reply Reply Quote 0
            • M
              MaikB85 last edited by

              Das könnte man auch über IOBroker bzw MQTT nachher machen wenn der Code auf dem Teensy dementsprechend angepasst wird. Also dass du settings im IOBroker anlegst, die dann per MQTT an den Teensy geschickt werden. Das klappt wunderbar. Werde ich dann direkt heute Abend so machen

              Gesendet von meinem SM-G925F mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • M
                MaikB85 last edited by

                @ Rainer

                Hab mal schnell die Zeitfunktion gebastelt…

                Bitte mal folgenden Code ausprobieren:

                ! ```
                #include <bme280boschwrapper.h> #include <ethernet.h> #include <stdlib.h> #include <avr pgmspace.h=""> #include <pubsubclient.h> #include "Wire.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/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");/unsigned/long/currentmillis="millis();" ((unsigned/long)(currentmillis/synctime)="">= 60000) //Alle 60sec 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;></pubsubclient.h></avr></stdlib.h></ethernet.h></bme280boschwrapper.h>
                ! in der Zeile:
                ~~[code]~~ if ((unsigned long)(currentMillis - syncTime) >= 60000) //Alle 60sec ausführen[/code]
                kannst du das Messintervall des BME280 einstellen
                ! Gruß Maik
                ! P.S. natürlich wieder die Variablen oben für dich anpassen![/i][/i][/i]

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  Danke, Maik!
                  @MaikB85:

                  Bitte mal folgenden Code ausprobieren: `
                  wenn ich jetzt nicht im Büro wäre ;.)

                  @MaikB85:

                  P.S. natürlich wieder die Variablen oben für dich anpassen! `
                  klar"

                  Danke nochmals,

                  ich melde mich sobald ich es testen konnte.

                  Gruß

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • G
                    gerrit last edited by

                    @MaikB85:

                    @gerrit

                    Ja mindestens 10 Bestellungen wäre am günstigsten. Ich schaue am Wochenende nach wie der Preis aktuell ist.

                    Gesendet von meinem SM-G925F mit Tapatalk `
                    Danke! Ja bin bisher bei 11 Bestellungen, also sollte auf jeden Fall mit 10 passen.

                    1 Reply Last reply Reply Quote 0
                    • S
                      simpixo last edited by

                      Also ich möchte eine Platine bestellen! Schick mir mal eine PN

                      Gruß

                      Adrian

                      Gesendet von iPhone mit Tapatalk Pro

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        Ich habe jetzt den zweiten Sensor fertig und kann die Werte vergleichen. Leider habe ich sie an zwei verschiednen ioBroker installationen angemeldet und kann sie so nicht direkt zusammen visualisieren.

                        Die Werte passen jeweils zusammen, aber nicht zum HomeMatic Wandthermostaten.

                        Die BME liegen (auch mit 1Minute Messintervall) etwa 3°C und 4 °C höher als der WT.

                        Die Feuchtewerte differieren entsprechend, als ob die abs. Feuchte gemessen und über die Temperatur auf rF umgerechnet wird.

                        Wenn man also nur die Temperatur im Backend korrigiert bleibt die rF falsch (beim WIFFI ist es genau so).

                        Leider ist mir die Langzeitbeobachtung mal wieder durch zwei Drops durch das aus- und wieder anschalten des PC und anschließender (falscher) Neukalibrierung des IAQ misslungen. Was mich besonders ärgert, dass sie bis gestern abned noch ziemlich parallel liefen, jetzt nicht mehr 😞

                        Was mir aber gerade beim erneuten Kalibrieren bei offenem Fenster auffiel ist dass der Widerstand beider IAQ etwa um den Faktor 4-5 unterschiedlich ist. Eine absolute Kalibrierung über den Widerstand ist somit zumindest modulübergreifend nicht möglich. Solange die relativen Werte nachher wieder passen ist ja gut.

                        Gästezimmer:
                        144_iaq_gast.jpg

                        Daddelzimmer:
                        144_iaq_arcade.jpg

                        Im MOment stehen noch beide Sensoren nebeneinander direkt neben einem Wandthermostat.

                        Gruß

                        Rainer

                        1 Reply Last reply Reply Quote 0
                        • M
                          MaikB85 last edited by

                          Ich glaube man muss sich nochmal genau das Datenblatt vom Bosch BME280 ansehen. Dort wird sicher beschrieben sein wie der genau arbeitet. Sind auf jeden Fall ein paar Seiten [emoji16]

                          Ich werde auf jeden Fall wenn ich nachher Zuhause bin nochmal direkt mit einem geeichten Temperaturmessgerät vergleichen…

                          Gruß Maik

                          Gesendet von meinem SM-G925F mit Tapatalk

                          1 Reply Last reply Reply Quote 0
                          • M
                            MaikB85 last edited by

                            @gerrit

                            Die iAQ liegen bei Abnahme von min 10 Stk bei ca. 26,50€ pro Modul.

                            Gesendet von meinem SM-G925F mit Tapatalk

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators last edited by

                              @MaikB85:

                              Ich werde auf jeden Fall wenn ich nachher Zuhause bin nochmal direkt mit einem geeichten Temperaturmessgerät vergleichen… `
                              Super!

                              Ich habe mir gerade die geloggten Daten nochmal angesehen und wegen meines dauernden Umbauens durch Zufall doch die Daten beider IAQs und BMEs geloggt:
                              144_teensy_2versch_iaq.jpg

                              In deinem Screenshot ist der Widerstand auch um +/- 100000, so wie bei meinem einen Hast du auch die Daten von deinem anderen Board?

                              @MaikB85:

                              Die iAQ liegen bei Abnahme von min 10 Stk bei ca. 26,50€ pro Modul. `
                              Wenn das hier rund läuft hätte ich wahrscheinlich auch noch an mehreren IAQ + Platine interesse.

                              Gruß

                              Rainer

                              1 Reply Last reply Reply Quote 0
                              • M
                                MaikB85 last edited by

                                Das zweite Modul habe ich noch nicht in Betrieb.

                                Gucke mir gerade das Datenblatt an.

                                Temperature measured by the internal temperature sensor. This temperature value depends on the PCB temperature, sensor element self-heating and ambient temperature and is typically above ambient temperature.
                                

                                Damit wäre das schonmal geklärt.

                                Was das Messen angeht, dass macht so keinen Sinn mit der Minute warten im Programm weil der sowieso alle paar Millisekunden misst und die Werte in das Register packt. Somit macht das keinen Unterschied. Es wird so nur alle 60 Sekunden das Register abgefragt. Dann müsste man den Sensor im forced-mode betreiben wo man wirklich nur dann musst wenn man es will. Allerdings wird der normal-mode empfohlen für indoor Messungen…

                                Gesendet von meinem SM-G925F mit Tapatalk

                                1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators last edited by

                                  @MaikB85:

                                  Damit wäre das schonmal geklärt. `

                                  …und in Verbindung mit dieser Info:
                                  @MaikB85:

                                  dass die Temperaturmessung eigentlich nicht unbedingt zur Messung der Umgebungstemperatur vorgesehen ist, sondern zur Bestimmung der Luftfeuchte dient (Temperatur des Chips) `
                                  Und damit wird dann wohl die rF auf dem Board gemessen??? wegen möglicher Kriechströme???

                                  Gruß

                                  Rainer

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    MaikB85 last edited by

                                    @Homoran:

                                    @MaikB85:

                                    Damit wäre das schonmal geklärt. `

                                    …und in Verbindung mit dieser Info:
                                    @MaikB85:

                                    dass die Temperaturmessung eigentlich nicht unbedingt zur Messung der Umgebungstemperatur vorgesehen ist, sondern zur Bestimmung der Luftfeuchte dient (Temperatur des Chips) `
                                    Und damit wird dann wohl die rF auf dem Board gemessen??? wegen möglicher Kriechströme???

                                    Gruß

                                    Rainer `

                                    Nene laut Datenblatt ist das schon zur Messung der relativen Luftfeuchte der Umgebung. Nur da ja die Luftfeuchte im Chip direkt gemessen wird muss ja auch da die Temperatur gemessen werden um richtige Werte zu liefern. Also ich wüsste im Moment nicht warum die Luftfeuchtemessung nicht stimmen sollte. Habe leider kein Referenzmessgerät für sowas. Womit hast du das überprüft?

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      MaikB85 last edited by

                                      So also ich hab zwischen 3-4°C zu viel,was der Sensor liefert gegenüber dem geeichten Messgerät. Gemessen habe ich direkt neben dem BME280 Board.

                                      Bin am Überlegen für die Raumtemperatur einen speziellen Temperaturfühler zu verwenden, weiß aber noch nicht genau welchen. Hätte noch DS18B20 Fühler die ich mal testen könnte bezüglich Abweichung…

                                      1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators last edited by

                                        @MaikB85:

                                        Womit hast du das überprüft? `
                                        Bin zu faul zum rechnen, sonst denke ich, dass ich das rekursiv nachweisen kann:

                                        Wenn man aus relativer Feuchte und Temperatur den Feuchtegehalt in g/kg (oder g/m³) ausrechnet, so würde ich jetzt behaupten kommt bei allen Sensoren immer das selbe (richtige) heraus.

                                        Wenn man dann nur die Temperatur korrigiert und die rF bleibt, ist auch die abs. Feuchte falsch.

                                        Bei beiden BM280 liegen die Unterschiede in Temp und rF in etwa so, wie ich es erwarte, dass bei entsprechenden Temperturänderungen und bleibender abs. Feuchte sich die rF ändert.

                                        Beim Wiffi ist es übrigens genauso:
                                        144_luftguete_rt_neu.jpg
                                        Im ganzen Haus (zumindest je Etage) ist die abs. Feuchte gleich (Bei uns stehen immer alle Türen offen.

                                        im Wohnzimmer mit offenem Esszimmer steht ein WIFFI miot 3°C Korrekturfaktor. an der Anderen Wand im Esszimmer hängt ein Wandthermostat. Die rF wird vom WIFFI etwa 10 Prozentpunkte zu niedrig angegeben.

                                        Genauso wird es sich mit Teensy und Wandthermostat verhalten:
                                        144_teensy_20170805.jpg

                                        Gruß

                                        Rainer

                                        1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators last edited by

                                          @MaikB85:

                                          So also ich hab zwischen 3-4°C zu viel,was der Sensor liefert gegenüber dem geeichten Messgerät. `
                                          Das entspricht ja genau dem was ich beobachte (WIFFI und Teensies)

                                          Der Wandthermostat ist nur um einiges träger, insbesondere bei der Feuchte.

                                          Gruß

                                          Rainer

                                          1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators last edited by

                                            So!

                                            Jetzt habe ich es doch getan!

                                            Auf die Schnelle online nur die Umrechnung in g/m³ gefunden - es geht aber nicht um den absoluten Wert, sondern um's Prinzip 😉

                                            die absolute Feuchte im obigen Screenshot ist beim Teensy 13,3 g/m³ und beim Wandthermostat 13,1 g/m³, was absolut vergleichbar ist!

                                            Also ist die relative Feuchte nur auf die original Temperatur korrekt.

                                            Würde ich jetzt nur die Temperatur um 3,5K korrigieren wäre die absolute Feuchte nur noch 10,9 g/m³

                                            Gruß

                                            Rainer

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            801
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            226
                                            45566
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo