Во-первых, модуль освещенности дает сигнал, когда светло,
как я понимаю, он при срабатывании (когда светло) дает на цифровой выход низкий сигнал (землю, минус). А когда темно - ничего не дает.
import sqlite3
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY AUTOINCREMENT,
user_name TEXT,
user_id TEXT,
user_status TEXT
)''')
cursor.execute('DELETE FROM users')
users = [[None,'Валера','123','blocked'],
[None,'Тарас','134','blocked'],
[None,'Степан','145','normal'],
[None,'Абдурахман','168','blocked'],
[None,'Петя','190','normal']]
for user in users:
cursor.execute('INSERT INTO users VALUES(?,?,?,?)',user) # Заполняем таблицу из списка
conn.commit()
result = cursor.execute('SELECT id,user_id FROM users WHERE user_status="blocked"').fetchall()
# Выбираем из базы id(порядковый номер пользователя в базе), user_id - id пользователя в вашей системе только тех пользователей,
# в которыъ статус blocked
for x in result: # перебираем результаты
id,user_id = x # Распаковываем кортеж
cursor.execute('UPDATE users SET user_status=? WHERE id=?',('normal',id)) # обновляем записи в таблице.
# Так как у нас есть порядковый номер пользователя в таблице(id), то обновляем записи этих id и устанавливаем
# user_status в normal
print(f'Статус blocked изменен на normal для следуещего пользователя {user_id}')
conn.commit()
conn.close()
[Unit]
Description=Service for Telegram bot main. From user telebot
After=network.target
# Для запуска сервиса нужен запущенный сервис MySQL (т.к. работаем с базой данных, расположенной на этом же сервере)
After=mysql.service
Requires=mysql.service
[Install]
WantedBy=multi-user.target
[Service]
# Даем знать systemd, что этот сервис представляет из себя лишь 1 процесс.
# Ожидается, что процесс, настроенный с помощью ExecStart= является основным процессом службы
Type=simple
# Устанавливаем рабочую дирректорию службы
WorkingDirectory=/home/telebot/bot_prod/
# Указаываем пользователя и группу для работы службы
User=telebot
Group=telebot
# Должна ли служба считаться активной, даже если все ее процессы завершены
RemainAfterExit=no
# Выполнить эту команду при запуске сервиса.
ExecStart=python3 /home/telebot/bot_prod/bot.py
# Говорим, что нужно перезапускать сервис, если вдруг он умер
Restart=on-failure
# Таймаут на включение и выключение
TimeoutSec=60
last = max(glob.glob('*.user')+[''])
new = (last and int(last.split('.')[0]) or 0) + 1