Hallo, ich habe mich gerade etwas durch dieses nette Forum gelesen und konnte schon ein paar interessante Ideen mitnehmen
Meine Frage bezieht sich auf mein aktuelles Bastelprojekt mit einem NodeMCU (ESP8266), welcher mit Tasmota geflasht ist und einer externen Dimmerschaltung. Ich bin mir nicht sicher, ob ich hier 100% richtig bin.
Die Dimmerschaltung lässt sich per I2C ansteuern. Genauer gesagt werden einfach Zahlen zwischen 0 und 255 per I2C empfangen und der Ausgang entsprechend geregelt. Den Code zum Empfang habe ich unten eingefügt. Das funktioniert auch so wie es soll.
Das Problem ist, dass ich mit der Tasmota Firmware zwar Sensoren usw. per I2C anbinden kann, aber nicht einfach Werte senden kann. Die Tasmota Firmware habe ich mit allen möglichen I2C Modulen selber kompilliert. Der Befehl I2Cscan liefert auch die Adresse meines Dimmers.
Seht ihr eine Möglichkeit einfache Werte an diese I2C Adresse zu senden? Gesucht ist praktisch eine I2C Bridge. Gibt es solch eine Funktion in Tasmota oder muss ich dafür ein eigenes Modul schreiben? Die Module von Portexpandern wie PCF8574, PCA9685 oder MCP23017 zu nutzen scheint mir wenig sinnvoll.
Versuchsweise hatte ich das mal über die Serielle Verbindung probiert, was auch funktioniert hat. Das Ziel ist allerdings I2C.
Hier noch mein Empfängercode:
#include <Wire.h>
#define ADDRESS 0x40
unsigned char NewEvent;
unsigned long int inByte;
void setup() {
Wire.begin(ADDRESS);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
}
void receiveEvent(int bytes) {
inByte = Wire.read();
NewEvent=1;
}
void loop() {
if (NewEvent){
Serial.print("Received - ");
Serial.println(inByte);
NewEvent=0;
}
}
Alles anzeigen
Vielen Dank!
Guß Daniel