I2C am BBB

Begonnen von klausw, 19 Februar 2014, 15:14:36

Vorheriges Thema - Nächstes Thema

klausw

Ok, also ein
get read 77 aa 22
funktioniert?

Dem BMP180 kannst Du nicht einfach einen Druckwert entlocken.
Dieser muss erst berechnet werden. Auch muss vor dem Auslesen der Messvorgang gestartet werden.
Dazu brauchst Du schon ein eigenes Modul.
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

det.

1A 2E FB 7D C6 5E 84 4B 60 9F 48 64 19 73 00 2C 80 00 D1 F6 0B A5 transmission: Ok
Offenbar ja, funktioniert.
LG
det.

klausw

Super, dann musst du nur noch warten, bis es ein Modul dafür gibt. Notfalls schreibe ich eins, denn ich habe mir auch einen BMP180 bestellt....der sollte bald kommen
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

det.

Hallo klausw,
Das ist eine super Idee, einen Tester hast du schon!
LG
det.

klausw

Hier gibt's jetzt eine Version für den BMP180 mit dem Raspi I2C Modul:
http://forum.fhem.de/index.php/topic,20452.0.html
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

RogerBE

Hallo,

habe an meinen CubieA10 auch ein BMP180.
Wenn ich in der Konsole i2cget -y 1 0x77 eingebe, bekomme ich auch Werte zurück. Wenn ich das in dem Modul 00_RPII2C machen, startet FHEM neu.
Beim Loggen sieht man, dass er beim Code neustartet:
if (defined($clientmsg->{nbyte}) && defined($clientmsg->{reg}) && defined($clientmsg->{data}) && $clientmsg->{direction} eq "i2cblockwrite") {

Gruß
Roger
Cubieboard A10 + (HM-CFG-USB2 + HMLanD) + CUL

det.

Hallo Roger,
Du bist im faschen Treat, lies mal das alles durch: http://forum.fhem.de/index.php/topic,20452.msg143682.html#msg143682
Das zugehörige Basismodul ist im ersten Beitrag. Bei mir geht es auf dem Cubie2, wobei der Drucksensor im RPI eingebaut ist und über FHEM2FHEM mit dem Cubie2 verbunden ist.
LG
det.

klausw

Zitat von: det. am 06 März 2014, 23:11:59
Das zugehörige Basismodul ist im ersten Beitrag. Bei mir geht es auf dem Cubie2, wobei der Drucksensor im RPI eingebaut ist und über FHEM2FHEM mit dem Cubie2 verbunden ist.
Heisst das, bei Dir läuft die 00_RPII2C.pm auf dem RPI und 52_I2C_BMP180.pm auf dem Cubie2?
Scheinbar hatte ich es wirklich nicht richtig verstanden ;)
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

Hi Roger,

Mit i2cget -y 1 0x77 solltest Du erstmal nix plausibles zurückbekommen, da Du keine Registeradresse angegeben hast und somit gerade das Register liest, wo der Pointer steht.

Zitat von: RogerBE am 06 März 2014, 22:05:16
Beim Loggen sieht man, dass er beim Code neustartet:
if (defined($clientmsg->{nbyte}) && defined($clientmsg->{reg}) && defined($clientmsg->{data}) && $clientmsg->{direction} eq "i2cblockwrite") {

Du gibst das direkt im Modul RPII2C unter get ein?
get <name> RPII2C read 77 aa 22
sollte z.B. alle Kalibrierwerte auslesen.

Aber: das Modul hatte ich fürs Raspberry geschrieben und es enthält demnach auch einige Besonderheiten. Aber vielleicht lässt es sich ja anpassen.

Läuft denn die wiringpi Bibliothek auf dem CubieA10?
Konntest du Device::SMBus installieren?
Wie hast Du das loggen eingestellt, das du genau diese Zeile geliefert bekommst?
Diese Codezeile ist zwar in der Subroutine, welche die Schnittstelle zur Hardware ist und den I2C Bus bedienen soll, aber Dein geposteter Ausschnitt gehört zu einem Schreibvorgang und du hattest von einem Lesevorgang geschrieben.



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

det.

Zitat von: klausw am 06 März 2014, 23:36:41
Heisst das, bei Dir läuft die 00_RPII2C.pm auf dem RPI und 52_I2C_BMP180.pm auf dem Cubie2?
Scheinbar hatte ich es wirklich nicht richtig verstanden ;)
Hallo Klaus,
so ist es nicht, die kompletten Module samt Perl Teilen sind auf beiden Geräten installiert. Den  Drucksensor hatte ich im RPI eingelötet, bevor das produktiv FHEM aus Geschwindigkeitsgründen auf das Cubie2 Board umgezogen ist. Da der RPI aber noch als AirPrintserver für ein Brotherlaser MFC genutzt wird und so ein CO2 Luftgütesensor dran steckt, macht es Sinn die 2 Sachen über FHEM2FHEM zu koppeln.
Nun ist es offenbar die Eigenart von FHEM2FHEM, das an beiden Geräten die Module vollständig funktionsbereit installiert sein müssen, sonst hagelt es Fehlermeldungen im Log. Dank Dir geht das jetzt und vorher nicht, da es für das Cubieboard kein HiPi gibt.
Auch für den CO2 Sensor musste ich das ganze Zeugs auf beiden Geräten installieren.
LG
det.

