platformübergreifende I2C Module

Begonnen von klausw, 05 Februar 2014, 14:01:47

Vorheriges Thema - Nächstes Thema

betateilchen

Toll, jetzt funktioniert der Sensor überhaupt nicht mehr.


root@fhem-dev /etc/init.d # i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- UU 


UU statt 77 - so eine Kacke. Hätte ich bloß nicht versucht, irgendwas funktionierendes durch etwas nicht funktionierendes zu ersetzen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klausw

Zitat von: betateilchen am 28 März 2014, 11:25:30
Das Problem ist, dass ohne die hipi-tools der Sensor auf Dirks Platine weder auf Bus0 noch auf Bus1 gefunden wird, weil diese Platine auf P5 montiert.
ah das habe ich bisher übersehen
Beim Raspbian für das Rev2 Board wird I2C0 auf den Header J5 umgeleitet um die Camera zu bedienen.
Die HiPi tools ändern einfach die Konfiguration der entsprechenden GPIOs, das I2C0 auf dem P5 anliegt.
Ich denke mal darüber nach, wie das anderweitig zu bewerkstelligen ist.
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

betateilchen

Irgendwas geht trotzdem noch fürchterlich schief. Einmal habe ich es bisher geschafft, den Sensor mit Deinen neuen Modulen zu verwenden. Im Moment ist es so, dass immer nur noch ein UU anstatt 77 signalisiert wird. Nur ein komplettes Trennen von der Spannungsversorgung schafft es irgendwann, den Sensor wiederzubeleben.

Schreibst Du irgendwas in den Sensor, das der nicht versteht?

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klausw

#63
Zitat von: betateilchen am 28 März 2014, 13:38:17
Irgendwas geht trotzdem noch fürchterlich schief. Einmal habe ich es bisher geschafft, den Sensor mit Deinen neuen Modulen zu verwenden. Im Moment ist es so, dass immer nur noch ein UU anstatt 77 signalisiert wird. Nur ein komplettes Trennen von der Spannungsversorgung schafft es irgendwann, den Sensor wiederzubeleben.

Schreibst Du irgendwas in den Sensor, das der nicht versteht?
Nein, ich habe das BMP180 Modul zwar umstrukturieren müssen, da für die master-slave Lösung ein asynchroner Hardwarezugriff benötigt wird und es für die alternative HiPi Anbindung sinnvoll war den Hardwarezugriff generell zu kapseln. Aber an den Botschaften habe ich nichts geändert (habe gerade nochmal geschaut und mit ist nix aufgefallen).
Mit Verbose 5 solltest Du alles sehen was gesendet und Empfangen wird.
Weisst Du was UU bedeutet? Irgendein Fehlercode?
Bei mir läuft es seit 2 Tagen, allerdings auf P1.
Ich habe 2 Devices, eins über RPII2C und eins über HiPi die beide auf den gleichen BMP180 zugreifen.

Mit define BMP180 I2C_BMP180 /dev/i2c-0 sollte es aber immer noch wie bisher mit HiPi und ohne PRII2C laufen.


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

betateilchen

Zitat von: klausw am 28 März 2014, 13:57:46
Mit define BMP180 I2C_BMP180 /dev/i2c-0 sollte es aber immer noch wie bisher mit HiPi und ohne PRII2C laufen.

Wenn ich DAS versuche, stürzt mein fhem komplett ab! Das letzte was ich da im Frontend zu sehen bekomme, ist das hier: Failed to activate address 119 : Das Gerät oder die Ressource ist belegt

Und auf der Konsole:

Can't call method "bus_read" on an undefined value at ./FHEM/51_I2C_BMP180.pm line 421.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#65
Ok, es ist gelöst.

Deine Lösung ist nicht abwärtskompatibel zu bestehenden Installationen mit dem alten Modul I2C_BMP180.

Bisher war die Vorgehensweise beim fhem-Start folgende:


case "$1" in
'start')
        echo "Starting fhem..."
/usr/local/bin/hipi-i2c e 0 1
sudo echo bmp085 0x77 > /sys/class/i2c-adapter/i2c-0/new_device



JETZT muss das so aussehen:


case "$1" in
'start')
        echo "Starting fhem..."
