Ejemplo n.º 1
0
def add_device_event(event=None):
    valid_auth_code()
    event = event or get_post_json_data()
    device = event.get("device")
    if not device:
        throw(_("Request fields not found. fields: device"))

    if not IOTDevice.check_sn_exists(device):
        throw(_("Device {0} not found.").format(device))
    dev_doc = frappe.get_doc("IOT Device", device)

    event_utc_time = datetime.datetime.strptime(event.get("time"),
                                                DATETIME_FORMAT)
    local_time = str(
        convert_utc_to_user_timezone(event_utc_time).replace(tzinfo=None))

    doc = frappe.get_doc({
        "doctype": "IOT Device Event",
        "device": device,
        "event_level": int(event.get("level") or 0),
        "event_type": event.get("type"),
        "event_info": event.get("info"),
        "event_data": event.get("data"),
        "event_time": local_time,
        "event_device": event.get("device"),
        "event_source": event.get("source"),
        "owner_type": dev_doc.owner_type,
        "owner_id": dev_doc.owner_id,
        "owner_company": dev_doc.company,
        "wechat_notify": 1,
    }).insert().as_dict()

    return doc
Ejemplo n.º 2
0
def add_device(device_data=None):
    valid_auth_code()
    device = device_data or get_post_json_data()

    sn = device.get("sn")
    if not sn:
        throw(_("Request fields not found. fields: sn"))

    if IOTDevice.check_sn_exists(sn):
        return IOTDevice.get_device_doc(sn)

    device.update({"doctype": "IOT Device"})

    if not device.get("dev_name"):
        device.update({"dev_name": sn})

    dev = frappe.get_doc(device).insert()

    return __generate_hdb(dev)
Ejemplo n.º 3
0
def batch_add_device():
    valid_auth_code()
    sn_list = get_post_json_data().get('sn_list')
    done_list = []
    failed_list = []
    for sn in sn_list:
        if not IOTDevice.check_sn_exists(sn):
            try:
                dev = frappe.get_doc({
                    "doctype": "IOT Device",
                    "sn": sn,
                    "dev_name": sn
                }).insert()
                done_list.append(dev.sn)
            except Exception as ex:
                failed_list.append(sn)
        else:
            failed_list.append(sn)

    return {"done": done_list, "failed": failed_list}
Ejemplo n.º 4
0
def add_device_error(err_data=None):
    """
	Add device error
	:param err_data: {"device": device_sn, "error_type": Error Type defined, "error_key": any text, "error_level": int, "error_info": any text}
	:return: iot_device_error
	"""
    valid_auth_code()
    err_data = err_data or get_post_json_data()
    device = err_data.get("device")
    if not device:
        throw(_("Request fields not found. fields: device"))

    if not IOTDevice.check_sn_exists(device):
        throw(_("Device {0} not found.").format(device))

    err_data.update({
        "doctype": "IOT Device Error",
        "error_level": int(err_data.get("error_level") or 0),
        "wechat_notify": int(err_data.get("wechat_notify") or 0),
    })
    doc = frappe.get_doc(err_data).insert().as_dict()

    return doc