Feinstaubsensor - alternative Firmware (luftdaten.info)

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

Vorheriges Thema - Nächstes Thema

pejonp

Zitat von: JoWiemann am 03 Juli 2017, 16:09:14
....

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"

Hallo JoWiemann,

ich habe mir die zip runtergeladen und versucht zu kompilieren.


P:\feinstaub\20.0\airrohr-firmware\airrohr-firmware.ino: In function 'String sensorBME280(uint8_t)':

airrohr-firmware:3247: error: 'BME280_set_addr' was not declared in this scope

  BME280_set_addr (sensors[IS_SENS].s_addr);


ich habe die zeile auskommentiert. dann ging das übersetzten.

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

maddhin

Zur Info: Ich bekomme ein

2017.10.21 11:37:40 2: LuftdatenInfo (out.pms) - error while request: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 77 (before "(end of string)") at /usr/share/fhem/FHEM/59_LuftdatenInfo.pm line 314.

als Fehler im Log.

igami

Zitat von: maddhin am 21 Oktober 2017, 06:26:45
Zur Info: Ich bekomme ein

2017.10.21 11:37:40 2: LuftdatenInfo (out.pms) - error while request: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 77 (before "(end of string)") at /usr/share/fhem/FHEM/59_LuftdatenInfo.pm line 314.

als Fehler im Log.
Was hat sich bei dir geändert? Ein Update der Firmware? Ein Update des Moduls? Fragst du den Sensor lokal ab?
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

maddhin

Zitat von: igami am 21 Oktober 2017, 16:04:56
Was hat sich bei dir geändert? Ein Update der Firmware? Ein Update des Moduls? Fragst du den Sensor lokal ab?

Sorry für die späte Antwort, meinen RPi hat es am Sonntag zerlegt und ich war mit Neuinstallation beschäftigt...

Ich frage den Sensor lokal ab. Änderungen gab es kein, nur die letzten 2-3 Modul (und FHEM) Updates.

Nach der ungewollten Neuinstallation und Wiederherstellung sehe ich die Meldung nicht mehr.

Ich habe auf dem Eventmonitor gesehen, dass FHEM (oder der Sensor) alle 30(?)sek den Status abfragt. Wenn das nicht erfolgreich ist, bekomme ich ein wohl das "broken pipe" im Log. Ich habe das broken pipe regelmäßig in Log.

Kann man hier ggf. das Abfrage-Intervall runterstellen oder ähnliches? Ich messe im Moment PM alle 3 minuten und wollte das eigentlich auf 5 oder 10 min runterfahren, wenn der Sensor aus dem "Testbetrieb" geht. Mir reicht es eigentlich, wenn Fhem mir nach 20min meldet, dass der Sensor tot ist ;)

Insbesondere auch, weil ich bei mir ein Notify eingestellt habe, um über den "toten" Sensor informiert zu werden :)

igami

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

maddhin

Zitat von: igami am 23 Oktober 2017, 14:52:50
Die Frage kann dir die commandref beantworten

:-[ Sorry & Danke für den freundlich formulierten Hinweis... RTFM, Maddhin!!

igami

Zitat von: maddhin am 24 Oktober 2017, 04:31:47
:-[ Sorry & Danke für den freundlich formulierten Hinweis... RTFM, Maddhin!!
Ist ja nicht so, als würde das nicht unter meinem Avatar stehen ;)
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

maddhin

Zitat von: igami am 24 Oktober 2017, 18:51:01
Ist ja nicht so, als würde das nicht unter meinem Avatar stehen ;)
Haha, ich wußte ich hatte das neulich irgendwo hier im Forum gesehen!  ;D

jonny62

Ich habe einen Bug in der Firmware NRZ-2017-100-AF-020 bei der Berechnung des auf Meereshöhe korrigierten Luftdrucks (Pressure_NN ) beim Sensor BME280 gefunden. z.B. bei Luftdruck 100259.7 Pascal, 1.6 oC und 170 Meter sollte er um die 102397 Pascal sein. Es werden aber 104603 angezeigt. Der Fehler liegt daran,  dass die Funktion ,,p = ReducePressure(p, meters_above_sea_level, (int32_t) t)" beim BME280 zweimal abläuft, Zeile 3272 und 3294. Könnt Ihr dies bitte in der nächsten Version korrigieren (Zeile 3271-3273 löschen). Die korrekte Berechnung kann man über https://rechneronline.de/barometer/kontrollieren.

Jonny62

JoWiemann

Hallo Jonny, danke für den Hinweis. Ich muss sowieso noch mal dran. Vlt. schaffe ich es die Woche.


