Обновление телеметрии в версии сообщества Thingsboard - PullRequest
0 голосов
/ 09 июля 2020

Как отправить данные из файла excel на устройство на доске объявлений сообщества? Код ниже не работает. Этот код обновляет телеметрию в демонстрационной учетной записи, но не в учетной записи клиента на сервере, установленном в моей системе. (брокер и порт меняются при использовании демо)

import os
import json
import random
import time
import pandas as pd
import xlrd
import psycopg2
from datetime import datetime

ACCESS_TOKEN='DEMO_DEVICE'                 #Token of your device(Thermometer)
broker="52.183.160.251"                        #host name
port=8090                                           #data listening port
loc = ("E:\Solar Internship 2020\steam monitoring\data.xlsx")
wb = xlrd.open_workbook(loc) 
sheet = wb.sheet_by_index(0) 
sheet.cell_value(0, 0) 
n = 0


#for i in range(sheet.nrows):
    #print(sheet.cell_value(i, 0))
#   n = sheet.cell_value(i,0)
#   print(n)
#   time.sleep(2)

def on_publish(client,userdata,result):             #create function for callback
    pass
client1= paho.Client("control1")                    #create client object
client1.on_publish = on_publish                     #assign function to callback
client1.username_pw_set(ACCESS_TOKEN)               #access token from thingsboard device
client1.connect(broker,port,keepalive=60)           #establish connection

for j in range(sheet.nrows):
    for i in range(1,sheet.nrows):
        t = sheet.cell_value(i,0)
        print(t)
        h = sheet.cell_value(i,1)
        print(h)
        p = sheet.cell_value(i,2)
        print(p)
        a = sheet.cell_value(i,3)
        print(a)
        s = sheet.cell_value(i,4)
        print(s)
        c = sheet.cell_value(i,5)
        print(c)
        f = sheet.cell_value(i,6)
        print(f)
        o = sheet.cell_value(i,7)
        print(o)
        print(i)
        time.sleep(2)
        m="{"
        m+="\"Temperature1\":{t},".format(t=t)
        m+="\"Humidity\":{h},".format(h=h)
        m+="\"Pressure\":{p},".format(p=p)
        m+="\"Air Flow Rate\":{a},".format(a=a)
        m+="\"Steam Flow Rate\":{s},".format(s=s)
        m+="\"Temperature2\":{c},".format(c=c)
        m+="\"Flue Gas Temperature\":{f},".format(f=f)
        m+="\"CO content\":{o}".format(o=o)
        m+="}"
        ret= client1.publish("v1/devices/me/telemetry",m) #topic-v1/devices/me/telemetry
        print(m);
        print(type(m))
        time.sleep(2)
        break;```

...