--- title: "Debouncing the Dispatch of Multiple Messages - icom Data Suite" slug: "debouncing-the-dispatch-of-multiple-messages-en" updated: 2024-10-01T13:16:47Z published: 2024-10-01T13:16:47Z canonical: "docs.insys-icom.com/debouncing-the-dispatch-of-multiple-messages-en" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.insys-icom.com/llms.txt > Use this file to discover all available pages before exploring further. # Debouncing the Dispatch of Multiple Messages - icom Data Suite ## Situation It often happens that an event is occurring a few times in a row. If it triggers a message, it would trigger it with every occurrence. ## Solution The following example shows how to *debounce* such a multiple message dispatch. The event is signalled to the icom Data Suite by closing a switch on input 2.1. The closure of the switch sets a flag. Setting of this flag dispatches then the message and starts a timer. No further message dispatch is possible as long as the timer is running since the message will only be dispatched when the flag changes from 0 to 1 again. The expiry of the timer resets the flag. It can then be set again by the event to trigger the message. It is prerequisite that you have access to the web interface of the icom Data Suite. The router must be functional for SMS dispatch. The switch is connected to input 2.1 of the router. 1. Open the web interface of the icom Data Suite using a browser: - [192.168.1.10](https://192.168.1.10) or [ids.local](https://ids.local) (default) - *User name*: insys (default) - *Password*: icom (default) 2. In the *Data points* → *Digital I/Os* menu under *Inputs*, add a new input (): - *Description*: Input 2.1 - *Input*: 2.1 - Click on *Save settings*. 3. In the *Datapoints* → *Flags* menu, add a new flag: - *Description*: trigger message - Type: *Bit* - Click on *Save settings*. 4. In the *Datapoints* → *Timer* menu, add a new timer () and edit it (): - *Description*: message delay timer - Type: *Countdown*, triggered after 3 minutes - Click on *Save settings*. 5. In the *Messages* → *Contacts* menu, add a new contact () and edit it (): - *Real name*: enter the name of the supervisor - *Phone number*: enter the mobile phone number of the supervisor recipient > [!NOTE] > Please note! > > It is recommended to enter the phone number in international notation in the form *+491701234567*. - Click on *Save settings*. 6. In the *Messages* → *SMS* menu, add a new message () and edit it (): - *Description*: input closed message - *Modem*: *lte2* - *Recipient*: select the supervisor as contact - *Text*: Input 2.1 has been closed 7. In the *Events* menu, add a new event, which sets the flag that triggers message dispatch and delay timer start, () and edit it (): - *Description*: set 'trigger message' flag if input is closed - *Event*: *Digital data point has changed* - *Data point*: *input1* and *Changed to LOW (Boolean 0)* > [!NOTE] > Please note! > > The inputs of the router may have a different logic. This applies only to input 1 of a plug-in card with power supply. - *Action*: *Set digital data point* - *Data point*: *flag1 - trigger message* **set to 1** - Click on *Save settings*. 8. In the *Events* menu, add a new event, which starts the delay timer that resets the trigger flag upon expiry, () and edit it (): - *Description*: start delay timer if 'trigger message' flag is set - *Event*: *Digital data point has changed* - *Data point*: *flag1* and *Changed to 1* - *Action*: *Start or stop timer* - *Timer*: *timer1 - message delay timer* **start** - Click on *Save settings*. 9. In the *Events* menu, add a new event, which sends the notification message, () and edit it (): - *Description*: send message if 'trigger message' flag is set - *Event*: *Digital data point has changed* - *Data point*: *flag1* and *Changed to 1* - *Action*: *Send message* - *Send message*: *sms1 - input closed message* - Click on *Save settings*. 10. In the *Events* menu, add a new event, which resets the trigger flag that the next event can trigger a message dispatch again via this flag, () and edit it (): - *Description*: reset 'trigger message' flag if 'message delay timer' expires - *Event*: *Timer expired* - *Timer*: *timer1 - message delay timer* - *Action*: *Set digital data point* - *Data point*: *flag1 - trigger message* **set to 0** - Click on *Save settings*. 11. Activate the profile (). 12. Close Input 1 to check whether the SMS is sent as intended. 13. Close Input 1 again within the delay time to verify that the SMS is not sent again. 14. Close Input 1 again after the delay time has expired to check that the SMS is sent again. ## Troubleshooting - Refer to the installation manual of the router and check the connection and logic of the input used. - In order to be able to send an SMS by the icom Data Suite, the modem in the router must know the SMS center number of the provider. This is usually read out from the SIM card. If no number is stored on the SIM card, this must be entered in the *Interfaces* → *Slot 2: LTE* menu **in the web interface of the router**. ## Resources The following ASCII configuration can be taken over using copy & paste. It must be observed that the individual parameters need to be adapted to the own application. Correct numbering must be observed for numbered parameters. Moreover, it must be observed that no existing parameters with the same number will be overwritten. A proper functionality can only be ensured if the opened profile has been created from default settings before. ASCII configuration ```plaintext datapoints.digital_ios.inputs.input.add datapoints.digital_ios.inputs.input[1].name=input1 datapoints.digital_ios.inputs.input[1].active=1 datapoints.digital_ios.inputs.input[1].description=Input 2.1 datapoints.digital_ios.inputs.input[1].input=2.1 datapoints.flags.flag.add datapoints.flags.flag[1].name=flag1 datapoints.flags.flag[1].active=1 datapoints.flags.flag[1].description=trigger message datapoints.flags.flag[1].type=bit datapoints.timer.timer.add datapoints.timer.timer[1].name=timer1 datapoints.timer.timer[1].active=1 datapoints.timer.timer[1].description=message delay timer datapoints.timer.timer[1].type=countdown datapoints.timer.timer[1].countdown_hh= datapoints.timer.timer[1].countdown_mm=3 datapoints.timer.timer[1].countdown_ss= messages.contacts.contact.add messages.contacts.contact[1].active=1 messages.contacts.contact[1].name=contact1 messages.contacts.contact[1].real_name=supervisor messages.contacts.contact[1].email_address= messages.contacts.contact[1].phone_number=+4917xxxxxxxx messages.sms.sms.add messages.sms.sms[1].active=1 messages.sms.sms[1].name=sms1 messages.sms.sms[1].description=input closed message messages.sms.sms[1].recipient=contact1 messages.sms.sms[1].modem=lte2 messages.sms.sms[1].text=-----BEGIN text-----Input 2.1 has been closed-----END text----- events.event.add events.event[1].active=1 events.event[1].description=set 'trigger message' flag if input is closed events.event[1].event_type=ev_digital events.event[1].event_digital_datapoint=input1 events.event[1].event_digital_change=to_zero events.event[1].event_digital_initial_check=0 events.event[1].action_type=act_digital events.event[1].action_digital_datapoint=flag1 events.event[1].action_digital_change=to_one events.event.add events.event[2].active=1 events.event[2].description=start delay timer if 'trigger message' flag is set events.event[2].event_type=ev_digital events.event[2].event_digital_datapoint=flag1 events.event[2].event_digital_change=to_one events.event[2].event_digital_initial_check=0 events.event[2].action_type=act_timer events.event[2].event_action_timer_name=timer1 events.event[2].event_action_timer_change=start events.event.add events.event[3].active=1 events.event[3].description=send message if 'trigger message' flag is set events.event[3].event_type=ev_digital events.event[3].event_digital_datapoint=flag1 events.event[3].event_digital_change=to_one events.event[3].event_digital_initial_check=0 events.event[3].action_type=act_message events.event[3].action_message=sms1 events.event.add events.event[4].active=1 events.event[4].description=reset 'trigger message' flag if 'message delay timer' expires events.event[4].event_type=ev_timer events.event[4].event_timer_name=timer1 events.event[4].action_type=act_digital events.event[4].action_digital_datapoint=flag1 events.event[4].action_digital_change=to_zero ``` [ASCII configuration download (right-click and save as)](https://docs.insys-icom.de/assets/configs/cg_ids_debounce_multiple_message_dispatch.txt)