F2 Control — Installation

Crop-steering for Home Assistant · click-by-click, zero→100

HACS integrationOne-click add-on by URLKill-switch safe
Two pieces. The integration (entities + setup wizard, via HACS) and the f2-control add-on (the engine that drives hardware, via the Add-on Store). Install the integration first, then the add-on. The add-on installs the easy way — paste one repo URL into the Add-on Store. The numbered red circles in each shot are exactly what to click.
0

Prerequisites

  • Home Assistant 2024.3+, Supervised / HA-OS (you need the Add-on Store).
  • Your hardware already in HA as entities: per zone a valve switch., a VWC sensor., an EC sensor.; shared pump + mainline switch..
  • HACS installed (for the integration), and Samba or SSH if you ever use the local-copy path.
1

Install the integration (HACS)

HACS → Integrations → ⋮ → Custom repositories. (1) paste https://github.com/JakeTheRabbit/HA-Irrigation-Strategy, (2) Type = Integration, (3) Add. Then install “Crop Steering System” and restart HA. This creates the ~100 crop_steering_* entities. It touches no hardware.
Home Assistant · HACS OverviewHistorySettingsDeveloper ToolsHACS · Custom repositoriesRepositoryhttps://github.com/JakeTheRabbit/HA-Irrigation-Strategy1TypeIntegration2ADD3Then: install “Crop Steering System” → Restart HA.
2

Add the engine repository (the easy way)

Settings → Add-ons → Add-on Store. (1) click the (top-right), (2) choose Repositories.
Add-on Store OverviewHistorySettingsDeveloper ToolsSettings › Add-ons › Add-on StoreSearch the store…1Check for updatesRepositoriesReload2
3

Paste the add-on repo URL

(1) paste https://github.com/JakeTheRabbit/f2-control, (2) Add, then close. ⚠ Paste that dedicated add-on-repo URL — NOT this project’s monorepo URL, and NOT a …/addons/f2_control subfolder. Those give remote: Not Found / repository ‘…/addons/f2_control/’ not found. The f2-control repo exists precisely to be the clean one-click URL.
Add-on Store · Repositories Manage add-on repositoriesAdd repositoryhttps://github.com/JakeTheRabbit/f2-control1ADD2✓ close the dialog → F2 Control now appears in the store.
4

Install F2 Control

Open F2 Control in the store → (1) INSTALL. First build takes a minute.
Add-on Store · F2 Control OverviewHistorySettingsDeveloper Tools🌱F2 ControlCrop-steering engine · v0.2.0INSTALL1The autonomous P0→P1→P2→P3 irrigation controller. Readsyour VWC/EC sensors, fires shots, republishes status,pings your phone. Gated by a hard kill switch.
5

Configure it

On the add-on’s Configuration tab: set lights_on_hour/lights_off_hour, your notify_service, and the feed EC/pH sensors only if they differ from defaults → (1) Save. (The HA token is automatic — nothing to paste.)
F2 Control · Configuration OverviewHistorySettingsDeveloper ToolsF2 Control · Configurationlights_on_hour10lights_off_hour22notify_servicenotify/mobile_app_your_phonefeed EC / pH sensors(only if different from defaults)SAVE1
6

Create the kill switch

Settings → Devices & Services → Helpers(1) + Create HelperToggle, name it so the entity is input_boolean.f2_control_enabled. Leave it OFF — OFF = safe (reads/computes, never opens a valve).
Create the kill switch OverviewHistorySettingsDeveloper ToolsSettings › Devices & Services › Helpers+ CREATE HELPER1Type: Toggle (input_boolean)Namef2_control_enabledEntity id becomes input_boolean.f2_control_enabledleave OFF = safe
7

Start + verify

(1) Start the add-on. (2) the log shows starting | kill-switch … | token present: True. (3) in Developer Tools › States, sensor.crop_steering_ai_heartbeat reads healthy with attribute engine: f2-control. Both layers are now talking.
F2 Control · Log OverviewHistorySettingsDeveloper ToolsSTART1starting | kill-switch input_boolean.f2_control_enabledtoken present: TrueZ1 P2 hold · Z2 P2 hold · Z3 P2 hold2Verify in Developer Tools › States:sensor.crop_steering_ai_heartbeat = healthyattributes: engine: f2-control3
8

Point it at your room

Settings → Devices & Services → Add Integration → Crop Steering System. (1) choose Load from crop_steering.env (fill the template in templates/ with your real entity ids + the physical truths: substrate volume, dripper flow, drippers/plant), (2) Submit.
Crop Steering · Setup OverviewHistorySettingsDeveloper ToolsAdd Integration → Crop Steering SystemChoose setup source:◉ Load from crop_steering.env file1◯ Manual (map hardware in the UI)SUBMIT2
9

Arm it safely

Watch a full photoperiod with the kill switch OFF — the add-on logs what it would fire. Sanity-check shot sizing (a 6% shot should be minutes, not seconds; substrate_volume is the per-plant block size). Only then (1) flip input_boolean.f2_control_enabled ON. Watch the first real cycle: VWC rises, the pump→mainline→valve sequence runs clean. One-line rollback: flip it OFF.
Arm it · kill switch OverviewHistorySettingsDeveloper Toolsinput_boolean.f2_control_enabledKill switch · OFF = reads/decides but never opens a valveOFF (safe)ON (armed)1Before you flip it ON:watch a photoperiod OFF first · confirm a 6% shot is MINUTES,not seconds (substrate_volume = per-plant block size).

✅ Done-when checklist

Updating later — Rebuild, not Restart. The add-on bakes its code into the image when it’s built. A new version shows an Update (one click). If you ever change add-on files by hand, use the add-on’s ⋮ → Rebuild — a plain Restart re-runs the old code.