Feinstaubsensor bauen (luftdaten.info)

Begonnen von igami, 08 Februar 2017, 06:23:27

Vorheriges Thema - Nächstes Thema

Icinger

ZitatBei der Version von Luftdaten.info wird der Sensor in jeder Minute für 15 Sekunden eingeschaltet.

Das Datenblatt schweigt sich darüber leider aus, aber an einigen anderen Stellen hab ich gelesen, dass der Sensor erst nach 30 Sekunden verlässliche Daten liefert....
Hmm......Na mal schaun wie ich Lust habe, den selbst anzusteuern....
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

reibuehl

Zitat von: igami am 02 April 2017, 16:12:35
Ich würde mich über FeedBack freuen, besonders wenn Fehler auftreten.

Vielen Dank für Deine tolle Arbeit an dem Modul! Ich hab es gerade mal bei mir installiert. Die Werte sehen beim Vergleich mit dem aktuellen data.json korrekt aus.

Das State Attribut könnte meiner Meinung nach etwas "informativer" gestaltet werden. Ich hab es bei mir mal über das Attribut stateFormat abgeändert:

state = {sprintf("PM10: %.1f µg/m³ / ",ReadingsVal("Feinstaub","PM10",0)).sprintf("PM2.5: %.1f µg/m³ / ",ReadingsVal("Feinstaub","PM2.5",0)).sprintf("Temp: %.1f °C / ",ReadingsVal("Feinstaub","temperature",0)).sprintf("Hum: %.1f %%", ReadingsVal("Feinstaub","humidity",0))}

Damit sieht der State des Device dann so aus:

PM10: 17.0 µg/m³ / PM2.5: 15.3 µg/m³ / Temp: 16.5 °C / Hum: 57.6 %

Außerdem würde ich die Beschreibung des Zusammenhangs zwischen SDS011 ID und DHT ID in der CommandRef ändern. Hier wird meiner Meinung nach Digit und Count bzw. Wert und Stelle verwechselt. Wie wäre hier einfach

The DHT22 SensorID is usually the SDS011 SensorID + 1 and does not have to be specified explicitly.

bzw. in Deutsch

Die DHT22 SensorID entspricht normalerweise der SDS011 SensorID + 1 und muss nicht explizit mit angegeben werden.

Dann ist mir noch ein kosmetischer Fehler aufgefallen: In der CommandRef scheint "Prerequisites" von der Einrückung her eine Unterüberschrift zu sein, wird aber nicht fett gedruckt.

Ich werde wohl über Ostern noch einen zweiten Sensor bauen, diesmal mit einem Bosch BME280 statt dem DHT22. Sobald der läuft, kann ich Dir mal ein data.json schicken, in dem dann auch relpreasure mit echten Werten gefüllt wird.



Reiner.

igami

Zitat von: reibuehl am 02 April 2017, 19:16:25
Damit sieht der State des Device dann so aus:

PM10: 17.0 µg/m³ / PM2.5: 15.3 µg/m³ / Temp: 16.5 °C / Hum: 57.6 %
Also wenn ich mir das Weather oder HomeMatic Modul angucke sind die zusammengesetzten states immer ohne Einheiten und da war ich noch nie ein Fan von.
Ich bastel Sie mir auch immer selbst mit stateFormat zusammen.
State ist meiner Meinung nach ein Reading welches Informationen über den Status geben soll, eben active, disabled oder auch error.

Zitat von: reibuehl am 02 April 2017, 19:16:25
Außerdem würde ich die Beschreibung des Zusammenhangs zwischen SDS011 ID und DHT ID in der CommandRef ändern. Hier wird meiner Meinung nach Digit und Count bzw. Wert und Stelle verwechselt. Wie wäre hier einfach

The DHT22 SensorID is usually the SDS011 SensorID + 1 and does not have to be specified explicitly.

bzw. in Deutsch

