Modul für die Ansteuerung des MCP23017 I2C Portextender

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

Vorheriges Thema - Nächstes Thema

IPPhoner2b

Zitat von: klausw am 31 Mai 2014, 01:20:22
Hallo Chris,
Active_low heisst inzwischen invert_input. Hatte ich vergessen hier zu schreiben, aber im Commandref sollte es stimmen. Active_low war irreführend, da nur Input Pins invertiert werden können.

Grüße
Klaus

Das hatte ich bei LinusD in seinem Script gesehen, und in der Hilfe wurde es auch angezeigt, wusste nur nicht, dass auch die Ausgänge umgedreht werden, und habe mich gewundert, warum meine Ausgänge als off gekennzeichnet sind, die LEDs aber brennen.  :o

Aber vielen Dank dafür.

Gruß Christian

linusd

Hi Christian,

Zitatdass auch die Ausgänge umgedreht werden, und habe mich gewundert, warum meine Ausgänge als off gekennzeichnet sind, die LEDs aber brennen.
Ich habe die Beschreibung meines Eintrags entsprechend ausformuliert. (Die Erklärung war hier wirklich etwas dünn)    ::)

ZitatOutput: Ein 8 Kanal Relais ist an den Ports A4, A5 und B1-B7 angeschlossen, deren Schaltzustände am jeweiligen <readingsProxy> invertiert werden müssen.
(Ein Invertierung des MCP23017-Ausgangsignals, wie zum Beispiel beim Input mit <invert_input>, ist nicht möglich. Somit hat ein aktiviertes Relais "LED=on" im Reading des Moduls den Zustand "off" )

Gruß
Christian

IPPhoner2b

Hi Christian,

also heißt das für mich, dass ich so ohne weiteres keine Chance habe, das mit die ausgeschalteten Ausgänge auch als "off" angezeigt werden? Finde das nämlich etwas verwirrend, und wenn ich mir vorstelle, ich soll meinen Eltern (das soll hinterher bei meinen Eltern zur Rolladensteuerung eingebaut werden) erklären, "off" ist "an", dann kannst du dir das passende Gesicht wohl vorstellen  :o ;D

Habe aber noch eine Frage zu deinem Script, bzw. eine Anpassung an meine Bedürfnisse:
Wenn ich bei dir jetzt einen Ausgang (z.B. A0) anschalte, wie müsste es geschrieben sein, dass vorher z.B. Ausgang A1 ausgeschaltet wird, und am besten zwischen den Schaltvorgängen noch eine Verzögerung von 0,5 sek ist, damit ich beim Rolladenmotor nicht aus versehen auf beide Seite die Phase lege.

Wenn das Wetter mal wieder schlechter wird, muss ich mich echt mal mehr mit befassen, wollte das eigentlich schon lange drin haben, aber momentan können die noch alles per Schalter bedienen, dann ist es nicht ganz so schlimm.

Gruß
Christian

klausw

Zitat von: IPPhoner2b am 01 Juni 2014, 11:23:30
also heißt das für mich, dass ich so ohne weiteres keine Chance habe, das mit die ausgeschalteten Ausgänge auch als "off" angezeigt werden? Finde das nämlich etwas verwirrend, und wenn ich mir vorstelle, ich soll meinen Eltern (das soll hinterher bei meinen Eltern zur Rolladensteuerung eingebaut werden) erklären, "off" ist "an", dann kannst du dir das passende Gesicht wohl vorstellen  :o ;D
Da würde ich readingsproxy verwenden. Dort kannst Du auch "auf" und "zu" oder was auch immer verwenden.

Zitat von: IPPhoner2b am 01 Juni 2014, 11:23:30
Habe aber noch eine Frage zu deinem Script, bzw. eine Anpassung an meine Bedürfnisse:
Wenn ich bei dir jetzt einen Ausgang (z.B. A0) anschalte, wie müsste es geschrieben sein, dass vorher z.B. Ausgang A1 ausgeschaltet wird, und am besten zwischen den Schaltvorgängen noch eine Verzögerung von 0,5 sek ist, damit ich beim Rolladenmotor nicht aus versehen auf beide Seite die Phase lege.
Eine Hardwareverriegelung wäre da am besten. Im Fehlerfall gibt der Motor sonst eventuell Rauchzeichen von sich.
Z.B. könntest Du ein Relais mit Wechselkontakt nehmen und damit die Richtung schalten und mit einem zweiten Relais bestromst du das ganze einfach.
So ein Konstrukt sollte auch mit readings Proxy gehen oder auch mit einem Dummy

Grüße
Klaus
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

willybauss

Zitat von: IPPhoner2b am 01 Juni 2014, 11:23:30
Wenn ich bei dir jetzt einen Ausgang (z.B. A0) anschalte, wie müsste es geschrieben sein, dass vorher z.B. Ausgang A1 ausgeschaltet wird, und am besten zwischen den Schaltvorgängen noch eine Verzögerung von 0,5 sek ist, damit ich beim Rolladenmotor nicht aus versehen auf beide Seite die Phase lege.
Beidseitig Phase am Motor sollte nicht schlimmer sein als beidseitig Null. Er hat dann halt keine Spannung und tut nichts. Viel schlimmer ist, dass in diesem Fall wohl auch eine Direktverbindung von Phase zu Null zustande kommen kann, ohne den Motor dazwischen. Ich habe deshalb eine "richtige" Rollladensteuerung dazwischen, die die Verriegelung incl. Zeitverzögerung automatisch vornimmt.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

