Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
 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
Exemple #4
0
 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)
Exemple #5
0
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)
Exemple #6
0
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)
Exemple #7
0
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()
Exemple #8
0
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)
Exemple #9
0
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)
Exemple #10
0
 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)