-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Thing - An abstraction of a physical or a virtual entity whose metadata and interfaces are described by a Thing Description, whereas a virtual entity is the composition of one or more Things.
Component - An abstraction of a physical or a virtual entity used by a Thing's functionality, but not individually described by a Thing Description. For example, a Python picamera
object may be a component of a microscope Thing, and server-side extensions adding functionality to the microscope Thing can access and use the picamera
component's Python functionality.
Gateway - A physical device connected to a network of Things, acting as both a Thing directory, and a user-interface for Thing functionality.
Datastore - A physical device connected to a network of Things, listening to, and storing, a user-defined subset of available Thing events across a user-defined subset of the network. For example, a Datastore can be set up to permanently log all experimental data events, as well as all error and warning events.
Core Web of Things terminology can be found from the Web of Things (WoT) Architecture specification
-
Based on the W3C Web of Things Architecture
-
Specification will describe potentially common network topologies
-
Specification will describe the functionality and relationships between Things, Gateways, and Datastores.
-
Specification will describe options for protocols, including HTTP (REST-like), and WebSockets
-
Implementation of the W3C Thing Description (TD), and extends the Mozilla Web Thing Description
-
Specification will detail which properties, actions, and events should be expected that are specific to LabThings
-
Specification may detail additional TD elements for describing LabThings Components and Extensions
- Specification will include additional schema
@context
specific to LabThings. This will introduce a vocabulary for common laboratory Properties, Actions, and Events.
- Based on standard HTML Components (Custom Elements), it would allow Thing developers to create sets of graphical "widgets" to control the device, which can then be imported into the Gateway interface, and hopefully Jupyter notebooks.
-
Flask-based framework to simplify converting instrument control code into LabThings-compatible connected devices
-
Key focus on automatic documentation, and the Extensions manager
-
Graphical interface for monitoring and simple control of a connected lab
-
Key focus on event-driven information, e.g. from instrument sensors, or data-acquisition events
-
Large-storage fileserver (e.g. R-Pi + large HDD) which discovers and monitors any Things on the local network
-
Set up to automatically store all collected data from connected Things
-
Options to store Events emitted by connected Things
-
Python, Javascript, MatLab (etc.) client libraries for connecting to, and interacting with, Things
- Intended to be the main point-of-entry for lab users scripting experiments
-
Blockly-based graphical scripting application for visually developing automated lab experiments
- Provides a simple subset of the consumer libraries, designed to "scratch the same itch" as environments like LabView
- Generates valid Python code, which can then be used in more complex scripts later, if needed