1. Dashboard
  2. Startseite
  3. Aktivität
    1. Unerledigte Themen
  4. Wiki
  • Anmelden
  • Registrieren
  • Suche
Lexikon
  • Alles
  • Forum
  • Seiten
  • Lexikon
  • Erweiterte Suche
  1. CREATIONX - Smart Home Forum
  2. Lexikon

Berry Scripting Language - Eigene Buttons definieren

  • John66
  • 23. Juni 2023 um 11:44
  • 23. Juni 2023 um 17:10
  • 2.105 mal gelesen
  • 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.

    • button
    • berry

Teilen

  • Vorheriger Eintrag Bei Problemen - ESP8266/ESP8285 Flash-Speicher Löschen
  • Nächster Eintrag BootCount lesen mit Script
  • Änderungsprotokoll
  • PDF

Inhaltsverzeichnis

  • I - Ziel
    • I.I - 1. Step: Buttons definieren
    • I.II - 2. Step: Buttons mit Script verknüpfen
    • I.III - 3. Step: Buttons mit Tasmota-Command verknüpfen
    • I.IV - 4. Step: Script in autoexec.be sichern
  1. Datenschutzerklärung
  2. Impressum
Lexikon, entwickelt von www.viecode.com
Community-Software: WoltLab Suite™