Пример #1
0
def sendQhawaxStatusOff():
    """
    Endpoint to set qHAWAX OFF because script detect no new data within five minutes

    """
    jsonsend = {}
    try:
        req_json = request.get_json()
        exception_helper.getStatusOffTargetofJson(req_json)
        name = str(req_json['qhawax_name']).strip()
        qhawax_time_off = req_json['qhawax_lost_timestamp']
        description = req_json['description']
        person_in_charge = req_json['person_in_charge']
        post_business_helper.saveStatusOffQhawaxTable(name)
        if (same_helper.getQhawaxMode(name) == 'Cliente'):
            post_business_helper.saveStatusOffQhawaxInstallationTable(
                name, qhawax_time_off)
        post_business_helper.writeBinnacle(name, description, person_in_charge)
        jsonsend['main_inca'] = -1
        jsonsend['name'] = name
        socketio.emit('update_inca', jsonsend)
        return make_response({'Success': 'qHAWAX off'}, 200)
    except (ValueError, TypeError) as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
Пример #2
0
def qhawaxEndCalibration():
    """
    qHAWAX update end calibration mode, set main inca original, depends of mode (customer or stand by)

    """
    req_json = request.get_json()
    try:
        qhawax_name = str(req_json['qhawax_name']).strip()
        person_in_charge = str(req_json['person_in_charge'])
        flag_costumer = get_business_helper.isItFieldQhawax(qhawax_name)
        if (flag_costumer == True):
            post_business_helper.turnOnAfterCalibration(qhawax_name)
            mode = "Cliente"
            description = "Se cambió a modo cliente"
            main_inca = 0
        else:
            mode = "Stand By"
            description = "Se cambió a modo stand by"
            main_inca = -1
        post_business_helper.changeMode(qhawax_name, mode)
        post_business_helper.updateMainIncaQhawaxTable(main_inca, qhawax_name)
        post_business_helper.updateMainIncaQhawaxInstallationTable(
            main_inca, qhawax_name)
        post_business_helper.writeBinnacle(qhawax_name, description,
                                           person_in_charge)
        return make_response(
            {'Success': 'qHAWAX have changed to original mode'}, 200)
    except TypeError as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
Пример #3
0
def sendQhawaxStatusOnBaseOnLossSignal():
    """ Set qHAWAX ON Base On Loss Signal  - It should set last main inca value, set last last_time_off record and last last_time_on """
    req_json = request.get_json()
    try:
        qH_name, timestamp = exception_helper.getQhawaxSignalJson(req_json)
        qhawax_state = same_helper.getQhawaxStatus(qH_name)
        description = 'qHAWAX turned on after a loss of signal'
        json_email = {
            'description': description,
            'person_in_charge': 'Firmware'
        }
        if (qhawax_state is not None):
            mode = same_helper.getQhawaxMode(qH_name)
            on_loop = int(same_helper.getQhawaxOnLoop(qH_name)) + 1
            if (qhawax_state == 'OFF'):
                post_business_helper.saveStatusQhawaxTable(qH_name, "ON", 0)
                post_business_helper.setLastMeasurementOfQhawax(qH_name)
                post_business_helper.writeBinnacle(
                    qH_name, json_email['description'],
                    json_email['person_in_charge'])
                post_business_helper.resetOnLoop(qH_name, 0)
                return make_response({'Success': description}, 200)
            else:
                post_business_helper.reset_on_loop(qH_name, 0) if (
                    on_loop == 20) else post_business_helper.reset_on_loop(
                        qH_name, on_loop)
                if (on_loop == 1):
                    post_business_helper.recordFirstTimeLoop(
                        qH_name, timestamp)
                return make_response({'Success': 'qHAWAX is already ON'}, 200)
        return make_response({'Warning': 'qHAWAX name has not been found'},
                             400)
    except TypeError as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
