Modul für die Ansteuerung des MCP23017 I2C Portextender

Begonnen von klausw, 03 Mai 2014, 01:02:40

Vorheriges Thema - Nächstes Thema

klausw

Zitat von: IPPhoner2b am 16 November 2014, 11:33:26
habe die Version eingespielt, also die Inputs werden scheinbar richtig gesetzt, muss allerdings dazusagen, dass ich vorher damit bis auf dieses eine Mal noch keine Probleme damit hatte, habe jedenfalls nach dem ausschalten die Eingänge gewechselt, und das wurde richtig erkannt.
Naja, bedeutet keine Probleme, das es fubktionierte, oder ist es Dir nur nicht aufgefallen ? 8)
Wie auch immer, wenn Du keine Fehler oder ungereimtheiten entdecken konntest, dann werde ich es hochladen.
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

IPPhoner2b

Sehr gerne, also ich habe nur dieses eine mal komischerweise 3 Eingänge betätigt gehabt, kann aber eigentlich nicht sein, weil ich diese hier am Schreibtisch immer nur mit einem Draht überbrücke  ::) ;D

klausw

Zitat von: IPPhoner2b am 16 November 2014, 12:28:24
Sehr gerne, also ich habe nur dieses eine mal komischerweise 3 Eingänge betätigt gehabt, kann aber eigentlich nicht sein, weil ich diese hier am Schreibtisch immer nur mit einem Draht überbrücke  ::) ;D
Na toll...
Das kommt mir aber seltsam vor. Das die Eingänge gespiegelt sind kann ich mir vorstellen. Aber das komplett falsche Werte zurückgeliefert werden ist komisch.
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

IPPhoner2b

Siehste, ich bin immer für ne Überraschung gut  :o ::)

Das kam aber nur das eine mal, wo ich eine neue Version von dir ausprobiert habe, sonst ist mir das noch nie aufgefallen.

klausw

Zitat von: IPPhoner2b am 16 November 2014, 12:35:00
Siehste, ich bin immer für ne Überraschung gut  :o ::)
Die Art von Überraschungen kann ich ja leiden...

Zitat von: IPPhoner2b am 16 November 2014, 12:35:00
Das kam aber nur das eine mal, wo ich eine neue Version von dir ausprobiert habe, sonst ist mir das noch nie aufgefallen.
Lässt es sich denn reproduzieren?
Ist es die letzte Version von mir in der das auftritt?
Nutzt du jetzt wieder eine andere?
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

IPPhoner2b

Die Version, bei der mir das aufgefallen war, war die vom 09.11. Es war aber leider nicht reproduzierbar, habe festgestellt, dass komischerweise 3 Eingänge belegt waren, das auch nach einem Neustart erhalten blieb, und wo ich dann einmal einen Eingang "gebrückt" hatte, dann waren alle wieder so, wie es sein sollte.

Also tut mir Leid, aber ich kann keine Fehler auf Befehl produzieren, die mache ich immer so *g*

IPPhoner2b

#96
Wollte hier einfach nochmal die Frage stellen, ob noch irgendjemand zeitliche Probleme mit dem MCP bekommt, sobald hier 3 oder 4 der Chips am raspberrry anklemmt.

In diesem Thread hier http://forum.fhem.de/index.php/topic,28890.0.html

Geht es um die schonmal erwähnte Rolladensteuerung, und solange ich mit 2 MCP Chips arbeite, klappt die Steuerung über Schalter sehr gut, sobald aber ein dritter oder vierter Chip hinzukommt, wird das System extrem langsam, sobald ein notify ausgelöst wird. Schalte ich einzelne Ausgänge über das WebIf klappt alles ohne Probleme.

Wäre halt schön, wenn jemand hier mal testen könnte, ob er das Phänomen nachstellen kann. Vielleicht liegt es ja wirklich einfach an der SCI Schnittstelle, dass die bei so vielen Ausgängen einfach an ihre Grenzen kommt.

