Feinstaubsensor - alternative Firmware (luftdaten.info)

Begonnen von JoWiemann, 03 Juli 2017, 16:09:14

Vorheriges Thema - Nächstes Thema

JoWiemann

Hallo,

hier nun die Ecke für die Alternative Firmware.

Die generellen Themen zum Fhem Modul: 59_Luftdateninfo bzw. zu Luftdaten.Info werden hier behandelt: https://forum.fhem.de/index.php/topic,66674.msg655464.html#msg655464

Aktuell können an luftdaten.info nur folgende Sensoren übertragen werden. Also nur bei diesen Sensoren den API Hacken setzen:
- SDS011        API PIN 1   Feinstaub, aktuell empfohlener Sensor    als Bezeichnung muss SDS gesetzt werden
- PPD42NS      API PIN 5   Feinstaub, alternative                            keine Bezeichnung
- NEO 6M        API PIN 9   GPS, Geokoordinaten                             als Bezeichnung muss GPS gesetzt werden
- DHT11/22     API PIN 7   Temperatur, rel. Luftfeuchte                  keine Bezeichnung
- BMP085/180 API PIN 3   Temperatur, rel. Luftfeuchte                  als Bezeichnung muss BMP gesetzt werden
- BME280        API PIN 11  Temperatur, rel. Luftfeuchte, Druck        als Bezeichnung muss BME280 gesetzt werden

ab Version NRZ-2017-095
- PMS3003       API PIN 1   Feinstaub, alternative                            als Bezeichnung muss PMS gesetzt werden
- PMS1003       API PIN 1   Feinstaub, alternative                            als Bezeichnung muss PMS gesetzt werden
- PMS7003       API PIN 1   Feinstaub, alternative                            als Bezeichnung muss PMS gesetzt werden
- HTU21D        API_PIN 7   Temperatur, rel. Luftfeuchte                  als Bezeichnung muss HTU21D gesetzt werden
- BMP280         API PIN 3   Temperatur, rel. Luftfeuchte                   als Bezeichnung muss BMP280 gesetzt werden

Grüße Jörg

Version: NRZ-2018-111-AF-070 (20.03.2019, 20:40)
- Den Patch von Andreas integriert (Danke hierfür)
- Auf ArduinoJson Version 6.x umgestellt
- Fehler beim BMP085/180 behoben
- Bitte Compileroptionen beachten
  Einstellungen Arduino IDE
    Board: NodeMCU 1.0 (ESP-12E Module)
    CPU Frequency: 80MHz
    Flash Size: 4M (3M SPIFFS) Ab "ESP für Arduino 2.4.2":
    Debug Port: Disabled   
    Debug Level: NoAssert-NDEBUG
    lwIP Variant: v2.0 Lower memory
    VTables. Flash
    Erase Flash: Only Sketch
    in der Datei c:\Users\Buero\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\platform.txt die
    Zeile 'build.float=-u _printf_float -u _scanf_float' ändern in 'build.float='


Andreas
Version: NRZ-2018-111-AF-062 (18.01.2019, 08:10)
- Fehler beim Hinzufügen von Sensoren entfernt
- SDS, PMS und NEO(GPS) wurden keine Daten generiert

Version: NRZ-2018-111-AF-060 (03.01.2019, 17:12)
- Eingabefelder für NTP Server aktiviert (hatte ich übersehen)

Version: NRZ-2018-111-AF-060 (02.01.2019, 19:22)
- kleinere Fehler behoben

Version: NRZ-2018-111-AF-050 (17.10.2018, 16:20)
- Fehler in der Übermittlung an Luftdaten behoben

Version: NRZ-2018-111-AF-041 (17.10.2018, 12:25)
- Anzeigefehler behoben
- kleinere Optimierungen

Version: NRZ-2018-111-AF-036 (15.10.2018, 18:18)
- Information über Versand an Luftdaten usw. auf Sensor Status Seite

Version: NRZ-2018-111-AF-034 (15.10.2018, 15:34)
- Auf Version NRZ-2018-111 von Lufdaten.info angehoben
- NTP Client eingefügt
- Fehler korrigiert

Version: NRZ-2017-100-AF-025
- BME680 auf Basis der Adafruit-Lib integriert
    BME680_temperature
    BME680_humidity
    BME680_pressure
    BME680_pressure_nn
    BME680_gas_resistance -> aktueller Gas-Wert | mittel der 10 letzten Werte | H_WERT | G_WERT | AIR_QUALITY
                                            Humidity element was : H_WERT of 0.25
                                            Gas element was :         G_WERT of 0.75
                                            Air Quality = AIR_QUALITY % derived from 25% of Humidity reading and 75% of Gas reading
                                           100% is good quality air