Пример #4
0
 def test_create_qhawax_and_default_sensors_valid(self):
     end_date_string = "2020-10-30 00:00:00.255258"
     date_format = '%Y-%m-%d %H:%M:%S.%f'
     person_in_charge = 'l.montalvo'
     last_qhawax_id = int(get_business_helper.queryGetLastQhawax()[0]) + 1
     qhawax_name = 'qH0' + str(last_qhawax_id)
     post_business_helper.createQhawax(qhawax_name, 'STATIC')
     last_gas_sensor_id = int(
         get_business_helper.queryGetLastGasSensor()[0]) + 1
     post_business_helper.insertDefaultOffsets(qhawax_name)
     installation_json = {
         'lat': '-12.0000499',
         'lon': '-77.9000000',
         'comercial_name':
         'Unit Test ' + str(randint(0, 20)) + ' Coveralls',
         'company_id': 1,
         'eca_noise_id': 1,
         'qhawax_id': int(last_qhawax_id),
         'connection_type': 'Panel Solar',
         'season': 'Primavera',
         'is_public': 'no',
         'person_in_charge': person_in_charge
     }
     post_business_helper.storeNewQhawaxInstallation(installation_json)
     description = 'qHAWAX record in field'
     post_business_helper.writeBinnacle(qhawax_name, description,
                                        person_in_charge)
     post_business_helper.saveEndWorkFieldDate(last_qhawax_id,
                                               end_date_string, date_format)
     description = 'qHAWAX save end work in field'
     post_business_helper.writeBinnacle(qhawax_name, description,
                                        person_in_charge)
Пример #5
0
def sendQhawaxStatusOn():
    """qHAWAX / Web Comercial - Set qHAWAX ON due to module reset (sensors reset)"""
    jsonsend = {}
    req_json = request.get_json()
    description = "qHAWAX turned on after a general reset"
    try:
        qhawax_name = str(req_json["qhawax_name"]).strip()
        comercial_name = same_helper.getComercialName(qhawax_name)
        post_business_helper.saveStatusQhawaxTable(qhawax_name, "ON", 0)
        post_business_helper.saveTurnOnLastTime(qhawax_name)
        post_business_helper.writeBinnacle(qhawax_name, description, "API")
        type = same_helper.queryQhawaxType(qhawax_name)
        if type == "MOBILE_EXT":
            (
                trip_start,
                trip_id,
            ) = get_data_helper.getqHAWAXMobileLatestTripStart(qhawax_name)
            if trip_id != None and trip_start != None:
                date_start = (
                    trip_start - datetime.timedelta(hours=5)
                ).date()  # local
                now_date = (
                    datetime.datetime.now(dateutil.tz.tzutc())
                    - datetime.timedelta(hours=5)
                ).date()
                if date_start == now_date:
                    same_helper.setTripEndNull(
                        trip_id
                    )  # trip is continued if there is any that started in the same day
        return make_response({"Success": "qHAWAX ON physically"}, 200)
    except TypeError as e:
        json_message = jsonify({"error": "'%s'" % (e)})
        return make_response(json_message, 400)
Пример #6
0
def qhawaxEndCalibration():
    """qHAWAX update end calibration mode, set main inca original, depends of mode (customer or stand by)"""
    req_json = request.get_json()
    try:
        qH_name, in_charge = exception_helper.getEndCalibrationFields(req_json)
        (
            mode,
            description,
            main_inca,
        ) = get_business_helper.getLastValuesOfQhawax(qH_name)
        post_business_helper.updateMainIncaQhawaxTable(main_inca, qH_name)
        post_business_helper.updateMainIncaQhawaxInstallationTable(
            main_inca, qH_name
        )
        # post_business_helper.updateTimeOnPreviousTurnOn(qH_name,1) # update last_registration relatively to the physically_turn_on
        post_business_helper.changeMode(qH_name, mode)
        post_business_helper.writeBinnacle(qH_name, description, in_charge)
        return make_response(
            {"Success": "qHAWAX has been changed to original mode - open"}, 200
        )
    except (TypeError, ValueError) as e:
        json_message = jsonify({"error": "'%s'" % (e)})
        return make_response(json_message, 400)
    except (Exception) as e:
        json_message = jsonify({"database error": "'%s'" % (e)})
        return make_response(json_message, 400)
