1.7 KiB
Tasmota remote pulse timer trigger
Das Programm für einen ESP8266 soll den PulseTimer einer Tasmota Steckdose triggern.
Die Hardware hat einen Rotary Encoder sowie ein OLED Display.
Mit dem Rotary Encoder (RT) stellt man eine Zeit im Bereich von MIN_TIMER_MS bis MAX_TIMER_MS.
Über den RT soll der Wert pro Tick bis 11,1s um 100ms angepasst werden. Ab 11,1s erlaubt Tasmota nur noch Sekundenwerte; der nächste Wert nach 11,1s ist deshalb 12s, danach wird pro Tick um 1s angepasst.
Mit Druck auf den Taster des RT soll zunächst der PulseTimer eingestellt und dann getriggert werden.
Die Einstellungen für die SSID und das Passwort sollen aus einer separaten config.h Datei ausgelesen werden.
Dort soll auch die IP Adresse der Tasmota Steckdose eingestellt werden. Zudem dort noch den Initialwert für den Timer hinterlegen.
Der Project soll mittels PlatformIO und Arduino Framework umgesetzt werden. Das SSD1309 OLED wird mit der Arduino-Library U8g2 angesteuert.
Umsetzung
Die Tasmota Steckdose wird per HTTP angesprochen. Beim Druck auf den Taster sendet das Programm:
PulseTime1 <wert>. Werte1bis111entsprechen 0,1s-Schritten bis 11,1s. Werte ab112entsprechen Sekundenwerten mit Offset 100, also z.B.112fuer 12s und113fuer 13s.Power1 ON, um den zuvor gesetzten PulseTimer auszulösen.
Die Datei include/config.h enthält:
WIFI_SSIDWIFI_PASSWORDTASMOTA_HOSTINITIAL_TIMER_MSMIN_TIMER_MSMAX_TIMER_MS
Als Vorlage liegt include/config.example.h bei.
Hardware
Board D1 Mini mit ESP8266. OLED über I2C an den GPIOs 4 und 5. Rotary Encoder mit A und B an GPIO 14 und 13 und der Taster an 12. OLED hat einen SSD1309 Controller mit 128x64 Pixel.