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.
Hallo Tiesto!
Ähnliche Phänomene hatte ich auch ....
ab Antwort 7
https://forum.fhem.de/index.php/topic,68070.msg599086.html#msg599086 (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
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 ???
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 (https://forum.fhem.de/index.php/topic,20452.msg641954.html#msg641954)
Klausw ist der Moderator und Modul Programmierer.
Er kann dir bestimmt helfen. :)
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.
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
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)
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