Gesendet von iPhone mit Tapatalk

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

jonny62

Hallo Jörg!
Bei der Berechnung von pressure_nn gibt es noch einen anderen Bug. Und zwar wenn der Retourwert von pressure -1 ist (was bei mir alle paar Wochen mal vorkommt, wobei ich nicht weiß warum), dann ist der pressureNN in meinem Fall 1013. Er sollte aber dann vermutlich auch -1 sein.   Habe aber noch keine Zeit gehabt nachzusehen, wo der Fehler im Programm liegen könnte.

2017-12-26_12:14:53 Feinstaub_1 PM10: 43.60
2017-12-26_12:14:53 Feinstaub_1 PM2.5: 21.43
2017-12-26_12:14:53 Feinstaub_1 UVIntensity: 4.95
2017-12-26_12:14:53 Feinstaub_1 temperature: 65536
2017-12-26_12:14:53 Feinstaub_1 humidity: -1
2017-12-26_12:14:53 Feinstaub_1 pressure: -1
2017-12-26_12:14:53 Feinstaub_1 pressureNN: 1013
2017-12-26_12:14:53 Feinstaub_1 signal: -75

Jonny

JoWiemann

Zitat von: jonny62 am 26 Dezember 2017, 18:29:22
Hallo Jörg!
Bei der Berechnung von pressure_nn gibt es noch einen anderen Bug. Und zwar wenn der Retourwert von pressure -1 ist (was bei mir alle paar Wochen mal vorkommt, wobei ich nicht weiß warum), dann ist der pressureNN in meinem Fall 1013. Er sollte aber dann vermutlich auch -1 sein.   Habe aber noch keine Zeit gehabt nachzusehen, wo der Fehler im Programm liegen könnte.

2017-12-26_12:14:53 Feinstaub_1 PM10: 43.60
2017-12-26_12:14:53 Feinstaub_1 PM2.5: 21.43
2017-12-26_12:14:53 Feinstaub_1 UVIntensity: 4.95
2017-12-26_12:14:53 Feinstaub_1 temperature: 65536
2017-12-26_12:14:53 Feinstaub_1 humidity: -1
2017-12-26_12:14:53 Feinstaub_1 pressure: -1
2017-12-26_12:14:53 Feinstaub_1 pressureNN: 1013
2017-12-26_12:14:53 Feinstaub_1 signal: -75

Jonny

Hallo Jonny,

danke, und ich werde mich morgen dann mal dran setzen.

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

#222
Hallo,

neue Version wie immer im ersten Post:

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

PS: Bei einer fehlerhaften Sensorabfrage wird zunächst der vorherige Werte zurückgegeben. Erst bei zwei aufeinanderfolgenden Fehlmessungen wird der Sensorfehler-Rückgabewerte 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

jonny62

Hallo Jörg!
Danke mal für die Anpassungen.  Ich habe jetzt nur noch immer folgendes Problem beim Kompilieren der Zip

airrohr-firmware:3285: error: 'BME280_set_addr' was not declared in this scope
BME280_set_addr (sensors[IS_SENS].s_addr);

Das Problem gab es auch schon in der AF20 und konnte durch auskommentieren der Zeile behoben werden.
Ich habe in der gezipten Firmware weder im File BME280 noch im BME280.h eine Definition dafür gefunden.
Wozu brauchst man die Zeile 3285 bzw. warum bekommst du keinen Fehler beim Kompilieren?

Jonny

JoWiemann

#224
Zitat von: jonny62 am 30 Dezember 2017, 17:06:05
Hallo Jörg!
Danke mal für die Anpassungen.  Ich habe jetzt nur noch immer folgendes Problem beim Kompilieren der Zip

airrohr-firmware:3285: error: 'BME280_set_addr' was not declared in this scope
BME280_set_addr (sensors[IS_SENS].s_addr);

Das Problem gab es auch schon in der AF20 und konnte durch auskommentieren der Zeile behoben werden.
Ich habe in der gezipten Firmware weder im File BME280 noch im BME280.h eine Definition dafür gefunden.
Wozu brauchst man die Zeile 3285 bzw. warum bekommst du keinen Fehler beim Kompilieren?

Jonny

Hallo Jonny,

der Funktionsaufruf wird benötigt um festzulegen welcher von beiden BME280, sofern zwei angeschlossen sind, gerade für die Datenabfrage angesprochen wird. Die Funktion ist in der BME280.h deklariert. Bitte prüf doch, ob Du die richtigen Versionen der BME280.h und BME280.ino im Verzeichnis hast.

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