NEWS
Tasmota und I2C Expander
-
@mcu bei mir tut es "i2cdriver1 2" auch nicht
Ich habe auch schon probiert, andere Pins zu nehmen, aber es bleibt gleich: i2cscan geht, i2cdriver2 1 schaltet das Menü nicht ein
Zeigt eig Tasmota das Konfigurationsmenü nur an, wenn es wirklich einen PCF8574 gefunden hat?
-
@karl-0 Ja. Hier nochmal die Anschlussbilder:
GRAU->D2 (D1Mini)->SDA
WEISS->D1 (D1Mini)->SDL
ROT 3,3V
SCHWARZ GND -
@mcu So, ich habe jz mal schweres Geschütz aufgefahren und einen Logikanalyser und ein Oszilloskop angeschlossen. Verdrahtung wie bei dir im Bild. Die Signale sehen auf dem Oszi erstmal gut aus. Bei i2cscan wird ja immer ein device bei 0x27 gefunden, was ja auch genau den Erwartungen entspricht.
Bei i2cdriver2 1 und dem anschließenden Reset sucht er nach folgenden Devices, und zwar genau in der Reihenfolge
0x21..0x26, 0x39..0x40, wobei nur 0x40 mehrfach abgefragt wird. Warum nun 0x20 und 0x27 nicht abgefragt werden, ist mir ein Rätsel. Werde jetzt mal das Board so umlöten, dass die Adresse im abgefragten Bereich ist.. -
@mcu Hab A2 von +3.3V auf 0V umgelötet => Konfigurationsmenü ist da!
Läuft jz auch mit dem ESP-01 und der Belegung GPIO0=SCL und GPIO2=SDA.
Hast du einen Tipp, wo im Quellcode ich suchen muss, um den Scanbereich anzupassen? Ist das eig ein Bug oder gibt es einen speziellen Grund, den Bereich so einzuschränken?
-
@karl-0 Falls du meine bin genutzt hast liegt es daran, dass der MCP parallel eingeschaltet werden kann.
Dann hast du nicht die richtige Brücke gesetzt.
i2cdriver2 1 arbeitet nur wie man sieht von 0x20 bis 0x26
i2cdriver2 2 nehme ich an von 0x39 bis 0x3F.UNGETESTET
Es kann sein, dass wenn man den MCP deaktiviert bzw disabled, das man dann auch mit der Adresse 0x20 arbeiten kann:
Also vorher i2cdriver22 0 machen muss.
Und dann erst i2cdriver2 1.
Ich wollte mir aber den Parallelbetrieb offen halten. -
@mcu auch mit dem .bin, das ich nur mit dem PCF8574 compiliert hatte, konnte ich 0x27 nicht ansprechen, nur eben über i2cscan.
Zu Abwechselung mal eine Anfängerfrage: Ich kann ja auf der Webpage von Tasmota die Ausgänge setzen. Kann ich auch irgendwo die Eingänge sehen, wenn ich einen Kanal als Eingang konfiguriert habe?
-
@mcu Ich habe es noch nicht hinbekommen, einen Eingang zu empfangen. Man kann es einstellen, aber es kommt nichts an.
Ausgänge schalten kann man ja mit dem sonoff-Adapter.
Das war der Grund warum ich damals den MCP eingesetzt habe, dort kann man die Eingänge lesen, auch über den Sonoff-Adapter.
Genaue Anleitung hier https://tasmota.github.io/docs/MCP230xx/ -
@mcu
so läuft warum auch immer mit 1 und 2 am PCF, D1 ist SCL, D2 ist SDA,
Tasmota ist die 8.5.0
denke mal das ist ein Adressenkonflickt.
der MCP230 läuft mit welcher Tasmota bei dir.
Teste ich dann mal. -
kurz zur Info,
läuft mit Tasmota 8.5.0, die 9.2.0.7 will noch nicht.MCP und PCF
Doku links:
Devices: https://tasmota.github.io/docs/I2CDevices/
MCP: https://tasmota.github.io/docs/MCP230xx/Pcf 8574
A0 ist 0, A1 ist 1, A2 ist 0
ist Adresse 0x22
Tasmota 8.5.0
D1 ist Scl
D2 ist Sda
an NodeMcu
Tasmota Console prüfen mit i2cscan ob Adresse ist 0x22
Console eingeben i2cdriver2 1
damit wird der PCF eingeschaltet, 2 für den PCF , 1 für ein ( 0 Ist aus )Mcp 23017 am Wemos D1
Adresse ist 0x20
A0 bis A2 gelötet, gebrückt
Tasmota 8.5.0
D1 ist Scl
D2 ist Sda
Console
i2cdriver2 0 ( PCF ausschalten )
Tasmota Console prüfen mit i2cscan ob Adresse ist 0x20
i2cdriver22 1 ( MCP einschalten ).
Dann mit Sensor29 0,5,0 arbeiten.
0 ist MCP PA0, also hier 0 bis 15 für Ausgänge am MCP
5 definiert hier als Ausgang
0 Wert für den PullUpSoweit der Ralla
-
@ralla66 Bei mir läuft die 9.2.0
-
@karl-0
kannst du mal bitte eine 9.2 .bin hochladen.
Da scheint ja bei mir der Fehler zu sein.Danke
-
-
-
@ralla66 ich muss zugeben, ich habe nur 8 Relais an einem PCF8574. Die gehen, leider werden Eingänge aber wohl nicht unterstützt; zu mehr kann ich nichts sagen
-
ob der PCF8574 Eingänge kann da habe ich dazu keine Doku gefunden.
Deine 9.2 .bin läuft mit dem PCF.Fehler war bei mir das Einkommentieren des MCP selbst.
Habe dann in der user_config_override.h dies hinzu gefügt:
#define USE_MCP230xx_ADDR 0x20
#define USE_MCP230xx // Enable INPUT mode (pinmode 1 through 4)
#define USE_MCP230xx_OUTPUT // Enable OUTPUT mode (pinmode 5)
#define USE_MCP230xx_DISPLAYOUTPUT // Display state of OUTPUT pins on main Tasmota web interfaceDann die 9.2.0.7 Compiliert
Dann in der Console:i2cscan war dann Addr 20. ( MCP A0 bis A2 gebrückt )
i2cdevice2 0 // PCF ausgeschaltet
i2cdevice22 1 // MCP eingeschaltet
Sensor29 0,6,0 // Relay 0 , ist 6 Ausgang invertiert , PullupStand MCP Tasmota 9.2.0.7:
tasmota_MCP_230_ADD_20.bin
Stand PCF Tasmota 9.2.0:
1613251343687-tasmota_firmware_9_2_pcf8574.binGedächtnisstütze:
PCF8574 = 0x20 .. 0x27 (0x27 is not supported),
PCF8574A = 0x39 .. 0x3F (0x38 is not supported)
MCP ist Standart 0x20 oder umschreiben in der user_config_override.hDokumentiert:
https://tasmota.github.io/docs/I2CDevices/
https://tasmota.github.io/docs/MCP230xx/
https://tasmota.github.io/docs/Gitpod/Anmerkung:
Sonoff Adapter 2.3.3 zeigt beim MCP 23017 nur 8 Relais als Ausgang an.
PCF 8574, kann bei mir nur Ausgänge schalten / Tasmota 9.2.0Ralla
-
@ralla66 Sonoff-Adapter hat schon die 2.4.0. Ob es damit besser wird?
Hast du die Ausgänge auf der Console (tasmota) schon mal geschaltet. power10 on?
Teilweise ist es so, das man den Ausgang erst schalten muss, damit der sonoff-Adapter das mitbekommt.
Manchmal muss man auch die Instanz neu starten.
Und es gibt Fälle in denen muss man RULE arbeiten, damit man Infos in den Sonoff-Adapter bekommt.
Bzgl. MCP203XX steht dazu unten in der Beschreibung noch einiges zum Thema RULES. -
Sonoff Adapter 2.3.3 neu gestartet, sollte ja stable sein,
MCP 23017 ist Power 1 bis 8 ist da, Power 9 bis 16 fehlt obwohl geschaltet.
Rules ist mir zu komplex, das mache ich lieber über request in Blockly.
In Tasmota 9.2.0.7 habe ich ja alle 16 Relais auch per Mqtt.
Liegt wohl am Sonoff Adapter.Ralla
-
Könnte vielleicht interessant sein:
https://github.com/ioBroker/ioBroker.sonoff/issues/46 -
@ralla66 sagte in Tasmota und I2C Expander:
i2cscan war dann Addr 20. ( MCP A0 bis A2 gebrückt )
i2cdevice2 0 // PCF ausgeschaltet
i2cdevice22 1 // MCP eingeschaltet
Sensor29 0,6,0 // Relay 0 , ist 6 Ausgang invertiert , PullupStand MCP Tasmota 9.2.0.7:
tasmota_MCP_230_ADD_20.binRalla
Hallo @Ralla66
vielen dank für die Beiträge oben, haben mich wirklich weiter gebracht.
Ich habe jetzt nur noch das Problem, das ich nicht die 8 oder 16 Kanäle angezeigt bekomme sondern nur ON oder OFF:
-
@muchul sagte in Tasmota und I2C Expander:
Sensor29 0,6,0
Habs rausbekommen
ich muss Pro Kanal
Sensor29 0,6,0 ->1
Sensor29 1,6,0 ->2
Sensor29 2,6,0 ->3
eingeben, dann erscheinen die Knöpfe auch.
Danke für deine Unterstützung.