mirror of
https://github.com/UNITRONIX/BetterDesk.git
synced 2026-09-11 01:55:43 +00:00
abe0d52fe4
Move Docker/CI/installers to Node 24 and Go 1.26 images, bump Alpine server runtime, apply safe npm/Go patch updates, migrate SNMP to pysnmp, and document deferred majors.
2.6 KiB
2.6 KiB
SDK
BetterDesk provides Python and Node.js SDKs for building CDAP agents and bridges that connect to the Go server CDAP gateway (port 21122).
Architecture
Your application
│
▼
CDAPBridge (SDK) ── WebSocket ──► Go server :21122/cdap
│ │
Widgets / metrics / commands ▼
Web Console (CDAP pages)
Python SDK
Package: betterdesk-cdap · Requires: Python 3.8+
pip install betterdesk-cdap
from betterdesk_cdap import CDAPBridge, Widget
bridge = CDAPBridge(
server="ws://your-server:21122/cdap",
api_key="your-api-key",
device_id="SENSOR-001",
device_name="Temperature Sensor",
device_type="sensor",
)
bridge.add_widget(Widget.gauge("temperature", "Temperature", unit="°C", min=-20, max=50))
bridge.add_widget(Widget.toggle("heater", "Heater"))
@bridge.on_command("heater")
async def on_heater(action, params):
return {"success": True}
bridge.set_value("temperature", 22.5)
await bridge.connect()
Source: sdks/python/
Node.js SDK
Package: betterdesk-cdap · Requires: Node.js 22+
npm install betterdesk-cdap
const { CDAPBridge, Widget } = require('betterdesk-cdap');
const bridge = new CDAPBridge({
server: 'ws://your-server:21122/cdap',
apiKey: 'your-api-key',
deviceId: 'SENSOR-001',
deviceName: 'Temperature Sensor',
deviceType: 'sensor',
});
bridge.addWidget(Widget.gauge('temperature', 'Temperature', { unit: '°C' }));
bridge.setValue('temperature', 22.5);
bridge.connect();
Source: sdks/nodejs/
Key concepts
| Concept | Description |
|---|---|
| CDAPBridge | WebSocket client — auth, heartbeat, reconnect |
| Widget | UI element rendered in panel (gauge, toggle, button, …) |
| Manifest | Device capabilities sent on connect |
| Command | Panel → device action with response |
Enable CDAP on the server: -cdap flag or CDAP_ENABLED=Y.
Reference bridges
Pre-built protocol bridges in the repo:
| Bridge | Protocol |
|---|---|
bridges/modbus/ |
Modbus TCP/RTU |
bridges/snmp/ |
SNMP v2c/v3 |
bridges/rest-webhook/ |
REST polling + webhooks |
See also
- CDAP — wire protocol and gateway
- Web Console — CDAP Studio and device pages
- SDK overview