Skip to main content



Active, since 2019

Nowadays, end users who want to personalize their Internet of Things (IoT) ecosystem can take advantage of visual programming platforms such as IFTTT or Zapier. In such End-User Development (EUD) platforms, users can program the joint behavior of their devices and online services by defining trigger-action rules such as “if the Nest camera in the kitchen detects a movement,then send me a Telegram message.” Trigger-action programming is, however, a complex task for non-programmers, and errors made during the composition of rules may lead to unpredictable behaviors and security issues, e.g., a lamp that is continuously flashing or a door that is unexpectedly unlocked. As a consequence, one of the most important and urgent challenges in this context is the need to avoid possible conflicts and to assess the correctness of trigger-action rules. For this purpose, we introduce EUDebug, a system that enables end users to debug their trigger-action rules.

The goal of EUDebug is to properly warn users when they are defining any troublesome or potentially dangerous behavior, according to two strategies:

  1. by assisting them in identifying rule conflicts, and
  2. by helping them foresee the run-time behavior of their rules through step-by-step simulation.

The figure below shows a sample usage scenario.

  1. The user composes a new trigger-action rule in a web-based application modeled after IFTTT (e.g., “if the security camera in the office is armed, then unlock the door”). As the user is composing the rule, EUDebug employs a novel hybrid Semantic Colored Petri Net to model, check, and simulate the rule with respect to previously defined trigger-action rules.
  2. When the rule composition is completed, EUDebug highlights possible problems that the rule may generate, by providing a short explanation to the user.
  3. If needed, the user can further inspect and understand the problems by asking EUDebug to perform and show a step-by-step simulation of the problematic rules.
  4. Finally, the user can edit the composed rule or decide to ignore the highlighted problems, thus saving the rule in the current format.

Thanks to the Semantic Colored Petri Net, EUDebug is able to detect problems in rules that involve different types of devices but with similar functions. The adopted semantic representation is [EUPont], a high-level semantic model for EUD in the IoT. It allows the net to reason about the final goal of each object (e.g., illumination, messaging, ...) to detect and show problems like loops, inconsistencies, and redundancies.

Check out the following video and papers for additional details.