def iot_device_his_data(sn=None, vsn=None, fields=None, condition=None): vsn = vsn or sn fields = fields or "*" doc = frappe.get_doc('IOT Device', sn) doc.has_permission("read") if vsn != sn: if vsn not in iot_device_tree(sn): return 401 inf_server = IOTHDBSettings.get_influxdb_server() if not inf_server: frappe.logger(__name__).error("InfluxDB Configuration missing in IOTHDBSettings") return 500 query = 'SELECT ' + fields + ' FROM "' + vsn + '"' if condition: query = query + " WHERE " + condition else: query = query + " LIMIT 1000" domain = frappe.get_value("Cloud Company", doc.company, "domain") r = requests.session().get(inf_server + "/query", params={"q": query, "db": domain}, timeout=10) if r.status_code == 200: return r.json()["results"] or r.json() return r.text
def taghisdata(sn=None, vsn=None, fields=None, condition=None): vsn = vsn or sn fields = fields or "*" doc = frappe.get_doc('IOT Device', sn) doc.has_permission("read") inf_server = IOTHDBSettings.get_influxdb_server() if not inf_server: frappe.logger(__name__).error("InfluxDB Configuration missing in IOTHDBSettings") return 500 query = 'SELECT ' + fields + ' FROM "' + vsn + '"' if condition: query = query + " WHERE " + condition else: query = query + " LIMIT 1000" domain = frappe.get_value("Cloud Company", doc.company, "domain") r = requests.session().get(inf_server + "/query", params={"q": query, "db": domain}, timeout=10) if r.status_code == 200: try: res = r.json()["results"][0]['series'][0]['values'] taghis = [] for i in range(0, len(res)): hisvalue = {} #print('*********', res[i][0]) try: utc_time = datetime.datetime.strptime(res[i][0], UTC_FORMAT1) except Exception as err: pass try: utc_time = datetime.datetime.strptime(res[i][0], UTC_FORMAT2) except Exception as err: pass #local_time = utc2local(utc_time).strftime("%Y-%m-%d %H:%M:%S") local_time = str(convert_utc_to_user_timezone(utc_time).replace(tzinfo=None)) #print('#######', local_time) if res[i][2] == '1': hisvalue = {'name': res[i][1], 'value': res[i][4], 'time': local_time, 'quality': 0} elif res[i][2] == '2': hisvalue = {'name': res[i][1], 'value': res[i][3], 'time': local_time, 'quality': 0} taghis.append(hisvalue) #print(taghis) return taghis except Exception as err: return r.json()