/usr/local/bin/hipi-i2c e 0 1
# sudo echo bmp085 0x77 > /sys/class/i2c-adapter/i2c-0/new_device



Das Umschalten per hipi-i2c ist zwar derzeit immer noch notwendig,
aber das bisher notwendige Instanziieren des Gerätes auf dem I2C Bus darf nicht mehr durchgeführt werden! (gestrichen, da es vermutlich niemanden ausser mir betrifft)


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Achja - kannst Du bitte das reading "altitude" wieder entfernen?
Das ist kein Reading das vom Sensor geliefert wird, sondern es wird aus dem globalen Attribut gelesen und hat deshalb in den Readings des Sensors nichts zu suchen (und es bringt mir hier einiges durcheinander).
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klausw

Sehr schön, also funktionieren bei Dir jetzt beide Varianten?

Der Absturz war aber mein Fehler... den HArdwarezugriff sollte ich noch mit try abfangen. Dann kommt vermutlich nur ne Fehlermeldung.

Das umschalten mit hipi-i2c ist unschön. Aber was ich bisher aus diversen Foren rausgelesen habe ist, das es nicht so einfach geht.

  • GPIO0 und 1 (am J5 connector) müssen auf input geschaltet werden.
  • GPIO28 und 29 auf ALT0
Das lässt sich mit einem kleinen c programm bewerkstelligen. Ist aber dummerweise auch wieder Aufwand
Oder auch über ein Perlprogramm...das gleiche, denn es muss als root ausgeführt werden

Zitat von: betateilchen am 28 März 2014, 15:55:25
sudo echo bmp085 0x77 > /sys/class/i2c-adapter/i2c-0/new_device
Diese Zeile habe ich nirgendwo gefunden.
Das seltsame ist, das sich am grundsätzlichen Hardwarezugriff nichts geändert haben sollte.
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: betateilchen am 28 März 2014, 16:08:09
Achja - kannst Du bitte das reading "altitude" wieder entfernen?
Das ist kein Reading das vom Sensor geliefert wird, sondern es wird aus dem globalen Attribut gelesen und hat deshalb in den Readings des Sensors nichts zu suchen (und es bringt mir hier einiges durcheinander).
klar, hatte mich sowieso schon gewundert, wozu es gut sein soll
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

betateilchen

#69
Zitat von: klausw am 28 März 2014, 16:13:53
Diese Zeile habe ich nirgendwo gefunden.
Das seltsame ist, das sich am grundsätzlichen Hardwarezugriff nichts geändert haben sollte.

Steht in der Installationsanleitung zur Dirks I2C_BMP180.pm sowie in beiden hier im Forum geführten Threads nach Einführung der kleinen Luftdruckmessplatine.

ZitatDas umschalten mit hipi-i2c ist unschön. Aber was ich bisher aus diversen Foren rausgelesen habe ist, das es nicht so einfach geht.

Das war aber abzusehen. Deshalb hatte ich Dir schon vor langer Zeit die Frage gestellt, wo für mich als Anwender der Vorteil sein soll, wenn ich dann anstatt einem Modul plötzlich zwei Module installieren soll, wenn ich doch nicht um die HiPi herumkomme - vielleicht erinnerst Du Dich an die seinerzeitige Diskussion ;)

Du hast jetzt jedenfalls eine Lösung geschaffen, die vermutlich in Kürze hier im Forum viele Fragen aufwerfen wird - nämlich bei allen Leuten, die bisher mit dem alten Modul arbeiten und jetzt plötzlich eine neue Modulversion mit gleichem Namen aufgezwungen bekommen, die danach nicht mehr funktioniert.

Hatte ich nicht vor zwei oder drei Tagen nicht hier im Thread schon geschrieben, dass die alte Modulversion 51_I2C_BMP180 für mich nicht obsolet ist?

Warum glaubt mir keiner  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: klausw am 28 März 2014, 16:14:49
klar, hatte mich sowieso schon gewundert, wozu es gut sein soll

Naja, die Höhe wird gebraucht, um den Luftdruck auf Meereshöhe beziehen zu können. Aber bisher gab es das reading überhaupt nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klausw

