A React library for consuming real-time telemetry data through WebSocket connections.
- 🔌 WebSocket Integration: Seamless connection to telemetry data streams.
- ⚛️ React Hooks: Simple
useLiveTelemetryhook for real-time data consumption. - 🛡️ TypeScript Support: Full type safety with comprehensive TypeScript definitions.
- 🧪 Comprehensive Tests: Unit and integration tests with WebSocket mocks.
- 🔧 Easy Setup: Simple API with minimal configuration required.
npm install scadableimport React from "react";
import { Facility, Device } from "scadable";
import { useLiveTelemetry } from "scadable/hooks";
import { TelemetryDisplay } from "scadable/components";
// Initialize facility and device
const facility = new Facility("your-api-key");
const device = new Device(facility, "your-device-id");
function App() {
return <TelemetryDisplay device={device} />;
}Manages the API key for WebSocket authentication.
const facility = new Facility("your-api-key");connect(deviceId: string): Creates and returns a WebSocket instance.
Manages the device ID and WebSocket connection.
const device = new Device(facility, "device-id");connect(): Establishes the WebSocket connection.disconnect(): Closes the WebSocket connection.onMessage(handler): Subscribes to telemetry messages.onError(handler): Subscribes to connection errors.onStatusChange(handler): Subscribes to connection status changes.
A React hook for consuming real-time telemetry data.
const { telemetry, isConnected, error } = useLiveTelemetry(device);To see a live example of the library in action, run Storybook:
npm run storybookThis will open a new browser window with the TelemetryDisplay component, showcasing the useLiveTelemetry hook with a mock data stream.
npm run buildnpm run test