基于Dark Sky预测今日降雨并实现智能灌溉

了解今天是否会下雨对许多人来说至关重要,因为它会影响日常计划和活动。本文概述了一种在Home Assistant中使用Dark Sky天气数据来确定是否预期降雨并根据预测自动执行操作的方法。

Dark Sky的API允许检索当前和未来的天气状况。您可以指定要包含在预测中的天数和小时数,以及要跟踪的特定天气参数,例如降水概率和强度。这允许对接收到的数据进行精细控制。

sensor:
  - platform: darksky
    api_key: YOUR_API_KEY
    forecast:
      - 0
      - 1
    hourly_forecast:
      - 0 
      - 1
    monitored_conditions:
      - precip_intensity
      - precip_type
      - precip_probability

由于Dark Sky不提供历史数据,因此使用输入布尔值来跟踪前一天是否下雨。此布尔值将由自动化设置,并在每天早晨重置。

input_boolean:
  rained_yesterday:
    name: 昨日降雨
    icon: mdi:weather-pouring

自动化每小时15分钟触发一次,以检查当前的降水强度。如果强度超过预定义的阈值(例如,0.5毫米/小时,表示中雨),则“rained_yesterday”布尔值设置为true。

- alias: rain_meter
  trigger:

    # 每1小时15分钟运行一次。
    platform: time_pattern
    hours: "/1"
    minutes: "15"
  conditions:

    # 如果已开启,则无需执行任何操作
    - condition: state
      entity_id: input_boolean.rain_meter
      state: 'off'

    # ... 其他验证降雨的条件 ...
  action:

    # 今天下雨了。 打开它。
    service: input_boolean.turn_on
    entity_id: input_boolean.rain_meter

另一个预定在上午5:30运行的自动化程序会检查当天的预测。如果预测的降水强度高于阈值,表明可能会下雨,则不采取任何措施。这是假设如果今天预测会下雨,“rained_yesterday”布尔值仍然有效。

- alias: Sprinkler Time
  name: 如果不下雨则打开洒水器
  trigger:
    platform: time
    at: "05:30:00"
  condition:
    platform: template
    value_template: "{{ states('sensor.dark_sky_precip_intensity_1d') | float > 0.5 }}"
  action:
    service: script.turn_on_sprinklers_if_no_rain
    data_template:
     rain_yesterday: "{{ is_state('input_boolean.rain_meter', 'on') }}"

最后,一个脚本管理洒水器逻辑。它首先重置“rained_yesterday”布尔值。如果此布尔值为false(表示昨天没有下雨),并且今天的预测没有预测下雨,则脚本将激活洒水器。

script:
  turn_on_sprinklers_if_no_rain:
    sequence:
      - service: input_boolean.turn_off
        entity_id: input_boolean.rain_meter
      - condition: template
        value_template: "{{ not rain_yesterday}}"
      - service: sprinkler.turn_on
        entity_id: sprinklers.money_maker 

该系统提供了一个强大的解决方案,可以回答“今天会下雨吗?”这个问题,并根据答案自动执行洒水器控制等任务。使用预测的降水强度有助于预测降雨并避免不必要的浇水。

Leave A Comment

Name*
Message*