klausw

Deine Hardwarekonfiguration hatte ich schon verstanden.
Mit FHEM2FHEM habe ich nur noch nix gemacht.
Das bedeutet, du hast in beiden fhem.cfg die gleichen Einstellungen für beide Module? Das muss ich mir mal genau anschauen.

Dann hat sich für meine Zwecke (Pi mit Fritzbox verbinden) FHEM2FHEM schon erledigt :(

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

RogerBE

Hallo Klaus,

Device::SMBus habe ich installiert.
Bei Verbose 5 im RPII2C kommt die Meldung HWaccess I2CAddr: 77
Danach habe ich im Code nach der Ausgabe in jede Zeile Log3,.. eingetragen und gesehen, dass der Log-Eintrag vor der Zeile noch kommt.

WiringPI habe ich grade für CB gefunden. Muss ich noch testen :-)
Cubieboard A10 + (HM-CFG-USB2 + HMLanD) + CUL

klausw

Zitat von: RogerBE am 08 März 2014, 00:20:09
Device::SMBus habe ich installiert.
Bei Verbose 5 im RPII2C kommt die Meldung HWaccess I2CAddr: 77
Danach habe ich im Code nach der Ausgabe in jede Zeile Log3,.. eingetragen und gesehen, dass der Log-Eintrag vor der Zeile noch kommt.
achso, ja dann passiert das also in dem if-Block
Gib mit per PN mal Deine Mailadresse, ich werde dir mal was zum testen schicken

Zitat von: RogerBE am 08 März 2014, 00:20:09
WiringPI habe ich grade für CB gefunden. Muss ich noch testen :-)
Wiringpi nutze ich nur, um die Rechte für den I2C Bus anzupassen. Wenn Du I2CGET auf Deinem System auch ohne sudo nutzen kannst, dann benötigst Du es nicht.
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

Der Vollständigkeit halber:

es lag an den fehlenden Rechten für die Datei /dev/i2c-*

Zitat von: klausw am 12 März 2014, 23:34:29
Hi Roger,

mit welchen Nutzerrechten läuft FHEM bei Dir?
Dazu suchst Du im Logfile Server started und weiter hinten in der Zeile steht auch der user.
Dieser ist bei mir fhem

und welche Rechte hat der I2C-Bus den Du nutzt?
Das findest Du mit:ls -l /dev | grep i2c
raus

Der FHEM User sollte schreib und leserechte auf den I2C-Bus haben.

Dieses mache ich beim beim Raspberry mit dem gpio utility aus wiringpi.
Bei mir sieht sie Rechtevergabe so aus:

crw-rw---T 1 fhem dialout  89,   0 Mär 10 18:01 i2c-0
crw-rw---T 1 fhem dialout  89,   1 Mär 10 18:01 i2c-1


wenn fhem und die i2c Dateien nicht den gleichen Besitzer haben, teste bitte folgendes:
sudo chown fhem /dev/i2c-*
sudo chgrp dialout /dev/i2c-*
sudo chmod +t /dev/i2c-*
sudo chmod 660 /dev/i2c-*


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