Zitat von: betateilchen am 28 März 2014, 16:22:05
Naja, die Höhe wird gebraucht, um den Luftdruck auf Meereshöhe beziehen zu können. Aber bisher gab es das reading überhaupt nicht.
Das habe ich schon verstanden ;) aber es ist ja nur eine Kopie vom globalen Attribut.
Das reading wurde von Dirk eingeführt: klick
Daher hatte ich es erstmal drin gelassen.
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

betateilchen

Zitat von: klausw am 28 März 2014, 16:34:10Das reading wurde von Dirk eingeführt: Daher hatte ich es erstmal drin gelassen.

Dann muss ich das schon die ganze Zeit übersehen haben 8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#73
Noch eine Info am Rande:

Die automatische Installation von Device::SMBus über CPAN dauert auch weniger als eine Minute.

Vorausgesetzt man hat vorher schon das Moose Paket installiert - und das macht man tunlichst aus einem fertigen Paket seiner jeweiligen Distribution:

apt-get install libmoose-perl

Ansonsten kann es wirklich Stunden dauern, weil CPAN sonst anfängt, alle Abhängigkeiten selbst aufzulösen und die ganzen fehlenden Libraries per Compiling selbst zu erstellen. Die Installation des genannten Paketes per Distributions-Paket dauert maximal zwei Minuten.

(Auf dem Cubietruck ist die Installation testweise problemlos durchgelaufen)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klausw

Zitat von: betateilchen am 28 März 2014, 16:21:10
Steht in der Installationsanleitung zur Dirks I2C_BMP180.pm sowie in beiden hier im Forum geführten Threads nach Einführung der kleinen Luftdruckmessplatine.
Bei Dirk im commandref steht nur das: sudo hipi-i2c e 0 1

Die Zeileecho bmp085 0x77 > /sys/class/i2c-adapter/i2c-0/new_device habe ich nur in einem Post von Dir gefunden. Dort beschreibst Du aber, das diese Zeile für einen Kernel mit Kernelmodul BMP085 und Deinem BBB_BMP180 Modul benötigt wird. klick In diesem Zusammenhang macht es für mich Sinn. Für HiPi ist es doch nicht nötig.
Ist es möglich, das du heute von BBB_BMP180 auf I2C_BMP180 umgeschwenkt bist?

Zitat von: betateilchen am 28 März 2014, 16:21:10
Das war aber abzusehen. Deshalb hatte ich Dir schon vor langer Zeit die Frage gestellt, wo für mich als Anwender der Vorteil sein soll, wenn ich dann anstatt einem Modul plötzlich zwei Module installieren soll, wenn ich doch nicht um die HiPi herumkomme - vielleicht erinnerst Du Dich an die seinerzeitige Diskussion ;)
Gaanz Dunkel :)
Für das BMP Modul ist es kein Vorteil.
Wenn man um HiPi rumkommt, was ich immer noch hoffe ist es aber auch kein riesen Nachteil.
Der Vorteil liegt für mich in den weiteren Modulen auf der Hand, die jetzt alle eine gemeinsame Schnittstelle haben.

Zitat von: betateilchen am 28 März 2014, 16:21:10
Du hast jetzt jedenfalls eine Lösung geschaffen, die vermutlich in Kürze hier im Forum viele Fragen aufwerfen wird - nämlich bei allen Leuten, die bisher mit dem alten Modul arbeiten und jetzt plötzlich eine neue Modulversion mit gleichem Namen aufgezwungen bekommen, die danach nicht mehr funktioniert.
Ja das wäre ärgerlich.

Zitat von: betateilchen am 28 März 2014, 16:21:10
Hatte ich nicht vor zwei oder drei Tagen nicht hier im Thread schon geschrieben, dass die alte Modulversion 51_I2C_BMP180 für mich nicht obsolet ist?

Warum glaubt mir keiner  8)
Du weisst doch...Ratschläge sind auch Schläge :)

Ich hatte es so verstanden, das Du die HiPi Geschichte weiter drinhaben möchtest...schon allein, das es nach einem update noch läuft. Nur aus diesem Grund habe ich sie eingebaut. Die Probleme mit dem I2C-0 hatte ich leider überhaupt nicht auf dem Schirm. Aber nachher ist man immer schlauer.
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