#!/usr/bin/env python3
# Example cron schedule:
# */30 * * * * python3 /usr/local/bin/tuya_temp_hum_update.py
import json
import tinytuya
from time import time
from uuid import uuid4
devices = {
"sensor1": "xxxxxxxxxxxxxxxxxxID",
"sensor2": "xxxxxxxxxxxxxxxxxxID"
}
c = tinytuya.Cloud(
apiRegion="eu",
apiKey="xxxxxxxxxxxxxxxxxxxx",
apiSecret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
)
for i in devices:
try:
result = c.getstatus(devices[i])
except:
t = int(time() * 1000)
tid = uuid4().hex
result = (
"""{"result": [{"code": "va_temperature", "value": "unknown"}, {"code": "va_humidity", "value": "unknown"}, {"code": "battery_state", "value": "unknown"}, {"code": "temp_unit_convert", "value": "c"}], "success": false, "t": %d, "tid": "%s"}"""
% (t, tid)
)
with open(f"/tmp/sensors/tuya_temp_hum_{i}.tmp", "w") as fh:
json.dump(result, fh) if isinstance(result, dict) else fh.write(result)