Skip to content

OpenHAL plant-waterer

unverified library/openhal_firmware/openhal-plant-waterer.hal.yaml

Idopenhal-plant-waterer
ManufacturerOpenHAL
Modelplant-waterer
Driveropenhal-firmware
Hazardlow
Limits unconfirmed The library file holds suggested limits for water (action), stop (action), and no person has confirmed those limits yet. How a person confirms the limits
Actions
ActionArgumentsConfirmLimit
water
  • duration 1 to 30 s, step 1
confirm suggested
stop none none suggested
Read channels
ChannelTypeUnitEvery
soil_moisture number % 1 s
tank enum 1 s
openhal: "0.1"
device: { name: Arduino plant waterer, model: plant-waterer, manufacturer: OpenHAL }
id: openhal-plant-waterer
match:
  firmware: { product: plant-waterer }
connect: { openhal-firmware: auto, boot_s: 2 }
read:
  soil_moisture: { unit: percent, every: 1 s, range: [0, 100] }
  tank: { type: enum, values: [empty, ok], every: 1 s }
actions:
  water:
    description: Run the pump for a number of seconds.
    args:
      duration: { unit: s, min: 1, max: 30, step: 1 }
    require:
      - condition: "tank == ok"
        message: "pump can't run while tank is empty"
    max_runs: { count: 3, per: 1 h }
    confirm: confirm
    suggested: true
  stop:
    description: Turn the pump off now.
    suggested: true
safe_state: { action: stop }
watchdog: { heartbeat: 1 s, on_loss: safe_state }
hazard: low
notes: >-
  Suggested limits. A person must confirm every limit before this device can be written.
  The sketch is examples/plant-waterer/plant-waterer.ino on an Arduino Uno R3 or an ESP32 DevKitC.
  The board stops the pump after 30 s, when the tank runs dry and when heartbeats stop for 3 s.
  This file allows runs of at most 30 s, the sketch's own limit, and three runs an hour.
provenance: { source: library, by: OpenHAL starter library, at: 2026-10-25, verification: { status: unverified } }