The System driver provides real-time monitoring and control of the Weble gateway hardware and software. It automatically exposes system metrics (CPU, memory, disk, temperature, network), running processes (gateways and logic modules), and gateway configuration parameters as routable addresses.
The System driver is useful for:
All System addresses are auto-generated — no manual address creation is needed.
Create a new gateway and select the System driver. The configuration is minimal — only a Name and optional Description.
Once started, the driver automatically creates all system addresses and begins refreshing them every 5 seconds.
Note: The System driver is not available on Windows.
After startup, the following address categories are automatically created:
| Address | Description |
|---|---|
#cpu |
CPU usage in percent (average across all cores). |
#mem |
Memory usage information. |
#disk |
Disk usage information. |
#temp |
CPU temperature in °C. |
#uptime |
System uptime in seconds. |
#date |
Current system date and time. |
#open_files |
Number of currently open files (lsof count). |
#open_files_max |
Maximum allowed open files (system limit). |
#processes |
Total number of running processes. |
#reboot |
Write 1 to this address to reboot the gateway. |
#network |
List of network interface names. |
#network/<iface> |
Detailed network information per interface (IP, MAC, RX/TX bytes, errors). |
#config |
All gateway configuration parameters as a JSON object. |
#config/<key> |
Individual configuration parameters (see section 3). |
#process/... |
Running gateways and logic modules with CPU/memory usage (see section 4). |
| Label | JSON Key | Description |
|---|---|---|
| Name | name | A descriptive name for this System gateway instance. |
| Description | description | Optional description. |
No additional configuration is needed. The driver runs in-process (no separate process) to save memory.
The #config address exposes the gateway's system configuration. Individual parameters are available as sub-addresses:
| Address | Description | Writable |
|---|---|---|
#config/SUPERVISION_ID |
Unique gateway identifier. | No |
#config/SUPERVISION_NAME |
Gateway display name. | Yes |
#config/MODEM_ENABLE |
Enable/disable the cellular modem (0 or 1). |
Yes |
#config/TINC_ENABLE |
Enable/disable the VPN (Tinc) connection (0 or 1). |
Yes |
#config/HTTPS_ENABLE |
Enable/disable the HTTPS web server (0 or 1). |
Yes |
#config/HTTP_ENABLE |
Enable/disable the HTTP web server (0 or 1). |
Yes |
#config/... |
Other configuration keys (read-only). | No |
Writing to a writable config address immediately applies the change to the system.
The System driver monitors all running gateways and logic modules and creates addresses for each:
| Address | Description |
|---|---|
#process/gateway/<name> |
Gateway process information (CPU, memory, status). |
#process/gateway/<name>/#active |
Gateway active state. Write 1 to activate or 0 to deactivate the gateway. |
#process/logic/<name> |
Logic module process information. |
#process/logic/<name>/#active |
Logic module active state. Write 1/0 to activate/deactivate. |
The /#active addresses are writable — this allows routes or the API to start and stop gateways and logic modules programmatically. For example, a Cron schedule could deactivate a gateway at night and reactivate it in the morning.
Process addresses are refreshed every ~60 seconds (every 12th refresh cycle). Processes that disappear are automatically cleaned up after a short delay.
The #network/<interface> addresses provide detailed information for each network interface:
These values can be routed and logged to monitor network health over time.
Route #temp to an SMTP or SMS address with a routing function that only forwards values above a threshold:
function(value) {
if (value > 70) return "Gateway temperature alert: " + value + "°C";
}
Create a Cron address 0 3 * * 0 (every Sunday at 3 AM) and route it to #reboot to perform a weekly maintenance reboot.
Use the Cron driver to write 1 or 0 to a #process/gateway/<name>/#active address at specific times:
0 7 * * 1-5 with value 1 → route to #process/gateway/ModbusMaster/#active (activate on weekday mornings)0 22 * * * with value 0 → route to #process/gateway/ModbusMaster/#active (deactivate every night)
| Property | Value |
|---|---|
| Readable | Yes (for most addresses) |
| Writable | Only #reboot, /#active, and some #config/ addresses |
| Routable | Yes |
| Loggable | Yes |
| Auto-creation | Yes — all addresses are automatically created and managed |
| Refresh rate | ~5 seconds (CPU, date, uptime), ~60 seconds (processes, temp, network) |
| Property | Value |
|---|---|
| Address regex | #cpu, #date, #disk, #mem, #open_files, #open_files_max, #process/*, #network/*, #config/*, #processes, #reboot, #temp, #uptime |
| Internal | Yes (runs in-process) |
// Reboot the gateway (any truthy value triggers reboot)
writeValue('#reboot', 1)
// Activate/deactivate a gateway
writeValue('#process/gateway/ModbusMaster/#active', 1) // activate
writeValue('#process/gateway/ModbusMaster/#active', 0) // deactivate
// Activate/deactivate a logic module
writeValue('#process/logic/Alerts/#active', 0)
// Toggle system config
writeValue('#config/MODEM_ENABLE', 1) // 1 or 0
writeValue('#config/TINC_ENABLE', 1) // 1 or 0
writeValue('#config/HTTPS_ENABLE', 1) // 1 or 0
writeValue('#config/HTTP_ENABLE', 0) // 1 or 0
All other addresses return 'read only' on write attempts.
The following config keys are not exposed: OEM, REDUNDANCY*, DATE*, TOKEN*, HTTPS_CUSTOM_CERTIFICATES, TINC_SERVER.