Die DHT22 SensorID entspricht normalerweise der SDS011 SensorID + 1 und muss nicht explizit mit angegeben werden.

Dann ist mir noch ein kosmetischer Fehler aufgefallen: In der CommandRef scheint "Prerequisites" von der Einrückung her eine Unterüberschrift zu sein, wird aber nicht fett gedruckt.
Werde ich abändern, vielen Dank für das genaue lesen :)

Zitat von: reibuehl am 02 April 2017, 19:16:25
Ich werde wohl über Ostern noch einen zweiten Sensor bauen, diesmal mit einem Bosch BME280 statt dem DHT22. Sobald der läuft, kann ich Dir mal ein data.json schicken, in dem dann auch relpreasure mit echten Werten gefüllt wird.
Momentan prüfe ich auf den Sensor Typ. Das Modul wird dann keine Werte für den Sensor liefern. Werde ich dann aber einbauen.
Ich denke dann sollte ich die Internals für die IDs auch nochmal umbenennen, vllt in SENSORPMID und SENSORWEATHERID oder so.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

chem

Das mit den Abstürzen kann ich leider bestätigen, ich dachte mir auch, warum die Daten aus der Ferne holen, wenn ich sie lokal habe. Allerdings stürzt der Sensor leider regelmässig ab wenn man den integrierten Web-Server pollt.

Immerhin gibt es einen Timeout und er startet neu, man muss also nicht die Stromversorgung kappen oder ähnliches.

Wenn ich mal wieder Zeit habe, werde ich mir das Modul anschauen, oder die Firmware des Sensors....

igami

#34
Im Anhang eine neue Version des Moduls.
Es wurde die Commandref abgeändert, die Internals der Sensor IDs geändert. Längen- und Breitengrad werden nur einmal als Readings angelegt, es gibt ein neues Reading address in dem die Adresse als "Straße Hausnummer, Postleitzahl Ort" steht.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

reibuehl

Also das reading address ist bei mir nicht aufgetaucht. Worüber sollte das gefüllt werden?
Reiner.

igami

Mach mal bitte ein modify, das reading wird nur befüllt, wenn es latitude oder longitude noch nicht gibt. Werde ich nachher noch erweitern.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

reibuehl

Wenn ich auf DEF klicke und dann (ohne die Sensor ID zu ändern) auf Modify, schmiert mir mein ganzes FHEM mit der Meldung

Undefined subroutine &main::readingsBulkUpdateIfChanged called at ./FHEM/59_LuftdatenInfo.pm line 301.

ab.  :(
Reiner.

igami

Ist dein FHEM aktuell? Die Funktion ist "erst" seit dem 10.10.2016 in fhem.pl enthalten.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Frank_Huber

interessanter Thread. Der weckt den Bastlerinstinkt! :-)

Werd mir mal die Teile besorgen und bauen!

reibuehl

Ups... da war mein update wohl schon länger überfällig :) Der Absturz ist damit weg - das address reading wird aber trotzdem nicht angelegt.
Reiner.

Frank_Huber

Frage: wie oft werden denn die Luftdaten aktualisiert?
im WWW sehe ich für den Sensor der mir am nächsten liegt (729) andere Daten als das Modul abruft.

Interval steht auf 5 Minuten. die Readings PM10 und PM2.5 werden aber nicht aktualisiert.

Gibt es hier einen fest eingebauten anderen Interval?


reibuehl

Reiner.

Frank_Huber

Zitat von: reibuehl am 05 April 2017, 15:02:16
Die Sensoren senden ein mal pro Minute an luftdaten.info.

Daten auf der Webseite: PM10: 9 / PM2.5: 8
Daten in FHEM: PM10: 11.92 / PM2.5 10.60 (Zeitstempel 13:56)

Temp und Feuchte werden aktualisiert, die PM Daten nicht.

Sensor ID 729 (nicht meiner)

igami

#44
Da war noch ein Bock im Modul ::)
Neue Version im Anhang.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED