Author Topic: Air Quality Bricklet (Accuracy: low) springen die Werte.  (Read 1201 times)

borg

  • Administrator
  • Hero Member
  • *****
  • Posts: 3.066
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #15 on: March 07, 2019, 16:05:03 »
Hallo borg,

wenn ich die 2.0.4 einspiele, muss ich dann irgendeinen "reset" ausfuehren, damit die alten (bisherigen) Daten der 2.0.3 geloescht werden?
Das macht das Update automatisch.

Weiterhin mal die Frage was eigentlich fuer die Kalibrirung notwendig ist?  ::)
Reicht es Bricklet+Brick mit Strom zu verbinden oder muss da was vom Brickviewer (oder per eigener Software) gesteuert werden?
Da musst du nichts machen, einfach mit Strom verbinden. Das passiert alles intern.
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.177
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #16 on: March 07, 2019, 16:06:54 »
Du bist zu schnell fuer mich.  ;D
Ich hab da noch einen 2. Teil im Beitrag per Edit angefuegt. Schau da bitte auch mal drueber.

Danke

Der Loetkolben

borg

  • Administrator
  • Hero Member
  • *****
  • Posts: 3.066
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #17 on: March 07, 2019, 16:18:18 »
Zitat: "die gespeicherte Kalibierung wieder geladen wird"
Wo wurde sie denn gespeichert und wohin wird sie geladen? Ich dachte die Werte werden durch diese (externe) Bosch-Firm-/Software errechnet.

Entweder ich habe die Doku nicht gut genug gelesen oder ich verstehe die Arbeitsweise des Bricklets immer noch nicht.

Koenntest du mal bitte erklaeren, wo was wann gespeichert wird und was nach einem "Stack Power on" passiert?

Es gibt ein Stück proprietäre Software namens BSEC. Dieses Stück Software kommt von Bosch und es ist für uns eine Blackbox. Diese Blackbox hat (unter anderem) die API bsec_get_state() und bsec_set_state().

Bei einem Aufruf von bsec_get_state() wird der aktuelle "State" des Algorithmus inklusive der ganzen Kalibrierungsdaten usw zurück gegeben.

Durch einen Aufruf von bsec_set_state() kann dieser State wieder gesetzt werden.

Das Bricklet ruft alle 12 Stunden bsec_get_state() auf und speichert die zurückgegebenen Daten inklusive einer CRC in den Flash.

Wenn das Bricklet gestartet wird, schaut es ob gespeicherte Daten im Flash liegen und ob die CRC passt. Falls dies der Fall ist lädt es diese Daten und setzt sie per bsec_set_state().

Das ist bereits die komplette Logik aus Sicht des Bricklets.

Entweder die Funktion bsec_set_state() oder bsec_get_state() hat in der aktuellen Version von BSEC einen Bug welcher dazu führt dass die Kalibrierungsdaten (die Teil des States sind) korrupt werden.
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.177
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #18 on: March 07, 2019, 16:51:41 »
Ich fasse das mal fuer mich zusammen mit der Frage ob ich das richtig verstanden habe:

Die proprietaere Bosch Software laeuft auf dem Coprozessor des Bricklets und kommuniziert permanent (Intervalle?) mit dem Sensor, holt dort Daten ab und verarbeitet sie zu dem IAQ Index. Diese IAQ Daten koennen per API von der Brickletfirmware abgeholt werden.

Die Kalibrierungsdaten werden im Flash des Bricklets, durch die Brickletfirmware alle 12 Stunden, abgelegt. Und koennen von dort ggf. wieder der Boschsoftware uebergeben werden. (Damit kann man das Bricklet problemlos an einen anderen Brick stecken und es geht an der "gleichen" Stelle weiter)

Holt die Tinkerforge Brickletfirmware die anderen, nicht IAQ Daten wie Temperatur/Luftfeuchte, direkt vom Sensor oder auch per API von der Bosch Software?


Der Loetkolben

borg

  • Administrator
  • Hero Member
  • *****
  • Posts: 3.066
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #19 on: March 07, 2019, 17:32:34 »
Das hast du komplett richtig erklärt.

Alle Werte des Bricklets kommen über die API der Bosch Software. Die Bosch Software steuert unter anderem einen Heater, der die Luft in dem Sensor in regelmäßigen Intervallen auf >100°C erhitzt. Das wird gemacht um den IAQ-Index zu bestimmen.

