Feinstaubsensor - alternative Firmware (luftdaten.info)

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

Vorheriges Thema - Nächstes Thema

igami

#30
Bei meiner Mapping tabelle die ich nun einbaue könnte ich noch hilfe gebrauchen:

my %LuftdatenInfo_readingMaps = (undef => "undef"
  # local
    # general
      , signal                => "signal"               # [dBm]
    # BME280
      , BME280_humidity       => "humidity"             # [%]
      , BME280_pressure       => "pressure"             # [hPa]
      , BME280_temperature    => "temperature"          # [°C]
    # DHT22
      , humidity              => "humidity"             # [%]
      , temperature           => "temperature"          # [°C]
    # SDS011
      , max_micro             => "???"
      , min_micro             => "???"
      , samples               => "samples"              # [1]
      , SDS_P1                => "PM10"                 # [µg/m³]
      , SDS_P2                => "PM2.5"                # [µg/m³]
    # TSL2561 (alternative firmware only)
    # float Addr=>NA, high Addr=>GND, low Addr=>VCC
      , TSL2561_Float_Full    => "illuminanceFull"      # [lux]
      , TSL2561_Float_IR      => "illuminanceIR"        # [lux]
      , TSL2561_Float_Visible => "illuminanceVisible"   # [lux]
      , TSL2561_High_Full     => "illuminanceFull"      # [lux]
      , TSL2561_High_IR       => "illuminanceIR"        # [lux]
      , TSL2561_High_Visible  => "illuminanceVisible"   # [lux]
      , TSL2561_Low_Full      => "illuminanceFull"      # [lux]
      , TSL2561_Low_IR        => "illuminanceIR"        # [lux]
      , TSL2561_Low_Visible   => "illuminanceVisible"   # [lux]
    # VEML6070 (alternative firmware only)
  # remote
    # BME280
      , humidity              => "humidity"             # [%]
      , pressure              => "pressure"             # [hPa]
      , temperature           => "temperature"          # [°C]
    # BMP180
      , pressure              => "pressure"             # [hPa]
      , temperature           => "temperature"          # [°C]       
    # DHT11
      , humidity              => "humidity"             # [%]
      , temperature           => "temperature"          # [°C]
    # DHT22
      , humidity              => "humidity"             # [%]
      , temperature           => "temperature"          # [°C]
    # PPD42NS
      , max_micro             => "???"
      , min_micro             => "???"
      , durP1                 => "???"
      , durP2                 => "???"
      , P1                    => "PM10"                 # [µg/m³]
      , P2                    => "PM2.5"                # [µg/m³]
      , ratioP1               => "???"
      , ratioP2               => "???"
      , samples               => "samples"              # [1]
    # SDS011
      , max_micro             => "???"
      , min_micro             => "???"
      , P1                    => "PM10"                 # [µg/m³]
      , P2                    => "PM2.5"                # [µg/m³]
      , samples               => "samples"              # [1]
);

Habe eben erst damit angefangen und muss mich nun mal so durchwurschteln.
Weiß jemand was es mit den Werten "min_micro" und "max_micro" auf sich hat?

Edit: Die Remote Daten habe ich nun hoffentlich Vollständig, ich weiß nur noch nicht, was es mit den Werten "max_micro", "min_micro", "durP1", "durP2", "ratioP1" und "ratioP2" auf sich hat.
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

Burny4600

ZitatAber soweit ich weiß benötigst du weiterhin die alternative Firmware um die ganzen Sensoren abzufragen.
Ich habe derzeit noch die Firmware von Luftdaten.info da auch hier die benötigten Sensoren enthalten sind.
Nur hier kann jeder Sensor nur einmal angelegt werden.

ZitatWeiß jemand was es mit den Werten "min_micro" und "max_micro" auf sich hat?
Ich denke das dies eine Auswertung der Partikelanzahl der PM10 & PM2.5 hochgerechnet auf einen Kubikfuss.
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

igami

