Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PH04 - wrong HCHO values #244

Closed
git2206 opened this issue Jan 8, 2024 · 10 comments · Fixed by #249
Closed

PH04 - wrong HCHO values #244

git2206 opened this issue Jan 8, 2024 · 10 comments · Fixed by #249
Labels
bug Something isn't working Fixed Fixed in development branch

Comments

@git2206
Copy link

git2206 commented Jan 8, 2024

Hallo,

Zuerst mal danke für den tollen Adapter!
Was mir aufgefallen ist, dass einige Werte leider nicht ganz passen...
VOC und NO2 liefern in der App andre Werte als im Adapter. Und bei Formaldehyd werden laut dyson App dreistellige Commawerte dargestellt... zB. 0.055... Laut App Doku ist alles über 0.500 sehr schlecht...
Ihr Adapter liefert aber ganze Zahlen.. zb. 8 oder 17.... :) - Kann es sein das im Adapter da etwas mit der Umrechnung nicht passt..

Vielen Dank!

Mit freundlichen Grüßen
Flo

@Grizzelbee Grizzelbee added the bug Something isn't working label Jan 10, 2024
@Grizzelbee
Copy link
Owner

Grizzelbee commented Jan 10, 2024

Hallo Flo,

Deine Beobachtungen sind absolut korrekt. ;o)
... und ich muss mal ein bisschen drüber nachdenken, wie ich das löse.

Zur Erklärung:
Die Sensoren liefern zum Teil andere Werte/Rohdaten als das was in der App angezeigt wird. Deshalb habe ich erst einmal alles einigermaßen "Roh" übernommen um das irgendwann einmal anzugehen, wenn (falls) mehr Informationen vorliegen.
VOC:
Der Sensor liefert Zahlen von 0 bis über hundert. Deshalb berechne ich den VOC-Index wie folgt:

        // VOC QualityIndex
        // 0-3: Good, 4-6: Medium, 7-8, Bad, >9: very Bad
        let VOCIndex = 0;
        if (message[row].va10 < 40) {
            VOCIndex = 0;
        } else if (message[row].va10 >= 40 && message[row].va10 < 70) {
            VOCIndex = 1;
        } else if (message[row].va10 >= 70 && message[row].va10 < 90) {
            VOCIndex = 2;
        } else if (message[row].va10 >= 90) {
            VOCIndex = 3;
        }

NO2 läuft analog - wenngleich da keine Zehner-Potenzen im Spiel sind. Da sollten die werte also eigentlich soweit passen.

        // NO2 QualityIndex
        // 0-3: Good, 4-6: Medium, 7-8, Bad, >9: very Bad
        let NO2Index = 0;
        if (message[row].noxl < 4) {
            NO2Index = 0;
        } else if (message[row].noxl >= 4 && message[row].noxl <= 6) {
            NO2Index = 1;
        } else if (message[row].noxl >= 7 && message[row].noxl <= 8) {
            NO2Index = 2;
        } else if (message[row].noxl >= 9) {
            NO2Index = 3;
        }

Und bei den PMs sind - wie ich gerade zufällig sehe - die PMxxR Werte die eigentlich richtigen.

Was die HCHO-Werte betrifft ... die habe ich eingebaut noch bevor dyson die in seiner App hatte.
Deshalb - und weil ich selbst keinen Lüfter mit HCHO-Sensor habe - habe ich die Werte einfach so roh ausgegeben und auch noch keinen Index zu eingebaut. Wenn Du mich da mit Daten und Infos versorgen kannst, baue ich das gerne korrekt ein.

@git2206
Copy link
Author

git2206 commented Jan 10, 2024 via email

@Grizzelbee
Copy link
Owner

Grizzelbee commented Jan 10, 2024

HCHO->HOCR 🤦

Oh! Mein! Gott! Das ergibt (mit dem Wissen von heute) sogar Sinn!
Die Datenfelder, die auf R enden, sind die, die die App verwendet! Keine Ahnung wofür die anderen sind.
Das weiß ich deshalb, weil aktuell neben einem meiner dysons eine Obstschale steht und die PM25R und PM10R Werte komplett am Anschlag sind, die von PM25 und PM10 sind aber im niedrigen dreistelligen Bereich.
Insofern ist es nur konsequent wenn HCHR genutzt wird statt HCHO (btw: hcho ist die chemische Formel von Formaldehyd).

The HCHO Scale is as follows:
0.000-0.099 Good
0.100-0.299 Medium
0.300-0.499 Bad
0.500+ Very Bad

 MQTT message received: {
	"msg": "ENVIRONMENTAL-CURRENT-SENSOR-DATA",
	"time": "2022-07-12T13:26:36.000Z",
	"data": {
		"tact": "2964",
		"hact": "0058",
		"pm25": "0003",
		"pm10": "0002",
		"va10": "INIT",
		"noxl": "INIT",
		"p25r": "0005",
		"p10r": "0005",
		"hcho": "NONE",
		"hchr": "NONE",
		"sltm": "OFF"
	}
}

TODO:

  • Replace hcho in dysonConstants with hchr
  • devide value of hchr by 1000
  • Add hcho-Index (see scale above)
  • remove PM10R from deviceTree (suppress further output)
  • remove PM25R from deviceTree (suppress further output)
  • Replace value of pm25 with pm25r
  • Replace value of pm10 with pm10r

Bei NOXL habe ich damals schon vermutet, dass es auf ein floor(NOXL/10) rausläuft.
Da ich aber keine Infos zum Sensor oder irgendetwas habe, habe ich mich entschlossen die Rohwerte zu nutzen und die Skala einfach anzupassen.

@git2206
Copy link
Author

git2206 commented Jan 10, 2024 via email

@Grizzelbee Grizzelbee added the Fixed Fixed in development branch label Jan 18, 2024
@Grizzelbee
Copy link
Owner

Hallo Flo,

habe die V3.0.0 am Wochenende mal ins Beta Repo geschoben. Hast Du die zufällig gesehen und mal ausprobiert?
Die sollte die Indizes sowie HCHO, PM2.5 und PM10 korrigieren und die alten *R Felder löschen.

Eine bitte hätte ich noch - kann man ev. bei Automodus auch den Fan-Speed ausgeben?… falls das die APIO her gibt…:)

Die Anfrage habe ich hier: #243
bereits beantwortet. Leider ist mir kein Weg bekannt an diese Daten zu kommen - in den Nachrichten, die ich kenne steht der nicht drin. Über Hilfe zu dem Thema würde ich mich sehr freuen.
Leider lässt sich der Traffic der dysons nicht so ohne weiteres sniffen um danach zu suchen (Fritz.box/capture, WireShark, ...), weil der nicht im Klartext läuft. Das ist alles TLS verschlüsselt ...

@git2206
Copy link
Author

git2206 commented Jan 18, 2024 via email

@Grizzelbee
Copy link
Owner

Ich habe vorhin versucht im iobroker von stable auf latest umzustellen… sollte ich dann die version 3 sehen?

Japp. Das und dann einmal im Head auf aktualisieren klicken - oder einfach warten, bis das automatisch passiert.

@git2206
Copy link
Author

git2206 commented Jan 18, 2024 via email

Grizzelbee added a commit that referenced this issue Feb 1, 2024
@Grizzelbee Grizzelbee mentioned this issue Feb 1, 2024
@Grizzelbee
Copy link
Owner

Hi Flo,

have you noticed the avaliability of V3.1.1 and tested it?
From my point of view it looks pretty promising. ;)

@git2206
Copy link
Author

git2206 commented Feb 8, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Fixed Fixed in development branch
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants