예제 #1
0
def alert():
	try:
		while True:
			file = open('statuspintu.txt', 'r')
			statuspintu = file.read()
			#print statuspintu
			if GPIO.input(pin_sensor) == False and statuspintu == "terkunci":	#jika pintu terbuka padahal dikunci, sensor menjauh
				#print "Warning! Pintu terbuka!"
				lampu.lampu_on(pin_lampu)
				buzzer.buzzer_on(pin_buzzer)
				sleep(0.2)
				lampu.lampu_off(pin_lampu)
				buzzer.buzzer_off(pin_buzzer)
				sleep(0.2)
				system("sudo start notifemail")
				system("sudo start camera")
				#print "Selesai mengunggah notif dan foto."
			
			elif GPIO.input(pin_sensor) == False and statuspintu == "terbuka":
				log = open('statuslampu.txt', 'r')        #membaca log status lampu
				statuslampu = log.read()
				#print (statuslampu)
				if statuslampu == "mati" :                #sinkronisasi lampu dengan sta$
        				lampu.lampu_on(pin_lampu)
				elif statuslampu == "menyala" :
        				lampu.lampu_off(pin_lampu)
			sleep(0.2)

	finally:
		GPIO.cleanup()
예제 #2
0
def on_message(client, userdata, msg):
        print(msg.topic + " " + str(msg.payload))
        topic = msg.topic
        payload = msg.payload
	#check = 0	#untuk pembaca dibuka oleh aplikasi atau dibuka paksa, 1 oleh aplikasi


        if str(topic) == str(topik[1]) :			#kondisi topik dan payload yang diterima dari user (via HP atau Web platform kita)
                if str(payload) == str(status[0]) :	#lampu Normally Close
                        lampu.lampu_on(pin_lampu)
			file = open("statuslampu.txt", "w")
                        file.write("mati")
                        file.close()
                        print "Lampu MATI"
			pyjwt.token(topik[2], status[0])
                elif str(payload) == str(status[1]) :
                        lampu.lampu_off(pin_lampu)
			file = open("statuslampu.txt", "w")
                        file.write("menyala")
                        file.close()
                        print "Lampu MENYALA"
			pyjwt.token(topik[2], status[1])
        if str(topic) == topik[2] :
                if str(payload) == status[1] :
                        buzzer.buzzer_on(pin_buzzer)
                        print "Buzzer MENYALA"
			pyjwt.token(topik[1], status[1])
                elif str(payload) == status[0] :
                        buzzer.buzzer_off(pin_buzzer)
                        print "Buzzer MATI"
			pyjwt.token(topik[1], status[0])
        if str(topic) == topik[0] :
                if str(payload) == status[1] :
                        pintu.pintu_kunci(pin_pintu)
			file = open("statuspintu.txt", "w")
			file.write("terkunci")
			file.close()
                        print "Pintu TERKUNCI"
			#check = 0
			pyjwt.token(topik[0], status[1])
                elif str(payload) == status[0] :
                        pintu.pintu_buka(pin_pintu)
			file = open("statuspintu.txt", "w")
                        file.write("terbuka")
                        file.close()
                        print "Pintu TERBUKA"
			#check = 1
			pyjwt.token(topik[0], status[0])
예제 #3
0
def on_message(client, userdata, msg):
        print(msg.topic + " " + str(msg.payload))
        topic = msg.topic
        payload = msg.payload


        if str(topic) == str(topik[0]) :			#kondisi topik dan payload yang diterima dari user (via HP atau Web platform kita)
                if str(payload) == str(status[0]) :	#lampu Normally Close
                        lampu.lampu_off(pin_lampu)
                        print ("Lampu MATI")
			text2 = "Lampu Pintu Peraga Indisbuilding MATI pada " + strftime("%A %d %B %Y %X %Z")
			notifemail.email(text2)
                elif str(payload) == str(status[1]) :
                        lampu.lampu_on(pin_lampu)
                        print ("Lampu MENYALA")
			text2 = "Lampu Pintu Peraga Indisbuilding MENYALA pada " + strftime("%A %d %B %Y %X %Z")
			notifemail.email(text2)
        if str(topic) == topik[1] :
                if str(payload) == status[2] :
                        #system ("sudo start camera")
                        print ("Kamera sedang diambil Rara.")