- Auslieferung der Web-Seiten überarbeitet

Version: NRZ-2017-100-AF-022
- Neue airrohr-firmware.zip hochgeladen. BME280.h und BME280.ini waren nicht aktuell

Version: NRZ-2017-100-AF-022
- Behandlung von Fehlern bei Sensoren korrigiert
  Der Rückgabewert bei Sensorfehler kann jetzt über die Konfiguration Sensor festgelegt werden:
  Default Temperatur ist 65536
  Default alle anderen Messwerte -1

Version: NRZ-2017-100-AF-020
- VEML6070 überarbeitet
  Rohwerte in UV Steps (Das ist der originale Rückgabewert)
  Intensität (Watt)
  Risiko 1..5
  setzen der "Integration Time"

- Display
  Die Ausgabe im Display sollte jetzt passen (das Display hat definitiv bei der eingestellten Schriftart nur 6 Zeilen).
  Sofern noch Zeilen übrig sind (hängt von den Sensoren ab. Mit Feinstaub und GPS bleibt keine Zeile übrig)
  werden Systeminfos ausgegeben. Weiterhin werden jetzt Infos während des OTA ausgegeben.

Version: NRZ-2017-100-AF-018
- Restart bei aktivem Display behoben (falsche Lib gelinkt)
  Es wird immer nur ein Sensor angezeigt. Geprüft wird in folgender Reihenfolge:
  Wenn BME280 Low dann anzeigen,
  sonst wenn BME280HI dann anzeigen,
  sonst wenn DHT_7 dann anzeigen,
  sonst wenn BMP180 dann anzeigen,
  sonst wenn BMP280 Low dann anzeigen,
  sonst wenn BMP280 High dann anzeigen.

Version: NRZ-2017-100-AF-017
- auf aktuelle Version luftdaten.info gehoben
- Speicherfresser bei OTA entfernt (führte zu regelmäßigen Neustarts)
- fehlender Wert BME280LO für _pressure_nn gefixed

Version: NRZ-2017-098-AF-016
- Versand an luftdaten.info überprüft

Version: NRZ-2017-098-AF-015
- auf aktuelle Version luftdaten.info gehoben
- Sensor Status Seite implementiert
- Code Optimierungen

Version: NRZ-2017-095-AF-013
- Versand an luftdaten.info überprüft

Version: NRZ-2017-095-AF-012
- angehoben auf NRZ-2017-095
- unter Konfiguration System kann jetzt die Standorthöhe im Parameter: Meter ueber Normal Null hinterlegt werden
  Ist dort ein Wert größer 0 eingetragen wird zusätzlich der Luftdruck auf NN ausgegeben

Version: NRZ-2017-092-AF-010
- überarbeitete Konfigurationsseiten für die Sensoren
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Burny4600

Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

JoWiemann

Zitat von: Burny4600 am 03 Juli 2017, 16:20:11
Und wie sind diese drei Files zu verwenden?

Im Zip befindet sich der Source. Die bin-Files können direkt auf einen nodemcu geflasht werden.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

Hallo,

hier noch eine geänderte 59_LuftdatenInfo.pm, in der ich das Filtern auf die einzelnen Werte auskommentiert habe. Hierdurch werden die in der Konfiguration des Sensors festgelegten Namen vollständig nach Fhem übertragen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

PeMue

Hallo Jörg,

Zitat von: JoWiemann am 03 Juli 2017, 16:09:14
hier nun die Ecke für die Alternative Firmware.
vielen Dank. Könntest Du im ersten Post noch auf igami's Thread verlinken? Dann wäre die Sache perfekt  ;)

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

igami

Zitat von: JoWiemann am 03 Juli 2017, 16:25:04
Hallo,

hier noch eine geänderte 59_LuftdatenInfo.pm, in der ich das Filtern auf die einzelnen Werte auskommentiert habe. Hierdurch werden die in der Konfiguration des Sensors festgelegten Namen vollständig nach Fhem übertragen.

Grüße Jörg
Ich werde im nächsten Update mal ein Attribut rawReadings einfügen was dann eine umschlüsselung aushebelt.
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

jnewton957

Hallo,

ich habe einen SDS011 und dht22 lokal am ESP laufen und in fhem eingebunden.

Könnt ihr mir bitte sagen, was die alternative firmware macht bzw. Besser macht als die "offizielle",

Danke für die Info
Jörg

FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

JoWiemann

#7
Zitat von: jnewton957 am 03 Juli 2017, 22:36:44
Könnt ihr mir bitte sagen, was die alternative firmware macht bzw. Besser macht als die "offizielle",

Es werden zusätzlich die Sensoren:

TSL2561 -> Lichtsensor
VEML6070 -> UV-Sensor

unterstützt.

