コード例 #1
0
def return_all_devices():
    query_get_all_devices = """SELECT * FROM Devices"""
    sql_data = ""
    try:
        requests.get(api_url_lamp_update)
        return json.dumps(
            mysql_helper.send_query_to_db(query_get_all_devices, sql_data))
    except IOError:
        return json.dumps({'success': False}), 400, {
            'ContentType': 'application/json'
        }
コード例 #2
0
def return_sensors():

    query_get_sensor = """SELECT * FROM Devices WHERE GeraeteNummer = 0 """
    sql_data = ""
    try:
        return json.dumps(
            mysql_helper.send_query_to_db(query_get_sensor, sql_data))
    except IOError:
        return json.dumps({'success': False}), 400, {
            'ContentType': 'application/json'
        }
コード例 #3
0
def return_one_devices():
    data = request.get_json()
    query_specific_device = """SELECT * FROM Devices WHERE IP = %s AND GeraeteNummer = %s """
    sql_data = (data['IP'], data['GeraeteNummer'])

    try:
        return json.dumps(
            mysql_helper.send_query_to_db(query_specific_device, sql_data))
    except IOError:
        return json.dumps({
            'success': False,
            'Errorcode': 'Please enter valid ip'
        }), 400, {
            'ContentType': 'application/json'
        }
コード例 #4
0
def return_lamps():
    data = request.get_json()
    if request.method == 'GET':

        query_get_lamp = """SELECT * FROM Devices WHERE GeraeteNummer != 0"""
        sql_data = ""
        try:
            return json.dumps(
                mysql_helper.send_query_to_db(query_get_lamp, sql_data))
        except IOError:
            return json.dumps({'success': False}), 400, {
                'ContentType': 'application/json'
            }

    if request.method == 'POST':
        query_lamp = """UPDATE Devices SET  Hue = %s, Saturation = %s, Brightness = %s, Switch = %s WHERE IP = %s AND GeraeteNummer = %s """
        sql_data = (data['Hue'], data['Saturation'], data['Brightness'],
                    data['Switch'], data['IP'], data['GeraeteNummer'])

        try:
            mysql_helper.send_query_to_db_no_response(query_lamp, sql_data)

            create_row_data = json.dumps({
                'hue': data['Hue'],
                'sat': data['Saturation'],
                'on': data['Switch'],
                'bri': data['Brightness'],
                'num': data['GeraeteNummer']
            })

            headers = {'content-type': 'application/json'}

            r = requests.post(api_url, headers=headers, data=create_row_data)

            return json.dumps({'success': True}), 200, {
                'ContentType': 'application/json'
            }
        except IOError:
            return json.dumps({'success': False}), 400, {
                'ContentType': 'application/json'
            }
コード例 #5
0
ファイル: test_API_SmHoEzMa.py プロジェクト: kek112/SmHoEzMa2
    def test_name(self):
        self.populate_database()

        payload = {'IP': '192.168.178.123', 'Name': 'Testcheck', 'GeraeteNummer':'0'}
        url = "http://127.0.0.1:5003/api/name"
        headers = {'content-type' : 'application/json'}
        r = requests.post(url, data=json.dumps(payload), headers = headers)
        check_data = r.json()


        self.assertEqual(r.status_code,200)

        sql="Select * FROM Devices WHERE Name = 'Testcheck'"
        data = ()

        response = (mysql_helper.send_query_to_db(sql,data))

        self.assertEqual(response[0]['Name'],'Testcheck')

        self.clean_database()
        pass
コード例 #6
0
def is_lamp_in_db(lamp_number):
    sql = """SELECT COUNT(*) AS 'num' FROM Devices WHERE GeraeteNummer=%s"""
    result = mysql_helper.send_query_to_db(sql, (lamp_number, ))
    return bool(result[0]["num"])
