# Basic usage OpenHydroponics is designed to be modular and flexible, allowing you to extend its functionality as needed. All OpenHydroponics setups creates a network with one or several nodes. Normally a node is a device connected to each other with a cable. The nodes may have one or several endpoints extending the functionality of the node. The endpoints may be sensors, actuators or other devices. ```{graphviz} digraph OverviewDiagram { rankdir=LR; RootMaster [ shape=record, label="{ { RootMaster } | { endpoint 1 | endpoint 2 | endpoint 3 | endpoint 4 } }" ]; RootSense [ shape=record, label="{ { RootSense } | { endpoint 1 | endpoint 2 | endpoint 3 } }" ]; node [shape=ellipse]; RootSense:e1 -> pH; RootSense:e2 -> "Dissolved Oxygen"; RootSense:e3 -> ORP; RootMaster:e1 -> Temperature; RootMaster:e2 -> Humidity; RootMaster:e3 -> Pump; RootMaster:e4 -> EC; RootMaster -> RootSense:root [ label="Network"; minlen=2; ]; } ```