eben habe ich eine Antwort von Rajko Zschiegner bekommen:
Zitat
die von dir genannten Werte sollten für Auswertungen irrelevant sein.
Diese haben wir für die ersten Testphasen benötigt. 'max_micro' und
'min_micro' sind die maximale und minimale Zeit für einen
Schleifendurchlauf unserer Software. Diese mussten wir unter einer
bestimmten Zeit halten, um alle Impulse des PPD42NS zu erfassen. 'durP1'
und 'durP2' sind die aufaddierten Zeiten der Low-Pegel, 'ratioP1' und
'ratioP2' der prozentuale Anteil der Low-Pegel an der Zeit für einen
Messzyklus. Aus diesem Anteil kann dann die Zahl der Partikel pro 0,01
Kubikfuss berechnet werden.
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

Burny4600

#33
Nun ja da war ich ja gar nicht so weit weg mit meiner Vermutung.

Anbei eine Auflistung der Sensoren die ich abtreten könnte.
1 Stk. BMP180
2 Stk. BME280
3 Stk. WeMos Mini Shield AM2302 (DHT22)
1 Stk. AM2302 (DHT22)
1 Stk. TSL2561
1 Stk. HMC5883L (GY271) Erdmagnetfeld Messung
2 Stk. HMC5883L (GY273) Erdmagnetfeld Messung

Und Sensoren die ich verleihen könnte
1 Stk. AS3935 Blitzortung
1 Stk. HMC5883L Erdmagnetfeld Messung
2 Stk. BME280

Sollte Interesse bestehen kann ich euch einen Preis nennen für den Erwerb.

Eine Frage noch zur alternative Firmware.
Bei der standard Firmware habe ich das Problem das ich kaum per Web auf die WeMos Mini Sensoreinheit zugreifen kann.
Die Daten lassen sich aber per HTTP von FHEM ohne Probleme abgreifen.
Ist dies bei der alternative Firmware auch so?
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

#34
Zitat von: Roger am 15 Juli 2017, 13:39:11
Hi Jörg,
ich habe Deine alternative Firmware eingesetzt. Leider gelingt es mir nicht, das Messintervall zu ändern.
Es bleibt auf 145. Kannst Du Dir das mal anschauen?

mit gemessenem Gruß
Roger

Hallo,

anbei die Fehlerkorrektur.

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

Roger

Vielen Dank schon mal . Kann aber erst Ende der Woche testen.
Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

Christian Uhlmann

So, alternative Firmware getestet, vielen Dank dafür.
Scheint erst mal zu laufen hab wohl gerade den Sensor getötet [emoji30]
Host: Debian Buster als VM / XCP-NG
Gateways: DuoFern Stick, CUL433 Revolt, CUL MAX, HMLan, HM-USB 2, LaCrosseGateway
Devices: 12x Rademacher Rollos, 6x TX 29 DT-HT, 10x HM-CC-RT-DN, 14x MAX Fensterkontakte, Diverse HM Aktoren für Licht, Klingel, Gong, Eingangstür, ESPEasy, Sonoff mit Tasmota

JoWiemann

#37
Äh, wie hast Du das denn geschafft.

PS: Habs gerade im anderen Thread gelesen.


Gesendet von iPhone mit Tapatalk
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

#38
Hallo,

anbei eine neue Version der Firmware.

Ich habe das AutoUpdate komplett entfernt und dafür ein HTTP Update eingebaut. Der default User ist admin und das Passwort ist Freifunk. Beides kann über die Konfiguration geändert 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

igami

@Jörg: Du wolltest mir noch ein "komplettes" json zukommen lassen. Bzw, eigentlich müsste ich nur wissen wie die sensor_data_values genau heißen um die Mapping Tabelle zu vervollständigen.
Zitat von: igami am 16 Juli 2017, 10:03:24