Damit man gleichzeitig aber noch die korrekte Temperatur und Luftfeuchte usw auslesen kann muss die Bosch Software diese aber natürlich wenn der Heater an ist entsprechend justieren.

Wenn die Bosch Software läuft und wir nebenher einfach selbst die Temperatur auslesen würden (was wir könnten) würden wir regelmäßig sowas wie 100°C messen.

Was wir machen könnten ist die Bosch Software komplett runter schmeißen und den Heater ignorieren. Dann könnten wir Temperatur, Luftfeuchte und Luftdruck messen, aber keinen IAQ. Der kommt erst durch diese Steuerung des Heaters und des Auslesens der "Gas Resistance" zustande. Den Algorithmus dafür oder auch nur eine Erklärung wie das im Detail funktioniert gibt es aber von Bosch leider nicht...
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.177
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #20 on: March 07, 2019, 19:08:35 »
Hallo borg,

danke fuer die Erklaerungen! Das ist hilfreich um die Ablauefe und Probleme besser zu verstehen. Ihr steckt so tief in der Materie drin, dass diese Zusammenhaenge total klar sind.


Zwei nicht ernstgemeinte Anmerkungen:
Quote
Die Bosch Software steuert unter anderem einen Heater
Das ist bei der Groesse des Sensors wohl selbstverstaendlich. Da ist aber noch ein Refrigerator und eine Microwave drin. Wird aber erst von Bosch freigeschaltet, wenn das Raetzel um den IAQ geloest ist.  :o

Quote
würden wir regelmäßig sowas wie 100°C messen.

Das Ding ist wirklich ein heisses Eisen.  ;D ;D


Soweit erstmal. Dann schauen wir mal wie es weitergeht und ich werde die neue FW ausprobieren.

Der Loetkolben

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.177
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #21 on: March 07, 2019, 23:39:25 »
Ich hab da noch einen Vorschlag aus der Huefte:

Koennte die LED die 4 Accurancy Modes darstellen?

Mode 0 bis 3:
0: blink - 2 Sek. Pause
1: blink - blink - 2 Sek. Pause
2: blink - blink - blink - 2 Sek. Pause
3: blink - blink - blink - blink - 2 Sek. Pause
Oder Mode 0 ist ganz ohne blinken, dann kommt man beim Zaehlen auch nicht durcheinander. (shift -1)   ;)

BTW: Stimmen so die Mappings zwischen Wert und String im Brickviewer?
Code: [Select]
Brickv:     Mode:
Unreliable:  0
Low:         1
Medium:      2
High:        3


Hilft evtl. beim Verstehen bei jetzigen FW Stand.


Der Loetkolben
« Last Edit: March 08, 2019, 01:03:58 by Loetkolben »

Equinox

  • Sr. Member
  • ****
  • Posts: 263
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #22 on: March 10, 2019, 12:08:55 »
Hallo,

