Hauptmenü

Barometer BMP280

Begonnen von Uwe_Eta20, 04 April 2017, 22:06:43

Vorheriges Thema - Nächstes Thema

Uwe_Eta20

Guten Abend,

ich habe Probleme, den Bosch Sensor BMP280 ans fhem anzuschließen.
Eigentlich geht es ja.
Die Grundinstallation im Linux habe ich gemacht.
i2cdetect -y 1 wird brav mit
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

geantwortet.
Jetzt habe ich
1. den BUS definiert - RPII2C und
2. das Gerät  - I2C_BMP180
bei beiden klappt dies erst einmal sauber in der Definition.
State von RPII2C:
STATE Ok
State von I2C_BMP180
STATE defined
Nun sollten aber irgendwann auch mal Werte vom Luftdruck und Temperatur eingehen, das passiert aber nicht.
Auch bei set readvalues nicht
Im Eventlog steh dann genau diese Zeile:
2017-04-04 21:49:26 I2C_BMP180 Barometer readValues
....okay...Werte???

Ich habe jedoch eine Vermutung.
Die Adresse vom neuen Modul BMP280 hat sich geändert und liegt auf der 0x76 statt wie bisher 0x77 (siehe oben)
Möglich, das das in der Modulentwicklung eingegangen ist.
Beim 180er konnte man den Vorgänger 085 einfach ersetzen, aber beim aktuellen Modell?

Vielleicht hatte das schon mal jemand.

Danke im Voraus
Uwe

klausw

Die 0x76 ist Standard im Modul (siehe commandref). Das müsstest du auch als I2C_Address in den Internals sehen 118=0x76.
Es müsste auch initialized im State stehen wenn ich mich recht entsinne.

Poste bitte deine Konfiguration.

Hast du im RPII2C define die Busnummer 1 angegeben?
Steht was im Logfile?
Notfalls mal den Verbose auf 5 setzen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Uwe_Eta20

hier die Konfiguration

define Bari2C RPII2C 1

define Barometer I2C_BMP180
attr Barometer IODev Bari2C
attr Barometer oversampling_settings 3
attr Barometer poll_interval 1


Internals des RPII2C

DEF 1
DeviceName /dev/i2c-1
NAME Bari2C
NOTIFYDEV global
NR 92
NTFY_ORDER 50-Bari2C
STATE Ok
TYPE RPII2C
ioctl_ph_exists 1

Internals vom I2C_BMP180
I2C_Address 119
IODev Bari2C
NAME Barometer
NR 91
STATE getCalData
TYPE I2C_BMP180

Man kann ja über Python Programmierung die Adresse anpassen, hier bin ich aber in fhem.
Wo soll übrigens die Adresse stehen, in der Commandref nicht...

Also, ich habe gestern noch einen Workaround gefunden, indem ich einfach das ähnliche Modul BME280 ( auch BOSCH)
probiert habe, und damit geht es tatsächlich, aber nicht im Sinne des Erfinders..da hier ein Wert für Humitiy kommt und immer ohne Inhalt
da BMP hat keine integrierte Luftfeuchte enthalten.So sehen dann die Readings aus: T: 18.7 H: 0.0 P: 1015.8 P-NN: 1017.0
Wenn es so sein solle, nehme ich halt dieses Modul...

Busnummer 1 ist angegeben, sonst kommt Fehlermeldung.
Logfile bleibt ohne Meldungen.

Dank&Gruß
Uwe

klausw

Zitat von: Uwe_Eta20 am 05 April 2017, 20:43:14
Wo soll übrigens die Adresse stehen, in der Commandref nicht...
Oh mann manchmal hilft es zweimal hinzuschauen...
Ich hatte BME280 gelesen.
Der BMP280 ist aber auch nirgendwo in der Commanref erwähnt.

Der BMP280 ist meines Wissens nicht zum BMP180 kompatibel.
Du könntest es dennoch testen indem du in Zeile 42 der Datei 51_I2C_BMP180.pm die Adresse anpasst.

Allerdings ist der BMP280 weitestgehend kompatibel zum BME280.
Ich lese im Modul glaube ich auch die Id aus und lege den Typ (BMP oder BME) in den Internals ab.