my %LuftdatenInfo_readingMaps = (undef => "undef"
  # local
    # general
      , signal                => "signal"               # [dBm]
    # BME280
      , BME280_humidity       => "humidity"             # [%]
      , BME280_pressure       => "pressure"             # [hPa]
      , BME280_temperature    => "temperature"          # [°C]
    # DHT22
      , humidity              => "humidity"             # [%]
      , temperature           => "temperature"          # [°C]
    # SDS011
      , max_micro             => "???"
      , min_micro             => "???"
      , samples               => "samples"              # [1]
      , SDS_P1                => "PM10"                 # [µg/m³]
      , SDS_P2                => "PM2.5"                # [µg/m³]
    # TSL2561 (alternative firmware only)
    # float Addr=>NA, high Addr=>GND, low Addr=>VCC
      , TSL2561_Float_Full    => "illuminanceFull"      # [lux]
      , TSL2561_Float_IR      => "illuminanceIR"        # [lux]
      , TSL2561_Float_Visible => "illuminanceVisible"   # [lux]
      , TSL2561_High_Full     => "illuminanceFull"      # [lux]
      , TSL2561_High_IR       => "illuminanceIR"        # [lux]
      , TSL2561_High_Visible  => "illuminanceVisible"   # [lux]
      , TSL2561_Low_Full      => "illuminanceFull"      # [lux]
      , TSL2561_Low_IR        => "illuminanceIR"        # [lux]
      , TSL2561_Low_Visible   => "illuminanceVisible"   # [lux]
    # VEML6070 (alternative firmware only)
  # remote
    # BME280
      , humidity              => "humidity"             # [%]
      , pressure              => "pressure"             # [hPa]
      , temperature           => "temperature"          # [°C]
    # BMP180
      , pressure              => "pressure"             # [hPa]
      , temperature           => "temperature"          # [°C]       
    # DHT11
      , humidity              => "humidity"             # [%]
      , temperature           => "temperature"          # [°C]
    # DHT22
      , humidity              => "humidity"             # [%]
      , temperature           => "temperature"          # [°C]
    # PPD42NS
      , max_micro             => "???"
      , min_micro             => "???"
      , durP1                 => "???"
      , durP2                 => "???"
      , P1                    => "PM10"                 # [µg/m³]
      , P2                    => "PM2.5"                # [µg/m³]
      , ratioP1               => "???"
      , ratioP2               => "???"
      , samples               => "samples"              # [1]
    # SDS011
      , max_micro             => "???"
      , min_micro             => "???"
      , P1                    => "PM10"                 # [µg/m³]
      , P2                    => "PM2.5"                # [µg/m³]
      , samples               => "samples"              # [1]
);

Für eine lokale Abfrage fehlen mir noch die Bezeichnungen für den BME, DHT und VEML6070.
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

Hallo igami,

anbei die Mappingtabelle. Ich habe sie direkt aus dem Code abgeleitet


