
Unit Watering は土壌湿度を容量式で検知し、ポンプ制御も行う Unit です。水ポンプと測定電極を一体化し、土壤湿度の検知と給水制御を簡単に実現できます。電極は容量式設計で、抵抗式に比べて腐食を抑えられます。
容量式土壤湿度センサーは電圧/ADC 値を報告するため、使用するコントローラに合わせて ADC コンポーネントを有効化・設定してください。
# Example configuration entry
sensor:
- platform: adc
pin: GPIOXX
name: "xxxx"
update_interval: 60s 例:Atom Lite を使用する場合
# Example configuration entry
sensor:
- platform: adc
pin: GPIO32
name: "xxxx"
update_interval: 60s 水ポンプのスイッチ設定:
switch:
- platform: gpio
pin: GPIO26
name: "Water pump" これで Home Assistant フロントエンドからポンプのオン/オフを操作できます。
完全な設定例:
sensor:
- platform: adc
pin: GPIO32
id: voltage
name: "Voltage"
attenuation: auto
update_interval: 10s
- platform: template
id: adc_reading
name: "ADC Reading"
lambda: |-
return roundf( id(voltage).state * 1000.0f );
update_interval: 10s
text_sensor:
- platform: template
name: "Soil Moisture"
icon: "mdi:water-percent"
lambda: |-
const int ADC_DRY = 1550; // Dry threshold
const int ADC_WET = 1450; // Wet threshold
if ( id(adc_reading).state >= ADC_DRY) {
return {"Dry"};
} else if ( id(adc_reading).state >= ADC_WET) {
return {"Wet"};
} else {
return {"Saturated"};
}
update_interval: 10s
switch:
- platform: gpio
pin: GPIO26
id: water_pump
name: "Water pump"
icon: "mdi:water-pump"
restore_mode: RESTORE_DEFAULT_OFF ここでは template センサーを実測値に合わせて調整し、閾値で土壤湿度を報告できます:
const int ADC_DRY = 1550; // Dry threshold
const int ADC_WET = 1450; // Wet threshold 一般に土壌が乾燥するほど値は大きく、湿っているほど小さくなります。センサー値に基づく自動化を作成してポンプを制御すれば、スケジュール給水や湿度連動の給水が可能です。
ESPHome でスケジュール制御する場合は time コンポーネントを参照してください。
例:平日の毎朝 7:30 にポンプを 1 分間動作させ、その後オフにする:
# Example configuration entry
time:
- platform: homeassistant
id: homeassistant_time
on_time:
# Every morning on weekdays
- seconds: 0
minutes: 30
hours: 7
days_of_week: MON-FRI
then:
- switch.turn_on: water_pump
- delay: 60s
- switch.turn_off: water_pump 設定後、Home Assistant でセンサー値を確認できます。
