コンテンツにスキップ

Alerts

アラート(Alerts)は、システムの状態を人に知らせる機能です。たとえばセンサー監視では、測定値が基準を超えると、ユーザーの注意が必要な状況かもしれません。

入力と出力は、単独ではメールを送信しません。入力や出力にメールのオプションはありません。通知は次のいずれかの経路で送られます。

  • Conditional関数のメール送信アクション。 もっとも汎用的な経路です。ConditionalのPythonコードが条件(例:測定値がない、限界を超えた)を確認し、メール送信アクション(または写真付きメール送信)を呼び出します。条件付き機能(Conditional)を参照してください。
  • pH/EC調整機能自身のメール欄。 pH/EC調整機能は、pHが危険範囲を外れたとき、ECが高すぎるとき、最近の測定値が見つからないときに、自身の欄に入力したアドレスへメールを送ります。繰り返し送信を防ぐタイマーも独自に持っています。
  • AI異常アラート。 AIの自律機能が有効な場合、警告レベル以上の異常が管理者へメールで通知されます。
  • カスタムPythonコード。 利用できる場所では、ほかの方法で通知を送ることもできます。

これらはすべてアラート設定に入力したSMTPアカウントを使うため、まずその画面で設定し、テストメールで確認してください。

1時間あたりのメール上限~

メール送信と写真付きメール送信のアクションは、アラート設定の 1時間あたりの最大メール送信数 で決めた上限を共有します。上限を超えたメールはキューに溜まらず破棄され、1時間が過ぎても後から送られることはありません。破棄されたメールごとに、デーモンログ(ログビューア)にエラー行が残ります。上限のためにメールが届かなくなったら、診断設定の メールカウンターをリセット でカウンターを空にしてください。SMTP接続やログインの失敗も、ログビューアの デーモン ソースに記録されます。

条件が解消するまで1回だけ送る~

Conditionalは確認のたびに実行されるため、条件が真のままだと確認のたびにメールが送られ、1時間あたりの上限をすぐ使い切ります。組み込みのオプションができるまでは、実行と実行のあいだ保持される self にフラグを持たせ、メールを1回だけ送り、条件が終わってからフラグを下ろしてください。

measurement = self.condition("asdf1234")

if not hasattr(self, "alert_sent"):  # 最初の実行時のみ
    self.alert_sent = False

if measurement is not None and measurement > 30:  # アラート条件
    if not self.alert_sent:
        self.run_all_actions()  # メールを1回送信
        self.alert_sent = True
elif measurement is not None:  # 正常範囲に戻った有効な測定値
    self.alert_sent = False  # 次の発生に備えて再度有効化

補足:

  • フラグを下ろすのは有効な測定値が来たときだけです。入力が値を報告しない間(None)はフラグをそのままにするため、センサーが一時的に途切れてもメールは再送されません。
  • フラグはメモリ上にだけあります。関数を無効化して再度有効にした場合やデーモンを再起動した場合は消え、次の確認で条件が真ならメールが1回送られます。
  • 逆に測定値がない状況を知らせたい場合は、条件を if measurement is None: にし、値が戻ったときにフラグを下ろします。

根本の条件が真であり続ける間アラートが確認のたびに繰り返し送られないようにするには、そのアラートを送るConditional機能に不応期(Refractory Period)を設定してください。

メール設定の詳細はアラート設定を参照してください。