erstes kurzes Zwischenergebnis mit der 2.0.4:
Beim IAQ Index habe ich jetzt keine Sprünge oder Ausreißer mehr. Die Kurve sieht gut aus.
Allerdings verstehe ich die Werte immer noch nicht  :( Im Moment habe ich einen IAQ Index von 249 bei "Accuracy High". Schade dass Bosch nicht veröffentlicht, wie sie den berechnen.

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.177
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #23 on: March 11, 2019, 03:17:15 »
Ich habe nur die Level "Unreliable" und "Low".
Die Werte schwanken zwischen 30 und 60.

Bei IAQ 249 wuerde ich sagen: Kippe aus und Fenster auf.  ;D

Ich verstehe diese Bricklet nicht.


Der Loetkolben

Equinox

  • Sr. Member
  • ****
  • Posts: 263
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #24 on: March 11, 2019, 09:22:04 »
Hallo,

nach etwas Forschen interpretiere ich den IAQ Index so:
Wichtig ist das 'I' in IAQ. Wobei ich das nicht nur als 'Indoor' sehe, sondern genauer als 'Büroarbeitsplatz'. Sprich: Der Index gibt an, wie gut die Bedingungen für die Arbeit in einem Büro sind. Dabei wird von bestimmten Idealwerten ausgegangen, z. B. 40% oder 50% rel. Luftfeuchtigkeit. Je stärker ein Wert vom Idealwert abweicht, umso schlechter wird der IAQ Index.
Wenn jetzt z. B. die VOCs OK sind, aber es werden 80% rel. Luftfeuchtigkeit bei 10°C gemessen, dann sind das keine guten Bedingungen für eine Arbeit im Büro und der IAQ Index ist entsprechend schlecht.
Zumindest scheinen für die bei mir mit der 2.0.4 berechneten Werte für den IAQ Index mit dieser Interpretation einigermaßen sinnvoll zu sein.

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.177
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #25 on: March 11, 2019, 14:16:11 »
Hallo Equinox,

schau dir mal die 2 Fotos an die ich abgelegt habe. S.o. Auf dem einen muss "oben" auf dem Bildschirm die 4 Werte des Sensors zu sehen sein. Das sind alles Werte in einer Messehalle. Die sind sinnvoll und eben anders als Deine oder meine Interpretation oder verstehe ich Dich falsch?


Der Loetkolben


Equinox

  • Sr. Member
  • ****
  • Posts: 263
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #26 on: March 11, 2019, 14:45:16 »
Hallo Loetkolben,

du meinst das Foto mit Marilyn Monroe?
Das würde doch zu meiner Interpretation ungefähr passen:
Bei 25°C, einer rel. Luftfeuchtigkeit von 20% und keine VOCs ergibt das einen IAQ  Index von geschätzt 40. Ich hätte ihn da zwar auch höher vermutet, aber grundsätzlich sind das doch keine schlechten Arbeitsbedingungen, oder?

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.177
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #27 on: March 11, 2019, 14:52:42 »
Ja, das Foto meine ich. Ich weiss auch nicht warum ich nicht bessere und sinnvollere Aufnahmen gemacht habe.  :(

Dann verstehe ich Dich wohl falsch und dachte Du bist mit Deinem Wort 249 zufrieden oder nicht?!

Ich bekomme bei meinem 2.0.4 Bricklet immer nur "Unreliable" und "Low" zu sehen, egal wie lange das Bricklet dranlasse. Aus der Ferne "beobachtet" pendelt es gerade zwischen 30 und 35 ohne dass jemand da ist.


Der Loetkolben

Equinox

  • Sr. Member
  • ****
  • Posts: 263
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #28 on: March 11, 2019, 15:11:10 »
Ich war tatsächlich mit dem Wert 249 unzufrieden (im Sinne von "der ist völlig falsch"), weil ich den Wert als 'Luftqualität' interpretiert habe. Da der Sensor bei mir im Wintergarten ist, gehe ich davon aus, dass die Luftqualität (im Sinne der VOCs) wegen der Pflanzen dort sehr gut ist. In die Berechnung gehen aber nicht nur die VOCs ein (wäre für mich vmtl. geeigneter), sondern eben auch Temperatur und rel. Luftfeuchtigkeit.
Wenn ich den Wert aber als 'Arbeitsklima' in einem Büro interpretiere, dann ist der Wert durchaus einigermaßen nachvollziehbar bzw. plausibel. Zum Zeitpunkt, als 249 angezeigt wurde, waren tatsächlich ca. 10°C und 80% rel. Luftfeuchtigkeit (und vmtl. keine VOCs). Für einen Büroraum sind das schon schlechte Werte (unter diesen Bedingungen möchte ich zumindest nicht in einem Büro arbeiten).
Bez. "Accuracy": Ich habe am Freitag die 2.0.4 installiert. Danach war das Verhalten genau wie von borg beschrieben. Es hat mit 25 angefangen bei "Unreliable" und wurde dann besser. Seit spätestens Sonntag Mittag habe ich "high".

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.177
    • View Profile
Re: Air Quality Bricklet (Accuracy: low) springen die Werte.
« Reply #29 on: March 11, 2019, 15:18:39 »
Jetzt habe ich Dich auch verstanden.  :)  Kannst du das Bricklet mal in ein Arbeitszimmer, ggf. an einem anderen Stack, bringen? Hier gibt es sonst recht wenig Resonanz im Forum.

Bei mir startet das 2.0.4 Bricklet mit 25 und 0 wie erwartet, bleibt aber immer bei "low". Habe ich Resets auf meinem Bus?

Der Loetkolben