Asked

ARC Event Notification Capabilities

Does ARC have the capability to notify me when a specific event occurs, such as sending a text message, an email through Gmail, or a Facebook Messenger notification? For instance, I currently have a script in ARC that runs in a loop every 30 seconds to check its connection to the EZ-Robot EZ-B controllers. It would be beneficial if ARC could notify me immediately when it detects a disconnection event. Is this possible, and if so, how can it be configured?


Related Hardware EZ-B v4
Related Controls IFTTT Sender SMTP Client

ARC Pro

Upgrade to ARC Pro

Don't limit your robot's potential – subscribe to ARC Pro and transform it into a dynamic, intelligent machine.

#1  

My original question was reformatted and that lost the actual question I wanted to ask. Here is my original question:

Does ARC have the ability to notify me somehow when an event happens? Is there a way that ARC can send me a text, email (Gmail) or Facebook Messenger message when that happens? For example, I currently have an ARC script that runs in a loop and checks it's connection to the EZBs every 30 seconds. It would be nice if when that script sees a disconnect, ARC could notify me when that event happens.

PRO
Canada
#2  

Yes - ARC can notify you immediately when events happen. You can trigger notifications (SMS, email, push, IFTTT, Facebook Messenger, etc.) directly from an ARC script when you detect an event (like an EZB disconnect). Below I’ll show common options, how to configure the skills, and a ready-to-use ARC JavaScript example that checks EZB connectivity and sends notifications when it changes.

Summary of notification options

  • SMTP Client (email/Gmail): Use the SMTP Client robot skill. Configure your SMTP server (Gmail: smtp.gmail.com, port 587 TLS or 465 SSL, and use an app password). Then send mail with ControlCommand("SMTP Client","Send", ...). Manual: https://synthiam.com/Support/Skills/Communication/SMTP-Client?id=15938
  • IFTTT Webhooks / IFTTT Sender: Use the IFTTT Sender plugin (or call IFTTT Maker Webhooks directly via Net.hTTPPost). IFTTT can trigger SMS, push, Messenger actions, or other services. IFTTT Maker docs: https://ifttt.com/maker_webhooks - plugin doc: https://synthiam.com/Support/Skills/Misc/IFTTT-Sender?id=15883
  • Push / Phone Push: PushOver (Pushover) or other push services (there is a PushOver robot skill). The PushOver skill is commonly used (ControlCommand("PushOver","Push", message)).
  • Twilio / other 3rd-party APIs: You can call any web API (Net.hTTPPost / Net.hTTPGet) to send SMS/push via services like Twilio, Nexmo, etc.
  • Facebook Messenger: Can be done via IFTTT or a webhook integration if available (IFTTT support for Messenger has conditions/limitations).

How to add & configure robot skills (quick)

  1. Project -> Add robot skill -> choose SMTP Client, IFTTT Sender, PushOver, or other communication skill.
  2. Open that skill’s settings via the three-line (hamburger / kebab) menu in the top-right of the skill window.
  3. Configure required credentials (SMTP host, IFTTT key, Pushover token, etc.) and Save.

Example: connectivity watcher + notifications (ARC JavaScript) This sample checks EZB index 0 every 30 seconds. When it sees a transition (connected -> disconnected or disconnected -> connected), it notifies via three methods (SMTP, PushOver, and IFTTT webhook). Replace placeholders (emails, IFTTT key, event name, skill names) with your settings.

// EZ-B connectivity watcher example (ARC JavaScript)
// Set flavors: which notifications you want to use
var useSMTP = true;       // requires SMTP Client skill configured
var usePushOver = true;   // requires PushOver skill configured
var useIFTTT = true;      // uses IFTTT Maker Webhooks (no  plugin required)
var ezbIndex = 0;         // change if your EZB index is different
var checkIntervalMs = 30000; // 30 seconds

// IFTTT webhook info (replace)
var IFTTT_EVENT = "ezb_disconnected";   // your IFTTT event name
var IFTTT_KEY = "YOUR_IFTTT_KEY";       // your maker webhook key

// init previous state as connected (or read from global var)
setVar("$EZBConnectedPrev", getVar("$EZBConnectedPrev", "1"));

while (true) {
  var wasConnected = (getVar("$EZBConnectedPrev") == "1");
  var connected = EZB.isConnected(ezbIndex); // returns boolean

  if (!connected && wasConnected) {
    // state changed: connected -> disconnected
    print("EZ-B disconnected (ezbIndex=" + ezbIndex + ")");
    setVar("$EZBConnectedPrev", "0");

    // Notification: SMTP (email)
    if (useSMTP) {
      var toEmail = "[email protected]";
      var toName = "Your Name";
      var subject = "EZ-B v4 disconnected";
      var body = "EZ-B index " + ezbIndex + " disconnected at " + new Date();
      ControlCommand("SMTP Client", "Send", toEmail, toName, subject, body);
    }

    // Notification: PushOver
    if (usePushOver) {
      ControlCommand("PushOver", "Push", "EZ-B v4 disconnected (index " + ezbIndex + ")");
    }

    // Notification: IFTTT Maker Webhooks
    if (useIFTTT && IFTTT_KEY != "YOUR_IFTTT_KEY") {
      var url = "https://maker.ifttt.com/trigger/"; + IFTTT_EVENT + "/with/key/" + IFTTT_KEY;
      var json = JSON.stringify({ value1: "EZ-B v4 disconnected", value2: "" });
      // Net.hTTPPost(url, postData)
      Net.hTTPPost(url, json);
    }
  }
  else if (connected && !wasConnected) {
    // state changed: disconnected -> connected
    print("EZ-B reconnected (ezbIndex=" + ezbIndex + ")");
    setVar("$EZBConnectedPrev", "1");

    // Optionally notify about reconnection
    if (usePushOver) {
      ControlCommand("PushOver", "Push", "EZ-B v4 reconnected (index " + ezbIndex + ")");
    }
  }

  sleep(checkIntervalMs);
}

Notes & tips

  • Gmail & SMTP: Gmail often requires an app password (if 2FA enabled). Check Gmail SMTP settings and enable the required access. The SMTP skill settings are saved in your ARC project; keep credentials secure.
  • IFTTT: Create an IFTTT applet with the Maker Webhooks "Receive a web request" trigger and configure the action (SMS, Android/iOS notification, Facebook Messenger if supported). You can use the IFTTT Sender plugin instead of Net.hTTPPost, but the webhook method gives you full control.
  • PushOver: You must add/configure the PushOver skill and set your user/key in the skill’s settings.
  • Rate limiting & spam: For frequent changes, avoid spamming notifications - consider debounce logic (only send notification after X consecutive failures or use a cooldown).
  • For more advanced integrations (Twilio SMS, Slack, Teams, etc.) call their APIs with Net.hTTPPost and appropriate auth headers.

Want me to:

  • tailor the sample to only use one notification method (e.g., Gmail or IFTTT)?
  • create a version with debounce/cooldown so it doesn’t spam you on flaky network?
  • provide exact ControlCommand lines for your configured skill names?

Tell me which notification method(s) you prefer and whether your SMTP/IFTTT/PushOver are ready - I’ll customize the script stepbystep.


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.