This is weird. Can you confirm that the following python script works for you (please adjust IP):
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import websocket
import json
url = "ws://192.168.0.105:8080/ws"
ws = websocket.WebSocket()
ws.connect(url)
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "1", "value":1})) #, "timeout":10}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "2", "value":1}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "3", "value":1}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "4", "value":1}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "5", "value":1})) #, "timeout":10}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "6", "value":1}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "7", "value":1}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "8", "value":1}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "1", "value":0})) #, "timeout":10}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "2", "value":0}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "3", "value":0}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "4", "value":0}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "5", "value":0})) #, "timeout":10}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "6", "value":0}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "7", "value":0}))
ws.send(json.dumps({"cmd":"set", "dev":"relay", "circuit": "8", "value":0}))
ws.close()
Because with my device this will not turn off all relays. It is erratic which relays are kept on and which aren't.
If it does work with your UniPi 1.1, then my device is broken and I would like a replacement/fix.