コード例 #1
0
 def check():
     t = machine.RTC().datetime()
     for r in Relays.data.keys():
         rel = Relays.data[r]
         pin = machine.Pin(rel["pin"], machine.Pin.OUT)
         toreplace = {"dow": t[6], "hod": t[4], "moy": t[1], "year": t[0]}
         for s in Sensors.data["roms"].keys():
             toreplace["s%s" % s] = Sensors.getValue(s)
         si = rel["condition"]
         for r in toreplace.keys():
             si = si.replace("{%s}" % r, toreplace[r])
         Status.log("Eval condition: %s" % si)
         try:
             if eval(si):
                 pin.value(1)
             else:
                 pin.value(0)
         except Exception:
             Status.log("Bad condition!")
             pass
コード例 #2
0
broker = "demo.thingsboard.io"  #host name
port = 1883  #data listening port


def on_publish(client, userdata, result):  #create function for callback
    print("data published to thingsboard \n")
    pass


client1 = paho.Client(client_id="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

sensors = Sensors()  #create sensor obj

while True:  #get the values
    values = sensors.getValue()
    payload = "{"  #create message payload
    payload += "\"Temperature\":" + values[0] + ","
    payload += "\"Humidity\":" + values[1] + ","
    payload += "\"WindDirection\":" + values[2] + ","
    payload += "\"WindIntensity\":" + values[3] + ","
    payload += "\"RainHight\":" + values[4]
    payload += "}"
    ret = client1.publish("v1/devices/me/telemetry",
                          payload)  #topic-v1/devices/me/telemetry
    print("Please check LATEST TELEMETRY field of your device")
    print(payload)
    time.sleep(5)  #sleep for 5 seconds