pub enum UiFrame {
Snapshot {
snapshot: UiSnapshot,
},
EdgeOnline {
edge: EdgeInfo,
},
EdgeOffline {
edge_id: String,
},
ServiceState {
edge_id: String,
service_type: String,
target: String,
property: String,
output_id: Option<String>,
value: Value,
},
DeviceState {
edge_id: String,
device_type: String,
device_id: String,
property: String,
value: Value,
},
MappingChanged {
mapping_id: Uuid,
op: PatchOp,
mapping: Option<Mapping>,
},
GlyphsChanged {
glyphs: Vec<Glyph>,
},
Command {
edge_id: String,
service_type: String,
target: String,
intent: String,
params: Value,
result: CommandResult,
latency_ms: Option<u32>,
output_id: Option<String>,
at: String,
},
Error {
edge_id: String,
context: String,
message: String,
severity: ErrorSeverity,
at: String,
},
EdgeStatus {
edge_id: String,
wifi: Option<u8>,
latency_ms: Option<u32>,
},
DeviceCycleChanged {
device_type: String,
device_id: String,
op: PatchOp,
cycle: Option<DeviceCycle>,
},
}Expand description
Frames sent from weave-server to a Web UI client on /ws/ui.
Variants§
Snapshot
Initial full snapshot, pushed once on connect.
Fields
snapshot: UiSnapshotEdgeOnline
An edge completed its Hello handshake or has otherwise come online.
EdgeOffline
An edge has disconnected (ws closed).
ServiceState
One service-state update from a connected edge.
Fields
DeviceState
One device-state update from a connected edge (battery, RSSI, etc.).
MappingChanged
Mapping CRUD happened on the server. UIs replace their copy.
GlyphsChanged
The glyph set changed. UIs refresh their registry.
Command
Fan-out of an edge-emitted Command. Transient — never stored in
UiSnapshot; dashboards that open after the fact will not see it.
Fields
result: CommandResultError
Fan-out of an edge-emitted Error. Transient.
Fields
severity: ErrorSeverityEdgeStatus
Periodic edge metrics. Carries the latest known wifi signal
strength (edge-reported) and round-trip latency (server-measured
from Ping/Pong). Each field is None when unknown:
either because no measurement has arrived yet, or because the
edge cannot read the value on its platform. Emitted whenever
either field changes; UIs apply it as a partial update on the
matching edge_id row.
DeviceCycleChanged
Device-cycle CRUD broadcast. UIs replace their copy. cycle is
None when op == Delete (the cycle row was removed and the
device’s mappings revert to the all-fire default).