Running scripts from buttons…?

You can use the websocket to react to button presses. Here is a small example in python. Has no error handling etc but works:

import websocket
import _thread
import time
import rel
import json

def on_message(ws, message):
    jmsg = json.loads(message)
    id = jmsg['id']
    buttonevent = jmsg['state']['buttonevent']
    match id:
        case '18':
            print("sensor 18")

            match buttonevent:
                case 1002:
                    print("short press on")
                case 2002:
                    print("short press off")

        case _:
            print("sensor not handled")

def on_error(ws, error):
    print(error)

def on_close(ws, close_status_code, close_msg):
    print("### closed ###")

def on_open(ws):
    print("Opened connection")

if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("ws://192.168.42.22:8088",
                              on_open=on_open,
                              on_message=on_message,
                              on_error=on_error,
                              on_close=on_close)

    ws.run_forever(dispatcher=rel, reconnect=5)
    rel.signal(2, rel.abort)
    rel.dispatch()
1 Like