EvoX Genesis
EvoX Genesis turns a high-level software objective into a persistent recursive software world: finite-lived agents recursively develop software, while only accepted consequences persist across develop
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Python library to create dashboards with the Dash App
翻譯準備中
正在載入完整 README。
檢視完整 README ↗A Python library that connects your project to the Dash IoT app, over your local network (TCP), from anywhere through the Dash server (MQTT), or over Bluetooth LE on Linux. You create controls in Python (dials, knobs, sliders, buttons, text boxes, time graphs, maps, event logs...), give them values, and handle what the app sends back. Lay them out from your code, or design the layout in the app itself. There's no app or web code to write.
It's the Python counterpart of the Arduino DashIO libraries, and speaks the same protocol. It's also the quickest way to prototype a device and design its layout before writing firmware.
TCP and BLE are free. To reach your device from anywhere, create an account on dashio.io. More at dashio.io, and on Discord.
Python 3.11 or later.
pip3 install dashio
pip installs the other dependencies. For Bluetooth LE on Linux, pip3 install dashio[ble]. To work on the library, clone it and pip3 install -e ..
A knob that moves a dial, on your local network. This is Examples/ex03.py:
# Examples/ex03.py
import dashio
import time
device = dashio.Device("aDeviceType", "aDeviceID", "aDeviceName")
tcp_con = dashio.TCPConnection()
tcp_con.add_device(device)
first_dial_control = dashio.Dial("dial1", control_position=dashio.ControlPosition(0.24, 0.36, 0.54, 0.26))
device.add_control(first_dial_control)
dv = dashio.DeviceView("aView", "A Dial")
dv.add_control(first_dial_control)
device.add_control(dv)
def knob_event_handler(msg):
first_dial_control.dial_value = float(msg[3])
aknob = dashio.Knob("aKNB", control_position=dashio.ControlPosition(0.24, 0.14, 0.54, 0.26))
aknob.add_receive_message_callback(knob_event_handler)
dv.add_control(aknob)
device.add_control(aknob)
while True:
time.sleep(1)
Run it, then add the device in the Dash app: it's found on the local network. Turn the knob, and the dial follows. Getting started goes on from here.
generate_cfg64().cfg_dict or add_cfg64(), and handle the app's messages in the controls' callbacks.The same layout works on Arduino firmware with controls of the same types and IDs. docs/layouts.md covers each step.
| Getting started | From a dial on your phone to a device you can reach from anywhere |
| Layouts | Designing, generating and loading layouts; Menus and the provisioning menu |
| Controls | Every control: its settings, its values, and what its callbacks receive |
| The Device | Controls, provisioning from the app, reset, the clock |
| Connections | The Dash server, TCP, Bluetooth LE and ZMQ |
| Storing history | Time graph, event log and map history, on the device and the Dash server |
| Exporting data | dashio_data_exporter: history from the Dash server, as text or CSV |
| Examples | ex01–ex06 from the docs; greenhouse, server_monitor and intermittent_connection.py are complete applications |
The library installs three commands. Run any of them with -h for its options.
| Command | |
|---|---|
c64_decode layout.c64 | Decodes a CFG64 layout, e.g. one exported from the Dash app, to JSON |
c64_encode layout.json | Encodes a JSON layout to CFG64, optionally formatted for C or Python code with -f |
dashio_data_exporter -u USERNAME -p PASSWORD -d DEVICE_ID -c CONTROL_ID | Exports time graph or event log history from the Dash server (docs) |
skills/python-dashio is a Claude Code skill that teaches Claude how to use this library, and how to make layouts for Arduino and zephyr-dashio firmware: copy or link it into your project's .claude/skills/ directory.
CLAUDE.md describes the code, and how to run the tests and lint.
MIT, see LICENSE.