Mit setstate kannst den Feuchtewert entfernen.
Da ich sowieso die Id auslese könnte ich das auch direkt ins Modul einbauen.
Aber dazu würde ich vorher gern wissen, ob der Sensor bei dir mit allen Auflösungen und Filtereinstellungen, etc. fehlerfrei funktioniert. Dann würde ich auch die Commandref entsprechend erweitern.
Ich glaube mich zu erinnern, das es kleine Unterschiede gab...
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Uwe_Eta20

Hallo,

also, ich habe die benannte Datei einmal geändert, statt dem 77 ein 76 gemacht ..und gespeichert.
Nachgeguckt, passt...
Es sieht so aus, ich empfange nur den Status "getCalData" , aber die Adresse passt jetzt! (118 )

DeviceOverview
BMP280 getCalData



Internals

I2C_Address 118
IODev Bari2C
NAME BMP280
NR 101
STATE getCalData
TYPE I2C_BMP180

das BME280 sagt Folgendes...
beide schauen auf das gleiche RPII2C, dessen Status aber weiterhin: OK ist.

DeviceOverview
BME280    1011.9 hPa

Internals

Bari2C_SENDSTAT Ok
CHANGED
   
DEF 0x76
DeviceType BMP280
I2C_Address 118
IODev Bari2C
NAME BME280
NR 92
STATE 1011.9 hPa
TYPEI2C_BME280


Grüße
Uwe

klausw

Naja, das RPII2C meckert nur, wenn er keine Antwort bekommt.

STATE getCalData weist darauf hin, das er nicht einmal die Kalibierdaten auslesen kann. Kurz gesagt, der Bmp180 ist nicht kompatibel zum Bmp280.

Mit dem BME280 Modul fährst du nicht so verkehrt. Aber wieso wird bei dir nicht die Temperatur angezeigt?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Uwe_Eta20

damit stehen wir wohl wieder am Anfang.
Wobei ja bereits ein BMP380 angekündigt ist und die Serie ständig verbessert wird.

Nunja, das BME tut es ja auch...

Zur Temperatur, die steht immer dabei, ich lese aber über StateFormat nur
pressure-nn aus. Das ist es, was mich interessiert

Danke&Gruss

klausw

Kannst du mal testen, ob die Werte bei allen Filtern/ Auflösungen passen?
Dann würde ich das State Format automatisch anpassen

Gesendet von meinem HTC One mit Tapatalk

RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

SabineT

Ich hab jetzt auch einen BMP280 an einem Raspberry Pi angeschlossen. Gegenüber dem im gleichen Raum befindlichen Bedienteil meiner Wetterstation WH1080 meldet der BMP280 um 1.7hPa mehr (Absolutwert, beide in gleicher Höhe). Ich hab aber keine Info, was für einen Sensor die Wetterstation verwendet und wie genau der ist.

Wenn man die Datenblätter von BMP280 und BME280 vergleicht, sollten sich abgesehen von der Humidity beide Sensoren gleich verhalten. Unterscheiden lassen sie sich durch Abfrage des Registers 0xD0 "id". Beim BMP280 liefert das 0x58 und beim BME280 0x60.

Beim BMP280 sollte dann aber nicht nur im State Format die humidity weg gelassen werden sondern auch das Reading selber.

lg, Sabine

Amenophis86

Da es sich hier um das RPII2C Modul handelt und dieses laut Maintainer.txt im Forumsbereich (https://forum.fhem.de/index.php/board,32.0.html) bearbeitet wird, bitte ich das Thema nach dort zu verschieben. Danke :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

klausw

Zitat von: Amenophis86 am 12 Mai 2017, 09:32:45
Da es sich hier um das RPII2C Modul handelt und dieses laut Maintainer.txt im Forumsbereich (https://forum.fhem.de/index.php/board,32.0.html) bearbeitet wird, bitte ich das Thema nach dort zu verschieben. Danke :)
Das RPII2C Modul ist zwar involviert, aber es handelt sich eher um das I2C_BME280 Modul ;)

Gesendet von meinem HTC One mit Tapatalk

RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw



Zitat von: SabineT am 12 Mai 2017, 09:08:32
Beim BMP280 sollte dann aber nicht nur im State Format die humidity weg gelassen werden sondern auch das Reading selber.

Erkannt wird der Typ...sollte in den Readings stehen.
Humidity könnte ich durchaus ausblenden. Aber vorher würde mich interessieren ob das Modul mit einem BMP180 bei allen Auflösungen funktioniert. Ich meine da unterschiedliche conversion times gelesen zu haben.



Gesendet von meinem HTC One mit Tapatalk

RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280