Как при соблюдении условия отправить сообщение один раз?

Всех приветствую! Подскажите, как при соблюдении условия "else" отправить сообщение пользователю один раз, а не спамить? И в случае появления повторного появления пинга - отправить пользователю сообщение "Соединение восстановлено" и обратно вернуть в начало цикла.

Заранее благодарен!

hostname = "*****" 
channel = '*****'
bot = telebot.TeleBot(<TOKEN>)


class RepeatTimer(Timer):
    def run(self):
        while not self.finished.wait(self.interval):
            self.function(*self.args, **self.kwargs)

def select():
    response = os.system('ping ' + hostname)
    if response == 0:
        print(hostname + ' пингуется')
        bot.send_message(channel, hostname + ' интернет есть')
    else:
        print(hostname + ' не пингуется')
        bot.send_message(channel, hostname + ' интернета нет')



if  __name__=='__main__':
    RepeatTimer(30, select).start()
    bot.polling(none_stop=True)

Ответы (1 шт):

Автор решения: Никита

Как уже сказали в комментариях - можно использовать флаг. Наример так:

send_message = True #Создаем переменную
 
def select():
    response = os.system('ping ' + hostname)
    if response == 0:
        print(hostname + ' пингуется')
        bot.send_message(-550694440, hostname + ' интернет есть')
        send_message = True #Присваиваем ей значение True когда появляеться сигнал 
    elif send_message: #Если сигнал потерян и сообщение еще не отправлено...
        print(hostname + ' не пингуется')
        bot.send_message(-550694440, hostname + ' интернета нет')
        send_message = False
→ Ссылка