# In the alternate firmware <name_sensor[n]> can be configuered. The default value ist the name coded in standard firmware.
my %LuftdatenInfo_readingMaps = (undef => "undef"
  # local
    # System ( this values are bound to a sensor, so they are value bound to the system )
      , max_micro                     => "???"
      , min_micro                     => "???"
      , samples                       => "samples"              # [1]
      , signal                        => "signal"               # [dBm]
    # DHT22 ( default <name_sensor1> = "" )
      , <name_sensor1>_humidity       => "humidity"             # [%]
      , <name_sensor1>_temperature    => "temperature"          # [°C]
    # (alternative firmware only)
    # DHT22 ( default <name_sensor2> = "DHT_1" )
      , <name_sensor2>_humidity       => "humidity"             # [%]
      , <name_sensor2>_temperature    => "temperature"          # [°C]
    # DHT22 ( default <name_sensor2> = "DHT_2" )
      , <name_sensor3>_humidity       => "humidity"             # [%]
      , <name_sensor3>_temperature    => "temperature"          # [°C]
    # BMP ( default <name_sensor> = "BMP" )
      , <name_sensor1>_pressure       => "pressure"             # [hPa]
      , <name_sensor1>_temperature    => "temperature"          # [°C]
    # BME280 ( default <name_sensor1> = "BME280" )
    # high Addr=>VCC, low Addr=>GND
      , <name_sensor1>_humidity       => "humidity"             # [%]
      , <name_sensor1>_pressure       => "pressure"             # [hPa]
      , <name_sensor1>_temperature    => "temperature"          # [°C]
    # (alternative firmware only)
    # BME280 ( default <name_sensor2> = "BME280" )
      , <name_sensor2>_humidity       => "humidity"             # [%]
      , <name_sensor2>_pressure       => "pressure"             # [hPa]
      , <name_sensor2>_temperature    => "temperature"          # [°C]
    # (alternative firmware only)
    # TSL2561 ( default <name_sensor1> = "TSL2561_1", <name_sensor2> = "TSL2561_2", <name_sensor3> = "TSL2561_3" )
    # float Addr=>NA, high Addr=>VCC, low Addr=>GND
      , <name_sensor1>_Full           => "illuminanceFull"      # [lux]
      , <name_sensor1>_IR             => "illuminanceIR"        # [lux]
      , <name_sensor1>_Visible        => "illuminanceVisible"   # [lux]
      , <name_sensor2>_Full           => "illuminanceFull"      # [lux]
      , <name_sensor2>_IR             => "illuminanceIR"        # [lux]
      , <name_sensor2>_Visible        => "illuminanceVisible"   # [lux]
      , <name_sensor3>_Full           => "illuminanceFull"      # [lux]
      , <name_sensor3>_IR             => "illuminanceIR"        # [lux]
      , <name_sensor3>_Visible        => "illuminanceVisible"   # [lux]
    # (alternative firmware only)
    # VEML6070 ( default <name_sensor> = "VEML6070" )
      , <name_sensor>_UV    => "illuminanceFull"                # [lux]
    # SDS011 ( default <name_sensor> = "SDS" )
      , <name_sensor>_P1              => "PM10"                 # [µg/m³]
      , <name_sensor>_P2              => "PM2.5"                # [µg/m³]
    # PPD42NS ( default <name_sensor> = "" )
      , <name_sensor>durP1            => ""                     # [%]
      , <name_sensor>ratioP1          => ""                     # [%]
      , <name_sensor>P1               => "PM1"                  # [Partikel/Liter]
      , <name_sensor>durP2            => ""                     # [%]
      , <name_sensor>ratioP2          => ""                     # [%]
      , <name_sensor>P2               => "PM2.5"                # [Partikel/Liter]
    # GPS ( default <name_sensor> = "GPS" )
      , <name_sensor>_lat             => "Latitude"
      , <name_sensor>_lon             => "longitude"
      , <name_sensor>_height          => "Altitude"
      , <name_sensor>_date            => "Date"
      , <name_sensor>_time            => "Time"

  # remote
    # DHT11 oder DHT22
      , humidity              => "humidity"             # [%]
      , temperature           => "temperature"          # [°C]
    # BMP180
      , pressure              => "pressure"             # [hPa]
      , temperature           => "temperature"          # [°C]       
    # BME280
      , humidity              => "humidity"             # [%]
      , pressure              => "pressure"             # [hPa]
      , temperature           => "temperature"          # [°C]
    # SDS011
      , P1                    => "PM10"                 # [µg/m³]
      , P2                    => "PM2.5"                # [µg/m³]
      , samples               => "samples"              # [1]
    # PPD42NS
      , durP1                 => "???"                  # [%]
      , durP2                 => "???"                  # [%]
      , P1                    => "PM10"                 # [Partikel/Liter]
      , P2                    => "PM2.5"                # [Partikel/Liter]
      , ratioP1               => "???"                  # [%]
      , ratioP2               => "???"                  # [%]
    # GPS ( should be also ditributed if avalable)
      , lat                   => "Latitude"
      , lon                   => "longitude"
      , height                => "Altitude"
      , date                  => "Date"
      , time                  => "Time"
    # System ( this values are bound to a sensor, so they are value bound to the system )
      , max_micro             => "???"
      , min_micro             => "???"
      , samples               => "samples"              # [1]
);



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

#41
Hallo,

anbei eine neue Version mit kleineren Fehlerbereinigungen. Unter anderem Inkompatibilitäten zur original Firmware bei der Namensgebung für die Sensoren DHT und PPD.

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 Jörg,

ich komm nicht mehr nach Deine Updates einzuspielen ;D.

Ein Problem hab ich noch. Der TSL2561 übersteuert bei direkter Sonneneinstrahlung ab dem Wert von 40000 und ich bekomme einen Nullwert. Jetzt könnte ich zwar einen Filter verwenden, möchte dies aber vermeiden da ich gerne die Lux-Werte ohne Umrechnung hätte. Meinst Du es wäre möglich, dass wenn der TSL2561 übersteuert einfach der Wert 40000 ausgegeben wird?

Vielen Dank!

Gruß
Stefan

JoWiemann

Hm, eigentlich müsste man mitbekommen wenn der TSL in die Sättigung geht. Werde ich prüfen.


Gesendet von iPhone mit Tapatalk
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

Zitat von: JoWiemann am 20 Juli 2017, 13:49:19
Hm, eigentlich müsste man mitbekommen wenn der TSL in die Sättigung geht. Werde ich prüfen.

Laut Code wird dann (-1) zurück gegeben.

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