Tasmota Berry Script interrupts

  • Hallo Leute,


    ich komme gleich zu meiner sehr konkreten Frage: Kann man bei Tasmota mittels Berry Script oder vielleicht mittels Rules Hardware Interrupts verwenden?


    Ich habe eine Xiaomi Bedside Lamp 2. In dieser Lampe ist ein ESP32 S0WD (auch Solo1 genannt), sprich die Single Core Variante des ESP32. Auf diesen habe vor einiger Zeit ohne Probleme eine selbst kompilierte Tasmota Version geflashed, bzw. nun den Offiziellen 10.1.0 Release für den Single Core ESP32 drauf.


    Der Github User mmakaay hat hier die technischen Details der Lampe bestens zusammengefasst. Auf der Vorderseite der Lampe befindet sich ein Touchfeld mit welchem sich die Lampe einschalten und die Helligkeit regeln lässt. Dieses Touchfeld hat einen eigenen MC und ist über I2C an den ESP angebunden.

    Mittels Berry Script kann ich problemlos über I2C die LEDs des Touchfelds ansteuern, jedoch weiß ich nicht wie ich die erfolgten Berührungen auslesen soll.
    Sobald dieses Touchfeld berührt wird, wird GPIO16 für rund 6ms auf LOW gezogen. Hiermit sollte dem ESP signalisiert werden, dass nun über I2C ausgelesen werden kann, welche Schaltfläche Berührt worden ist.

    Da dieses Signal so unglaublich kurz ist, wäre natürlich ein Interrupt von Vorteil. Weiß jemand von euch, ob man mit Tasmota überhaupt die Möglichkeit hat, Interrupts zu verwenden? Ansonsten muss ich wohl einfach dieses Signal auf GPIO16 ignorieren und zyklisch über I2C auslesen, was denn nun gedrückt wurde.

    Hoffentlich, weiß von euch jemand ob man Interrupts verwenden kann, oder hat einen ganz anderen Ansatz den ich versuchen könnte.
    Vielen Dank!

  • Das Ende vom Anfang mit Tasmota auf ESP32 ? ist noch nicht gekommen

    Das letzte stabile Release mit Cam und Skript! war für mich das 9.5.0.3.bin. Da ich Sorgen mit dem DeepSleepTimer hatte, habe ich heute ein Update gewagt - auf 20220102 (so heißen die 32bit jetzt) und damit wird auch alles anders.

    Aus Skript wird Berry-Skript, welcher dir evtl. jetzt bei deinen Sorgen mit den I2C-Anschluss helfen kann, aber ich habe keinen Weg gefunden die alten Skripte noch weiter laufen zu lassen.

    Damit geht die Tasmota 32-Entwicklung in die Profi-Richtung und muss sich damit mit der gesamten weiteren Konkurrenz messen.

    Die Quasiparallelität von ESP3266 und 32 geht aus meiner Sicht verloren und somit werden für die 32-bit Ebene auch andere Umgebungen interessanter.

  • auf 20220102 (so heißen die 32bit jetzt) und damit wird auch alles anders.

    Aus Skript wird Berry-Skript,

    Hallo, alle Tasmota Versionen (ESP8266 und ESP32) folgen jetzt dem neuen Namensschema (Calendar Versioning),

    neue Namen mehr nicht, aus 10.1.0.3 wurde 2022.01.1 und aktuell 2022.01.2


    und denke da liegt ein Missverständnis vor, aus Skript wird nicht Berry-Skript,

    Scripting von gemu2015 existiert und funktioniert weiterhin wie gewohnt neben Berry Scripting,

    sind zwei verschiedene Paar Schuhe. Stabilität ist aber ein anderes Thema.



    zur Frage von kokoflip: bei Scripting liegt das kürzest abrufbare Intervall bei 100 ms (>F)

    direkte Verwendung von interrupts sehe ich da nicht, nur mit tiefen Eingriffen im quellcode.

  • Danke für den Status zur alten Skriptauswahl.

    Damit war meine Schlussfolgerung aus der Nutzung der fertigen neuen Webcam.bin und dem Intro zum Berry-Skript falsch.

    Introduction to Berry Berry is the next generation scripting for Tasmota.

  • es gibt eine Lösung um so kurze Impulse abzufragen.

    du definierst einen Counter auf GPIO16. der wird immer per interrupt abgefragt und wird um eins hochgezählt wenn ein Impuls ankommt.

    du musst dann nur periodisch prüfen ob sich der counter verändert hat und dann fragst du die i2c Schnittstelle ab.

    Das geht ganz einfach im script und sicher auch in Berry.