Sensor Read Block
The Sensor Read block reads a value from a sensor and stores it in a flow variable. This is how your flow gets data from the physical world.
Configuration
1. Select Sensor
Choose which sensor to read from. The dropdown shows all sensors registered in the system, grouped by type. Only devices with type SENSOR appear here.
Each sensor shows its name and analytics label for easy identification.
2. Reading Mode (Strategy)
After selecting a sensor, a status card appears showing the active reading mode:
| Element | Description |
|---|---|
| Active Role | What the sensor measures (e.g., ph, ec, temperature). This comes from the device configuration. |
| Strategy | How the raw sensor value is converted to a meaningful reading (e.g., linear, polynomial, atlas_ph). |
The reading mode is determined by the sensor’s calibration settings — you configure this in the Hardware section when setting up the device, not here in the flow editor.
Calibration Status:
- ✅ Calibrated (gray card) — the sensor has calibration data for its active role+strategy. Readings will be accurate.
- ⚠️ Not Calibrated (yellow card) — the sensor needs calibration. Go to Hardware → Devices and calibrate the sensor.
3. Target Variable
Select which flow variable will receive the sensor reading. The variable must exist before you can select it — create one using the Variable Manager in the toolbar.
Tip: Name your variables descriptively (e.g.,
current_ph,water_temp) so the flow is easy to understand.
Unit Validation: The system automatically checks if the variable’s unit is compatible with the sensor’s output. If there’s a mismatch, a red error badge appears — this is a validation error that will save the flow as a draft until fixed.
Shared Settings
These sections appear for every block type.
Error Handling
Controls what happens if the sensor reading fails (device offline, communication error, timeout).
| Field | Default | Description |
|---|---|---|
| Retry Count | 3 | How many times to retry the operation before giving up |
| Retry Delay (ms) | 1000 | Milliseconds to wait between retries |
| On Failure | STOP | What to do after all retries are exhausted |
On Failure options:
| Option | Effect |
|---|---|
| Stop | Immediately stops the entire flow. All actuators revert to safe state. |
| Pause | Pauses the flow — it can be resumed manually or by the scheduler. |
| Continue | Ignores the error and moves to the next block. The variable keeps its previous value. |
| Jump to Label | Jumps to a specific Flow Control label block. Useful for error recovery routines. |
Notifications
Controls whether this block sends alerts through notification channels (Telegram, Email, etc.).
| Field | Options | Description |
|---|---|---|
| Channel | Inherit Global / [specific channels] | Which notification channel to use. |
| Behavior | AUTO / ALWAYS / MUTE | When to actually send notifications. |
| Mode | When Notifications Are Sent |
|---|---|
| AUTO | Only on errors or important events (default) |
| ALWAYS | Every time this block executes (success or failure) |
| MUTE | Never — suppresses all notifications from this block |
Documentation
A free-text comment field for your own notes. Doesn’t affect execution — purely for documentation.
Troubleshooting
“No sensors available”
- Make sure you have sensors registered in Hardware → Devices
Yellow “Calibration Required” warning
- The sensor needs calibration for its active role. Go to Hardware → Devices → select the sensor → Calibrate.
Red unit mismatch error
- The target variable’s unit doesn’t match the sensor’s output unit. Change the variable unit in the Variable Manager.
Sensor reads but value doesn’t change
- Check if the flow is actually running (not paused)
- Verify the sensor is online in Hardware → Devices