Moin,
ich habe vor 2 Monaten mit dem ersten Prototyp für meine Hausautomatisierung mit FHEM begonnen.
Unter Anderem nutze ich dein Modul für den I²C MCP23017 Portexpander.
Vielen Dank dafür, prima Umsetzung mit allen unterstützten Features!
Ich habe jedoch noch ein Problem, irgendwie steigt die Kommunikation mit dem gewissen MCP nach einer Zeit aus.
Momentan habe ich ein ,,leeres" FHEM auf meinem PI2 laufen.
Hier läuft nur ein ,,at" der alle 30 Minuten den Port A0 für 5 Minuten einschaltet.
Nach einer Zeit (>2 Stunden) wird der Port im FHEM noch weiterhin ohne Fehlermeldung gesetzt,
jedoch nicht der Hardwareport A0.
Der I²C-Bus reagiert in der Konsole noch.
root@Raspberry203:~# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 21 22 23 24 25 -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Ein Schalten des Ports klappt jedoch in der Konsole erst nach erneutem beschreiben des IO-Registers,
dies sollte doch aus FHEM heraus schon gesetzt sein.
root@Raspberry203:~# i2cset -y 1 0x20 0x00 0x00
root@Raspberry203:~# i2cset -y 1 0x20 0x14 0xff
root@Raspberry203:~# i2cset -y 1 0x20 0x14 0x00
Ich habe nach einem "Ausfall" mal das IODIRA 0x00 (IO-direction) Register neu gesetzt.
Jetzt geht auch die Steuerung aus FHEM heraus wieder.
D.h. der MCP "verliert" sein IODIRA oder es wird umgeschrieben.
Ggf. könnte ein Spannungseinbruch der Versorgung das Löschen bewirken, halte ich aber für unwahrscheinlich.
Hat jemand vielleicht eine Idee was ich zur Eingrenzung des Problems noch testen könnte?
Gruß
Pf@nne
Gibt es eine Möglichkeit das IODIRA zu lesen und zu loggen, dann könnte ich sehen wann oder wer das Register ändert.
Zitat von: Pf@nne am 27 März 2015, 05:57:15
Gibt es eine Möglichkeit das IODIRA zu lesen und zu loggen, dann könnte ich sehen wann oder wer das Register ändert.
naja, du könntest einen cron job anlegen, der über i2cget regelmäßig das IODIRA liest und mitloggt.
Oder das ganze über ein at im fhem machen.
du kannst auch im definierten Modul selbst (und zusätzlich im rpii2c modul) verbose auf 5 Stellen und schauen, ob es Unfug macht
Aber das Register sollte nicht verloren gehen.
Ich nutze das Modul MCP23008 (welches auf dem 23017 basiert seit einigen Monaten ohne Probleme)
Die Konfigurationsregister werden nur bei Attributsänderung oder beim Neustart geschrieben.
mit fallen spontan 2 Möglichkeiten ein:
1. ein weiterer Prozess, sei es etwas in FHEM oder ein anderes script, greift auch auf den MCP zu
2. die Versorgungsspannung ist nicht stabil
Moin Klaus,
danke für deine Unterstützung!
Zitat2. die Versorgungsspannung ist nicht stabil
Ich habe mitlerweile herrausgefunden, dass auch nicht in FHEM definierte MCP´s ihre Register "verlieren"
Mit anderen Worten, die MCP´s haben sich aufgrund von Problemen mit der 3V3-Schiene resetet..... :( ::)
Ich habe das Versorgungsproblem mitlerweile behoben, jetzt laufen die MCP´s (wie nicht anders zu erwarten!) problemlos.
Nochmal vielen Dank für das tolle Modul!
Gruß
Pf@nne
Hallo Pfanne,
ich habe auch das Problem daß meine MCP23017 nach einiger Zeit nicht mehr korrekt reagieren.
Bei mir hab ich folgende Kombination:
- Schalter an einem Input am MCP
- Relais an einem Output am MCP
- Interrupt-Ausgang des MCP an einen Interrupt-GPIO meines Cubieboard gelegt
Wie hast du die Versorgungsspannung des MCP denn verbessert?
Hast du dazu evtl. einen Schaltplan?
Vielen Dank schonmal und
viele Grüße
Michael
Moin Michael,
Zitat von: Punkt am 18 Februar 2016, 12:22:01
- Relais an einem Output am MCP
ein Relais direkt am MCP ist vielleicht nicht so optimal, wie ist das entstört?
Nimm mal eine LED, hast du dann immer noch Resets?
Ich hatte meine Versorgung über einen FET geschaltet, der war nicht optimal angesteuert.
Mit einer "normalen" 3V3 über ein kleines Netzteil lief es dann problemlos.
Hallo Pf@nne,
ich habs in der Zwischenzeit hinbekommen.
Das Problem lag daran daß der Interrupt-GPIO nicht mehr korrekt funktionierte wenn man per shutdown restart FHEM neu gestartet hatte.
Mehr Details sind hier zu finden:
https://forum.fhem.de/index.php/topic,23164.msg426224.html#msg426224
Zitat von: Pf@nne am 18 Februar 2016, 17:04:11
ein Relais direkt am MCP ist vielleicht nicht so optimal, wie ist das entstört?
Nimm mal eine LED, hast du dann immer noch Resets?
...ich hatte mich da evtl. etwas missverständlich ausgedrückt:
Bei den Relais handelt es sich um Relaisboards welche mit 3,3V geschaltet werden können und mittels Optokopplern galvanisch vom Relais getrennt sind...
Viele Grüße
Michael