:EDITH:
Mal noch ne zweite Frage, habe grade etwas über den neuen Raspi B+ gelesen, und dabei festgestellt, dass der normale Raspi B auf dem P5 Header noch mal nen I2C Bus hat (GPIO 28 + 29).

Könnte man den zweiten Bus auch für diese Aufgabe nutzen? Kann man das Modul zur Ansteuerung auf den zweiten I2C Bus erweitern? Oder ist es so evtl schon zu benutzen?

klausw

Zitat von: IPPhoner2b am 04 Dezember 2014, 19:18:30
Wollte hier einfach nochmal die Frage stellen, ob noch irgendjemand zeitliche Probleme mit dem MCP bekommt, sobald hier 3 oder 4 der Chips am raspberrry anklemmt.

In diesem Thread hier http://forum.fhem.de/index.php/topic,28890.0.html

Geht es um die schonmal erwähnte Rolladensteuerung, und solange ich mit 2 MCP Chips arbeite, klappt die Steuerung über Schalter sehr gut, sobald aber ein dritter oder vierter Chip hinzukommt, wird das System extrem langsam, sobald ein notify ausgelöst wird. Schalte ich einzelne Ausgänge über das WebIf klappt alles ohne Probleme.

Wäre halt schön, wenn jemand hier mal testen könnte, ob er das Phänomen nachstellen kann. Vielleicht liegt es ja wirklich einfach an der SCI Schnittstelle, dass die bei so vielen Ausgängen einfach an ihre Grenzen kommt.
Der I2C sollte es schaffen, beim I2C_LCD Modul werden über 100 Telegramme auf den Bus geblasen und da geht es doch auch.
Das muss irgendwas anderes sein.

Zitat von: IPPhoner2b am 04 Dezember 2014, 19:18:30
:EDITH:
Mal noch ne zweite Frage, habe grade etwas über den neuen Raspi B+ gelesen, und dabei festgestellt, dass der normale Raspi B auf dem P5 Header noch mal nen I2C Bus hat (GPIO 28 + 29).

Könnte man den zweiten Bus auch für diese Aufgabe nutzen? Kann man das Modul zur Ansteuerung auf den zweiten I2C Bus erweitern? Oder ist es so evtl schon zu benutzen?
Klar, der I2C am P5 ist nutzbar (I2C Bus 0), steht auch in der commandref  ;)
Auch die dafür notwendigen speziellen Schritte.
P5 drauflöten, I2C Gerät anstecken und erstmal mit i2cdetect, i2cget und i2cset probieren ob es geht.
Allerdings wird dies vermutlich nicht das Problem der Zeitverzögerung lösen.
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

IPPhoner2b

Hi Klaus,

für mich würde es ja reichen, wenn ich je 2 MCP Chips relativ verzögerungsfrei ansprechen kann.

Habe aber nen Raspi B+ gekauft, um mal zu sehen, ob der wirklich Stromsparender ist, als der normale "B"

Aber da werde ich mich wohl erst nächste Woche drum kümmern.
So Viel Zeit bis Weihnachten ist ja nicht mehr, und bis dahin soll das ganze ja mehr oder minder stehen, aber das meiste klappt ja schon ganz gut.

Spuckiii

#99
Habe mir die Beispiel Config aus Post 40 gezogen.
die Outs kann ich schalten, aber ich bekomme beim Interrupt als state ??? und folgende Fehlermeldung.

Interrupt GetFn: readout of Pinvalue fail
stehe grade irgendwie auf dem Schlauch
Kann mich mal einer runterschubsen?
Auszug aus dem Log:
2014.06.21 22:01:15 1: Including fhem.cfg
2014.06.21 22:01:15 3: telnetPort: port 7072 opened
2014.06.21 22:01:16 3: WEB: port 8083 opened
2014.06.21 22:01:16 3: WEBphone: port 8084 opened
2014.06.21 22:01:16 3: WEBtablet: port 8085 opened
2014.06.21 22:01:16 2: eventTypes: loaded 118 events from ./log/eventTypes.txt
2014.06.21 22:01:22 1: Can't open file: Interrupt, edge
2014.06.21 22:01:23 1: Including ./log/fhem.save
2014.06.21 22:01:23 1: usb create starting
2014.06.21 22:01:24 3: Probing CUL device /dev/ttyAMA0
2014.06.21 22:01:25 3: Probing TCM_ESP3 device /dev/ttyAMA0
2014.06.21 22:01:25 3: Probing FRM device /dev/ttyAMA0
2014.06.21 22:01:30 1: usb create end
2014.06.21 22:01:30 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2014.06.21 22:01:30 0: Server started with 28 defined entities (version $Id: fhem.pl 7124 2014-12-05 07:10:20Z rudolfkoenig $, os linux, user pi, pid 2473)
2014.06.21 22:01:47 1: Can't open file: Interrupt, value
2014.06.21 22:01:47 1: Interrupt GetFn: readout of Pinvalue fail
2014.06.21 22:01:47 1: PERL WARNING: Use of uninitialized value $zustand in concatenation (.) or string at ./FHEM/51_RPI_GPIO.pm line 141.
2014.06.21 22:01:49 1: Can't open file: Interrupt, value
2014.06.21 22:01:49 1: Interrupt: readout of Pinvalue fail
2014.06.21 22:01:49 1: Can't open file: Interrupt, value
2014.06.21 22:01:49 1: Interrupt GetFn: readout of Pinvalue fail

klausw

Zitat von: Spuckiii am 10 Dezember 2014, 19:48:00
Habe mir die Beispiel Config aus Post 40 gezogen.
die Outs kann ich schalten, aber ich bekomme beim Interrupt als state ??? und folgende Fehlermeldung.

Interrupt GetFn: readout of Pinvalue fail
stehe grade irgendwie auf dem Schlauch
Kann mich mal einer runterschubsen?
gibts noch andere Fehlermeldungen zum Gerät "Interrupt"
Es macht den anschein, das du keine Zugriffsrechte hast
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

Spuckiii

Schalten kann ich ja. Also das relay über fhem...

klausw

Zitat von: Spuckiii am 10 Dezember 2014, 20:10:06
Schalten kann ich ja. Also das relay über fhem...
Es um den Interrupt, der hängt doch an einem GPIO. Schalten tust du sicher mit dem Mcp
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

Spuckiii

Manchmal liegt die Lösung so nah... habe fhem auf raspi zum tüfteln den hab ich neu aufgesetzt und vergessen fhem zu gpio hinzuzubuchen. ok. die files kann er jetzt lesen

beSmart

Hallo.

Ich habe mit Hilfe des Beispiels in Post 40 folgendes erstellt.




define Fk.Haustuer readingsProxy icMCP23017:PortA0
attr Fk.Haustuer fp_Fensterkontakte 80,200,0,
attr Fk.Haustuer fp_UG 210,900,0,
attr Fk.Haustuer group InputPorts
attr Fk.Haustuer valueFn {($VALUE eq "on")?"open":"closed"}

define Ausgang1 readingsProxy icMCP23017:PortA1
attr Ausgang1 group OutputPorts
attr Ausgang1 setFn {($CMD eq "on")?"PortA1 off":"PortA1 on"}
attr Ausgang1 setList on off
attr Ausgang1 valueFn {($VALUE eq "on")?"off":"on"}

define Switch1 DOIF ([Fk.Haustuer] eq "closed" and [Ausgang1] eq "off") (set Ausgang1 on) DOELSEIF ([Fk.Haustuer] eq "closed" and [Ausgang1] eq "on") (set Ausgang1 off)




Per Webbrowser kann Ausgang1 ein- und ausgeschaltet werden.

Das Einschalten per Taster (Fk.Haustuer) funktioniert, aber Ausgang1 kann per Taster nicht ausgeschaltet werden.

Wo mache ich den Denkfehler?

Dank und Gruß

beSmart