first commit
This commit is contained in:
139
tuya/device.py
Normal file
139
tuya/device.py
Normal file
@@ -0,0 +1,139 @@
|
||||
import tinytuya
|
||||
import requests
|
||||
import time
|
||||
|
||||
def get_value_safely(data, key):
|
||||
try:
|
||||
# Tente d'obtenir la valeur associée à la clé, si elle existe
|
||||
value = data['dps'].get(key, None)
|
||||
|
||||
# Si la valeur est None, renvoie 0
|
||||
return value if value is not None else 0
|
||||
|
||||
except Exception as e:
|
||||
# En cas d'erreur, imprime un message d'erreur et renvoie 0
|
||||
print(f"Erreur : {e}")
|
||||
return 0
|
||||
|
||||
# Connect to Device
|
||||
#"apiKey": "hgkvdyrstyhqudku3xdu",
|
||||
#"apiSecret": "704a1bad394a4efe805f46fb04c46916",
|
||||
#"apiRegion": "eu-w",
|
||||
#"apiDeviceID": "bf4d021ef10d39ea17gpwo"
|
||||
|
||||
response = ""
|
||||
while True:
|
||||
d = tinytuya.OutletDevice(
|
||||
dev_id='bf4d021ef10d39ea17gpwo',
|
||||
address='192.168.1.15', # 53 Or set to 'Auto' to auto-discover IP address
|
||||
local_key='4.p}ZHi*hO>wVFl-',
|
||||
version=3.5)
|
||||
|
||||
# Get Status
|
||||
data = d.status()
|
||||
print('set_status() result %r' % data)
|
||||
|
||||
#data = json.loads(data)
|
||||
|
||||
# Utilisation de la fonction get_value_safely pour remplacer les lignes existantes
|
||||
value_105 = get_value_safely(data, '105')
|
||||
value_106 = get_value_safely(data, '106')
|
||||
value_107 = get_value_safely(data, '107')
|
||||
value_108 = get_value_safely(data, '108') or 0
|
||||
value_109 = get_value_safely(data, '109') or 0
|
||||
value_115 = get_value_safely(data, '115')
|
||||
value_116 = get_value_safely(data, '116')
|
||||
value_117 = get_value_safely(data, '117')
|
||||
value_118 = get_value_safely(data, '118') or 0
|
||||
value_119 = get_value_safely(data, '119') or 0
|
||||
|
||||
# Afficher les valeurs
|
||||
print("=================================")
|
||||
#print("103 :", data['dps'].get('103', None) or 0)
|
||||
#print("104 :", data['dps'].get('104', None) or 0)
|
||||
print("105 Valeur watt :", value_105 / 10)
|
||||
print("106 Valeur mA :", value_106)
|
||||
print("107 Valeur Volt :", value_107 / 10)
|
||||
print("108 Cumul kWh :", value_108 / 1000)
|
||||
print("109 Valeur kWh :", value_109 / 1000)
|
||||
#print("110 :", data['dps'].get('110', None))
|
||||
#print("111 Alerte 1 :", data['dps'].get('111', None))
|
||||
print("=================================")
|
||||
#print("113 :", data['dps'].get('113', None))
|
||||
#print("114 :", data['dps'].get('114', None))
|
||||
print("115 Valeur watt :", value_115 / 10)
|
||||
print("116 Valeur mA :", value_116)
|
||||
print("117 Valeur Volt :", value_117 / 10)
|
||||
print("118 Cumul kWh :", value_118 / 1000)
|
||||
print("119 Valeur kWh :", value_119 / 1000)
|
||||
#print("120 :", data['dps'].get('120', None))
|
||||
#print("121 Alerte 2 :", data['dps'].get('121', None))
|
||||
print("=================================")
|
||||
|
||||
#print("122 :", data['dps'].get('122', None))
|
||||
#print("123 :", data['dps'].get('123', None))
|
||||
#print("124 :", data['dps'].get('124', None))
|
||||
# Turn On
|
||||
#d.turn_on()
|
||||
|
||||
# id domoticz 1181
|
||||
# print('1121|0|' + str(value_105) + ";0;" + str(value_115) + ";0;" + str(value_108) + ";" + str(value_118))
|
||||
|
||||
# Effectuer une requête GET
|
||||
#url = "http://192.168.1.3:81/json.htm?type=command¶m=udevice&idx=1181&nvalue=0&svalue=" + str(value_109) + ";" + str(value_105 / 10) + ";" + str(value_119) + ";" + str(value_115 / 10) + ";;"
|
||||
url = "http://192.168.1.3:81/json.htm?type=command¶m=udevice&idx=1181&nvalue=0&svalue=" + str(value_109) + ";0;" + str(value_119) + ";0;" + str(value_105 / 10) + ";" + str(value_115 / 10) #USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD
|
||||
|
||||
#USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD
|
||||
print(url)
|
||||
try:
|
||||
response = requests.get(url)
|
||||
print(response)
|
||||
except requests.RequestException as e:
|
||||
# Gérez les autres erreurs liées aux requêtes ici
|
||||
print(f"Erreur de requête : {e}")
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
# 1185 Radiateur
|
||||
idx = "1185"
|
||||
url = "http://192.168.1.3:81/json.htm?type=command¶m=udevice&idx=" + idx + "&svalue=" + str(value_115 / 10) + ";0&nvalue=0";
|
||||
try:
|
||||
response = requests.get(url)
|
||||
print(response)
|
||||
except requests.RequestException as e:
|
||||
# Gérez les autres erreurs liées aux requêtes ici
|
||||
print(f"Erreur de requête : {e}")
|
||||
print(response)
|
||||
time.sleep(1)
|
||||
|
||||
# 1184 Chauffe eau 2
|
||||
idx = "1184"
|
||||
url = "http://192.168.1.3:81/json.htm?type=command¶m=udevice&idx=" + idx + "&svalue=" + str(value_105 / 10) + ";0&nvalue=0";
|
||||
try:
|
||||
response = requests.get(url)
|
||||
print(response)
|
||||
except requests.RequestException as e:
|
||||
# Gérez les autres erreurs liées aux requêtes ici
|
||||
print(f"Erreur de requête : {e}")
|
||||
|
||||
# --USAGE1= energy usage meter tariff 1, This is an incrementing counter
|
||||
# --USAGE2= energy usage meter tariff 2, This is an incrementing counter
|
||||
# --RETURN1= energy return meter tariff 1, This is an incrementing counter
|
||||
# --RETURN2= energy return meter tariff 2, This is an incrementing counter
|
||||
# --CONS= actual usage power (Watt)
|
||||
# --PROD= actual return power (Watt)
|
||||
# .. tostring(math.floor(watt_p1)) .. ';'
|
||||
# .. tostring(math.floor(watt_p2)) .. ';'
|
||||
# -- + value_solar2 - counter_solar2
|
||||
# .. tostring(math.floor(value_solar - counter_solar + value_solar2 - counter_solar2)) .. ';'
|
||||
# .. '0;'
|
||||
# .. tostring(math.floor(math.max(0,watt) + watt_solaire)).. ';'
|
||||
# .. tostring(math.floor(watt_solaire)) --math.floor(ConsumoEnergyBalance / 1000)) --round(watt,0))
|
||||
|
||||
|
||||
# Turn Off
|
||||
#d.turn_off()
|
||||
time.sleep(25)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user