Пример #7
0
def qhawaxChangeToCalibration():
    """
    qHAWAX update to Calibration mode, set main inca -2 value

    """
    req_json = request.get_json()
    try:
        qhawax_name = str(req_json['qhawax_name']).strip()
        person_in_charge = req_json['person_in_charge']
        description = req_json['description']
        qhawax_time_off = now.replace(tzinfo=None)
        post_business_helper.saveStatusOffQhawaxTable(qhawax_name)
        post_business_helper.updateMainIncaQhawaxTable(-2, qhawax_name)
        if (same_helper.getQhawaxMode(qhawax_name) == 'Cliente'):
            post_business_helper.saveStatusOffQhawaxInstallationTable(
                name, qhawax_time_off)
            post_business_helper.updateMainIncaQhawaxInstallationTable(
                -2, qhawax_name)
        post_business_helper.changeMode(qhawax_name, "Calibracion")
        post_business_helper.writeBinnacle(qhawax_name, description,
                                           person_in_charge)
        return make_response(
            {'Success': 'qHAWAX have changed to calibration mode'}, 200)
    except TypeError as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
Пример #8
0
def sendQhawaxStatusOnBaseOnLossSignal():
    """Set qHAWAX ON Base On Loss Signal  - It should set last main inca value, set last last_time_off record and last last_time_on"""
    req_json = request.get_json()
    try:
        qH_name, timestamp = exception_helper.getQhawaxSignalJson(req_json)
        qhawax_state = same_helper.getQhawaxStatus(qH_name)
        description = "qHAWAX turned on after a loss of signal"
        json_email = {
            "description": description,
            "person_in_charge": "Firmware",
        }
        qhawax_type = same_helper.queryQhawaxType(qH_name)
        if qhawax_state is not None:
            mode = same_helper.getQhawaxMode(qH_name)
            on_loop = int(same_helper.getQhawaxOnLoop(qH_name)) + 1
            if qhawax_state == "OFF":
                post_business_helper.saveStatusQhawaxTable(
                    qH_name, "ON", 0
                )  # tabla qHAWAX
                post_business_helper.setLastMeasurementOfQhawax(qH_name)
                post_business_helper.writeBinnacle(
                    qH_name,
                    json_email["description"],
                    json_email["person_in_charge"],
                )
                post_business_helper.resetOnLoop(qH_name, 0)
                if qhawax_type == "MOBILE_EXT":
                    # only if mobile, we have to check if there is a previous trip that we must continue
                    (
                        trip_start,
                        trip_id,
                    ) = get_data_helper.getqHAWAXMobileLatestTripStart(qH_name)
                    if trip_id != None and trip_start != None:
                        # trip_start = datetime.datetime.strptime('2021-07-12 12:00:00', '%Y-%m-%d %H:%M:%S') # test
                        date_start = (
                            trip_start - datetime.timedelta(hours=5)
                        ).date()  # local
                        now_date = (
                            datetime.datetime.now(dateutil.tz.tzutc())
                            - datetime.timedelta(hours=5)
                        ).date()
                        if date_start == now_date:
                            same_helper.setTripEndNull(trip_id)
                return make_response({"Success": description}, 200)
            else:
                post_business_helper.resetOnLoop(qH_name, 0) if (
                    on_loop == 20
                ) else post_business_helper.resetOnLoop(qH_name, on_loop)
                if on_loop == 1:
                    post_business_helper.recordFirstTimeLoop(
                        qH_name, timestamp
                    )
                return make_response({"Success": "qHAWAX is already ON"}, 200)
        return make_response(
            {"Warning": "qHAWAX name has not been found"}, 400
        )
    except TypeError as e:
        json_message = jsonify({"error": "'%s'" % (e)})
        return make_response(json_message, 400)
def updateQhawaxInstallation():
    """Updates qHAWAX in Field"""
    data_json = request.get_json()
    description = "Some fields of qHAWAX installation were updated"
    try:
        qH_name, in_charge = exception_helper.getInstallationFields(data_json)
        post_business_helper.updateQhawaxInstallation(data_json)
        post_business_helper.writeBinnacle(qH_name, description, in_charge)
        return make_response(
            {"Sucess": "qHAWAX field information have been updated"}, 200)
    except TypeError as e:
        json_message = jsonify({"error": "'%s'" % (e)})
        return make_response(json_message, 400)
