def putDeviceStatus(self): try: # Get connection to database conn = sqlite3.connect('../main/eotg.db') conn.row_factory = self.dict_factory # Get device id (As a string) deviceId = self.getDeviceId() # Get status items from the database c = conn.cursor() c.execute('select * from device_info') status = c.fetchone() statusStr = '''[{"statusType": "battery_level", "statusValue": ''' + str( status['battery_level'] ) + '''}, {"statusType": "water_level", "statusValue": ''' + str( status['water_level'] ) + '''}, {"statusType": "current_state", "statusValue": ''' + str( status['current_state'] ) + '''}, {"statusType": "ac_power_state", "statusValue": ''' + str( status['ac_state']) + '}]' requestParam = {'newStatusItems': statusStr} # Update the status items on the web server resp = httpRequest.makeRequest(ws.getWs('setDeviceStatus'), requestParam, [deviceId]) conn.commit() conn.close() except Exception as err: print('Exception trying to set brew settings: ') print(err)
def getAllPresets(self): try: devId = self.getDeviceId() # Get the device's presets resp = httpRequest.makeRequest(ws.getWs('getDevicePresets'), None, [devId]) # Put the preset in the database presets = json.loads(resp)['brewPresets'] # Get connection to database conn = sqlite3.connect('../main/eotg.db') conn.row_factory = self.dict_factory cursor = conn.cursor() cursor.execute('delete from profile_list') conn.commit() conn.close() newPresets = {} oldPresetName = '' newSettings = {} for preset in presets: presetName = preset['preset_name'] colName = self.getSettingTypeName(preset['setting_type_id']) if not (colName == '-1'): newSettings[self.getSettingTypeName( preset['setting_type_id'])] = preset['setting_value'] else: continue if (presetName != oldPresetName and oldPresetName != ''): newPresets[oldPresetName] = newSettings newSettings = {} oldPresetName = presetName self.getBrewSettings() self.insertPresets(newPresets) except Exception as err: print('Exception trying to get all device presets: ') print(err)
def registerDevice(self, deviceIdentifier, macAddr): try: # Build request param requestParam = { 'deviceIdentifier': deviceIdentifier, 'macAddress': macAddr } data = [] # Get the device's ID back from the web server resp = httpRequest.makeRequest(ws.getWs('registerDevice'), requestParam, []) # Put the device id in the database devId = json.loads(resp) deviceId = (devId['deviceId'], ) # Get connection to database conn = sqlite3.connect('../main/eotg.db') cursor = conn.cursor() cursor.execute('update device_info set given_id_num = ?', deviceId) conn.commit() conn.close() return deviceId[0] except Exception as err: print('Exception trying to register the device: ') print(err) return -1
def brewStarted(self): try: # Tell the server we have started brewing and don't need to have brew state high anymore. resp = httpRequest.makeRequest(ws.getWs('setBrewEnable'), {'nate': 'Muller'}, ['0']) responseErr = json.loads(resp)['error'] responseMsg = json.loads(resp)['message'] if responseErr: print(responseMsg) except Exception as err: print('Exception trying to tell server a brew started: ') print(err)
def shouldBrew(): try: # Get the the brew status from the web server resp = httpRequest.makeRequest(ws.getWs('shouldBrew'), None, []) devSettings = json.loads(resp) shouldBrew = devSettings['shouldBrew'] # Update the brew status in the local db conn = sqlite3.connect('eotg.db') t = (shouldBrew, ) cursor = conn.cursor() cursor.execute('update device_info set remote_brew_state = ?', t) conn.commit() conn.close() return shouldBrew except Exception as err: print('Exception trying to get brew settings: ') print(err)
def getCurrentPreset(): try: # Get connection to database conn = sqlite3.connect('eotg.db') # Get the device Id from the db deviceId = getDeviceId(conn) # Get the device's status resp = httpRequest.makeRequest(ws.getWs('getDeviceStatus'), requestParam, [deviceId]) # Get the preset mode id from the web server results statusJson = json.loads(resp) statusId = statusJson['brew_preset_id'] cursor = conn.cursor() cursor.execute('update device_info set preset_state = ?', statusId) conn.commit() conn.close() except Exception as err: print('Exception trying to get brew settings: ') print(err)
def putDeviceStatus(): try: # Get connection to database conn = sqlite3.connect('eotg.db') conn.row_factory = dict_factory # Get device id (As a string) deviceId = getDeviceId(conn) # Get status items from the database c = conn.cursor() c.execute('select * from device_info limit 1') status = c.fetchone() statusStr = '"newStatusItems":[{"statusType": "battery_level", "statusValue": ' + str(status['battery_level']) + '}, {"statusType": "water_level", "statusValue": ' + str(status['water_level']) + '}, {"statusType": "current_state", "statusValue": ' + str(status['current_state']) + '}, {"statusType": "ac_power_state", "statusValue": ' + str(status['ac_state']) requestParam = {'newStatusItems': statusStr} # Update the status items on the web server resp = httpRequest.makeRequest(ws.getWs('setDeviceStatus'), requestParam, [deviceId]) conn.close()
def getBrewSettings(): try: # Get connection to database conn = sqlite3.connect('eotg.db') conn.row_factory = dict_factory # Get device id (As a string) deviceId = getDeviceId(conn) resp = httpRequest.makeRequest(ws.getWs('getBrewSettings'), None, [deviceId]) devSettings = json.loads(resp) brewSettings = devSettings['brewSettings'] # Put settings in settings table updates = [] for setting in brewSettings: updateItems = (setting['brew_setting_value'], setting['brew_setting_type_id']) updates.extend(updateItems) c.executemany('INSERT INTO brew_settings values (?,?,now())', updates) conn.commit() conn.close() except Exception as err: print('Exception trying to get brew settings: ') print(err)
def getAllPresets(): try: # Get connection to database conn = sqlite3.connect('eotg.db') conn.row_factory = dict_factory # Get the device Id from the db deviceId = getDeviceId(conn) # Get the device's presets resp = httpRequest.makeRequest(ws.getWs('getDevicePresets'), requestParam, [deviceId]) # Put the preset in the database presets = json.loads(resp)['brew_presets'] cursor = conn.cursor() cursor.execute('delete from preset_list') newPresets = {} oldPresetName = '' newSettings = {} for preset in presets: presetName = preset['preset_name'] colName = getSettingTypeName(preset['setting_type_id']) if colName != '-1': newSettings[getSettingTypeName(preset['setting_type_id'])] = preset['setting_value'] else: continue if presetName != oldPresetName and oldPresetName != '': new_presets[oldPresetName] = newSettings newSettings = {} oldPresetName = presetName insertPresets(newPresets, conn) conn.commit() conn.close() except Exception as err: print('Exception trying to get brew settings: ') print(err)
def getBrewSettings(self): try: conn = sqlite3.connect('../main/eotg.db') deviceId = self.getDeviceId() resp = httpRequest.makeRequest(ws.getWs('getBrewSettings'), None, [deviceId]) devSettings = json.loads(resp) brewSettings = devSettings['brewSettings'] updateItems = ('', ) for setting in brewSettings: if self.getSettingTypeName( setting['brew_setting_type_id']) != '-1': updateItems = (setting['brew_setting_type_id'], setting['brew_setting_value']) c = conn.cursor() if len(updateItems) == 2: c.execute( "INSERT INTO profile_list values (-1, 'manual', ?, ?, '')", updateItems) conn.commit() conn.close() except Exception as err: print('Exception trying to get brew settings: ') print(err)