I - Ziel
Es sollen 2 neue Buttons an der WEB-Oberfläche von Tasmota erscheinen.
Wenn "My first cool button" gedrückt wird soll das Tasmota-Command 'var1 1' ausgeführt werden.
Wenn "My second cool button" gedrückt wird soll das Tasmota-Command 'var1 2' ausgeführt werden.
I.I - 1. Step: Buttons definieren
Folgendes in 'Berry Scripting Console' eingeben
import webserver
import string
class MyOwnButtons : Driver
def web_add_main_button()
webserver.content_send("<p><button>My first cool button</button></p>"
+ "<p><button>My second cool button</button></p>")
end
end
myDriver = MyOwnButtons()
tasmota.add_driver(myDriver)
Nach einem Refresh der Browser-Seite erscheinen auch schon die Buttons.
Allerdings sind dies ohne jede Funktion.
Wenn wir die Buttons wieder löschen wollen, gelingt dies mit folgender Anweisung
tasmota.remove_driver(myDriver)
I.II - 2. Step: Buttons mit Script verknüpfen
Wir ändern die Anweisung 'webserver.content_send'
- das Click-Ereignis wird abgefangen und and die Funktion 'la' weitergereicht (bereits von Tasmota definiert)
- in der neuen Methode 'web_sensor' kann nun das 'onclick'-Ereignis der Buttons verarbeitet werden
- dies wird über ein einfache 'print' Anweisung über die normale Console und auch die 'Berry Scripting Console' ausgegeben
import webserver
import string
class MyOwnButtons : Driver
def web_add_main_button()
webserver.content_send("<p><button onclick='la(\"&m_first=1\");'>My first cool button</button></p>"
+ "<p><button onclick='la(\"&m_second=1\");'>My second cool button</button></p>")
end
def web_sensor()
var cmd = nil
if webserver.has_arg("m_first")
print("got first button")
elif webserver.has_arg("m_second")
print("got second button")
end
end
end
myDriver = MyOwnButtons()
tasmota.add_driver(myDriver)
I.III - 3. Step: Buttons mit Tasmota-Command verknüpfen
Nun fügen wir zu den Print-Anweisungen noch die Tasmota-Commands hinzu.
import webserver
import string
class MyOwnButtons : Driver
def web_add_main_button()
webserver.content_send("<p><button onclick='la(\"&m_first=1\");'>My first cool button</button></p>"
+ "<p><button onclick='la(\"&m_second=1\");'>My second cool button</button></p>")
end
def web_sensor()
var cmd = nil
if webserver.has_arg("m_first")
print("got first button")
tasmota.cmd("var1 1")
elif webserver.has_arg("m_second")
print("got second button")
tasmota.cmd("var1 2")
end
end
end
myDriver = MyOwnButtons()
tasmota.add_driver(myDriver)
Wenn nun die Buttons betätigt werden, passiert genau das, was beabsichtigt war.
'var1' wird entsprechend gesetzt, nachzuprüfen in der Console.
I.IV - 4. Step: Script in autoexec.be sichern
Damit das neu erstellte Script auch einen Neustart übersteht, kopieren wir dieses in die Datei autoexec.be. (Manage File Systems)
Diese wird beim Start automatisch geladen und ausgeführt.