(target-node-environmentstate)= # EnvironmentState The `EnvironmentState (Aeon.Environment)` node is a special case of a labelled button, operating similarly to [`ButtonSource`](target-node-buttonsource), but returning an observable sequence of type `Aeon.Environment.EnvironmentStateMetadata`, which details the name of the experimental environment and the current state of the environment. The visualiser for this node provides a single labelled button that toggles between different "EnvironmentStates". {align=center} In Aeon, this is used to switch between "Maintenance" and "Experiment" states. The generated observable sequence generated by button presses, which reflects changes in the environment state, is broadcast through a shared `Subject`. This `Subject` is then subscribed to at various points in the experimental workflow to log state changes with the data, modify parameters and logic, and alter hardware behaviour accordingly.