Пример #10
0
def sendQhawaxStatusOn():
    """ qHAWAX / Web Comercial - Set qHAWAX ON due to module reset (sensors reset) """
    jsonsend = {}
    req_json = request.get_json()
    description = "qHAWAX turned on after a general reset"
    try:
        qhawax_name = str(req_json['qhawax_name']).strip()
        post_business_helper.saveStatusQhawaxTable(qhawax_name, 'ON', 0)
        post_business_helper.saveTurnOnLastTime(qhawax_name)
        post_business_helper.writeBinnacle(qhawax_name, description, None)
        jsonsend['main_inca'] = 0
        jsonsend['name'] = qhawax_name
        return make_response({'Success': 'qHAWAX ON physically'}, 200)
    except TypeError as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
Пример #11
0
def saveOffsets():
    try:
        req_json = request.get_json()
        exception_helper.getOffsetTargetofJson(req_json)
        qhawax_name = str(req_json['product_id']).strip()
        offsets = req_json['offsets']
        description = req_json['description']
        person_in_charge = req_json['person_in_charge']
        post_business_helper.updateJsonGasSensor(qhawax_name, offsets)
        post_business_helper.writeBinnacle(qhawax_name, description,
                                           person_in_charge)
    except (TypeError, ValueError) as e:
        json_message = jsonify({'error': ' \'%s\'' % (e)})
        return make_response(json_message, 400)
    else:
        return make_response({'Success': 'Offsets have been updated'}, 200)
