Plugin: State

This plugin provides state components. States extends values with debounce mechanism. States are important for several use cases, for example user interfaces and digital twins.

State Management

The state management is an essential part of controlling external things which can change it's state by itself. An example is a user interface checkbox, which can be toggled by the user. The state of the checkbox should be reflected in the state property. On the other hand, the reactive graph flow should be able to change the state which should be reflected by the user interface checkbox. This double-binding requires that the old internal state is stored and the new state is compared with the old state. Debouncing the state is necessary to prevent feedback loops and undefined behaviour.

Use Cases

  • User Interfaces: Checkboxes, Switches, ...
  • States on remote systems (HTTP, GraphQL, MQTT)
  • Digital Twins

Components

ComponentPropertiesData TypeSocket TypeDescription
state_booleanstatebooleannoneA boolean state
set_statebooleaninput
state_numberstatenumbernoneA numeric state
set_statenumberinput
state_stringstatestringnoneA string state
set_statestringinput
state_arraystatearraynoneA array state
set_statearrayinput
state_objectstateobjectnoneA object state
set_stateobjectinput
state_debugger_debugDebugger for states (log level debug)
state_debugger_traceDebugger for states (log level trace)

Entity Types

NameComponentsDescription
state_arrayvalue_arrayA array state
state_array
state_booleanvalue_booleanA boolean state
state_boolean
state_numbervalue_numberA numeric state
state_boolean
state_stringvalue_stringA string state
state_boolean
state_objectvalue_objectA object state
state_boolean

Platform Compatibility

PlatformCompatibility
Linux
MacOS
Windows

Repositories