コード例 #7
0
ファイル: test_API_Bridge.py プロジェクト: kek112/SmHoEzMa2
    def test_upddate_lamp(self):

        payload = {
            'num': '1',
            'hue': '10',
            'sat': '10',
            'on': '1',
            'bri': '10'
        }
        url = "http://127.0.0.1:5001/update_lamp"
        headers = {'content-type': 'application/json'}
        r = requests.post(url, data=json.dumps(payload), headers=headers)
        data = r.json

        self.assertEqual(r.status_code, 200)

        sql = "Select * FROM Devices"
        data = ("")
        response = mysql_helper.send_query_to_db(sql, data)

        dict = [{
            'DeviceID': 41,
            'Name': 'Lamp 1',
            'IP': '127.0.0.1',
            'GeraeteNummer': 1,
            'Heat': None,
            'Light': None,
            'Hue': 10,
            'Saturation': 10,
            'Switch': 1,
            'Brightness': 10
        }, {
            'DeviceID': 42,
            'Name': 'Lamp 2',
            'IP': '127.0.0.1',
            'GeraeteNummer': 2,
            'Heat': None,
            'Light': None,
            'Hue': 23536,
            'Saturation': 144,
            'Switch': 1,
            'Brightness': 254
        }, {
            'DeviceID': 43,
            'Name': 'Lamp 3',
            'IP': '127.0.0.1',
            'GeraeteNummer': 3,
            'Heat': None,
            'Light': None,
            'Hue': 65136,
            'Saturation': 254,
            'Switch': 1,
            'Brightness': 254
        }]

        self.assertEqual(dict[0]['Hue'], 10)
        self.assertEqual(dict[0]['Saturation'], 10)
        self.assertEqual(dict[0]['Brightness'], 10)

        #revert to original state
        payload = {
            'num': '1',
            'hue': '4444',
            'sat': '254',
            'on': '1',
            'bri': '254'
        }
        url = "http://127.0.0.1:5001/update_lamp"
        headers = {'content-type': 'application/json'}
        r = requests.post(url, data=json.dumps(payload), headers=headers)
        data = r.json

        self.clean_database()
        pass
コード例 #8
0
ファイル: test_API_Bridge.py プロジェクト: kek112/SmHoEzMa2
    def test_update_lamp_states(self):
        '''
        IMPORTANT: Hue emulator has to e started
        set Lights in the Emulator and get the states from it and insert it into the Database
        this test checks if the standards lamps are set and set in the mysql
        '''

        self.clean_database()

        url = "http://127.0.0.1:5001/update_lamp_states"
        headers = {'content-type': 'application/json'}
        r = requests.get(url)

        self.assertEqual(r.status_code, 200)

        # check if inserted
        sql = "Select * FROM Devices"
        data = ("")
        response = mysql_helper.send_query_to_db(sql, data)

        dict = [{
            'DeviceID': 38,
            'Name': 'Lamp 1',
            'IP': '127.0.0.1',
            'GeraeteNummer': 1,
            'Heat': None,
            'Light': None,
            'Hue': 4444,
            'Saturation': 254,
            'Switch': 1,
            'Brightness': 254
        }, {
            'DeviceID': 39,
            'Name': 'Lamp 2',
            'IP': '127.0.0.1',
            'GeraeteNummer': 2,
            'Heat': None,
            'Light': None,
            'Hue': 23536,
            'Saturation': 144,
            'Switch': 1,
            'Brightness': 254
        }, {
            'DeviceID': 40,
            'Name': 'Lamp 3',
            'IP': '127.0.0.1',
            'GeraeteNummer': 3,
            'Heat': None,
            'Light': None,
            'Hue': 65136,
            'Saturation': 254,
            'Switch': 1,
            'Brightness': 254
        }]

        self.assertEqual(r.status_code, 200)

        self.assertEqual(dict[0]['Hue'], response[0]['Hue'])
        self.assertEqual(dict[0]['Saturation'], response[0]['Saturation'])
        self.assertEqual(dict[0]['Brightness'], response[0]['Brightness'])

        self.assertEqual(dict[1]['Hue'], response[1]['Hue'])
        self.assertEqual(dict[1]['Saturation'], response[1]['Saturation'])
        self.assertEqual(dict[1]['Brightness'], response[1]['Brightness'])

        self.assertEqual(dict[2]['Hue'], response[2]['Hue'])
        self.assertEqual(dict[2]['Saturation'], response[2]['Saturation'])
        self.assertEqual(dict[2]['Brightness'], response[2]['Brightness'])
        self.clean_database()