klausw

Zitat von: willybauss am 03 Juni 2014, 11:02:50
Beidseitig Phase am Motor sollte nicht schlimmer sein als beidseitig Null. Er hat dann halt keine Spannung und tut nichts. Viel schlimmer ist, dass in diesem Fall wohl auch eine Direktverbindung von Phase zu Null zustande kommen kann, ohne den Motor dazwischen. Ich habe deshalb eine "richtige" Rollladensteuerung dazwischen, die die Verriegelung incl. Zeitverzögerung automatisch vornimmt.
Ein Wechselspannungsmotor mit 2 Anschüssen? Der fährt dann aber nur in eine Richtung....ist für einen Rolladen ungünstig  8)

Ein Rohrmotor ist üblicherweise als Kondensatormotor ausgeführt. Der N ist fest angeschlossen.
Versorgung und Richtungsauswahl erfolgt dadurch, das an den Anschlussdraht für hoch bzw. runter der L angeschlossen wird.
Über eine im Rohrmotor eingebaute Schaltung (z.B. Relais) wird die Hilfswicklung umgepolt und somit die Richtung eingestellt.
Was passiert, wenn hoch und runter gleichzeitig angeschlossen werden ist schwer zu sagen, kann aber unter Umständen zum Kurzschluss führen. Nicht zum Spaß sind Rolladenschalter gegeneinaner verriegelt. Mache es einfach so.
Zwischen der Richtungsumschaltung sollte eine kurze Pause sein. Ein Motor findet es nicht so toll abrupt die Richtung zu ändern.
Das könntest du mit einem Dummy machen.
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

thobastian

Ich habe mir jetzt den MCP23017 zugelegt also auch die I2C-Variante.

Soweit ist alles bei mir angeschlossen und und fkt. über Python. 
Aber wie bekomm ich das nun mit FHEM hin ? Wohin mit dem Modul 52_I2C_MCP23017.PM  ?
und welche Konfigs muss ich machen, damit einfach mal eine Lampe leuchtet oder ein Schalter erkannt wird?

Gruß
Thomas

klausw

Zitat von: thobastian am 06 Juni 2014, 16:53:27
Ich habe mir jetzt den MCP23017 zugelegt also auch die I2C-Variante.

Soweit ist alles bei mir angeschlossen und und fkt. über Python. 
Aber wie bekomm ich das nun mit FHEM hin ? Wohin mit dem Modul 52_I2C_MCP23017.PM  ?
und welche Konfigs muss ich machen, damit einfach mal eine Lampe leuchtet oder ein Schalter erkannt wird?
Schau doch mal in die commandref, da findest du alles. Hier im Thread eine Seite zurück gibt es eine Beispielkonfiguration.
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

thobastian

Ich glaub, mit der config habe ich kapiert, aber wohin mit dem Modul ?

klausw

Das solltest Du schon haben...wird bei einem ausführen von "update" in FHEM mit installiert. Aber das hast Du sicher schon gemacht, da sonst das Modul auch nicht in der commandref auftauchen würde.
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: gnusmas am 27 Juli 2014, 01:10:14
Hallo ,
ich versuche gerade das Modul 52_I2C_MCP23017 einzubinden.
Bekomme jedoch im Log folgende Fehlermeldung:

sind die Module aktuell?
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

gnusmas

... vor einer Woche neu installiert v5.5 auf Raspberry. Ich fange gerade mit FHEM neu an.
Sollte also alles auf dem neuesten Stand sein.

klausw

Naja, wenn Du nach der Installation auch ein Update gemacht hast dann ja.
Die Installation von Fhem selbst hat nicht den neusten Stand.
Gib einfach mal Update oben im Eingabefeld von Fhem ein.
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

gnusmas

Update? Nein?!?! Aber jetzt gemacht. Super, funktioniert. Vielen Dank
Jürgen

hollyghost

Hallo Klaus,
ich spiele hier gerade mit deinem Modul für den Portextendeder und habe auch den Ursprungs-Thread zur Pin-Ansteuerung verfolgt.
Für meine Tastererkennung würde ich gern das Portextender Modul verwenden, bräuchte allerdings auch eine 'Longpress'-Erkennenung.
Wenn ich das richtig verstanden habe (beim GPIO-Modul), startest du nach dem Erkennen einer Flanke einen Timer und überprüfst den Pinzustand nachdem der Timer abgelaufen ist - ist der Taster noch immer gedrückt, geht Longpress auf 'on'.
Siehst du eine Chance ein Longpress-reading auch für die Input-Pins beim Portextender anzulegen oder würde dadurch das 'System' zu stark belastet werden?
Grüße
Holger