Berry Scripting Language - Eigene Buttons definieren

  • Nachfolgend wird gezeigt, wie man mit Berry Scripting eigene Buttons erzeugen kann.

    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.


Teilen