クラウド実行で定期実行

ブラウザアプリはユーザーのブラウザだけでなくobnizクラウドでも実行可能です。定期実行はアプリを一定時間ごとにクラウド上で実行させる設定です。

定期実行の設定

アプリの設定から「クラウド実行」の「時間で実行」に時間を記載します。フォーマットは ドキュメントにある通り

  • 一定間隔: every/10minutes, every/10hours
  • 毎日決まった時間: everyday/11:11

といった指定方法ができます。

設定されたアプリをインストールすることでそのデバイス向けに自動的に開始されます。

定期実行は一定間隔で動作するため、あまり変化しないものを監視したり、たまにだけ動かせば良いものを操作するのに利用できます。

(例)

  • 一定間隔でポンプを動かし植物に水をあげる
  • 川の水位を30分おきに観測し、異常があればメールする

以下はio0とio1に繋がれたポンプを一定間隔で動かすような例です。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  var motor = obniz.wired("DCMotor",  {forward:0, back:1});
  motor.forward();
  await obniz.wait(1000);
  
  if (Obniz.App.isCloudRunning()) {
    Obniz.App.done({
      status: 'success',
      text: `Worked`
    })
  } else {
    alert("Done.")
  }
}

または温度を監視をしてメールを送信するようなAPIを投げるのであれば

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
let device = obniz.wired("DHT12",{scl:26,sda:0});
let temperature = await device.getTempWait();
  if (Obniz.App.isCloudRunning()) {
    if(temperature > 30) {
      try {
        fetch(`https://xxxxx/xxxxx`)
      } catch(e) {
        console.error(e);
      }
      Obniz.App.done({
        status: 'error',
        text: `Too hot ${temperature} degree`
      })
    } else {
      Obniz.App.done({
        status: 'success',
        text: `It's fine ${temperature} degree`
      })
    }

  } else {
    alert("Done.")
  }
}