Пример #12
0
def createQhawax():
    """ Endpoint to create a qHAWAX """
    req_json = request.get_json()
    try:
        qH_name, qH_type, in_charge, description = exception_helper.getQhawaxTargetofJson(
            req_json)
        post_business_helper.createQhawax(qH_name, qH_type)
        post_business_helper.writeBinnacle(qH_name, description, in_charge)
        return make_response({'Success': 'qHAWAX & Sensors have been created'},
                             200)
    except (TypeError, ValueError) as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
    except (Exception) as e:
        json_message = jsonify({'database error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
 def test_create_qhawax_and_default_sensors_valid(self):
     installation_date = "2020-12-29 00:44:00.0-05:00"
     end_date_string = "2020-12-29 01:00:00.255258"
     person_in_charge = "l.montalvo"
     qhawax_name = "qH102"
     post_business_helper.createQhawax(qhawax_name, "STATIC")
     installation_json = {
         "lat": "-7.0000499",
         "lon": "-70.9000000",
         "comercial_name": "Unit Test "
         + str(randint(0, 30))
         + " Coveralls",
         "company_id": 1,
         "eca_noise_id": 1,
         "qhawax_name": qhawax_name,
         "connection_type": "Panel Solar",
         "season": "Primavera",
         "is_public": "no",
         "person_in_charge": person_in_charge,
         "instalation_date": installation_date,
         "link_report": "Test",
         "observations": "Test Obs",
         "district": "La Victoria",
     }
     post_business_helper.storeNewQhawaxInstallation(installation_json)
     description = "qHAWAX record in field"
     post_business_helper.writeBinnacle(
         qhawax_name, description, person_in_charge
     )
     installation_json_update = {
         "lat": "-12.0000499",
         "lon": "-77.9000000",
         "comercial_name": "Unit Test Coveralls " + str(randint(0, 30)),
         "company_id": 1,
         "eca_noise_id": 1,
         "qhawax_name": qhawax_name,
         "connection_type": "Panel Solar",
         "season": "Primavera",
         "is_public": "no",
         "person_in_charge": "l.montalvo",
     }
     post_business_helper.updateQhawaxInstallation(installation_json_update)
     post_business_helper.saveEndWorkFieldDate(qhawax_name, end_date_string)
     description = "qHAWAX save end work in field"
     post_business_helper.writeBinnacle(
         qhawax_name, description, person_in_charge
     )
def handleProcessedDataByMobileQhawax():
    data_json = request.get_json()
    try:
        product_id = data_json["ID"]
        if data_json is not None:
            if "zone" in data_json:
                data_json.pop("zone")
            post_data_helper.storeProcessedDataInDB(data_json)
            data_json["ID"] = product_id
            state = get_business_helper.queryQhawaxStatus(product_id)
            mode = same_helper.getQhawaxMode(product_id)
            if state == "OFF":  # if API turned it off
                post_business_helper.saveTurnOnLastTimeProcessedMobile(
                    product_id)
                post_business_helper.saveStatusQhawaxTable(
                    product_id, "ON", 1)  # state = ON - qhawax
                post_business_helper.writeBinnacle(product_id, "Reconnection",
                                                   "API")

            if mode == "Customer":
                (
                    minutes_difference,
                    last_time_turn_on,
                ) = get_business_helper.getHoursDifference(product_id)
                if minutes_difference != None:
                    if minutes_difference < 30:
                        if last_time_turn_on + datetime.timedelta(
                                minutes=1) < datetime.datetime.now(
                                    dateutil.tz.tzutc()):
                            post_data_helper.validAndBeautyJsonValidProcessedMobile(
                                data_json, product_id)

                    elif minutes_difference >= 30:
                        if last_time_turn_on + datetime.timedelta(
                                hours=2) < datetime.datetime.now(
                                    dateutil.tz.tzutc()):
                            post_data_helper.validAndBeautyJsonValidProcessedMobile(
                                data_json, product_id)

            return make_response("OK", 200)
        return make_response("ID not found", 400)
    except TypeError as e:
        json_message = jsonify({"error": "'%s'" % (e)})
        return make_response(json_message, 400)
Пример #15
0
def sendQhawaxStatusOff():
    """ Server Open Source lo apagara / Web Comercial lo pagara y enviara correo- Endpoint to set qHAWAX OFF because script detect no new data within five minutes  """
    jsonsend = {}
    req_json = request.get_json()
    description = "qHAWAX off"
    try:
        qH_name = exception_helper.getStatusOffTargetofJson(req_json)
        post_business_helper.saveStatusQhawaxTable(qH_name, 'OFF', -1)
        lessfive = get_data_helper.getQhawaxLatestTimestampProcessedMeasurement(
            qhawax_name)
        post_business_helper.saveStatusOffQhawaxInstallationTable(
            qH_name, lessfive)
        post_business_helper.writeBinnacle(qH_name, description, None)
        jsonsend['main_inca'] = -1
        jsonsend['name'] = qH_name
        socketio.emit('update_inca', jsonsend)
        return make_response({'Success': 'qHAWAX OFF'}, 200)
    except (ValueError, TypeError) as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
Пример #16
0
def qhawaxEndCalibration():
    """ qHAWAX update end calibration mode, set main inca original, depends of mode (customer or stand by)"""
    req_json = request.get_json()
    try:
        qH_name, in_charge = exception_helper.getEndCalibrationFields(req_json)
        mode, description, main_inca = get_business_helper.getLastValuesOfQhawax(
            qH_name)
        post_business_helper.updateMainIncaQhawaxTable(main_inca, qH_name)
        post_business_helper.updateMainIncaQhawaxInstallationTable(
            main_inca, qH_name)
        post_business_helper.changeMode(qH_name, mode)
        post_business_helper.writeBinnacle(qH_name, description, in_charge)
        return make_response(
            {'Success': 'qHAWAX has been changed to original mode - open'},
            200)
    except (TypeError, ValueError) as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
    except (Exception) as e:
        json_message = jsonify({'database error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
def newQhawaxInstallation():
    """
    To create a qHAWAX in Field 

    """
    data_json = request.get_json()
    try:
        qhawax_id = data_json['qhawax_id']
        qhawax_id = data_json['description']
        person_in_charge = data_json['person_in_charge']
        post_business_helper.storeNewQhawaxInstallation(data_json)
        post_business_helper.setOccupiedQhawax(qhawax_id)
        post_business_helper.setModeCustomer(qhawax_id)
        qhawax_name = same_helper.getQhawaxName(qhawax_id)
        post_business_helper.writeBinnacle(qhawax_name, description,
                                           person_in_charge)
    except Exception as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
    else:
        return make_response({'Success': 'Save new qHAWAX in field'}, 200)
	def test_create_qhawax_and_default_sensors_valid(self):
		installation_date = "2020-12-29 00:44:00.0-05:00"
		end_date_string = "2020-12-29 01:00:00.255258"
		person_in_charge = 'l.montalvo'
		qhawax_name = 'qH102'
		post_business_helper.createQhawax(qhawax_name,'STATIC')
		installation_json = {'lat':'-7.0000499','lon':'-70.9000000',
							 'comercial_name':'Unit Test '+str(randint(0, 30))+' Coveralls',
							 'company_id':1,'eca_noise_id':1,'qhawax_name':qhawax_name,
							 'connection_type':'Panel Solar','season':'Primavera','is_public':'no',
							 'person_in_charge':person_in_charge,"instalation_date":installation_date,
							 'link_report':'Test','observations':'Test Obs','district':"La Victoria"}
		post_business_helper.storeNewQhawaxInstallation(installation_json)
		description = 'qHAWAX record in field'
		post_business_helper.writeBinnacle(qhawax_name,description,person_in_charge)
		installation_json_update = {'lat':'-12.0000499','lon':'-77.9000000','comercial_name':'Unit Test Coveralls '+str(randint(0, 30)),
							 		'company_id':1,'eca_noise_id':1,'qhawax_name':qhawax_name,'connection_type':'Panel Solar',
							 		'season':'Primavera','is_public':'no','person_in_charge':'l.montalvo'}
		post_business_helper.updateQhawaxInstallation(installation_json_update)
		post_business_helper.saveEndWorkFieldDate(qhawax_name,end_date_string)
		description = 'qHAWAX save end work in field'
		post_business_helper.writeBinnacle(qhawax_name,description,person_in_charge)
Пример #19
0
def sendQhawaxStatusOn():
    """
    Set qHAWAX ON due to module reset (sensors reset) 

    """
    jsonsend = {}
    try:
        req_json = request.get_json()
        exception_helper.getStatusOnTargetofJson(req_json)
        qhawax_name = str(req_json['qhawax_name']).strip()
        description = req_json['description']
        person_in_charge = req_json['person_in_charge']
        post_business_helper.saveStatusOnTable(qhawax_name)
        if (same_helper.getQhawaxMode(qhawax_name) == 'Cliente'):
            post_business_helper.saveTurnOnLastTime(qhawax_name)
        post_business_helper.writeBinnacle(qhawax_name, description,
                                           person_in_charge)
        jsonsend['main_inca'] = 0
        jsonsend['name'] = qhawax_name
        return make_response({'Success': 'qHAWAX ON physically'}, 200)
    except TypeError as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
Пример #20
0
def qhawaxChangeToCalibration():
    """ qHAWAX update to Calibration mode, set main inca -2 value """
    req_json = request.get_json()
    qhawax_time_off = datetime.datetime.now(dateutil.tz.tzutc())
    description = "qHAWAX has been changed to calibration mode"
    try:
        qH_name, in_charge = exception_helper.getChangeCalibrationFields(
            req_json)
        post_business_helper.updateMainIncaQhawaxTable(-2, qH_name)
        post_business_helper.saveStatusOffQhawaxInstallationTable(
            qH_name, qhawax_time_off)
        post_business_helper.updateMainIncaQhawaxInstallationTable(-2, qH_name)
        post_business_helper.changeMode(qH_name, "Calibration")
        post_business_helper.writeBinnacle(qH_name, description, in_charge)
        return make_response(
            {'Success': 'qHAWAX has been changed to calibration mode - open'},
            200)
    except (TypeError, ValueError) as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
    except (Exception) as e:
        json_message = jsonify({'database error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
Пример #21
0
def qhawaxChangeToCalibration():
    """qHAWAX update to Calibration mode, set main inca -2 value"""
    req_json = request.get_json()
    qhawax_time_off = datetime.datetime.now(dateutil.tz.tzutc())
    description = "qHAWAX has been changed to calibration mode"
    try:
        qH_name, in_charge = exception_helper.getChangeCalibrationFields(
            req_json
        )
        comercial_name = same_helper.getComercialName(qH_name)
        qhawax_type = same_helper.queryQhawaxType(qH_name)
        post_business_helper.updateMainIncaQhawaxTable(-2, qH_name)
        if (
            qhawax_type != "MOBILE_EXT"
        ):  # Mobile qhawaxs should not be affected by this condition. Nor any other qhawaxs though..
            post_business_helper.saveStatusOffQhawaxInstallationTable(
                qH_name, qhawax_time_off
            )
        post_business_helper.updateMainIncaQhawaxInstallationTable(-2, qH_name)
        post_business_helper.changeMode(qH_name, "Calibration")
        post_business_helper.writeBinnacle(qH_name, description, in_charge)
        # if (qhawax_type == 'MOBILE_EXT'):
        #     post_data_helper.recordEndTrip(qH_name, str(comercial_name))
        #     jsonLatLon = get_data_helper.getMobileLatestLatLonValidProcessedMeasurement(qH_name)
        #     if(jsonLatLon!=None):
        #         post_data_helper.updateLastestLatLonMobile(qH_name,jsonLatLon)
        return make_response(
            {"Success": "qHAWAX has been changed to calibration mode - open"},
            200,
        )
    except (TypeError, ValueError) as e:
        json_message = jsonify({"error": "'%s'" % (e)})
        return make_response(json_message, 400)
    except (Exception) as e:
        json_message = jsonify({"database error": "'%s'" % (e)})
        return make_response(json_message, 400)
Пример #22
0
def sendQhawaxStatusOff():
    """Server Open Source lo apagara / Web Comercial lo pagara y enviara correo- Endpoint to set qHAWAX OFF because script detect no new data within five minutes"""
    jsonsend = {}
    req_json = request.get_json()
    description = "qHAWAX off"
    try:
        qH_name = exception_helper.getStatusOffTargetofJson(req_json)
        comercial_name = same_helper.getComercialName(qH_name)
        post_business_helper.saveStatusQhawaxTable(qH_name, "OFF", -1)
        lessfive = (
            get_data_helper.getQhawaxLatestTimestampProcessedMeasurement(
                qH_name
            )
        )  # obtuve la ultima medida enviada a la tabla procesed open
        post_business_helper.saveStatusOffQhawaxInstallationTable(
            qH_name, lessfive
        )
        post_business_helper.writeBinnacle(qH_name, description, "API")
        jsonsend["main_inca"] = -1
        jsonsend["name"] = qH_name
        socketio.emit("update_inca", jsonsend)
        type = same_helper.queryQhawaxType(qH_name)
        if type == "MOBILE_EXT":
            post_data_helper.recordEndTrip(qH_name, str(comercial_name))
            jsonLatLon = (
                get_data_helper.getMobileLatestLatLonValidProcessedMeasurement(
                    qH_name
                )
            )
            if jsonLatLon != None:
                post_data_helper.updateLastestLatLonMobile(qH_name, jsonLatLon)

        return make_response({"Success": "qHAWAX OFF"}, 200)
    except (ValueError, TypeError) as e:
        json_message = jsonify({"error": "'%s'" % (e)})
        return make_response(json_message, 400)
def saveEndWorkField():
    """
    Save last date of qHAWAX in field

    """
    data_json = request.get_json()
    try:
        qhawax_id = data_json['qhawax_id']
        end_date = data_json['end_date']
        description = data_json['description']
        person_in_charge = data_json['person_in_charge']
        date_format = '%d-%m-%Y %H:%M:%S.%f'
        post_business_helper.saveEndWorkFieldDate(qhawax_id, end_date,
                                                  date_format)
        post_business_helper.setAvailableQhawax(qhawax_id)
        qhawax_name = same_helper.getQhawaxName(qhawax_id)
        post_business_helper.changeMode(qhawax_name, "Stand By")
        post_business_helper.writeBinnacle(qhawax_name, description,
                                           person_in_charge)
    except TypeError as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
    else:
        return make_response('Success: Save qHAWAX last day in field', 200)
Пример #24
0
def createQhawax():
    """
    To create a qHAWAX 

    """
    try:
        req_json = request.get_json()
        exception_helper.getQhawaxTargetofJson(req_json)
        qhawax_name = str(req_json['qhawax_name']).strip()
        qhawax_type = str(req_json['qhawax_type']).strip()
        person_in_charge = req_json['person_in_charge']
        description = req_json['description']
        post_business_helper.createQhawax(qhawax_name, qhawax_type)
        post_business_helper.insertDefaultOffsets(qhawax_name)
        post_business_helper.writeBinnacle(qhawax_name, description,
                                           person_in_charge)
        return make_response({'Success': 'qHAWAX & Sensors have been created'},
                             200)
    except (TypeError, ValueError) as e:
        json_message = jsonify({'error': '\'%s\'' % (e)})
        return make_response(json_message, 400)
    except (Exception) as e:
        json_message = jsonify({'database error': '\'%s\'' % (e)})
        return make_response(json_message, 400)