예제 #4
0
def on_message(client, userdata, msg):
        print(msg.topic + " " + str(msg.payload))
        topic = msg.topic
        payload = msg.payload


        if str(topic) == str(topik[0]) :			#kondisi topik dan payload yang diterima dari user (via HP atau Web platform kita)
                if str(payload) == str(status[0]) :	#lampu Normally Close
                        lampu.lampu_off(pin_lampu)
                        print ("Lampu MATI")
			text2 = "Lampu Luar Ruko MATI pada " + strftime("%A %d %B %Y %X %Z")
                        notifemail.email(text2)
                elif str(payload) == str(status[1]) :
                        lampu.lampu_on(pin_lampu)
                        print ("Lampu MENYALA")
			text2 = "Lampu Luar Ruko MENYALA pada " + strftime("%A %d %B %Y %X %Z")
                        notifemail.email(text2)
        if str(topic) == topik[1] :
                if str(payload) == status[2] :
                        system("sudo start camera")
			text2 = "Gambar berhasil diambil. Sedang dalam proses pengiriman ke e-mail"
                        notifemail.email(text2)
예제 #5
0
def on_message(client, userdata, msg):
        print(msg.topic + " " + str(msg.payload))
        topic = msg.topic
        payload = msg.payload


        if str(topic) == str(topik[0]) :			#kondisi topik dan payload yang diterima dari user (via HP atau Web platform kita)
                if str(payload) == str(status[0]) :	#lampu Normally Close
                        lampu.lampu_on(pin_lampu[0])
                        print ("kos_lampu_luar MATI")
                elif str(payload) == str(status[1]) :
                        lampu.lampu_off(pin_lampu[0])
                        print ("kos_lampu_luar MENYALA")
        if str(topic) == str(topik[1]) :
                if str(payload) == str(status[0]) :
                        lampu.lampu_on(pin_lampu[1])
                        print ("kos_lampu_dalam_cewek MATI")
                elif str(payload) == str(status[1]) :
                        lampu.lampu_off(pin_lampu[1])
                        print ("kos_lampu_dalam_cewek MENYALA")
        if str(topic) == str(topik[2]) :
                if str(payload) == str(status[0]) :
                        lampu.lampu_on(pin_lampu[2])
                        print ("kos_lampu_dalam_cowok MATI")
                elif str(payload) == str(status[1]) :
                        lampu.lampu_off(pin_lampu[2])
                        print ("kos_lampu_dalam_cowok MENYALA")
        if str(topic) == str(topik[3]) :
                if str(payload) == str(status[0]) :
                        terminal.terminal_on(pin_terminal[0])
                        print ("dispenser_cewek MATI")
                elif str(payload) == str(status[1]) :
  			terminal.terminal_off(pin_terminal[0])
                        print ("dispenser_cewek MENYALA")
        if str(topic) == str(topik[4]) :
                if str(payload) == str(status[0]) :
			terminal.terminal_on(pin_terminal[1])
                        print ("dispenser_cowok MATI")
                elif str(payload) == str(status[1]) :
                        terminal.terminal_off(pin_terminal[1])
                        print ("dispenser_cowok MENYALA")
def on_callback_query(msg):
    query_id, from_id, data = telepot.glance(msg, flavor='callback_query')
    print('Callback query --> ', 'ID query: ', query_id, 'ID user: '******'Callback data: ', data)

    if data == 'kos_lampu_luar':
        if gpiostatus.status_kos_lampu_luar() == 'mati':
            lampu.lampu_on(pin_lampu[0])
            bot.answerCallbackQuery(query_id, text='Kos Lampu Luar DINYALAKAN', show_alert=True)
        elif gpiostatus.status_kos_lampu_luar() == 'menyala':
            lampu.lampu_off(pin_lampu[0])
            bot.answerCallbackQuery(query_id, text='Kos Lampu Luar DIMATIKAN', show_alert=True)
    elif data == 'kos_lampu_dalam_cewek':
        if gpiostatus.status_kos_lampu_dalam_cewek() == 'mati':
            lampu.lampu_on(pin_lampu[1])
            bot.answerCallbackQuery(query_id, text='Kos Lampu Dalam Cewek DINYALAKAN', show_alert=True)
        elif gpiostatus.status_kos_lampu_dalam_cewek() == 'menyala':
            lampu.lampu_off(pin_lampu[1])
            bot.answerCallbackQuery(query_id, text='Kos Lampu Dalam Cewek DIMATIKAN', show_alert=True)
    elif data == 'kos_lampu_dalam_cowok':
        if gpiostatus.status_kos_lampu_dalam_cowok() == 'mati':
            lampu.lampu_on(pin_lampu[2])
            bot.answerCallbackQuery(query_id, text='Kos Lampu Dalam Cowok DINYALAKAN', show_alert=True)
        elif gpiostatus.status_kos_lampu_dalam_cowok() == 'menyala':
            lampu.lampu_off(pin_lampu[2])
            bot.answerCallbackQuery(query_id, text='Kos Lampu Dalam Cowok DIMATIKAN', show_alert=True)
    elif data == 'dispenser_cewek':
        if gpiostatus.status_dispenser_cewek() == 'mati':
            terminal.terminal_on(pin_terminal[0])
            bot.answerCallbackQuery(query_id, text='Dispenser Cewek DINYALAKAN', show_alert=True)
        elif gpiostatus.status_dispenser_cewek() == 'menyala':
            terminal.terminal_off(pin_terminal[0])
            bot.answerCallbackQuery(query_id, text='Dispenser Cewek DIMATIKAN', show_alert=True)
    elif data == 'dispenser_cowok':
        if gpiostatus.status_dispenser_cowok() == 'mati':
            terminal.terminal_on(pin_terminal[1])
            bot.answerCallbackQuery(query_id, text='Dispenser Cowok DINYALAKAN', show_alert=True)
        elif gpiostatus.status_dispenser_cowok() == 'menyala':
            terminal.terminal_off(pin_terminal[1])
            bot.answerCallbackQuery(query_id, text='Dispenser Cowok DIMATIKAN', show_alert=True)
    elif data == 'status':
        bot.answerCallbackQuery(query_id, text='Status kondisi perangkat listrik saat ini:\n\n'
        '1. Kos Lampu Luar ' + gpiostatus.status_kos_lampu_luar().upper() + '\n'
        '2. Kos Lampu Dalam Cewek ' + gpiostatus.status_kos_lampu_dalam_cewek().upper() + '\n'
        '3. Kos Lampu Dalam Cowok ' + gpiostatus.status_kos_lampu_dalam_cowok().upper() + '\n'
        '4. Dispenser Cewek ' + gpiostatus.status_dispenser_cewek().upper() + '\n'
        '5. Dispenser Cowok ' + gpiostatus.status_dispenser_cowok().upper(), show_alert=True)
    elif data == 'status_lengkap':
        kll   = bot.sendMessage(from_id, '1. Kos Lampu Luar\n DIMATIKAN pada Minggu 31 Desember 2017 05:37:00 WIB oleh Ayah')
        kldce = bot.sendMessage(from_id, '2. Kos Lampu Dalam Cewek\n DINYALAKAN pada Minggu 31 Desember 2017 18:10:18 WIB oleh Emah')
        kldco = bot.sendMessage(from_id, '3. Kos Lampu Dalam Cowok\n DIMATIKAN pada Minggu 31 Desember 2017 05:27:33 WIB oleh Isal')
        dice  = bot.sendMessage(from_id, '4. Dispenser Cewek\n DINYALAKAN pada Minggu 31 Desember 2017 17:00:10 WIB oleh Ede')
        dico  = bot.sendMessage(from_id, '5. Dispenser Cowok\n DIMATIKAN pada Minggu 31 Desember 2017 08:27:00 WIB oleh Emah')

        kll_identifier   = telepot.message_identifier(kll)
        kldce_identifier = telepot.message_identifier(kldce)
        kldco_identifier = telepot.message_identifier(kldco)
        dice_identifier  = telepot.message_identifier(dice)
        dico_identifier  = telepot.message_identifier(dico)

        time.sleep(15)

        bot.deleteMessage(kll_identifier)
        bot.deleteMessage(kldce_identifier)
        bot.deleteMessage(kldco_identifier)
        bot.deleteMessage(dice_identifier)
        bot.deleteMessage(dico_identifier)
	sleep(0.2)
	buzzer.buzzer_off(pin_buzzer)
	sleep(0.2)
	return"""

try:
	#t1 = Thread(target = lampu)	#membuat fungsi lampu dan buzzer berjalan bersamaan dalam satu waktu
	#t2 = Thread(target = buzzer)	
	while True:
		if GPIO.input(pin_sensor) == False:	#jika pintu terbuka, sensor menjauh
			print "Warning! Pintu terbuka!"
			#t1.start()	#memulai thread lampu dan buzzer
			#t2.start()
			#t1.join()	#memastikan thread berjalan hingga selesai baru lanjut ke bagian program berikutnya
			#t2.join()
			import emailexample
			lampu.lampu_on(pin_lampu)
			buzzer.buzzer_on(pin_buzzer)
			sleep(0.25)
			lampu.lampu_off(pin_lampu)
			buzzer.buzzer_off(pin_buzzer)
			sleep(0.25)
		sleep(0.5)

finally:
	GPIO.cleanup()	



#Coded by Faisal Candrasyah H, CTO of IndisBuilding
def handle(msg):
    chat_id = msg['chat']['id']
    command = msg['text']

    print 'Pesan diterima: %s' % command


    if command == "Menu" or command == "menu" or command == "/menu":
        bot.sendMessage(chat_id, \
	"Silakan pilih menu yang tersedia: \n"\
	"1. Kos Lampu Luar \n"\
	"2. Kos Lampu Dalam Cewek \n"\
	"3. Kos Lampu Dalam Cowok \n"\
        "4. Dispenser Cewek \n"\
        "5. Dispenser Cowok")
        bot.sendMessage(chat_id, "Ketik digit [1-5] diikuti on atau off.")
        bot.sendMessage(chat_id, "Misal : 1 on")
        bot.sendMessage(chat_id, "Atau klik menu cepat yang tampil di setiap bagian bawah!")

    if command == "1 on":
        lampu.lampu_on(pin_lampu[0])
        file = open("status1.txt", "w")
        file.write("menyala")
        file.close()
        bot.sendMessage(chat_id, "Kos Lampu Luar \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
    elif command == "1 off":
        lampu.lampu_off(pin_lampu[0])
        file = open("status1.txt", "w")
        file.write("mati")
        file.close()
        bot.sendMessage(chat_id, "Kos Lampu Luar \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
    if command == "2 on":
        lampu.lampu_on(pin_lampu[1])
        file = open("status2.txt", "w")
        file.write("menyala")
        file.close()
        bot.sendMessage(chat_id, "Kos Lampu Dalam Cewek \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
    elif command == "2 off":
        lampu.lampu_off(pin_lampu[1])
        file = open("status2.txt", "w")
        file.write("mati")
        file.close()
        bot.sendMessage(chat_id, "Kos Lampu Dalam Cewek \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
    if command == "3 on":
        lampu.lampu_on(pin_lampu[2])
        file = open("status3.txt", "w")
        file.write("menyala")
        file.close()
        bot.sendMessage(chat_id, "Kos Lampu Dalam Cowok \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
    elif command == "3 off":
        lampu.lampu_off(pin_lampu[2])
        file = open("status3.txt", "w")
        file.write("mati")
        file.close()
        bot.sendMessage(chat_id, "Kos Lampu Dalam Cowok \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
    if command == "4 on":
        terminal.terminal_on(pin_terminal[0])
        file = open("status4.txt", "w")
        file.write("menyala")
        file.close()
        bot.sendMessage(chat_id, "Dispenser Cewek \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
    elif command == "4 off":
        terminal.terminal_off(pin_terminal[0])
        file = open("status4.txt", "w")
        file.write("mati")
        file.close()
        bot.sendMessage(chat_id, "Dispenser Cewek \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
    if command == "5 on":
        terminal.terminal_on(pin_terminal[1])
        file = open("status5.txt", "w")
        file.write("menyala")
        file.close()
        bot.sendMessage(chat_id, "Dispenser Cowok \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
    elif command == "5 off":
        terminal.terminal_off(pin_terminal[1])
        file = open("status5.txt", "w")
        file.write("mati")
        file.close()
        bot.sendMessage(chat_id, "Dispenser Cowok \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))

    if command == "/1" or command == "Kos Lampu Luar":
        status1 = open("status1.txt", "r").read()
        bot.sendMessage(chat_id, "Status sebelumnya --> %s" % (status1))
        if status1 == "mati":
            lampu.lampu_on(pin_lampu[0])
            file = open("status1.txt", "w")
            file.write("menyala")
            file.close()
            bot.sendMessage(chat_id, "Kos Lampu Luar \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status1 = open("status1.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status1))
        elif status1 == "menyala":
            lampu.lampu_off(pin_lampu[0])
            file = open("status1.txt", "w")
            file.write("mati")
            file.close()
            bot.sendMessage(chat_id, "Kos Lampu Luar \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status1 = open("status1.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status1))

    elif command == "/2" or command == "Kos Lampu Dalam Cewek":
        status2 = open("status2.txt", "r").read()
        bot.sendMessage(chat_id, "Status sebelumnya --> %s" % (status2))
        if status2 == "mati":
            lampu.lampu_on(pin_lampu[1])
            file = open("status2.txt", "w")
            file.write("menyala")
            file.close()
            bot.sendMessage(chat_id, "Kos Lampu Dalam Cewek \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status2 = open("status2.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status2))
        elif status2 == "menyala":
            lampu.lampu_off(pin_lampu[1])
            file = open("status2.txt", "w")
            file.write("mati")
            file.close()
            bot.sendMessage(chat_id, "Kos Lampu Dalam Cewek \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status2 = open("status2.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status2))

    elif command == "/3" or command == "Kos Lampu Dalam Cowok":
        status3 = open("status3.txt", "r").read()
        bot.sendMessage(chat_id, "Status sebelumnya --> %s" % (status3))
        if status3 == "mati":
            lampu.lampu_on(pin_lampu[2])
            file = open("status3.txt", "w")
            file.write("menyala")
            file.close()
            bot.sendMessage(chat_id, "Kos Lampu Dalam Cowok \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status3 = open("status3.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status3))
        elif status3 == "menyala":
            lampu.lampu_off(pin_lampu[2])
            file = open("status3.txt", "w")
            file.write("mati")
            file.close()
            bot.sendMessage(chat_id, "Kos Lampu Dalam Cowok \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status3 = open("status3.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status3))

    elif command == "/4" or command == "Dispenser Cewek":
        status4 = open("status4.txt", "r").read()
        bot.sendMessage(chat_id, "Status sebelumnya --> %s" % (status4))
        if status4 == "mati":
            terminal.terminal_on(pin_terminal[0])
            file = open("status4.txt", "w")
            file.write("menyala")
            file.close()
            bot.sendMessage(chat_id, "Dispenser Cewek \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status4 = open("status4.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status4))
        elif status4 == "menyala":
            terminal.terminal_off(pin_terminal[0])
            file = open("status4.txt", "w")
            file.write("mati")
            file.close()
            bot.sendMessage(chat_id, "Dispenser Cewek \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status4 = open("status4.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status4))

    elif command == "/5" or command == "Dispenser Cowok":
        status5 = open("status5.txt", "r").read()
        bot.sendMessage(chat_id, "Status sebelumnya --> %s" % (status5))
        if status5 == "mati":
            terminal.terminal_on(pin_terminal[1])
            file = open("status5.txt", "w")
            file.write("menyala")
            file.close()
            bot.sendMessage(chat_id, "Dispenser Cowok \nDINYALAKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status5 = open("status5.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status5))
        elif status5 == "menyala":
            terminal.terminal_off(pin_terminal[1])
            file = open("status5.txt", "w")
            file.write("mati")
            file.close()
            bot.sendMessage(chat_id, "Dispenser Cowok \nDIMATIKAN pada " + strftime("%A %d %B %Y %X %Z"))
            status5 = open("status5.txt", "r").read()
            bot.sendMessage(chat_id, "Status sekarang --> %s" % (status5))


    if command == 'status' or command == 'Status' or command == "/status":
        status1 = open('status1.txt', 'r').read()
        status2 = open('status2.txt', 'r').read()
        status3 = open('status3.txt', 'r').read()
        status4 = open('status4.txt', 'r').read()
        status5 = open('status5.txt', 'r').read()
        
        bot.sendMessage(chat_id, \
        "Status kondisi perangkat listrik saat ini --> \n"\
        "1. Kos Lampu Luar 		--> %s\n"\
        "2. Kos Lampu Dalam Cewek 	--> %s\n"\
        "3. Kos Lampu Dalam Cowok 	--> %s\n"\
        "4. Dispenser Cewek 		--> %s\n"\
        "5. Dispenser Cowok		--> %s" % (status1, status2, status3, status4, status5))


    #bot.sendMessage(chat_id, "/menu \n \t\t\t\t /status \n /1 \n\t /2 \n /3 \n\t /4 \t /5")
    show_keyboard = {'keyboard': [['Kos Lampu Luar'], ['Kos Lampu Dalam Cewek', 'Kos Lampu Dalam Cowok'], ['Dispenser Cewek', 'Dispenser Cowok'], ['Menu', 'Status']]}
    bot.sendMessage(chat_id, 'Pilih menu cepat :', reply_markup=show_keyboard)
def on_callback_query(msg):
    query_id, from_id, data = telepot.glance(msg, flavor='callback_query')
    print('Callback query --> ', 'ID query: ', query_id, 'ID user: '******'Callback data: ', data)

    if from_id in id_user:
        if data == 'kos_lampu_luar':
            if gpiostatus.status_kos_lampu_luar() == 'mati':
                lampu.lampu_on(pin_lampu[0])
                status1_on = 'Kos Lampu Luar DINYALAKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status1_on,
                                        show_alert=True)
                catat_waktu[0] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[0] = id_user[from_id]
            elif gpiostatus.status_kos_lampu_luar() == 'menyala':
                lampu.lampu_off(pin_lampu[0])
                status1_off = 'Kos Lampu Luar DIMATIKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status1_off,
                                        show_alert=True)
                catat_waktu[0] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[0] = id_user[from_id]
        elif data == 'kos_lampu_dalam_cewek':
            if gpiostatus.status_kos_lampu_dalam_cewek() == 'mati':
                lampu.lampu_on(pin_lampu[1])
                status2_on = 'Kos Lampu Dalam Cewek DINYALAKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status2_on,
                                        show_alert=True)
                catat_waktu[1] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[1] = id_user[from_id]
            elif gpiostatus.status_kos_lampu_dalam_cewek() == 'menyala':
                lampu.lampu_off(pin_lampu[1])
                status2_off = 'Kos Lampu Dalam Cewek DIMATIKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status2_off,
                                        show_alert=True)
                catat_waktu[1] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[1] = id_user[from_id]
        elif data == 'kos_lampu_dalam_cowok':
            if gpiostatus.status_kos_lampu_dalam_cowok() == 'mati':
                lampu.lampu_on(pin_lampu[2])
                status3_on = 'Kos Lampu Dalam Cowok DINYALAKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status3_on,
                                        show_alert=True)
                catat_waktu[2] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[2] = id_user[from_id]
            elif gpiostatus.status_kos_lampu_dalam_cowok() == 'menyala':
                lampu.lampu_off(pin_lampu[2])
                status3_off = 'Kos Lampu Dalam Cowok DIMATIKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status3_off,
                                        show_alert=True)
                catat_waktu[2] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[2] = id_user[from_id]
        elif data == 'dispenser_cewek':
            if gpiostatus.status_dispenser_cewek() == 'mati':
                terminal.terminal_on(pin_terminal[0])
                status4_on = 'Dispenser Cewek DINYALAKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status4_on,
                                        show_alert=True)
                catat_waktu[3] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[3] = id_user[from_id]
            elif gpiostatus.status_dispenser_cewek() == 'menyala':
                terminal.terminal_off(pin_terminal[0])
                status4_off = 'Dispenser Cewek DIMATIKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status4_off,
                                        show_alert=True)
                catat_waktu[3] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[3] = id_user[from_id]
        elif data == 'dispenser_cowok':
            if gpiostatus.status_dispenser_cowok() == 'mati':
                terminal.terminal_on(pin_terminal[1])
                status5_on = 'Dispenser Cowok DINYALAKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status5_on,
                                        show_alert=True)
                catat_waktu[4] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[4] = id_user[from_id]
            elif gpiostatus.status_dispenser_cowok() == 'menyala':
                terminal.terminal_off(pin_terminal[1])
                status5_off = 'Dispenser Cowok DIMATIKAN'
                bot.answerCallbackQuery(query_id,
                                        text=status5_off,
                                        show_alert=True)
                catat_waktu[4] = strftime('%A, %d %B %Y, pukul %X (%Z)')
                oleh[4] = id_user[from_id]
        elif data == 'status':
            bot.answerCallbackQuery(
                query_id,
                text='Status kondisi perangkat listrik saat ini:\n\n'
                '1. Kos Lampu Luar ' +
                gpiostatus.status_kos_lampu_luar().upper() + '\n'
                '2. Kos Lampu Dalam Cewek ' +
                gpiostatus.status_kos_lampu_dalam_cewek().upper() + '\n'
                '3. Kos Lampu Dalam Cowok ' +
                gpiostatus.status_kos_lampu_dalam_cowok().upper() + '\n'
                '4. Dispenser Cewek ' +
                gpiostatus.status_dispenser_cewek().upper() + '\n'
                '5. Dispenser Cowok ' +
                gpiostatus.status_dispenser_cowok().upper(),
                show_alert=True)
        elif data == 'status_lengkap':
            kll = bot.sendMessage(
                from_id, '1. Kos Lampu Luar ' +
                gpiostatus.status_kos_lampu_luar().upper() + '\npada ' +
                catat_waktu[0] + '\noleh ' + oleh[0])
            kldce = bot.sendMessage(
                from_id, '2. Kos Lampu Dalam Cewek ' +
                gpiostatus.status_kos_lampu_dalam_cewek().upper() + '\npada ' +
                catat_waktu[1] + '\noleh ' + oleh[1])
            kldco = bot.sendMessage(
                from_id, '3. Kos Lampu Dalam Cowok ' +
                gpiostatus.status_kos_lampu_dalam_cowok().upper() + '\npada ' +
                catat_waktu[2] + '\noleh ' + oleh[2])
            dice = bot.sendMessage(
                from_id, '4. Dispenser Cewek ' +
                gpiostatus.status_dispenser_cewek().upper() + '\npada ' +
                catat_waktu[3] + '\noleh ' + oleh[3])
            dico = bot.sendMessage(
                from_id, '5. Dispenser Cowok ' +
                gpiostatus.status_dispenser_cowok().upper() + '\npada ' +
                catat_waktu[4] + '\noleh ' + oleh[4])

            kll_identifier = telepot.message_identifier(kll)
            kldce_identifier = telepot.message_identifier(kldce)
            kldco_identifier = telepot.message_identifier(kldco)
            dice_identifier = telepot.message_identifier(dice)
            dico_identifier = telepot.message_identifier(dico)

            time.sleep(15)

            bot.deleteMessage(kll_identifier)
            bot.deleteMessage(kldce_identifier)
            bot.deleteMessage(kldco_identifier)
            bot.deleteMessage(dice_identifier)
            bot.deleteMessage(dico_identifier)

    elif from_id not in id_user:
        bot.sendMessage(from_id, 'Maaf, Anda tidak memilik akses!')
        bot.sendMessage(
            148554570,
            'Admin Isal, ID user tidak dikenal terdeteksi: ' + str(from_id))