Advertisement
Guest User

Untitled

a guest
Jul 11th, 2016
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 103.78 KB | None | 0 0
  1.  
  2. #from classes.menuscreen import MenuScreen
  3. import re
  4. from kivy.uix.relativelayout import RelativeLayout
  5.  
  6. from classes.clockscreen import ClockScreen
  7. from classes.mytextinput import MyTextInput
  8. from classes.passwordscreen import PasswordScreen
  9. from classes.settingscreen import SettingScreen
  10.  
  11. import MySQLdb
  12. from kivy.config import ConfigParser
  13. from kivy.app import App
  14. from kivy.lang import Builder
  15. from kivy.uix.anchorlayout import AnchorLayout
  16. from kivy.uix.behaviors import ButtonBehavior
  17. from kivy.uix.boxlayout import BoxLayout
  18. from kivy.uix.button import Button
  19. from kivy.uix.checkbox import CheckBox
  20. from kivy.uix.gridlayout import GridLayout
  21. from kivy.uix.image import Image
  22. from kivy.uix.label import Label
  23. from functools import partial
  24. from kivy.uix.modalview import ModalView
  25. from kivy.uix.popup import Popup
  26. from kivy.uix.screenmanager import ScreenManager, Screen
  27. from kivy.uix.spinner import Spinner
  28. from kivy.uix.tabbedpanel import TabbedPanel, TabbedPanelHeader, TabbedPanelItem
  29. from kivy.uix.textinput import TextInput
  30. from kivy.uix.vkeyboard import VKeyboard
  31. from kivy.uix.widget import Widget
  32. from math import sin, cos, pi
  33. from subprocess import call
  34. from kivy.uix.dropdown import DropDown
  35. import commands
  36. import threading
  37.  
  38.  
  39. from wifi import Scheme, Cell
  40. import string
  41.  
  42. import subprocess
  43. from kivy.properties import BooleanProperty, NumericProperty, StringProperty, ListProperty, ObjectProperty, DictProperty
  44. from kivy.clock import Clock, mainthread
  45. import time
  46. from KivyCalendar import DatePicker,CalendarWidget, calendar_data
  47. # from datetime import datetime, date, timedelta
  48. from os import path, system, listdir, execv
  49. from sys import argv, exit
  50.  
  51. from datetime import datetime
  52.  
  53. from subprocess import PIPE, Popen
  54.  
  55. from activateAlarm import activateAlarm
  56. from deactivateAlarm import deactivateAlarm
  57. from fetchAlarm import fetchAlarm
  58. # from getWebPassword import getWebPassword
  59. from updatePassword import updatePassword
  60. from verifyClient import verifyClient
  61. from classes.LanguageConversion import LanguageConversion
  62. from buzzer import buzzer
  63.  
  64. from fetchingDevices import fetchingDevices
  65.  
  66. import os
  67.  
  68.  
  69. import json
  70. stopper = False
  71. alive = False
  72. stop = threading.Event()
  73.  
  74. runflag = False
  75. popup = None
  76. globalTimer = 0
  77. checkNetworkFlag = True
  78. buzzerActive = False
  79.  
  80. serverOK = False
  81. # import wx
  82.  
  83. burglaryTimerList = []
  84.  
  85. globalUser = "smart"
  86.  
  87. globalIpAddress = None
  88. # englishLanguageDict = { "Timer": "Timer", "Ethernet": "Ethernet", "and": "and", "Wifi": "WiFi",
  89. # "Settings": "Settings", "Server": "Server", "Security": "Security",
  90. # "Radio": "Radio", "Alarm": "Alarm", "Types": "Types",
  91. # "Firmware": "Firmware", "Mail": "Mail", "Clock": "Clock",
  92. # "Date": "Date", "Burglary": "Burglary", "Language": "Language"}
  93.  
  94.  
  95.  
  96. class Test(TabbedPanel):
  97. ip = ObjectProperty(None)
  98. gateway = ObjectProperty(None)
  99. netmask = ObjectProperty(None)
  100. password = ObjectProperty(None)
  101. checkbox = ObjectProperty(None)
  102.  
  103. def ModifyPasswordtext(self,text):
  104. pass
  105.  
  106.  
  107. def __init__(self,**kwargs):
  108. super(Test,self).__init__(**kwargs)
  109. self.do_default_tab = False
  110.  
  111. class AlarmScreen(Screen):
  112. burglaryCheckBox = ObjectProperty()
  113. screenLabel = ObjectProperty()
  114. flameText = ObjectProperty()
  115. burglaryText = ObjectProperty()
  116. waterText = ObjectProperty()
  117. gasText = ObjectProperty()
  118.  
  119. def __init__(self, **kwargs):
  120. super(AlarmScreen, self).__init__(**kwargs)
  121. self.objectList = [self.screenLabel, self.flameText, self.burglaryText,
  122. self.waterText, self.gasText]
  123.  
  124. # self.conversion = LanguageConversion(objectList=self.objectList)
  125.  
  126.  
  127. class Calendar(CalendarWidget):
  128. def __init__(self, **kwargs):
  129. print "CHALA CHAL"
  130. super(Calendar,self).__init__(**kwargs)
  131.  
  132. def get_btn_value(self, inst):
  133. CalendarWidget.get_btn_value(self, inst)
  134. print "PRESSED"
  135. myAlarmAppObj.clockscreen.dateSet()
  136.  
  137. class SecurityScreen(Screen):
  138. screenLabel = ObjectProperty()
  139. changePinText = ObjectProperty()
  140. changeWebPinText = ObjectProperty()
  141.  
  142. def __init__(self, **kwargs):
  143. super(SecurityScreen, self).__init__(**kwargs)
  144. self.objectList = [self.screenLabel, self.changePinText, self.changeWebPinText]
  145. # self.conversion = LanguageConversion(objectList=self.objectList)
  146.  
  147.  
  148. class ChangePinScreen(Screen):
  149. oldtext = ObjectProperty()
  150. newtext = ObjectProperty()
  151. confirmtext = ObjectProperty()
  152. screenLabel = ObjectProperty()
  153. oldTextLabel = ObjectProperty()
  154. newTextLabel = ObjectProperty()
  155. confirmTextLabel = ObjectProperty()
  156. saveText = ObjectProperty()
  157. clearText = ObjectProperty()
  158.  
  159. def __init__(self, **kwargs):
  160. super(ChangePinScreen, self).__init__(**kwargs)
  161. self.objectList = [self.screenLabel, self.oldTextLabel, self.newTextLabel,
  162. self.confirmTextLabel, self.saveText, self.clearText]
  163. # self.conversion = LanguageConversion(objectList=self.objectList)
  164.  
  165.  
  166.  
  167. class ChangeWebPinScreen(Screen):
  168. oldtext = ObjectProperty()
  169. newtext = ObjectProperty()
  170. confirmtext = ObjectProperty()
  171.  
  172. screenLabel = ObjectProperty()
  173. oldTextLabel = ObjectProperty()
  174. newTextLabel = ObjectProperty()
  175. confirmTextLabel = ObjectProperty()
  176. saveText = ObjectProperty()
  177. clearText = ObjectProperty()
  178.  
  179. def __init__(self, **kwargs):
  180. super(ChangeWebPinScreen, self).__init__(**kwargs)
  181. self.objectList = [self.screenLabel, self.oldTextLabel, self.newTextLabel,
  182. self.confirmTextLabel, self.saveText, self.clearText]
  183.  
  184. def changeWebPassword(self):
  185. global globalUser
  186. # oldWebPassword = getWebPassword("test")
  187. # if oldWebPassword == self.oldtext.text:
  188. # self.npwd = self.newtext
  189. # self.npwd1 = self.confirmtext
  190. print self.oldtext.text, self.newtext.text, self.confirmtext.text
  191. if self.oldtext.text == self.newtext.text:
  192. content = BoxLayout(orientation='vertical')#, on_touch_down=self.dismiss_popup)
  193. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  194. content_label = Label(text="Password must differ from Old Password !!!")
  195. content.add_widget(content_label)
  196. content.add_widget(content_cancel)
  197.  
  198. popup = Popup(title='Error',
  199. size_hint=(None, None), size=(400, 200),
  200. content=content, disabled=False, auto_dismiss=True)
  201. content_cancel.bind(on_release=popup.dismiss)
  202. ########################################################################
  203. ### LANGUAGE HANDLING ###
  204. #########################
  205. conversion = LanguageConversion()
  206. if myAlarmAppObj.language.lspnr.text == "English":
  207. languageDict = conversion.englishLanguageDict
  208. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  209. languageDict = conversion.norwainLanguageDict
  210.  
  211. objectList = [content_label, content_cancel, popup]
  212. conversion.languageConversion(objectList, languageDict)
  213.  
  214. #########################################################################
  215. popup.open()
  216. self.ClearAll()
  217. return
  218.  
  219. elif len(self.newtext.text) < 4:
  220. content = BoxLayout(orientation='vertical')#, on_touch_down=self.dismiss_popup)
  221. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  222. content_label = Label(text='Password must be at least four characters long!!!')
  223. content.add_widget(content_label)
  224. content.add_widget(content_cancel)
  225. popup = Popup(title='Error',
  226. size_hint=(None, None), size=(400, 200),
  227. content=content, disabled=False, auto_dismiss=True)
  228. content_cancel.bind(on_release=popup.dismiss)
  229.  
  230. ########################################################################
  231. ### LANGUAGE HANDLING ###
  232. #########################
  233. conversion = LanguageConversion()
  234. if myAlarmAppObj.language.lspnr.text == "English":
  235. languageDict = conversion.englishLanguageDict
  236. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  237. languageDict = conversion.norwainLanguageDict
  238.  
  239. objectList = [content_label, content_cancel, popup]
  240. conversion.languageConversion(objectList, languageDict)
  241.  
  242. #########################################################################
  243.  
  244. popup.open()
  245. self.ClearAll()
  246.  
  247. return
  248.  
  249. elif self.newtext.text != self.confirmtext.text:
  250. content = BoxLayout(orientation='vertical')#, on_touch_down=self.dismiss_popup)
  251. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  252. content_label = Label(text="Password didn't match!!! Try Again")
  253. content.add_widget(content_label)
  254. content.add_widget(content_cancel)
  255. popup = Popup(title='Error',
  256. size_hint=(None, None), size=(400, 200),
  257. content=content, disabled=False, auto_dismiss=True)
  258. content_cancel.bind(on_release=popup.dismiss)
  259.  
  260. ########################################################################
  261. ### LANGUAGE HANDLING ###
  262. #########################
  263. conversion = LanguageConversion()
  264. if myAlarmAppObj.language.lspnr.text == "English":
  265. languageDict = conversion.englishLanguageDict
  266. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  267. languageDict = conversion.norwainLanguageDict
  268.  
  269. objectList = [content_label, content_cancel, popup]
  270. conversion.languageConversion(objectList, languageDict)
  271.  
  272. #########################################################################
  273.  
  274. popup.open()
  275. self.ClearAll()
  276. return
  277.  
  278.  
  279. try:
  280. passwordStatus = updatePassword(self.oldtext.text, self.newtext.text, globalUser)
  281. print "passwordStatus: ", passwordStatus
  282. if passwordStatus == "Invalid old password":
  283. myAlarmAppObj.errorPopup("Invalid Password")
  284. return
  285. except:
  286. myAlarmAppObj.errorPopup("Check you Internet Connection")
  287. return
  288. # return
  289. # self.update_Details(self.npwd)
  290. # self.get_password_from_db()
  291.  
  292. myAlarmAppObj.root.current = "securityscreen"
  293. self.ClearAll()
  294.  
  295. # else:
  296. # content = BoxLayout(orientation='vertical', on_touch_down=self.dismiss_popup)
  297. # content_cancel = Button(text='OK', size_hint_y=None, height=40)
  298. # content_label = Label(text="Password didn't match!!! Try Again")
  299. # content.add_widget(content_label)
  300. # content.add_widget(content_cancel)
  301. # popup = Popup(title='Error',
  302. # size_hint=(None, None), size=(400, 200),
  303. # content=content, disabled=False, auto_dismiss=True)
  304. # content_cancel.bind(on_release=popup.dismiss)
  305. #
  306. # ########################################################################
  307. # ### LANGUAGE HANDLING ###
  308. # #########################
  309. # conversion = LanguageConversion()
  310. # if myAlarmAppObj.language.lspnr.text == "English":
  311. # languageDict = conversion.englishLanguageDict
  312. # elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  313. # languageDict = conversion.norwainLanguageDict
  314. #
  315. # objectList = [content_label, content_cancel, popup]
  316. # conversion.languageConversion(objectList, languageDict)
  317. #
  318. # #########################################################################
  319. #
  320. # popup.open()
  321. # self.ClearAll()
  322.  
  323. def dismiss_popup(self):
  324. popup.dismiss()
  325.  
  326. def ClearAll(self):
  327. self.oldtext.text = self.newtext.text = self.confirmtext.text = ""
  328.  
  329. class EthernetandSettings(Screen):
  330. pass
  331.  
  332. class ServerSettings(Screen):
  333. screenLabel = ObjectProperty()
  334. macAddressTextLabel = ObjectProperty()
  335. serverAddressTextLabel = ObjectProperty()
  336. passwordTextLabel = ObjectProperty()
  337. testServerText = ObjectProperty()
  338.  
  339. serverAddressText = ObjectProperty()
  340. passwordText = ObjectProperty()
  341.  
  342. def __init__(self, **kwargs):
  343. global serverOK
  344. super(ServerSettings, self).__init__(**kwargs)
  345. self.objectList = [self.screenLabel, self.macAddressTextLabel, self.serverAddressTextLabel,
  346. self.passwordTextLabel, self.testServerText]
  347. if serverOK:
  348. self.testServerText.text = "Connected"
  349. db = MySQLdb.connect("127.0.0.1", "root", "1234", "appdb")
  350. cursor = db.cursor()
  351. cursor.execute("SELECT * from serverTable")
  352. data = cursor.fetchone()
  353. # print "SERVER ALL", data
  354. db.close()
  355. self.serverAddressText.text = data[1]
  356. self.passwordText.text = data[2]
  357.  
  358.  
  359. def testServer(self):
  360. global serverOK
  361. serverAddress = self.serverAddressText.text
  362. password = self.passwordText.text
  363.  
  364. print "serverAddress: %s, password: %s" % (serverAddress, password)
  365.  
  366. serverStatus = verifyClient(serverAddress, password)
  367.  
  368. print "serverStatus: ", serverStatus
  369.  
  370. if serverStatus == "success":
  371. serverOK = True
  372. self.changeServerStatus()
  373. self.testServerText.text = "Connected"
  374. elif serverStatus == "fail":
  375. myAlarmAppObj.errorPopup("Invalid Credentials")
  376.  
  377. elif serverStatus == "serverFailure":
  378. myAlarmAppObj.errorPopup("Check you Internet Connection")
  379.  
  380.  
  381. def changeServerStatus(self):
  382. db = MySQLdb.connect("127.0.0.1", "root", "1234", "appdb")
  383. cursor = db.cursor()
  384. cursor.execute("UPDATE serverTable SET connected=1 WHERE connected=0")
  385. cursor.execute("UPDATE serverTable SET serverAddress='%s' WHERE connected=1" % (self.serverAddressText.text))
  386. cursor.execute("UPDATE serverTable SET password='%s' WHERE connected=1" % (self.passwordText.text))
  387. db.commit()
  388. db.close()
  389.  
  390. class RadioScreen(Screen):
  391. pass
  392.  
  393. class FirmwareScreen(Screen):
  394.  
  395. firmwareVersion = ObjectProperty()
  396. downloadComplete = False
  397.  
  398. screenLabel = ObjectProperty()
  399. checkUpdatesText = ObjectProperty()
  400.  
  401.  
  402. def __init__(self, **kwargs):
  403. super(FirmwareScreen,self).__init__(**kwargs)
  404. self.version = self.checkVersion()
  405. # with open("version.txt") as f:
  406. # self.version = f.read()
  407. self.firmwareVersion.text += self.version
  408. print "self.firmwareVersion.text 1", self.firmwareVersion.text
  409.  
  410. self.objectList = [self.screenLabel, self.firmwareVersion, self.checkUpdatesText]
  411. self.updater = False
  412.  
  413. def checkVersion(self):
  414. db = MySQLdb.connect("127.0.0.1", "root", "1234", "appdb")
  415. cursor = db.cursor()
  416. cursor.execute("SELECT * from versionTable")
  417. data = cursor.fetchone()[0]
  418. # print "Version", data
  419. db.close()
  420. return data
  421.  
  422. def updateVersionInDatabase(self):
  423. db = MySQLdb.connect("127.0.0.1", "root", "1234", "appdb")
  424. cursor = db.cursor()
  425. cursor.execute("UPDATE versionTable SET version='%s' WHERE version='%s'" % (self.newVersion, self.version))
  426. db.commit()
  427. # print "Version", data
  428.  
  429. db.close()
  430.  
  431.  
  432. def downloadingUpdate(self):
  433. # newVersionFound = False
  434. versionCommand = commands.getoutput("wget http://www.lelodelo.co.nf/versionUpdate.txt || echo 'ERROR'")[-5:]
  435. # print "versionCommand: ", versionCommand
  436. if versionCommand == "ERROR":
  437. self.downloadComplete = True
  438. popup.title = "Download Failed"
  439. self.content_label.text = "Check your Internet Connection."
  440. self.content_cancel.text = "Finish"
  441. return
  442. else:
  443. with open("versionUpdate.txt") as f:
  444. self.newVersion = f.read()
  445.  
  446. print "newVersion:", self.newVersion, self.version
  447. if self.newVersion == self.version:
  448. self.downloadComplete = True
  449. popup.title = "Download Complete"
  450. self.content_label.text = "Software is Up to Date"
  451. self.content_cancel.text = "Finish"
  452. commands.getoutput("rm versionUpdate.txt")
  453. return
  454.  
  455. elif "<html>" in self.newVersion:
  456. self.downloadComplete = True
  457. popup.title = "Error"
  458. self.content_label.text = "Download Error"
  459. self.content_cancel.text = "Finish"
  460. return
  461.  
  462. a = commands.getoutput("wget http://www.lelodelo.co.nf/python123.tar || echo 'ERROR'")[-5:]
  463.  
  464. if a == "ERROR":
  465. self.downloadComplete = True
  466. popup.title = "Download Failed"
  467. self.content_label.text = "Check your Internet Connection"
  468. self.content_cancel.text = "Finish"
  469.  
  470. else:
  471. self.downloadComplete = True
  472. self.content_label.text = "Download Complete."
  473. self.content_cancel.text = "Reboot"
  474. commands.getoutput("tar -xvf python123.tar")
  475. commands.getoutput("rm python123.tar")
  476.  
  477. # with open("version.txt", 'w') as f:
  478. # f.write(self.newVersion)
  479. self.updateVersionInDatabase()
  480. commands.getoutput("rm versionUpdate.txt")
  481.  
  482. # self.firmwareVersion.text = self.firmwareVersion.text.split('[/b]')[0] + '[/b]' + self.newVersion
  483. # self.firmwareVersion.text = self.firmwareVersion.text[:-len(self.version)] + newVersion
  484. # print "self.firmwareVersion.text 2", self.firmwareVersion.text
  485.  
  486. def checkUpdates(self):
  487.  
  488. def updatingLabel():
  489. # print "ENTERED"
  490. while not self.downloadComplete:
  491. for i in range(6):
  492. if self.downloadComplete:
  493. print "THREAD OVER"
  494. self.updater = True
  495. break
  496. self.content_label.text = "Downloading " + "."*i
  497. time.sleep(0.8)
  498.  
  499. def langUpdater():
  500. while not self.updater:
  501. # print "RUNNING"
  502. ########################################################################
  503. ### LANGUAGE HANDLING ###
  504. #########################
  505. conversion = LanguageConversion()
  506. if myAlarmAppObj.language.lspnr.text == "English":
  507. languageDict = conversion.englishLanguageDict
  508. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  509. languageDict = conversion.norwainLanguageDict
  510.  
  511. objectList = [self.content_label, self.content_cancel, popup]
  512. conversion.languageConversion(objectList, languageDict)
  513.  
  514. #########################################################################
  515.  
  516. global popup
  517. content = BoxLayout(orientation='vertical')
  518. self.content_cancel = Button(text='Cancel', size_hint_y=None, height=40)
  519. self.content_label = Label(text='Downloading')#, pos=(0,0), background_color=(0.7,0.7,1,1))
  520. self.content_cancel.bind(on_release=self.popupDismiss)
  521. # with open("version.txt") as f:
  522. # self.version = f.read()
  523.  
  524. print self.version
  525. content.add_widget(self.content_label)
  526. content.add_widget(self.content_cancel)
  527. popup = Popup(title='Checking For Updates',
  528. size_hint=(None, None), size=(300, 200),
  529. content=content, disabled=False, auto_dismiss=False)
  530. threading.Thread(target=updatingLabel).start()
  531. threading.Thread(target=self.downloadingUpdate).start()
  532. threading.Thread(target=langUpdater).start()
  533.  
  534.  
  535. popup.open()
  536.  
  537. def popupDismiss(self, e):
  538. global popup
  539. popup.dismiss()
  540. self.downloadComplete = True
  541.  
  542.  
  543. class MailScreen(Screen):
  544. pass
  545.  
  546. class BurglaryAlarm(Screen):
  547. pass
  548.  
  549. class LanguageScreen(Screen):
  550. screenLabel = ObjectProperty()
  551. lspnr = ObjectProperty()
  552.  
  553. def __init__(self, **kwargs):
  554. super(LanguageScreen, self).__init__(**kwargs)
  555. self.objectList = [self.screenLabel]
  556.  
  557.  
  558. class Screen_Manager(ScreenManager):
  559. pass
  560.  
  561. class EthernetWifi(Screen):
  562. ipg = ObjectProperty()
  563. screenLabel = ObjectProperty()
  564. wifiText = ObjectProperty()
  565. ethernetText = ObjectProperty()
  566.  
  567. def __init__(self, **kwargs):
  568. super(EthernetWifi, self).__init__(**kwargs)
  569. self.objectList = [self.screenLabel, self.wifiText, self.ethernetText]
  570.  
  571.  
  572. class WifiLabel(BoxLayout):
  573. pressed = ListProperty([0, 0])
  574.  
  575. def on_touch_down(self, touch):
  576. if self.collide_point(*touch.pos):
  577. self.pressed = touch.pos
  578. # # we consumed the touch. return False here to propagate
  579. # # the touch further to the children.
  580. return True
  581. return super(WifiLabel, self).on_touch_down(touch)
  582.  
  583. class WifiScreen(Screen):
  584. global alive
  585. # awai = ObjectProperty()
  586. switchwifi = ObjectProperty()
  587. wifilayout = ObjectProperty()
  588. screenLabel = ObjectProperty()
  589. #isme wifilayout ka objectproperty bnake use krna h bad me
  590.  
  591. def __init__(self, **kwargs):
  592. super(WifiScreen, self).__init__(**kwargs)
  593. self.objectList = [self.screenLabel]
  594.  
  595. def offRefresh(self):
  596. alive = False
  597. ## Clock.unschedule(myAlarmAppObj.refresh)
  598. # pass
  599.  
  600. class EthernetScreen(Screen):
  601. screenLabel = ObjectProperty()
  602.  
  603. def __init__(self, **kwargs):
  604. super(EthernetScreen, self).__init__(**kwargs)
  605. self.objectList = [self.screenLabel]
  606.  
  607.  
  608. class ScreenSaver(Screen):
  609. radius = NumericProperty(64)
  610.  
  611. class WifiIcon(ButtonBehavior, Image):
  612. pass
  613.  
  614. class ManualButton(ButtonBehavior, Image):
  615. pass
  616.  
  617. class ShieldButton(ButtonBehavior, Image):
  618. pass
  619.  
  620. class SettingButton(ButtonBehavior, Image):
  621. pass
  622.  
  623. class LiveAlarmScreen(Screen):
  624. alarmTypeText = ObjectProperty()
  625. cancelAlarmText = ObjectProperty()
  626. locateIfFireText = ObjectProperty()
  627. falseAlarmText = ObjectProperty()
  628.  
  629. def __init__(self, **kwargs):
  630. super(LiveAlarmScreen, self).__init__(**kwargs)
  631. self.objectList = [self.alarmTypeText, self.cancelAlarmText, self.locateIfFireText]
  632.  
  633.  
  634. def CancelAlarm(self):
  635. print("Worked")
  636. myAlarmAppObj.cancel_alarm = True
  637. myAlarmAppObj.root.current = "passwordscreen"
  638.  
  639. def FalseAlarm(self):
  640. print ("FalseAlarm")
  641. myAlarmAppObj.false_alarm = True
  642. myAlarmAppObj.root.current = "passwordscreen"
  643.  
  644. class AssistAlarmScreen(Screen):
  645. alarmTypeText = ObjectProperty()
  646. cancelAlarmText = ObjectProperty()
  647.  
  648. alarmCancel = BooleanProperty(True)
  649.  
  650. def __init__(self, **kwargs):
  651. super(AssistAlarmScreen, self).__init__(**kwargs)
  652. self.objectList = [self.alarmTypeText, self.cancelAlarmText]
  653.  
  654. def setLabel(self, alaramType, nameOfPerson):
  655. self.alarmTypeText.text = alaramType + " er utlost hos " + nameOfPerson
  656.  
  657. def assistCancelThread(self):
  658. counter = 0
  659. while not self.alarmCancel:
  660. counter += 1
  661. # print "TIMER COUNTER", counter
  662. time.sleep(1)
  663. if counter == 100:
  664. os.system(
  665. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  666.  
  667. #################################################################
  668. ### checkNetworkAlarm Thread START ###
  669. ######################################
  670. threading.Thread(target=self.checkNetworkAlarms).start()
  671.  
  672. ##################################################################
  673.  
  674. myAlarmAppObj.root.current = "menuscreen"
  675.  
  676. break
  677.  
  678. def assistAlarmActive(self):
  679. os.system(
  680. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress))
  681.  
  682. self.alarmCancel = False
  683. myAlarmAppObj.lastscreen = "assistalarmscreen"
  684. threading.Thread(target=self.assistCancelThread).start()
  685.  
  686.  
  687. def CancelAlarm(self):
  688. print("Worked")
  689. # myAlarmAppObj.cancel_alarm = True
  690. myAlarmAppObj.root.current = "passwordscreen"
  691. self.ClearAll()
  692. # def FalseAlarm(self):
  693. # print ("FalseAlarm")
  694. # myAlarmAppObj.false_alarm = True
  695. # myAlarmAppObj.root.current = "passwordscreen"
  696.  
  697. def ClearAll(self):
  698. myAlarmAppObj.passwordscreen.ClearText()
  699.  
  700.  
  701. class IntInput(TextInput):
  702.  
  703. input_filter = 'int'
  704. def insert_text(self, substring, from_undo=False):
  705. # limit to 4 chars)
  706. substring = substring[:4 - len(self.text)]
  707. return super(IntInput, self).insert_text(substring, from_undo=from_undo)
  708.  
  709. class BurglaryAlarmScreen(Screen):
  710. burglarytimingslayout = ObjectProperty()
  711. counter = NumericProperty(0)
  712. timer = None
  713. screenLabel = ObjectProperty()
  714. addButtonText = ObjectProperty()
  715. fromTextLabel = ObjectProperty()
  716. toTextLabel = ObjectProperty()
  717. statusTextLabel = ObjectProperty()
  718.  
  719. def __init__(self, **kwargs):
  720. super(BurglaryAlarmScreen, self).__init__(**kwargs)
  721. self.objectList = [self.screenLabel, self.addButtonText, self.fromTextLabel,
  722. self.toTextLabel, self.statusTextLabel]
  723.  
  724. def addtimings(self, timer=None, edit=False):
  725. global popup
  726. content = RelativeLayout()
  727. save = Button(text='Save',pos_hint={'x':.05,'y':.15},size_hint=(.45,.3))
  728. cancel = Button(text='Cancel', pos_hint={'x':.5,'y':.15},size_hint=(.45,.3))
  729. fromLabel = Label(text= "From",pos_hint={'x':.1,'y':.7},size_hint=(.35,.25))
  730. self.fromInputText = IntInput(pos_hint={'x':.1,'y':.5},size_hint=(.35,.25))
  731. toLabel = Label(text= "To",pos_hint={'x':.55,'y':.7},size_hint=(.35,.25))
  732. self.toInputText =IntInput(pos_hint={'x':.55,'y':.5},size_hint=(.35,.25))
  733.  
  734. content.add_widget(save)
  735. content.add_widget(cancel)
  736. content.add_widget(fromLabel)
  737. content.add_widget(self.fromInputText)
  738. content.add_widget(toLabel)
  739. content.add_widget(self.toInputText)
  740.  
  741. if edit:
  742. self.timer = timer
  743. self.fromInputText.text = timer.fromTimeLabel.text
  744. self.toInputText.text = timer.toTimeLabel.text
  745.  
  746.  
  747. popup = Popup(title='Add',
  748. size_hint=(None, None), size=(300, 200),
  749. content=content, disabled=False, auto_dismiss=True)
  750. cancel.bind(on_release=popup.dismiss)
  751. save.bind(on_release = self.onSave)
  752.  
  753. ########################################################################
  754. ### LANGUAGE HANDLING ###
  755. #########################
  756. conversion = LanguageConversion()
  757. if myAlarmAppObj.language.lspnr.text == "English":
  758. languageDict = conversion.englishLanguageDict
  759. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  760. languageDict = conversion.norwainLanguageDict
  761.  
  762. objectList = [save, cancel, fromLabel, toLabel, popup]
  763. conversion.languageConversion(objectList, languageDict)
  764.  
  765.  
  766. #########################################################################
  767.  
  768. popup.open()
  769.  
  770.  
  771. def onSave(self,e):
  772. startAlarmTime = self.fromInputText.text
  773. endAlarmTime = self.toInputText.text
  774. try:
  775. startHr = int(self.fromInputText.text[0:2])
  776. startMin = int(self.fromInputText.text[2:4])
  777. endHr = int(self.toInputText.text[0:2])
  778. endMin = int(self.toInputText.text[2:4])
  779. except:
  780. popup.dismiss()
  781. myAlarmAppObj.errorPopup(errorMessage='Invalid Time ( Use 24hr Format )!!! Enter Again')
  782. return
  783.  
  784. timeError = True
  785. # print (0 <= startHr < 24), (0 <= endHr < 24), (0 <= startMin < 60), (0 <= endMin < 60)
  786.  
  787. if ((0 <= startHr < 24) and (0 <= endHr < 24)) and ((0 <= startMin < 60) and (0 <= endMin < 60)):
  788. timeError = False
  789.  
  790. if len(startAlarmTime) < 4 or len(endAlarmTime) < 4 or timeError:
  791. popup.dismiss()
  792. myAlarmAppObj.errorPopup(errorMessage='Invalid Time ( Use 24hr Format )!!! Enter Again')
  793. return
  794.  
  795. self.addBurglaryTimer(self.fromInputText.text,self.toInputText.text)
  796. popup.dismiss()
  797.  
  798.  
  799. def addBurglaryTimer(self,fromText,toText):
  800. global burglaryTimerList
  801. self.counter+=1
  802. if self.timer:
  803. self.timer.fromTimeLabel.text, self.timer.toTimeLabel.text = fromText, toText
  804. else:
  805. if self.counter<=5:
  806. btimer = BurglaryTimings(height='50dp',size_hint_y=None)
  807. btimer.fromTimeLabel.text,btimer.toTimeLabel.text = fromText,toText
  808.  
  809. ########################################################################
  810. ### LANGUAGE HANDLING ###
  811. #########################
  812. conversion = LanguageConversion()
  813. if myAlarmAppObj.language.lspnr.text == "English":
  814. languageDict = conversion.englishLanguageDict
  815. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  816. languageDict = conversion.norwainLanguageDict
  817.  
  818. conversion.languageConversion(btimer.objectList, languageDict)
  819.  
  820. self.objectList += btimer.objectList
  821. #########################################################################
  822.  
  823.  
  824. self.burglarytimingslayout.add_widget(btimer)
  825. burglaryTimerList.append(btimer)
  826. else:
  827. None
  828.  
  829. class BurglaryTimings(BoxLayout):
  830. fromTimeLabel = ObjectProperty()
  831. toTimeLabel = ObjectProperty()
  832. statusTimeLabel = ObjectProperty()
  833. alarmTimeCheckBox = ObjectProperty()
  834. editText = ObjectProperty()
  835. deleteText = ObjectProperty()
  836.  
  837. def __init__(self,**kwargs):
  838. super(BurglaryTimings,self).__init__(**kwargs)
  839. self.objectList = [self.statusTimeLabel, self.editText, self.deleteText]
  840.  
  841. def activeTimer(self):
  842. if self.alarmTimeCheckBox.active:
  843. self.statusTimeLabel.text = "Active"
  844. else:
  845. self.statusTimeLabel.text = "InActive"
  846.  
  847. def removeTimer(self):
  848. global burglaryTimerList
  849. myAlarmAppObj.burglaryalarmscreen.burglarytimingslayout.remove_widget(self)
  850. burglaryTimerList.remove(self)
  851.  
  852. def editTimer(self):
  853. myAlarmAppObj.burglaryalarmscreen.addtimings(timer=self, edit=True)
  854.  
  855.  
  856. class MyAlarmApp(App):
  857. ifvar = NumericProperty(1)
  858. elvar = NumericProperty(1)
  859. sstimer = NumericProperty(0)
  860. index = NumericProperty(-1)
  861. current_title = StringProperty()
  862. time = NumericProperty(0)
  863. screen_names = ListProperty([])
  864. hierarchy = ListProperty([])
  865. # clock
  866. clock = StringProperty('00:00')
  867. mytime = StringProperty("")
  868. hour_x = NumericProperty(0)
  869. hour_y = NumericProperty(0)
  870. minute_x = NumericProperty(0)
  871. minute_y = NumericProperty(0)
  872. second_x = NumericProperty(0)
  873. second_y = NumericProperty(0)
  874. digit_x = [None]
  875. digit_y = [None]
  876. ManualActive = BooleanProperty(False)
  877.  
  878. manualsignal = BooleanProperty(False)
  879. settingsignal = BooleanProperty(False)
  880. pwd = StringProperty("")
  881. enteredpwd = StringProperty("")
  882. oldtext = StringProperty("")
  883. newtext = StringProperty("")
  884. confirmtext = StringProperty("")
  885. OldTextActive = BooleanProperty(False)
  886. NewTextActive = BooleanProperty(False)
  887. ConfirmTextActive = BooleanProperty(False)
  888. on_off = StringProperty("Off")
  889. alarmisactive = BooleanProperty(False)
  890. t = NumericProperty(0)
  891. cancel_alarm = BooleanProperty(False)
  892. false_alarm = BooleanProperty(False)
  893.  
  894. burglarycancelButton=BooleanProperty(False)
  895. burglarycancelButton1 = BooleanProperty(False)
  896.  
  897. firecancelButton = BooleanProperty(False)
  898. firecancelButton1 = BooleanProperty(False)
  899.  
  900. floodcancelButton = BooleanProperty(False)
  901. floodcancelButton1 = BooleanProperty(False)
  902.  
  903. smokecancelButton = BooleanProperty(False)
  904. smokecancelButton1 = BooleanProperty(False)
  905.  
  906. alarm_type_text = StringProperty("")
  907. DeactivateFireSiren = BooleanProperty()
  908. DeactivateBurglarySiren = ()
  909. lastscreen = StringProperty("menuscreen")
  910.  
  911.  
  912. burglaryOn = False
  913. burglaryOff = True
  914. burglaryFound = False
  915. burglaryTimer = 0
  916.  
  917. flameOn = False
  918. flameOff = True
  919. fireFound = False
  920. fireTimer = 0
  921.  
  922. floodOn = False
  923. floodOff = True
  924. floodFound = False
  925. floodTimer = 0
  926.  
  927. smokeOn = False
  928. smokeOff = True
  929. smokeFound = False
  930. smokeTimer = 0
  931.  
  932.  
  933. def __init__(self, **kwargs):
  934. global serverOK
  935. super(MyAlarmApp, self).__init__(**kwargs)
  936.  
  937.  
  938. def checkServerConnection(self):
  939. db = MySQLdb.connect("127.0.0.1", "root", "1234", "appdb")
  940. cursor = db.cursor()
  941. cursor.execute("SELECT connected from serverTable")
  942. data = cursor.fetchone()[0]
  943. # print "SERVER STATUS", data
  944. db.close()
  945. if data == 1:
  946. return True
  947.  
  948. return False
  949.  
  950. def on_stop(self):
  951. Clock.unschedule(self.start_timer)
  952. Clock.unschedule(self.update_clock)
  953.  
  954. global stop
  955. stop.set()
  956.  
  957. def resetTimer(self):
  958. self.sstimer = 0
  959.  
  960. def settingUpDatabase(self):
  961. db = MySQLdb.connect("127.0.0.1", "root", "1234")
  962. cursor = db.cursor()
  963. try:
  964. cursor.execute('create database appdb')
  965. except:
  966. None
  967. cursor.execute('use appdb')
  968.  
  969. try:
  970. cursor.execute("CREATE TABLE webtable(webpwd VARCHAR(10) NOT NULL)")
  971. cursor.execute("INSERT INTO webtable VALUES(1234)")
  972. except:
  973. None
  974.  
  975. try:
  976. cursor.execute("CREATE TABLE serverTable(connected INT(1) NOT NULL, "
  977. "serverAddress VARCHAR(30) NULL, password VARCHAR(30) NULL)")
  978. cursor.execute("INSERT INTO serverTable(connected) VALUES(0)")
  979. except:
  980. None
  981.  
  982. try:
  983. cursor.execute("CREATE TABLE versionTable(version VARCHAR(30) NOT NULL)")
  984. cursor.execute("INSERT INTO versionTable(version) VALUES('ac0.v1')")
  985. except:
  986. None
  987. db.commit()
  988. db.close()
  989.  
  990. def build(self):
  991. global serverOK, globalIpAddress
  992.  
  993. self.settingUpDatabase()
  994.  
  995.  
  996. self.get_details()
  997. self.get_password_from_db()
  998. serverOK = self.checkServerConnection()
  999.  
  1000. # calculate digit positions for analog clock
  1001. for i in range(1, 13):
  1002. self.digit_x.append(cos((3 - i) * 30 * pi / 180.0))
  1003. self.digit_y.append(sin((3 - i) * 30 * pi / 180.0))
  1004.  
  1005. Clock.schedule_interval(self.start_timer, 1)
  1006. Clock.schedule_interval(self.update_clock,1)
  1007. # Clock.schedule_interval(self.activateAlarm,1)
  1008. # self.activateAlarm()
  1009.  
  1010. #################################################################
  1011. ### checkNetworkAlarm Thread START ###
  1012. ######################################
  1013. threading.Thread(target=self.checkNetworkAlarms).start()
  1014.  
  1015. ##################################################################
  1016.  
  1017. ####ScreenManager###########
  1018. sm = Screen_Manager()
  1019. self.passwordscreen = PasswordScreen(name='passwordscreen')
  1020. self.menuscreen = MenuScreen(name='menuscreen')
  1021. self.settingscreen = SettingScreen(name='settingscreen')
  1022. self.alarmscreen = AlarmScreen(name='alarmscreen')
  1023. self.securityscreen = SecurityScreen(name='securityscreen')
  1024. self.changepinscreen = ChangePinScreen(name='changepinscreen')
  1025. self.changewebpinscreen = ChangeWebPinScreen(name='changewebpinscreen')
  1026. self.clockscreen = ClockScreen(name="clockscreen")
  1027. self.ethernetwifi = EthernetWifi(name="ethernetwifi")
  1028. self.wifiscreen = WifiScreen(name="wifiscreen")
  1029. self.ethernetscreen = EthernetScreen(name="ethernetscreen")
  1030. self.language = LanguageScreen(name="language")
  1031. self.screensaver = ScreenSaver(name="screensaver")
  1032. self.serversettings = ServerSettings(name="serversettings")
  1033. self.firmwarescreen = FirmwareScreen(name="firmwarescreen")
  1034. self.livealarmscreen = LiveAlarmScreen(name='livealarmscreen')
  1035. self.assistalarmscreen = AssistAlarmScreen(name='assistalarmscreen')
  1036. self.burglaryalarmscreen = BurglaryAlarmScreen(name="burglaryalarmscreen")
  1037.  
  1038. screens = [self.passwordscreen, self.menuscreen, self.settingscreen, self.alarmscreen,
  1039. self.securityscreen, self.changepinscreen, self.changewebpinscreen, self.clockscreen, self.ethernetscreen,
  1040. self.ethernetwifi, self.wifiscreen, self.language, self.screensaver,
  1041. self.serversettings, self.firmwarescreen,self.livealarmscreen, self.assistalarmscreen,
  1042. self.burglaryalarmscreen]
  1043.  
  1044. if globalIpAddress != "None":
  1045. print "globalIpAddress:", globalIpAddress
  1046. self.menuscreen.wifiImage.source = "images/wifiOn.jpg"
  1047. self.wifiscreen.switchwifi.active = True
  1048.  
  1049. for screen in screens:
  1050. sm.add_widget(screen)
  1051.  
  1052. return sm
  1053.  
  1054. def fetchDevices(self):
  1055. print "FETCHING DEVICES"
  1056. self.sirenId, self.flameId, self.burglaryId, self.floodId, self.smokeId = fetchingDevices(globalIpAddress)
  1057.  
  1058. def get_details(self):
  1059. global globalIpAddress
  1060. self.macAddress = commands.getoutput("cat /sys/class/net/eth0/address")
  1061. self.ethstatus = commands.getoutput("cat /sys/class/net/eth0/carrier")
  1062. self.wifimacaddress = commands.getoutput("cat /sys/class/net/wlan0/address")
  1063. # print self.ethstatus,self.macAddress,self.wifimacaddress
  1064.  
  1065. try:
  1066. self.ipAddress = commands.getoutput("ifconfig").split("wlan0")[1].split("\n")[1].split()[1][5:]
  1067. except:
  1068. self.ipAddress = "None"
  1069.  
  1070. # self.ethIpAddress = commands.getoutput("ifconfig").split("eth0")[1].split("\n")[1].split()[1][5:]
  1071.  
  1072. self.ethIpAddress = "CAST"
  1073. ##########################################################
  1074. ### CHECKING IF NOT CONNECTED ###
  1075. #################################
  1076. if self.ipAddress == "CAST":
  1077. self.ipAddress = "None"
  1078. if self.ethIpAddress == "CAST":
  1079. self.ethIpAddress = "None"
  1080.  
  1081. if self.ethIpAddress != "None":
  1082. globalIpAddress = self.ethIpAddress
  1083. elif self.ipAddress != "None":
  1084. globalIpAddress = self.ipAddress
  1085.  
  1086. ##########################################################
  1087.  
  1088. globalIpAddress = "192.168.1.5"#self.ipAddress
  1089.  
  1090. ##############################################################
  1091. ### FETCHING IDS OF SENSORS ###
  1092. ###############################
  1093. # self.fetchDevices()
  1094. threading.Thread(target=self.fetchDevices).start()
  1095. ###############################################################
  1096.  
  1097.  
  1098. print self.ipAddress, self.ethIpAddress
  1099.  
  1100. def checkalarm(self,d):
  1101. if self.alarmisactive:
  1102. print("type of alarm")
  1103. Clock.unschedule(self.checkalarm)
  1104. self.alarmtimer()
  1105.  
  1106. def alarmtimer(self):
  1107. Clock.schedule_interval(self.timer,1)
  1108.  
  1109. def timezonefunc(self,zone):
  1110. commands.getoutput("sudo timedatectl set-timezone %s" % (zone))
  1111. # self.tzone = datetime.now(timezone('UTC')).astimezone(timezone(zone))
  1112. # self.tzone = self.tzone.strftime(self.tzone)
  1113.  
  1114. def refresh(self):
  1115. #jawla bhai ya pe tujhe aise wifi search krna h jaise ubuntu krta h
  1116. cell = Cell.all('wlan0')
  1117. self.wifilayout.clear_widgets()
  1118. # print cell
  1119. # print "sud"
  1120.  
  1121. for c in cell:
  1122. # wifinamelist.append(c.ssid)
  1123. # print c.ssid,c
  1124. self.networkButton = ssidButton(text=c.ssid, cellname = c, height=50, bold =True,size_hint_y=None,background_color=(0.7,0.7,1,1))#,on_release=self.ssidclicked))
  1125. self.wifilayout.add_widget(self.networkButton)
  1126.  
  1127. def wifi_on(self):
  1128. global alive
  1129. switch = self.wifiscreen.switchwifi
  1130. self.wifilayout = self.wifiscreen.wifilayout
  1131. # wifi_label = self.root.ids.wifi_label
  1132.  
  1133.  
  1134. wifinamelist = []
  1135. if switch.active:
  1136. ## self.refresh()
  1137. alive = True
  1138. def A():
  1139. global alive
  1140. while alive:
  1141. self.refresh()
  1142. time.sleep(5)
  1143.  
  1144. if alive:
  1145. thread = threading.Thread(target= A)
  1146. thread.daemon = True
  1147. thread.start()
  1148.  
  1149. # self.refresh(None)
  1150. # Clock.schedule_interval(self.refresh, 5)
  1151. # self.on_off = "On"
  1152. # cell = Cell.all('wlan0')
  1153. #
  1154. #
  1155. # for c in cell:
  1156. # # wifinamelist.append(c.ssid)
  1157. # self.wifilayout.add_widget(ssidButton(text=c.ssid, cellname = c,height=50,size_hint_y=None,background_color=(0.9411,0.9725,1,1)))#,on_release=self.ssidclicked))
  1158. else:
  1159. # Clock.unschedule(self.refresh)
  1160. alive = False
  1161. # self.on_off = "Off"
  1162. self.wifilayout.clear_widgets()
  1163. # wifi_label.text = on_off
  1164.  
  1165. def exit(self):
  1166. global stopper, activateThread, stop, alive, checkNetworkFlag
  1167. stopper=True
  1168. alive = False
  1169. checkNetworkFlag = False
  1170. myAlarmAppObj.DeactivateFireSiren = True
  1171. myAlarmAppObj.DeactivateBurglarySiren = True
  1172. myAlarmAppObj.DeactivateFloodSiren = True
  1173. myAlarmAppObj.DeactivateSmokeSiren = True
  1174. # cleanup_stop_thread()
  1175. # activateThread.__stop()
  1176.  
  1177. # stop.set()
  1178. exit()
  1179.  
  1180. def burglaryTimerChecker(self):
  1181. global burglaryTimerList
  1182. currentTime = datetime.now().strftime("%H%M%S")
  1183. for timer in burglaryTimerList:
  1184. startTime = timer.fromTimeLabel.text + "00"
  1185. endTime = timer.toTimeLabel.text + "00"
  1186. # print currentTime, startTime, currentTime == startTime
  1187. if currentTime == startTime and timer.statusTimeLabel.text == "Active":
  1188. myAlarmAppObj.alarmscreen.burglaryCheckBox.active = True
  1189. elif currentTime == endTime and timer.statusTimeLabel.text == "Active":
  1190. myAlarmAppObj.alarmscreen.burglaryCheckBox.active = False
  1191.  
  1192.  
  1193. def checkNetworkAlarms(self):
  1194. global globalUser, checkNetworkFlag
  1195. # time.sleep(5)
  1196. while checkNetworkFlag:
  1197. alarmInfo = fetchAlarm(globalUser)
  1198. # print "alarmInfo:", alarmInfo
  1199. try:
  1200. dictAlarmInfo = json.loads(alarmInfo)[0]
  1201. # print "dictAlarmInfo", json.loads(alarmInfo)
  1202. self.fetchUserId = dictAlarmInfo['user_id']
  1203. self.fetchUserName = dictAlarmInfo['user_name']
  1204. if self.fetchUserId == globalUser:
  1205. continue
  1206. self.fetchAlarmId = dictAlarmInfo['alarm_id']
  1207. self.fetchAlarmType = dictAlarmInfo['type']
  1208. self.fetchTime = dictAlarmInfo['time']
  1209. self.fetchPhoneNumber = dictAlarmInfo['phone_number']
  1210. self.fetchAddress = dictAlarmInfo['address']
  1211.  
  1212. self.assistalarmscreen.setLabel(self.fetchAlarmType, self.fetchUserName)
  1213.  
  1214. self.assistalarmscreen.assistAlarmActive()
  1215. print ("UserID: %s, UserName: %s, AlarmID: %s, \nAlarmType: %s, AlarmTime: %s, \nPhoneNumber: %s, Address: %s") % \
  1216. (self.fetchUserId, self.fetchUserName, self.fetchAlarmId, self.fetchAlarmType, self.fetchTime, self.fetchPhoneNumber, self.fetchAddress)
  1217.  
  1218. myAlarmAppObj.root.current = "assistalarmscreen"
  1219. break
  1220. except:
  1221. continue
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227. def update_clock(self,dt):
  1228. # " "+time.strftime("%H:%M:%S")+"\n"+time.strftime("%d.%m.%Y")
  1229.  
  1230. # def update_all_steady(dt):
  1231. global stop
  1232. self.mytime = time.asctime()
  1233. # clock
  1234. clock = datetime.now().strftime("%H:%M:%S")+"\n"+datetime.now().strftime("%d.%m.%Y")
  1235. now = datetime.now()
  1236. if clock != self.clock:
  1237. self.clock = " " +now.strftime("%H:%M:%S")+"\n"+now.strftime("%d.%m.%Y")
  1238. self.hour_x = cos((30 * (3 - ((now.hour + now.minute / 60.0) % 12)) + 360) * pi / 180.0)
  1239. self.hour_y = sin((30 * (3 - ((now.hour + now.minute / 60.0) % 12)) + 360) * pi / 180.0)
  1240. self.minute_x = cos((6 * (15 - now.minute - now.second / 60.0) + 360) * pi / 180.0)
  1241. self.minute_y = sin((6 * (15 - now.minute - now.second / 60.0) + 360) * pi / 180.0)
  1242. self.second_x = cos((6 * (15 - now.second) + 360) * pi / 180.0)
  1243. self.second_y = sin((6 * (15 - now.second) + 360) * pi / 180.0)
  1244.  
  1245. # print self.clock
  1246. self.burglaryTimerChecker()
  1247.  
  1248. # self.checkNetworkAlarms()
  1249.  
  1250. # while True:
  1251. # if stop.is_set():
  1252. # return
  1253. # time.sleep(1)
  1254. # update_all_steady()
  1255. # Clock.schedule_once(update_all_steady, 1)
  1256. #
  1257. # Clock.schedule_once(update_all_steady)
  1258.  
  1259. def validate_password(self):
  1260. global popup
  1261.  
  1262. def activatingAlarmThread(label):
  1263. if serverOK:
  1264. self.alarmID = activateAlarm(globalUser, datetime.now().strftime("%d-%m-%Y %H:%M:%S"), label)
  1265.  
  1266. if self.passwordscreen.entrypwd.text == self.pwd:
  1267. if self.lastscreen == "menuscreen":
  1268. if self.manualsignal:
  1269. self.manualsignal = False
  1270. self.ManualActive = not self.ManualActive
  1271. if self.ManualActive:
  1272. self.menuscreen.manual.source = "images/handg4.png"
  1273. threading.Thread(target=activatingAlarmThread, args=['Manual Alarm']).start()
  1274.  
  1275. else:
  1276. self.menuscreen.manual.source = "images/handr4.png"
  1277. self.root.current = "menuscreen"
  1278.  
  1279.  
  1280.  
  1281. elif self.settingsignal:
  1282. self.root.current = "settingscreen"
  1283. self.settingsignal = False
  1284.  
  1285. elif self.menuscreen.activeShieldSignal:
  1286. self.menuscreen.activeShieldSignal = False
  1287. self.menuscreen.ActivatingShield()
  1288. self.root.current = "menuscreen"
  1289.  
  1290. else:
  1291. self.root.current = "menuscreen"
  1292.  
  1293.  
  1294.  
  1295. elif self.lastscreen == "livealarmscreen" and (self.cancel_alarm or self.false_alarm):
  1296. self.cancel_alarm = False
  1297. self.false_alarm = False
  1298. print "STOP STOP"
  1299. self.burglarycancelButton = True
  1300. self.firecancelButton = True
  1301. self.floodcancelButton = True
  1302. self.smokecancelButton = True
  1303.  
  1304. self.root.current = "menuscreen"
  1305.  
  1306. elif self.lastscreen == "assistalarmscreen":
  1307. self.assistalarmscreen.alarmCancel = True
  1308. print "CANCELLING"
  1309. os.system(
  1310. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1311.  
  1312. self.root.current = "menuscreen"
  1313. #################################################################
  1314. ### checkNetworkAlarm Thread START ###
  1315. ######################################
  1316. threading.Thread(target=self.checkNetworkAlarms).start()
  1317.  
  1318. ##################################################################
  1319.  
  1320. elif self.lastscreen == "screensaver":
  1321. self.root.current = "menuscreen"
  1322.  
  1323. # else:
  1324. # self.root.current = "menuscreen"
  1325. else:
  1326. content = BoxLayout(orientation='vertical',on_touch_down = self.dismiss_popup)
  1327. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  1328. content_label = Label(text='Wrong Password !!! Try Again')
  1329. content.add_widget(content_label)
  1330. content.add_widget(content_cancel)
  1331. popup = Popup(title='Error',
  1332. size_hint=(None, None), size=(300, 200),
  1333. content=content, disabled=False, auto_dismiss=True)
  1334. content_cancel.bind(on_release=popup.dismiss)
  1335.  
  1336. ########################################################################
  1337. ### LANGUAGE HANDLING ###
  1338. #########################
  1339. conversion = LanguageConversion()
  1340. if myAlarmAppObj.language.lspnr.text == "English":
  1341. languageDict = conversion.englishLanguageDict
  1342. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  1343. languageDict = conversion.norwainLanguageDict
  1344.  
  1345. objectList = [content_label, content_cancel, popup]
  1346. conversion.languageConversion(objectList, languageDict)
  1347.  
  1348. #########################################################################
  1349.  
  1350. popup.open()
  1351. self.passwordscreen.ClearText() ##### still left ###
  1352.  
  1353. def dismiss_popup(self,x,y):
  1354. print("touch Position",x,y)
  1355. self.resetTimer()
  1356.  
  1357. def ActiveManual(self):
  1358. self.manualsignal = True
  1359. self.lastscreen = "menuscreen"
  1360. self.root.current = "passwordscreen"
  1361.  
  1362. def Settings(self):
  1363. self.settingsignal = True
  1364. self.lastscreen = "menuscreen"
  1365. self.root.current = "passwordscreen"
  1366.  
  1367. def get_password_from_db(self):
  1368. db = MySQLdb.connect("127.0.0.1", "root", "1234", "appdb")
  1369. cursor = db.cursor()
  1370. cursor.execute("SELECT webpwd from webtable")
  1371. data = cursor.fetchone()
  1372. self.pwd = "%s" % data
  1373. print self.pwd
  1374. db.close()
  1375.  
  1376. def entry_pwd_digit(self, num):
  1377. self.enteredpwd = self.enteredpwd + num
  1378. self.passwordscreen.entrypwd.text = self.enteredpwd
  1379.  
  1380. def ClickedNumber(self, num):
  1381. if self.OldTextActive:
  1382. self.oldtext = self.oldtext + num
  1383. self.changepinscreen.oldtext.text = self.oldtext
  1384. elif self.NewTextActive:
  1385. self.newtext = self.newtext + num
  1386. self.changepinscreen.newtext.text = self.newtext
  1387. elif self.ConfirmTextActive:
  1388. self.confirmtext = self.confirmtext + num
  1389. self.changepinscreen.confirmtext.text = self.confirmtext
  1390. else:
  1391. None
  1392.  
  1393. def ActiveOldText(self):
  1394. self.OldTextActive = True
  1395. self.NewTextActive = False
  1396. self.ConfirmTextActive = False
  1397.  
  1398. def ActiveNewText(self):
  1399. self.OldTextActive = False
  1400. self.NewTextActive = True
  1401. self.ConfirmTextActive = False
  1402.  
  1403. def ActiveConfirmText(self):
  1404. self.OldTextActive = False
  1405. self.NewTextActive = False
  1406. self.ConfirmTextActive = True
  1407.  
  1408. def ChangePassword(self):
  1409. global popup
  1410.  
  1411. if self.pwd == self.oldtext:
  1412. self.npwd = self.newtext
  1413. self.npwd1 = self.confirmtext
  1414. if self.npwd == self.npwd1:
  1415.  
  1416. if self.npwd == self.pwd:
  1417. content = BoxLayout(orientation='vertical',on_touch_down = self.dismiss_popup)
  1418. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  1419. content_label = Label(text="Password must differ from Old Password !!!")
  1420. content.add_widget(content_label)
  1421. content.add_widget(content_cancel)
  1422.  
  1423. popup = Popup(title='Error',
  1424. size_hint=(None, None), size=(400, 200),
  1425. content=content, disabled=False, auto_dismiss=True)
  1426. content_cancel.bind(on_release=popup.dismiss)
  1427.  
  1428. ########################################################################
  1429. ### LANGUAGE HANDLING ###
  1430. #########################
  1431. conversion = LanguageConversion()
  1432. if myAlarmAppObj.language.lspnr.text == "English":
  1433. languageDict = conversion.englishLanguageDict
  1434. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  1435. languageDict = conversion.norwainLanguageDict
  1436.  
  1437. objectList = [content_label, content_cancel, popup]
  1438. conversion.languageConversion(objectList, languageDict)
  1439.  
  1440. #########################################################################
  1441.  
  1442. popup.open()
  1443. self.ClearAll()
  1444. return
  1445.  
  1446. elif len(self.npwd) < 4:
  1447. content = BoxLayout(orientation='vertical',on_touch_down = self.dismiss_popup)
  1448. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  1449. content_label = Label(text='Password must be at least four characters long !!!')
  1450. content.add_widget(content_label)
  1451. content.add_widget(content_cancel)
  1452. popup = Popup(title='Error',
  1453. size_hint=(None, None), size=(400, 200),
  1454. content=content, disabled=False, auto_dismiss=True)
  1455. content_cancel.bind(on_release=popup.dismiss)
  1456.  
  1457. ########################################################################
  1458. ### LANGUAGE HANDLING ###
  1459. #########################
  1460. conversion = LanguageConversion()
  1461. if myAlarmAppObj.language.lspnr.text == "English":
  1462. languageDict = conversion.englishLanguageDict
  1463. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  1464. languageDict = conversion.norwainLanguageDict
  1465.  
  1466. objectList = [content_label, content_cancel, popup]
  1467. conversion.languageConversion(objectList, languageDict)
  1468.  
  1469. #########################################################################
  1470.  
  1471. popup.open()
  1472. self.ClearAll()
  1473.  
  1474. return
  1475.  
  1476. else:
  1477. None
  1478.  
  1479. self.update_Details(self.npwd)
  1480. self.get_password_from_db()
  1481. self.root.current = "securityscreen"
  1482. self.ClearAll()
  1483.  
  1484. else:
  1485. content = BoxLayout(orientation='vertical',on_touch_down = self.dismiss_popup)
  1486. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  1487. content_label = Label(text="Password didn't match!!! Try Again")
  1488. content.add_widget(content_label)
  1489. content.add_widget(content_cancel)
  1490. popup = Popup(title='Error',
  1491. size_hint=(None, None), size=(400, 200),
  1492. content=content, disabled=False, auto_dismiss=True)
  1493. content_cancel.bind(on_release=popup.dismiss)
  1494.  
  1495. ########################################################################
  1496. ### LANGUAGE HANDLING ###
  1497. #########################
  1498. conversion = LanguageConversion()
  1499. if myAlarmAppObj.language.lspnr.text == "English":
  1500. languageDict = conversion.englishLanguageDict
  1501. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  1502. languageDict = conversion.norwainLanguageDict
  1503.  
  1504. objectList = [content_label, content_cancel, popup]
  1505. conversion.languageConversion(objectList, languageDict)
  1506.  
  1507. #########################################################################
  1508.  
  1509. popup.open()
  1510. self.ClearAll()
  1511.  
  1512. else:
  1513. content = BoxLayout(orientation='vertical',on_touch_down = self.dismiss_popup)
  1514. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  1515. content_label = Label(text='Wrong Password..!!! Try Again')
  1516. content.add_widget(content_label)
  1517. content.add_widget(content_cancel)
  1518. popup = Popup(title='Error',
  1519. size_hint=(None, None), size=(300, 200),
  1520. content=content, disabled=False, auto_dismiss=True)
  1521. content_cancel.bind(on_release=popup.dismiss)
  1522. ########################################################################
  1523. ### LANGUAGE HANDLING ###
  1524. #########################
  1525. conversion = LanguageConversion()
  1526. if myAlarmAppObj.language.lspnr.text == "English":
  1527. languageDict = conversion.englishLanguageDict
  1528. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  1529. languageDict = conversion.norwainLanguageDict
  1530.  
  1531. objectList = [content_label, content_cancel, popup]
  1532. conversion.languageConversion(objectList, languageDict)
  1533.  
  1534. #########################################################################
  1535.  
  1536.  
  1537. popup.open()
  1538. self.ClearAll()
  1539.  
  1540. def update_Details(self, npwd):
  1541. try:
  1542. query = """update webtable set webpwd = %s """
  1543. data = (npwd)
  1544. db = MySQLdb.connect("127.0.0.1", "root", "1234", "appdb")
  1545. cursor = db.cursor()
  1546. cursor.execute('update webtable set webpwd = %s', [npwd])
  1547. db.commit()
  1548. except MySQLdb.Error as err:
  1549. content = BoxLayout(orientation='vertical',on_touch_down = self.dismiss_popup)
  1550. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  1551. content_label = Label(text='Some Error Occured!!!')
  1552. content.add_widget(content_label)
  1553. content.add_widget(content_cancel)
  1554. popup = Popup(title='Error',
  1555. size_hint=(None, None), size=(300, 200),
  1556. content=content, disabled=False, auto_dismiss=True)
  1557. content_cancel.bind(on_release=popup.dismiss)
  1558.  
  1559. ########################################################################
  1560. ### LANGUAGE HANDLING ###
  1561. #########################
  1562. conversion = LanguageConversion()
  1563. if myAlarmAppObj.language.lspnr.text == "English":
  1564. languageDict = conversion.englishLanguageDict
  1565. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  1566. languageDict = conversion.norwainLanguageDict
  1567.  
  1568. objectList = [content_label, content_cancel, popup]
  1569. conversion.languageConversion(objectList, languageDict)
  1570.  
  1571. #########################################################################
  1572.  
  1573. popup.open()
  1574. self.ClearAll()
  1575.  
  1576. finally:
  1577. db.close()
  1578. cursor.close()
  1579.  
  1580. def ClearAll(self):
  1581. self.passwordscreen.entrypwd.text = \
  1582. self.changepinscreen.confirmtext.text = \
  1583. self.changepinscreen.oldtext.text = \
  1584. self.changepinscreen.newtext.text = \
  1585. self.oldtext = self.newtext = self.confirmtext = ""
  1586.  
  1587. def Clear(self):
  1588. if self.OldTextActive:
  1589. self.oldtext = self.changepinscreen.oldtext.text = ""
  1590. elif self.NewTextActive:
  1591. self.newtext = self.changepinscreen.newtext.text = ""
  1592. elif self.ConfirmTextActive:
  1593. self.confirmtext = self.changepinscreen.confirmtext.text = ""
  1594. else:
  1595. None
  1596.  
  1597. def start_timer(self,dt):
  1598. global popup
  1599.  
  1600. ## screensaver timer wont stop even
  1601. ## on when cureent screen is screensaver
  1602.  
  1603. self.sstimer += 1
  1604.  
  1605. if self.sstimer == 180:
  1606. try:
  1607. popup.dismiss()
  1608. except:
  1609. None
  1610. if self.root.current != "livealarmscreen" and self.root.current != "assistalarmscreen":
  1611. self.root.current = "screensaver"
  1612. self.lastscreen = "screensaver"
  1613. self.passwordscreen.ClearText()
  1614. self.sstimer = 0
  1615.  
  1616.  
  1617. def activatingAlarmThread(self, label):
  1618. if serverOK:
  1619. self.alarmID = activateAlarm(globalUser, datetime.now().strftime("%d-%m-%Y %H:%M:%S"), label)
  1620.  
  1621. def deactivatingAlarmThread(self):
  1622. if serverOK:
  1623. deactivateAlarm(self.alarmID)
  1624.  
  1625.  
  1626. def sirenActivate(self):
  1627. os.system(
  1628. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].SwitchBinary.Set(255)" -g' % (
  1629. globalIpAddress, self.sirenId))
  1630.  
  1631. def sirenDeactivate(self):
  1632. os.system(
  1633. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].SwitchBinary.Set(0)" -g' % (
  1634. globalIpAddress, self.sirenId))
  1635.  
  1636.  
  1637. def startBuzzer(self):
  1638. global buzzerActive
  1639. while buzzerActive:
  1640. self.stream.write(self.WAVEDATA)
  1641. time.sleep(1)
  1642. print "Running"
  1643.  
  1644. self.stream.stop_stream()
  1645. self.stream.close()
  1646. self.pyAudio.terminate()
  1647.  
  1648.  
  1649. def ActivateFireSiren(self):
  1650.  
  1651. def A():
  1652. self.DeactivateFireSiren= False
  1653. while not self.DeactivateFireSiren:
  1654. # print "in while"
  1655. self.ActivateFireSirenThread()
  1656.  
  1657.  
  1658. threading.Thread(target=A).start()
  1659.  
  1660. # global ifvar,elvar
  1661.  
  1662. # print ifvar,elvar
  1663. ##os.system('curl --user admin:arne123 --data " " "http://192.168.0.107:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1664. # self.ifvar = 0
  1665. # self.elvar = 0
  1666. def ActivateFireSirenThread(self):
  1667. import os
  1668. global serverOK, buzzerActive
  1669.  
  1670. # self.result1 = os.popen(
  1671. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[4].instances[0].SensorBinary.data[1].level.value" -g' % (globalIpAddress)).read()
  1672.  
  1673. self.fireresult= os.popen(
  1674. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].SensorBinary.data[1].level.value" -g' % (globalIpAddress, self.flameId)).read()
  1675.  
  1676. # self.fireresult = "true"
  1677. print "self.fireresult: ", self.fireresult
  1678.  
  1679. if self.fireresult == "true" and not self.flameOn and not self.firecancelButton and not self.burglaryFound and not self.floodFound and not self.smokeFound:
  1680. print "hey"
  1681. ## time.sleep(1)
  1682. # self.ifvar = 0
  1683. # self.elvar = 1
  1684. self.flameOn = True
  1685. self.flameOff = True
  1686. # self.el = 0
  1687. # os.system(
  1688. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress))
  1689.  
  1690. ######################################################################
  1691. ### ACTIVATE THE BUZZER HERE ###
  1692. ################################
  1693. self.stream, self.WAVEDATA, self.pyAudio = buzzer()
  1694. buzzerActive = True
  1695. threading.Thread(target=self.startBuzzer).start()
  1696.  
  1697. ########################################################################
  1698.  
  1699. # if serverOK:
  1700. # self.alarmID = activateAlarm(globalUser, datetime.now().strftime("%d-%m-%Y %H:%M:%S"), 'Flame')
  1701. threading.Thread(target=self.activatingAlarmThread, args=['Flame']).start()
  1702.  
  1703. myAlarmAppObj.alarm_type_text = "Flame"
  1704. self.fireFound = True
  1705. print self.fireresult
  1706. self.lastscreen = "livealarmscreen"
  1707. self.root.current = "livealarmscreen"
  1708.  
  1709. elif self.fireresult == "false" and self.flameOff and self.firecancelButton1:
  1710. self.flameOn = False
  1711. # if self.cancelButton != 'Hey1':
  1712. # os.system
  1713. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1714.  
  1715. self.firecancelButton = False
  1716. self.firecancelButton1=False
  1717. print self.fireresult
  1718. elif self.firecancelButton:
  1719. self.firecancelButton=""
  1720. self.firecancelButton1 = True
  1721.  
  1722. # os.system(
  1723. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1724. if self.fireTimer > 30:
  1725. self.sirenDeactivate()
  1726. # if serverOK:
  1727. # deactivateAlarm(self.alarmID)
  1728. buzzerActive = False
  1729. threading.Thread(target=self.deactivatingAlarmThread).start()
  1730.  
  1731. self.fireFound = False
  1732. self.fireTimer = 0
  1733.  
  1734. if self.fireTimer == 30:
  1735. print "PLAY SIREN"
  1736. # os.system(
  1737. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress, self.sirenId))
  1738. buzzerActive = False
  1739. self.sirenActivate()
  1740.  
  1741. def ActivateBurglarySiren(self):
  1742.  
  1743. def A():
  1744. self.DeactivateBurglarySiren = False
  1745. while not self.DeactivateBurglarySiren:
  1746. # print "in while", self.burglaryFound
  1747. self.ActivateBurglarySirenThread()
  1748. if self.burglaryFound:
  1749. self.burglaryTimer += 1
  1750. # print "self.burglaryTimer: ", self.burglaryTimer
  1751. time.sleep(0.95)
  1752.  
  1753. threading.Thread(target=A).start()
  1754. def ActivateBurglarySirenThread(self):
  1755.  
  1756. global serverOK, buzzerActive
  1757. self.burglaryresult = os.popen(
  1758. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].SensorBinary.data[1].level.value" -g' % (globalIpAddress, self.burglaryId)).read()
  1759.  
  1760.  
  1761. # self.burglaryresult = "true"
  1762. # print "self.burglaryresult: ", self.burglaryresult
  1763.  
  1764. if self.burglaryresult == "true" and not self.burglaryOn and not self.burglarycancelButton and not self.fireFound and not self.floodFound and not self.smokeFound:
  1765. print "hey"
  1766. ## time.sleep(1)
  1767. self.burglaryOn = True
  1768. self.burglaryOff = True
  1769. # self.elvar = 1
  1770. # self.el = 0
  1771. self.burglaryFound = True
  1772. # os.system(
  1773. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress))
  1774.  
  1775. ######################################################################
  1776. ### ACTIVATE THE BUZZER HERE ###
  1777. ################################
  1778. self.stream, self.WAVEDATA, self.pyAudio = buzzer()
  1779. buzzerActive = True
  1780. threading.Thread(target=self.startBuzzer).start()
  1781.  
  1782. ########################################################################
  1783.  
  1784. ####################################################################
  1785. ### WILL BE DONE AFTER 60 SECONDS ###
  1786. #####################################
  1787. # if serverOK:
  1788. # self.alarmID = activateAlarm(globalUser, datetime.now().strftime("%d-%m-%Y %H:%M:%S"), "Burglary")
  1789. threading.Thread(target=self.activatingAlarmThread, args=['Burglary']).start()
  1790.  
  1791. #####################################################################
  1792.  
  1793. myAlarmAppObj.alarm_type_text = "Burglary"
  1794.  
  1795. print self.burglaryresult
  1796. self.lastscreen = "livealarmscreen"
  1797. self.root.current = "livealarmscreen"
  1798.  
  1799. elif (self.burglaryresult == "false" and self.burglaryOff) and self.burglarycancelButton1:
  1800. self.burglaryOn = False
  1801. # if self.cancelButton != 'Hey1':
  1802. # os.system
  1803. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1804.  
  1805. # os.system(
  1806. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1807.  
  1808. self.burglarycancelButton = False
  1809. self.burglarycancelButton1 = False
  1810.  
  1811. print self.burglaryresult
  1812. elif self.burglarycancelButton:
  1813. self.burglarycancelButton = ""
  1814. self.burglarycancelButton1 = True
  1815.  
  1816.  
  1817. if self.burglaryTimer > 30:
  1818. # os.system(
  1819. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress, self.sirenId))
  1820. self.sirenDeactivate()
  1821.  
  1822. buzzerActive = False
  1823. # if serverOK:
  1824. # deactivateAlarm(self.alarmID)
  1825. threading.Thread(target=self.deactivatingAlarmThread).start()
  1826.  
  1827. self.burglaryFound = False
  1828. self.burglaryTimer = 0
  1829.  
  1830. if self.burglaryTimer == 30:
  1831. print "PLAY SIREN"
  1832. # os.system(
  1833. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress, self.sirenId))
  1834. buzzerActive = False
  1835. self.sirenActivate()
  1836.  
  1837. # def ActivateBurglarySirenThread2(self):
  1838. # import os
  1839. #
  1840. # self.burglaryresult = os.popen(
  1841. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[7].instances[0].SensorBinary.data[1].level.value" -g' % (globalIpAddress)).read()
  1842. #
  1843. # print "self.burglaryresult: ", self.burglaryresult, self.ifvar, not self.burglarycancelButton
  1844. #
  1845. # if self.burglaryresult == "true" and self.ifvar == 1 and not self.burglarycancelButton:# and not self.fireFound:
  1846. # print "hey"
  1847. # ## time.sleep(1)
  1848. # self.ifvar = 0
  1849. # self.elvar = 1
  1850. # os.system(
  1851. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress))
  1852. #
  1853. # myAlarmAppObj.alarm_type_text = "Burglary"
  1854. # self.burglaryFound = True
  1855. # # print self.burglaryresult
  1856. # self.lastscreen = "livealarmscreen"
  1857. # self.root.current = "livealarmscreen"
  1858. #
  1859. # elif self.burglaryresult == "false" and self.elvar == 1 and self.burglarycancelButton1:
  1860. # self.ifvar = 1
  1861. # # if self.cancelButton != 'Hey1':
  1862. # # os.system
  1863. # # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1864. #
  1865. # self.burglarycancelButton = False
  1866. # self.burglarycancelButton1 = False
  1867. # print self.burglaryresult
  1868. # elif self.burglarycancelButton:
  1869. # self.burglarycancelButton = ""
  1870. # self.burglarycancelButton1 = True
  1871. # print "sudhanshu"
  1872. # os.system(
  1873. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1874. # self.burglaryFound = False
  1875.  
  1876. def ActivateFloodSiren(self):
  1877.  
  1878. def A():
  1879. self.DeactivateFloodSiren = False
  1880. while not self.DeactivateFloodSiren:
  1881. # print "in while"
  1882. self.ActivateFloodSirenThread()
  1883. if self.floodFound:
  1884. self.floodTimer += 1
  1885. print "self.floodTimer: ", self.floodTimer
  1886. time.sleep(0.95)
  1887.  
  1888. threading.Thread(target=A).start()
  1889.  
  1890. # global ifvar,elvar
  1891.  
  1892. # print ifvar,elvar
  1893. ##os.system('curl --user admin:arne123 --data " " "http://192.168.0.107:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1894. # self.ifvar = 0
  1895. # self.elvar = 0
  1896. def ActivateFloodSirenThread(self):
  1897. import os
  1898.  
  1899. global serverOK, buzzerActive
  1900.  
  1901. # self.result1 = os.popen(
  1902. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[4].instances[0].SensorBinary.data[1].level.value" -g' % (globalIpAddress)).read()
  1903.  
  1904. self.floodresult = os.popen(
  1905. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].AlarmSensor.data[5].sensorState.value" -g' % (globalIpAddress, self.floodId)).read()
  1906.  
  1907. if self.floodresult == '255':
  1908. self.floodresult = "true"
  1909. elif self.floodresult == '0':
  1910. self.floodresult = "false"
  1911.  
  1912. print "self.floodresult: ", self.floodresult
  1913.  
  1914. if self.floodresult == "true" and not self.floodOn and not self.floodcancelButton and not self.burglaryFound and not self.fireFound and not self.smokeFound:
  1915. print "hey"
  1916. ## time.sleep(1)
  1917. # self.ifvar = 0
  1918. # self.elvar = 1
  1919. self.floodOn = True
  1920. self.floodOff = True
  1921. # self.el = 0
  1922. # os.system(
  1923. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress))
  1924.  
  1925.  
  1926. ######################################################################
  1927. ### ACTIVATE THE BUZZER HERE ###
  1928. ################################
  1929. self.stream, self.WAVEDATA, self.pyAudio = buzzer()
  1930. buzzerActive = True
  1931. threading.Thread(target=self.startBuzzer).start()
  1932.  
  1933. ########################################################################
  1934.  
  1935. ###########################################################################
  1936. ### FLOOD SIREN WILL NOT BE DISTRIBUTED ON NETWORK ###
  1937. ######################################################
  1938. # ##############################################################
  1939. # ### WILL BE DONE AFTER 60 SECONDS ###
  1940. # #####################################
  1941. # self.alarmID = activateAlarm(globalUser, datetime.now().strftime("%d-%m-%Y %H:%M:%S"), 'Flood')
  1942. # ###############################################################
  1943.  
  1944. ###########################################################################
  1945. myAlarmAppObj.alarm_type_text = "Flood"
  1946. self.floodFound = True
  1947. print self.floodresult
  1948. self.lastscreen = "livealarmscreen"
  1949. self.root.current = "livealarmscreen"
  1950.  
  1951. elif self.floodresult == "false" and self.floodOff and self.floodcancelButton1:
  1952. self.floodOn = False
  1953. # if self.cancelButton != 'Hey1':
  1954. # os.system
  1955. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1956.  
  1957. self.floodcancelButton = False
  1958. self.floodcancelButton1 = False
  1959. print self.floodresult
  1960. elif self.floodcancelButton:
  1961. self.floodcancelButton = ""
  1962. self.floodcancelButton1 = True
  1963.  
  1964. # os.system(
  1965. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  1966. # deactivateAlarm(self.alarmID)
  1967. if self.floodTimer > 30:
  1968. self.sirenDeactivate()
  1969.  
  1970. buzzerActive = False
  1971.  
  1972. self.floodFound = False
  1973. self.floodTimer = 0
  1974.  
  1975. if self.floodTimer == 30:
  1976. print "PLAY SIREN"
  1977. # os.system(
  1978. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress))
  1979. buzzerActive = False
  1980. self.sirenActivate()
  1981.  
  1982. def ActivateSmokeSiren(self):
  1983.  
  1984. def A():
  1985. self.DeactivateSmokeSiren = False
  1986. while not self.DeactivateSmokeSiren:
  1987. # print "in while"
  1988. self.ActivateSmokeSirenThread()
  1989. if self.smokeFound:
  1990. self.smokeTimer += 1
  1991. # print "self.smokeTimer: ", self.smokeTimer
  1992. time.sleep(0.95)
  1993.  
  1994. threading.Thread(target=A).start()
  1995.  
  1996. # global ifvar,elvar
  1997.  
  1998. # print ifvar,elvar
  1999. ##os.system('curl --user admin:arne123 --data " " "http://192.168.0.107:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  2000. # self.ifvar = 0
  2001. # self.elvar = 0
  2002. def ActivateSmokeSirenThread(self):
  2003. import os
  2004. global serverOK, buzzerActive
  2005. self.smokeresult = os.popen(
  2006. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[%s].instances[0].AlarmSensor.data[1].sensorState.value" -g' % (globalIpAddress, self.smokeId)).read()
  2007.  
  2008. if self.smokeresult == "255":
  2009. self.smokeresult = "true"
  2010. elif self.smokeresult == "0":
  2011. self.smokeresult = "false"
  2012.  
  2013. print "self.smokeresult: ", self.smokeresult
  2014.  
  2015. if self.smokeresult == "true" and not self.smokeOn and not self.smokecancelButton and not self.burglaryFound and not self.fireFound and not self.floodFound:
  2016. print "hey"
  2017. ## time.sleep(1)
  2018. # self.ifvar = 0
  2019. # self.elvar = 1
  2020. self.smokeOn = True
  2021. self.smokeOff = True
  2022. # self.el = 0
  2023. os.system(
  2024. 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress))
  2025.  
  2026. ######################################################################
  2027. ### ACTIVATE THE BUZZER HERE ###
  2028. ################################
  2029. self.stream, self.WAVEDATA, self.pyAudio = buzzer()
  2030. buzzerActive = True
  2031. threading.Thread(target=self.startBuzzer).start()
  2032.  
  2033. ########################################################################
  2034.  
  2035. ##############################################################
  2036. ### WILL BE DONE AFTER 60 SECONDS ###
  2037. #####################################
  2038. # if serverOK:
  2039. # self.alarmID = activateAlarm(globalUser, datetime.now().strftime("%d-%m-%Y %H:%M:%S"), 'Smoke')
  2040. threading.Thread(target=self.activatingAlarmThread, args=['Smoke']).start()
  2041. ###############################################################
  2042.  
  2043. myAlarmAppObj.alarm_type_text = "Smoke"
  2044. self.smokeFound = True
  2045. print self.smokeresult
  2046. self.lastscreen = "livealarmscreen"
  2047. self.root.current = "livealarmscreen"
  2048.  
  2049. elif self.smokeresult == "false" and self.smokeOff and self.smokecancelButton1:
  2050. self.smokeOn = False
  2051. # if self.cancelButton != 'Hey1':
  2052. # os.system
  2053. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  2054.  
  2055. self.smokecancelButton = False
  2056. self.smokecancelButton1 = False
  2057. print self.smokeresult
  2058. elif self.smokecancelButton:
  2059. self.smokecancelButton = ""
  2060. self.smokecancelButton1 = True
  2061.  
  2062. # os.system(
  2063. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(0)" -g' % (globalIpAddress))
  2064. if self.smokeTimer > 30:
  2065. self.sirenDeactivate()
  2066.  
  2067. buzzerActive = False
  2068. # if serverOK:
  2069. # deactivateAlarm(self.alarmID)
  2070. threading.Thread(target=self.deactivatingAlarmThread).start()
  2071.  
  2072. self.smokeFound = False
  2073. self.smokeTimer = 0
  2074.  
  2075. if self.smokeTimer == 30:
  2076. print "PLAY SIREN"
  2077. # os.system(
  2078. # 'curl --user admin:arne123 --data " " "http://%s:8083/ZWaveAPI/Run/devices[2].instances[0].SwitchBinary.Set(255)" -g' % (globalIpAddress) % (globalIpAddress))
  2079. buzzerActive = False
  2080. self.sirenActivate()
  2081.  
  2082. def changeLanguage(self, language):
  2083. print "changeLanguage"
  2084. screenList = [self.settingscreen, self.alarmscreen, self.securityscreen,
  2085. self.changepinscreen, self.changewebpinscreen, self.clockscreen,
  2086. self.ethernetwifi, self.wifiscreen, self.ethernetscreen, self.language,
  2087. self.serversettings, self.firmwarescreen, self.livealarmscreen, self.burglaryalarmscreen]
  2088. conversion = LanguageConversion()
  2089. for screen in screenList:
  2090. if language == 'English':
  2091. # screen.conversion.languageConversion(screen.conversion.englishLanguageDict)
  2092. # conversion.languageConversion(self.objectList, conversion.englishLanguageDict)
  2093. languageDict = conversion.englishLanguageDict
  2094. elif language == "Norwegian":
  2095. # screen.conversion.languageConversion(screen.conversion.norwainLanguageDict)
  2096. # conversion.languageConversion(self.objectList, conversion.norwainLanguageDict)
  2097. languageDict = conversion.norwainLanguageDict
  2098.  
  2099. conversion.languageConversion(screen.objectList, languageDict)
  2100.  
  2101. def errorPopup(self, errorMessage=None):
  2102. global popup
  2103. content = BoxLayout(orientation='vertical')
  2104. content_cancel = Button(text='OK', size_hint_y=None, height=40)
  2105. content_label = Label(text=errorMessage)
  2106. content.add_widget(content_label)
  2107. content.add_widget(content_cancel)
  2108. popup = Popup(title='Error',
  2109. size_hint=(None, None), size=(400, 200),
  2110. content=content, disabled=False, auto_dismiss=True)
  2111. content_cancel.bind(on_release=popup.dismiss)
  2112.  
  2113. ########################################################################
  2114. ### LANGUAGE HANDLING ###
  2115. #########################
  2116. conversion = LanguageConversion()
  2117. if myAlarmAppObj.language.lspnr.text == "English":
  2118. languageDict = conversion.englishLanguageDict
  2119. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  2120. languageDict = conversion.norwainLanguageDict
  2121.  
  2122. objectList = [content_label, content_cancel, popup]
  2123. conversion.languageConversion(objectList, languageDict)
  2124.  
  2125. #########################################################################
  2126.  
  2127. popup.open()
  2128.  
  2129.  
  2130. class ssidButton(Button):
  2131.  
  2132. def __init__(self, cellname, **kwargs):
  2133. super(ssidButton, self).__init__(**kwargs)
  2134. self.cell = cellname
  2135.  
  2136. def enterPasswordEntryPopup(self, modify=False):
  2137. global popup, ip
  2138.  
  2139. def cancel(event):
  2140. global popup
  2141. popup.dismiss()
  2142. return
  2143.  
  2144. def connect(event):
  2145. global activateThread
  2146. global popup
  2147.  
  2148. # def connecting():
  2149. # global stop
  2150. # inalive = True
  2151. # while inalive:#True:
  2152. # ## if stop.is_set():
  2153. # ## return
  2154. # connectnet()
  2155. # time.sleep(1)
  2156. # inalive = False
  2157.  
  2158. def schemeActivation():
  2159. global popup
  2160. try:
  2161. self.scheme.activate()
  2162. myAlarmAppObj.get_details()
  2163. popup.dismiss()
  2164. print "Done"
  2165. except:
  2166. self.scheme.delete()
  2167. print "WRONG PASSWORD"
  2168. popup.dismiss()
  2169. myAlarmAppObj.errorPopup(errorMessage='Wrong Password...!!!')
  2170.  
  2171.  
  2172. def connectnet():
  2173. global stopper
  2174.  
  2175. # myAlarmAppObj.wifiscreen.awai.add_widget(Button(text="Added1"))
  2176. try:
  2177. print "ACTIVATING"
  2178. # self.scheme.activate()
  2179. # popup.dismiss()
  2180. threading.Thread(target=schemeActivation).start()
  2181. self.connectncancel_connect.text = "Wait.."
  2182. self.connectncancel_connect.disabled = True
  2183. self.connectncancel_cancel.disabled = True
  2184. myAlarmAppObj.menuscreen.wifiImage.source = "images/wifiOn.jpg"
  2185. print "ACTIVATED"
  2186.  
  2187. except:
  2188. # self.scheme.delete()
  2189. # print "WRONG PASSWORD"
  2190. # popup.dismiss()
  2191. # myAlarmAppObj.errorPopup(errorMessage='Wrong Password...!!!')
  2192. myAlarmAppObj.menuscreen.wifiImage.source = "images/wifiOff.jpg"
  2193.  
  2194. ## iptext = commands.getoutput("/sbin/ifconfig").split("wlan0")[1].split("\n")[1].split()[1][5:]
  2195. # myAlarmAppObj.wifiscreen.awai.add_widget(Button(text=str(iptext)))
  2196. myAlarmAppObj.get_details()
  2197. ## myAlarmAppObj.ethernetwifi.ipg.text = "IP ADDRESS : " + myAlarmAppObj.ipAddress
  2198.  
  2199.  
  2200. self.password = self.network_password.text
  2201. if modify:
  2202. self.scheme.delete()
  2203. self.iptext = ip.text
  2204. self.gwtext = gateway.text
  2205. self.nmtext = netmask.text
  2206. print self.password, self.iptext, self.gwtext, self.nmtext
  2207. self.scheme = Scheme.for_cell('wlan0', self.schemeName, self.cell, self.password)
  2208. self.scheme.save()
  2209. connectnet()
  2210. # activateThread = threading.Thread(target=connecting)
  2211. # activateThread.daemon = True
  2212. # activateThread.start()
  2213.  
  2214. ## time.sleep(5)
  2215.  
  2216. ## try:
  2217. ## self.scheme.activate()
  2218. ## except:
  2219. ## None
  2220.  
  2221. connectncancel = BoxLayout()
  2222.  
  2223. self.connectncancel_cancel = Button(text="Cancel", on_release=cancel)
  2224. self.connectncancel_connect = Button(text="Connect", on_release=connect)
  2225.  
  2226. connectncancel.add_widget(self.connectncancel_cancel)
  2227. connectncancel.add_widget(self.connectncancel_connect)
  2228. passwordEntryContent = BoxLayout(orientation='vertical')
  2229. passwordEntryContent.add_widget(Label(text='Password'))
  2230. self.network_password = TextInput(multiline=False, password=False)
  2231. passwordEntryContent.add_widget(self.network_password)
  2232. windowSize = (300, 200)
  2233.  
  2234.  
  2235.  
  2236. def defaultInterfaceFile(e):
  2237. fileName = "/etc/network/interfaces"
  2238. fileNew = "/etc/network/interfacesNew"
  2239.  
  2240.  
  2241. with open(fileName, "r") as f:
  2242. line = f.readline()
  2243. with open(fileNew, "w") as fnew:
  2244. while line:
  2245. fnew.write(line)
  2246. line = f.readline()
  2247.  
  2248. found = False
  2249. count = 0
  2250. with open(fileNew, "r") as f:
  2251. line = f.readline()
  2252. with open(fileName, "w") as fnew:
  2253. while line:
  2254. if line == "allow-hotplug wlan0\n":
  2255. found = True
  2256. count = 0
  2257. fnew.write(line)
  2258.  
  2259. if found:
  2260. count+=1
  2261.  
  2262. if count <= 7 and found:
  2263. None
  2264. else:
  2265. fnew.write(line)
  2266.  
  2267. line = f.readline()
  2268. # time.sleep(0.5)
  2269. commands.getoutput("sudo rm %s" % (fileNew))
  2270.  
  2271. def editInterfaceFile(e):
  2272. defaultInterfaceFile(None)
  2273. ipaddressText = "addresss " + ipaddress.text
  2274. netmaskText = "netmask 255.255.255.0"
  2275. networkText = "network " + netmask.text
  2276. broadcastText = "broadcast 192.168.0.255"
  2277. gatewayText = "gateway " + gateway.text
  2278.  
  2279. fileName = "/etc/network/interfaces"
  2280. fileNew = "/etc/network/interfacesNew"
  2281.  
  2282.  
  2283. with open(fileName, "r") as f:
  2284. line = f.readline()
  2285. with open(fileNew, "w") as fnew:
  2286. while line:
  2287. fnew.write(line)
  2288. line = f.readline()
  2289.  
  2290. with open(fileNew, "r") as f:
  2291. line = f.readline()
  2292. with open(fileName, "w") as fnew:
  2293. while line:
  2294. fnew.write(line)
  2295. if line == "allow-hotplug wlan0\n":
  2296. print "FOUND"
  2297. fnew.write("iface wlan0 inet static\n")
  2298. fnew.write(ipaddressText + "\n")
  2299. fnew.write(netmaskText + "\n")
  2300. fnew.write(networkText + "\n")
  2301. fnew.write(broadcastText + "\n")
  2302. fnew.write(gatewayText + "\n")
  2303. line = f.readline()
  2304. # time.sleep(0.5)
  2305. commands.getoutput("sudo rm %s" % (fileNew))
  2306.  
  2307.  
  2308. if modify:
  2309. b = BoxLayout()#on_touch_down = myAlarmAppObj.resetTimer)
  2310. a = AnchorLayout()
  2311. t = TextInput(text=self.network_password.text, size_hint_x=1, password=False, size_hint_y=.8)
  2312. a.add_widget(t)
  2313. b1 = BoxLayout(spacing='20dp')
  2314. b1_passwordLabel = Label(text="Password", size_hint_x=.5)
  2315. b1.add_widget(b1_passwordLabel)
  2316. b1.add_widget(a)
  2317. # b1.add_widget(Button(height = 10,text = "OK"))
  2318.  
  2319. b3 = BoxLayout(padding="5dp", spacing="20dp")
  2320. cancel = Button(text="Cancel")
  2321. save = Button(text="Save")
  2322. b3.add_widget(cancel)
  2323. b3.add_widget(save)
  2324.  
  2325. b2 = BoxLayout()
  2326. b2.add_widget(Widget(size_hint_x=1))
  2327. b2.add_widget(CheckBox(size_hint_x=.5))
  2328. b2_showPasswordLabel = Label(text="Show Password", size_hint_x=.5)
  2329. b2.add_widget(b2_showPasswordLabel)
  2330. b2.add_widget((Widget(size_hint_x=1)))
  2331. bm = BoxLayout(orientation='vertical')
  2332. bm.add_widget(b1)
  2333. bm.add_widget(b2)
  2334. bm.add_widget(b3)
  2335. tabbed_panel = TabbedPanel()
  2336. # tabbed_panel.do_default_tab = False
  2337. content = BoxLayout(orientation='vertical')
  2338. # content.add_widget(Label(markup = True,text = "[b] Device MAC address : [/b]" + self.wifimacaddress))
  2339. content.add_widget(bm)
  2340. tabbed_panel.default_tab_content = content
  2341.  
  2342. tabbed_panel.default_tab_text = "Wifi"
  2343. b.add_widget(tabbed_panel)
  2344.  
  2345. ######------ipv4tab-------#########
  2346.  
  2347. ipv4tab = TabbedPanelItem(text="IPV4 Settings")
  2348. ipv4tabcontent = BoxLayout(orientation='vertical')#,on_touch_down = myAlarmAppObj.resetTimer)
  2349. b1 = BoxLayout(padding="10dp", size_hint_y=1)
  2350. l = Label(text="{}".format(myAlarmAppObj.ipAddress))
  2351. s = Spinner(text="Automatic(DHCP)", values=["Manual", "Automatic(DHCP)"]) # on_text
  2352. b1.add_widget(s)
  2353. b1.add_widget(l)
  2354.  
  2355. b2 = BoxLayout(padding='2dp', spacing='5dp', size_hint_y=1)
  2356. b21 = BoxLayout(orientation='vertical')
  2357. iplabel = Label(text="Address")
  2358. ipaddress = TextInput(multiline=False)
  2359. b21.add_widget(iplabel)
  2360. b21.add_widget(ipaddress)
  2361.  
  2362. # b22 = BoxLayout(orientation = "vertical")
  2363. b22 = BoxLayout(orientation='vertical')
  2364. nmlabel = Label(text="Netmask")
  2365. netmask = TextInput(multiline=False)
  2366. b22.add_widget(nmlabel)
  2367. b22.add_widget(netmask)
  2368.  
  2369. # b23 = BoxLayout(orientation="vertical")
  2370. b23 = BoxLayout(orientation='vertical')
  2371. gwlabel = Label(text="Gateway")
  2372. gateway = TextInput(multiline=False)
  2373. b23.add_widget(gwlabel)
  2374. b23.add_widget(gateway)
  2375.  
  2376. b2.add_widget(b21)
  2377. b2.add_widget(b22)
  2378. b2.add_widget(b23)
  2379.  
  2380. ipv4tabcontent.add_widget(b1)
  2381. ipv4tabcontent.add_widget(b2)
  2382. ipv4tabcontent_saveButton = Button(text="Save", size_hint_y=.5, on_release=editInterfaceFile)
  2383. ipv4tabcontent.add_widget(ipv4tabcontent_saveButton)
  2384.  
  2385. ipv4tab.content = ipv4tabcontent
  2386. tabbed_panel.add_widget(ipv4tab)
  2387.  
  2388. windowSize = (500, 250)
  2389. popup = Popup(title=self.text,
  2390. size_hint=(None, None), size=windowSize,
  2391. # pos=(50, 50),
  2392. # pos_hint={'x':0,'top':1},
  2393. pos_hint={'middle': 1, 'top': 1},
  2394. content=b, disabled=False, auto_dismiss=True)
  2395.  
  2396. ########################################################################
  2397. ### LANGUAGE HANDLING ###
  2398. #########################
  2399. conversion = LanguageConversion()
  2400. if myAlarmAppObj.language.lspnr.text == "English":
  2401. languageDict = conversion.englishLanguageDict
  2402. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  2403. languageDict = conversion.norwainLanguageDict
  2404.  
  2405. objectList = [b1_passwordLabel, save, cancel, b2_showPasswordLabel, iplabel, nmlabel, gwlabel, ipv4tabcontent_saveButton, popup]
  2406. conversion.languageConversion(objectList, languageDict)
  2407.  
  2408. #########################################################################
  2409.  
  2410. return popup
  2411. ###################################
  2412.  
  2413. passwordEntryContent.add_widget(connectncancel)
  2414. # print(self.root,self.root.h,self.parent.width)
  2415. popup = Popup(title=self.text,
  2416. size_hint=(None, None), size=windowSize,
  2417. # pos=(50, 50),
  2418. # pos_hint={'x':0,'top':1},
  2419. # pos_hint={'right': 1, 'top': 1},
  2420. content=passwordEntryContent, disabled=False, auto_dismiss=False)
  2421.  
  2422. ########################################################################
  2423. ### LANGUAGE HANDLING ###
  2424. #########################
  2425. conversion = LanguageConversion()
  2426. if myAlarmAppObj.language.lspnr.text == "English":
  2427. languageDict = conversion.englishLanguageDict
  2428. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  2429. languageDict = conversion.norwainLanguageDict
  2430.  
  2431. objectList = [self.connectncancel_cancel, self.connectncancel_connect, popup]
  2432. conversion.languageConversion(objectList, languageDict)
  2433.  
  2434. #########################################################################
  2435.  
  2436. return popup
  2437.  
  2438. def on_release(self):
  2439. global popup
  2440. specialList = string.printable.split("Z")[-1]
  2441. self.schemeName = self.text
  2442.  
  2443. for char in specialList:
  2444. if char in self.schemeName:
  2445. self.schemeName = self.schemeName.split(char)[0]
  2446. break
  2447.  
  2448. self.scheme = Scheme.find('wlan0', self.schemeName)
  2449. print "schemeName:", self.schemeName, self.scheme
  2450. if not self.scheme: # Scheme.find('wlan0', schemeName):
  2451. print "Creating New Scheme"
  2452. self.passwordPopup = self.enterPasswordEntryPopup()
  2453. self.passwordPopup.open()
  2454. #######################################
  2455. # scheme = Scheme.for_cell('wlan0', schemeName, cell, 'pikkme@123')
  2456.  
  2457. # elif self.scheme.options.get('wpa-ssid') != self.cell.ssid:
  2458.  
  2459. else:
  2460. print "Scheme Already Exists"
  2461.  
  2462. def deletingScheme():
  2463. print "DELETING"
  2464. commands.getoutput("sudo ifdown wlan0") # killall dhclient")
  2465. self.scheme.delete()
  2466. commands.getoutput("sudo ifconfig wlan0 up") # killall dhclient")
  2467. popup.dismiss()
  2468. print "DELETED"
  2469.  
  2470. def forgetnetwork(event):
  2471. global popup
  2472. self.scheme = Scheme.find('wlan0', self.schemeName)
  2473. threading.Thread(target=deletingScheme).start()
  2474. # commands.getoutput("sudo ifdown wlan0")#killall dhclient")
  2475. # self.scheme.delete()
  2476. # commands.getoutput("sudo ifconfig wlan0 up") # killall dhclient")
  2477. self.content_forget.disabled = True
  2478. self.content_modify.disabled = True
  2479. popup.auto_dismiss = False
  2480. myAlarmAppObj.menuscreen.wifiImage.source = "images/wifiOff.jpg"
  2481.  
  2482.  
  2483. def modifynetwork(event):
  2484. global popup
  2485. popup.dismiss()
  2486. self.passwordPopup = self.enterPasswordEntryPopup(modify=True)
  2487. self.passwordPopup.open()
  2488. # Open(None)
  2489.  
  2490. # self.scheme = Scheme.find('wlan0', self.schemeName)
  2491.  
  2492. # self.activate()
  2493. ##############################################3
  2494. content = BoxLayout(orientation='vertical')#, on_touch_down=self.resetTimer, padding=10, spacing=10)
  2495. # content_cancel = Button(text='OK', size_hint_y=None, height=40)
  2496. self.content_forget = Button(text='Forget Network', on_release=forgetnetwork)
  2497. self.content_modify = Button(text='Modify Network', on_release=modifynetwork)
  2498. content.add_widget(self.content_forget)
  2499. content.add_widget(self.content_modify)
  2500. popup = Popup(title=self.text,
  2501. size_hint=(None, None), size=(300, 200),
  2502. content=content, disabled=False, auto_dismiss=True)
  2503.  
  2504. ########################################################################
  2505. ### LANGUAGE HANDLING ###
  2506. #########################
  2507. conversion = LanguageConversion()
  2508. if myAlarmAppObj.language.lspnr.text == "English":
  2509. languageDict = conversion.englishLanguageDict
  2510. elif myAlarmAppObj.language.lspnr.text == "Norwegian":
  2511. languageDict = conversion.norwainLanguageDict
  2512.  
  2513. objectList = [self.content_forget, self.content_modify, popup]
  2514. conversion.languageConversion(objectList, languageDict)
  2515.  
  2516. #########################################################################
  2517.  
  2518. popup.open()
  2519.  
  2520. ## def activate(self):
  2521. ## self.scheme.activate()
  2522. ## print ("ACTIVATED")
  2523.  
  2524. def resetTimer(self,x,y):
  2525. print x,y
  2526. myAlarmAppObj.resetTimer()
  2527.  
  2528. class MenuScreen(Screen):
  2529. manual = ObjectProperty(None)
  2530. flame = ObjectProperty(None)
  2531. money = ObjectProperty(None)
  2532. plum = ObjectProperty(None)
  2533. gas = ObjectProperty(None)
  2534. shield = ObjectProperty(None)
  2535. FlameActive = BooleanProperty(False)
  2536. MoneyActive = BooleanProperty(False)
  2537. PlumActive = BooleanProperty(False)
  2538. GasActive = BooleanProperty(False)
  2539. ShieldActive = BooleanProperty(False)
  2540. counter = 0
  2541. activeShieldSignal = BooleanProperty(False)
  2542.  
  2543. wifiImage = ObjectProperty()
  2544.  
  2545. def burglaryTimer(self, dt):
  2546. # counter = 0
  2547. # while self.ShieldActive:
  2548. self.counter+=1
  2549. if self.counter == 300: ### ON AFTER 5MINS ###
  2550. myAlarmAppObj.alarmscreen.burglaryCheckBox.active = True
  2551. Clock.unschedule(self.burglaryTimer)
  2552.  
  2553.  
  2554. def ActiveShield(self):
  2555. self.activeShieldSignal = True
  2556. self.ShieldActive = not self.ShieldActive
  2557. # if self.ShieldActive:
  2558.  
  2559. def ActivatingShield(self):
  2560. if self.ShieldActive:
  2561. print ("Activating Burglary")
  2562. # threading.Thread(target=self.burglaryTimer).start()
  2563. Clock.schedule_interval(self.burglaryTimer, 1)
  2564. self.shield.source = "images/shieldg4.png"
  2565. else:
  2566. self.counter = 0
  2567. self.shield.source = "images/shieldr4.png"
  2568. Clock.unschedule(self.burglaryTimer)
  2569. myAlarmAppObj.alarmscreen.burglaryCheckBox.active = False
  2570.  
  2571.  
  2572. def ActiveFlame(self):
  2573.  
  2574. self.FlameActive = not self.FlameActive
  2575. if self.FlameActive:
  2576. self.flame.source = "images/flamesg4.png"
  2577. myAlarmAppObj.ActivateFireSiren()
  2578. print("ActivateFire")
  2579. # myAlarmAppObj.alarm_type_text = "Flame"
  2580. else:
  2581. myAlarmAppObj.DeactivateFireSiren = True
  2582. self.flame.source = "images/flamesr4.png"
  2583.  
  2584.  
  2585. def ActiveMoney(self):
  2586. self.MoneyActive = not self.MoneyActive
  2587. if self.MoneyActive:
  2588. myAlarmAppObj.ActivateBurglarySiren()
  2589. print("ActivateBurglary")
  2590. self.money.source = "images/moneyg4.png"
  2591. # myAlarmAppObj.alarm_type_text = "Burglary"
  2592. else:
  2593. myAlarmAppObj.DeactivateBurglarySiren = True
  2594. self.money.source = "images/moneyr4.png"
  2595.  
  2596. def ActivePlum(self):
  2597. self.PlumActive = not self.PlumActive
  2598. if self.PlumActive:
  2599. myAlarmAppObj.ActivateFloodSiren()
  2600. self.plum.source = "images/plumg4.png"
  2601. else:
  2602. myAlarmAppObj.DeactivateFloodSiren = True
  2603. self.plum.source = "images/plumr4.png"
  2604.  
  2605. def ActiveGas(self):
  2606. self.GasActive = not self.GasActive
  2607. if self.GasActive:
  2608. myAlarmAppObj.ActivateSmokeSiren()
  2609. self.gas.source = "images/gasg4.png"
  2610. else:
  2611. myAlarmAppObj.DeactivateSmokeSiren = True
  2612. self.gas.source = "images/gasr4.png"
  2613.  
  2614.  
  2615. if __name__ == '__main__':
  2616. from kivy.core.window import Window
  2617. Window.clearcolor = (.15, .15, .15, 1)
  2618. myAlarmAppObj = MyAlarmApp()
  2619. myAlarmAppObj.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement