I2C_PCF8574: Ausgänge auch speichernd setzen?

Begonnen von Tiesto1988, 30 Juli 2017, 19:34:59

Vorheriges Thema - Nächstes Thema

Tiesto1988

Moin zusammen.

Ich hab ein PCF8574 an nem Arduino über Firmata angebunden. Möchte damit meine Jalousien im Haus steuern. Den Aufbau und die Logik hierfür hab ich soweit auch im groben zusammen.
Port0 Jalousie 1 hoch,
Port1 Jalousie 1 runter,
Port2 Jalousie 2 hoch,
Port3 Jalousie 2 runter.

Bei der Programierung ist nun folgendes Problem aufgetaucht:
Setze ich Port0 auf on, also Jalousie 1 hoch, wird der Port0 korrekt gesetzt.
set FRM_I2C Port0 on
Setze ich anschließend den Port2, also 2. Jalousie auch hoch, wir der Port 0 zurückgesetzt und der Port2 gesetzt.
set FRM_I2C Port2 on
dies ist leider nicht gewünscht :-[
nur wenn ich über set FRM_I2C Port0,2 on setzt er mir beide Ausgänge korrekt.

Kurz gefragt:
Gibt es eine Möglichkeit die Ports des PCF8574 auch speichernd zu setzten?
Oder hat jemand von euch ne Idee, wie man es über eine weiter Auswertungslogik in FHEM umsetzten kann?

Ich bin für jegliche Hilfe und Unterstützung dankbar.

dbox2user

Hallo Tiesto!

Ähnliche Phänomene hatte ich auch ....
ab Antwort 7
https://forum.fhem.de/index.php/topic,68070.msg599086.html#msg599086

Der Modulentwickler Klaus hat den Fehler aber behoben... das neue Modul sollte per Update verteilt werden.

Ist dein FRM_I2C Modul aktuell? Falls nicht einfach mal updaten.

Gruß,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

Tiesto1988

Moin dbox2user

ja das FRM_I2C Modul ist auf dem neuesten Stand. Leider ist das Problem was bei mir auftaucht nicht weiter unter den Beitrag beschrieben den du mir da genannt hast. Ich denke eher, dass das Modul beiset FRM_I2C Port0 on an den PCF8574 so etwas wie 1000 0000 und bei set FRM_I2C Port0,2 on 1010 0000 weiter gibt.

Aber wie ich das gelöst bekomme weis ich leider noch nicht ???

dbox2user

Ich kann dir leider auch nicht helfen.

Am besten du fragst mal direkt im Modul Thema nach

https://forum.fhem.de/index.php/topic,20452.msg641954.html#msg641954   

Klausw  ist der Moderator und Modul Programmierer.
Er kann dir bestimmt helfen.  :)
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

klausw

was liefert denn
version I2C_PCF8574 zurück?

und poste bitte deine Definitionen

Wie dbox2user geschrieben hat sollte dieses Problem bereits behoben sein.
Weiter oben im von ihm verlinkten Thread ist bisschen was dazu geschrieben.
Was FRM_I2C damit zu tun hat habe ich aber noch nicht 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

Tiesto1988

Hallo klausw

bei version I2C_PCF8574 gibt fhem File              Rev   Last Change

52_I2C_PCF8574.pm 13601 2017-03-05 01:36:56Z klausw

fhemweb.js                 14516 2017-06-15 11:01:57Z rudolfkoenig
fhemweb_colorpicker.js     13580 2017-03-02 13:03:29Z justme1968
fhemweb_fbcalllist.js      13629 2017-03-06 20:50:43Z markusbloch
fhemweb_readingsGroup.js   13580 2017-03-02 13:03:29Z justme1968
fhemweb_readingsHistory.js 13580 2017-03-02 13:03:29Z justme1968
fhemweb_sortable.js        13629 2017-03-06 20:50:43Z markusbloch
fhemweb_uzsu.js            13580 2017-03-02 13:03:29Z justme1968
zurück.
Meine Definitionen von dem I2C_PCF8574:
defmod FRM_I2C I2C_PCF8574 0x21
attr FRM_I2C IODev FIRMATA
attr FRM_I2C InvrtPorts 0,1,2,3,4,5,6,7
attr FRM_I2C group Jalousie
attr FRM_I2C room 01_Jalousie
attr FRM_I2C showtime 1

setstate FRM_I2C 2017-07-22 12:50:34 state 0


Der PCF8574 heißt bei mir FRM_I2C. Der Name ist wenn ich es mir so überlege echt schlecht gewählt :o

klausw

Der Name ist nur irreführend, aber egal.

Schade, du verwendest wirklich die aktuelle Version.
In dieser hatte ich das gefixed. Das einzige was ich nicht probiert hatte ist FRM in Kombination mit den invertierten Ports.
Probiere es bitte ohne InvrtPorts aus.

Wenn das nicht geht bitte einen Logauszug mit Verbose 5 (alles aus -> einen Port schalten -> einen weiteren Port schalten)
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

Tiesto1988

Also ich hab das Modul mal ganz neu definiert.
Keine invertierten Port u.ä. mehr dabei.

Dann wie du mir es aufgetragen hast den verbose auf 5, dann den Port0 auf on und den Port1 auf on.
Ergebnis ist wie gehabt. Port0 wird off gesetzt.
Hier der Auszug aus dem Logfile:
2017.08.02 18:43:25 5: I2C_PCF8574 Port0 soll auf  on gesetzt werden
2017.08.02 18:43:25 5: I2C_PCF8574 Output:  0b00000001
2017.08.02 18:43:25 5: I2C_PCF8574 Inverts: 0b00000000
2017.08.02 18:43:25 5: I2C_PCF8574 Inputs:  0b00000000
2017.08.02 18:43:25 5: I2C_PCF8574 Result:  0b00000001
2017.08.02 18:43:34 5: I2C_PCF8574 Port1 soll auf  on gesetzt werden
2017.08.02 18:43:34 5: I2C_PCF8574 Output:  0b00000010
2017.08.02 18:43:34 5: I2C_PCF8574 Inverts: 0b00000000
2017.08.02 18:43:34 5: I2C_PCF8574 Inputs:  0b00000000
2017.08.02 18:43:34 5: I2C_PCF8574 Result:  0b00000010