Es können mehrere Sensoren gleichen Typs angeschlossen werden:
DHT22 bis zu drei
BME280 bis zu zwei
TSL2561 bis zu drei

Für jeden Sensor kann ein eigener Name vergeben werden
Für jeden Sensor kann gewählt werden, ob er an Luftdaten.info übertragen werden soll.

Ich habe zwei TSL2561 angeschlossen, um in etwa die richtige Helligkeit bei unterschiedlichem Sonnenstand zu erhalten
Einen VEML6070 für die UV Intensität
und zwei BME280, einer für das Zimmer, in dem der NodeMCU in einem Netzteil verbaut ist. Die Außensensoren werden über eine mehradrige abgeschirmte Steuerleitung nach außen geführt.

An Luftdaten.info übertrage ich nur den Staubsensor und den BME280, der außen hängt. Hierfür habe ich beiden den selben Namen wie in der Originalfirmware vergeben.

PS: Und es gab noch so ein paar kleinere Formatierungen auf der Konfigurationsseite, die mich gestört haben.

PS2: Mit der Integration des TSL2561 bin ich noch nicht ganz zufrieden. Ich möchte da noch ein paar Konfigurationsparameter, die zur Zeit fest eingestellt sind, zugänglich machen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

leuchte1

Hallo,

versuche es nochmal mit meinem BMP280 als BMP180-Ersatz (solange der BME280 auf Reisen ist). Er wird nicht erkannt.
Meine Ideen:
- Adressproblem? (Adresse sollte per Default auf 0x77 eingestellt sein)
- oder kann es an der verwendeten Library liegen, wird die vom 085 verwendet?
- defekt!

Hat hier jemand einen BMP280 am laufen oder kann mir Infos zur Library oder der Adresse geben?

Gruß
Stefan

PeMue

#9
Zitat von: leuchte1 am 06 Juli 2017, 09:00:26
Hat hier jemand einen BMP280 am laufen oder kann mir Infos zur Library oder der Adresse geben?
siehe Datenblatt https://www.bosch-sensortec.com/bst/products/all_products/bme280
Ich muss meinen noch bestücken, aber dazu fehlt mir die Lotpaste (die ist aber schon unterwegs).

Gruß PeMue

Edit: Sorry, ich habe eine BME280, sorry war ein Versehen von mir.
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

leuchte1

die Hardware hab ich gecheckt. Adresse ist auf 0x77.
Ich verwende die Software von Jörg.
Wenn ich den BMP180 als Sensor auswähle wird er nicht erkannt. Ist halt ein BMP280, wobei der soll angeblich in der Original SW unterstützt werden?

igami

Der Sensor ist im ofiziellen Modul noch nicht 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

leuchte1


igami

Im Anhang mal eine überarbeitete Version des Moduls. Bitte testen und Feedback geben, damit ich es einchecken kann, Die Commandref ist bisher nur auf englisch aktualisiert.

Es gibt nun das Attribut rawReadings um das mapping der readings names auszuschalten.
Weiterhin sollte der TSL2561 nun auch lokal ausgewertet werden, als readings Namen habe ich floatIR, floatFull und floatVisible genommen. Wobei ich nicht verstehe warum es float heißt.

BME und BMP sollten beide vom Modul ausgewertet werden, da dort nur auf temperature, humidity und pressure geprüft wird und nicht darauf von welchem Sensor die Werte kommen.

Ich überlege mir nun noch was wie man nur einzelne Sensoren von dem Modul auswerten lassen kann.
Im Idealfall hätte man dann ja ein Master device welches die Abfrage macht und mehrere Slave devices in die die "doppelten" Werte wie Temperatur geschrieben werden. Dadurch braucht man trotzdem nur eine Abfrage zu machen.
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

JoWiemann

Zitat von: igami am 11 Juli 2017, 11:51:07
Weiterhin sollte der TSL2561 nun auch lokal ausgewertet werden, als readings Namen habe ich floatIR, floatFull und floatVisible genommen. Wobei ich nicht verstehe warum es float heißt.

Hallo,

der TSL2561 kennt drei Adressen unter denen er ansprechbar ist. Somit können maximal drei TSL parallel genutzt werden. Wie gesagt, ich nutzt dieses Feature um die Helligkeit über 360 Grad bei unterschiedlichem Sonnenstand zu ermitteln.
Es gibt die Adresszustände: float, high, low. D.h., dass der address-Selector, unbeschaltet, auf GND oder auf VCC gesetzt wird.

Damit die einzelnen TSL unterschieden werden können erhalten die Werte den entsprechenden Prefix.

Für den BME280 habe ich das adäquat umgesetzt. Dort kann der address-Selector auf low = GND, oder high = VCC gesetzt werden.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM