mirror of
https://github.com/Ladebeze66/tuya_project.git
synced 2025-12-15 19:36:55 +01:00
66 lines
2.0 KiB
Python
66 lines
2.0 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Script pour ouvrir le volet Dino
|
|
À utiliser avec StreamDeck
|
|
"""
|
|
|
|
import tinytuya
|
|
import json
|
|
|
|
# Informations Cloud Tuya
|
|
API_REGION = "eu"
|
|
API_KEY = "fdjdjurkm34yyjp77c7d"
|
|
API_SECRET = "3e71807fb0c6406792bdf4f07f98e577"
|
|
|
|
# ID et nom de l'appareil
|
|
DEVICE_ID = "bff082745aedf9fc1aqy3e" # ID du volet Dino
|
|
DEVICE_NAME = "Volet dino" # Nom de l'appareil
|
|
|
|
# Code des commandes du volet
|
|
SWITCH_CODE = "control" # Pour les volets Tuya, le code est souvent "control"
|
|
|
|
def main():
|
|
"""Fonction principale pour ouvrir le volet via Cloud"""
|
|
# Connexion au Cloud
|
|
cloud = tinytuya.Cloud(
|
|
apiRegion=API_REGION,
|
|
apiKey=API_KEY,
|
|
apiSecret=API_SECRET
|
|
)
|
|
|
|
tinytuya.set_debug(True) # Pour debug si besoin
|
|
|
|
# Lire l'état actuel du volet
|
|
print(f"🔍 Récupération du statut pour l'appareil {DEVICE_ID}...")
|
|
status = cloud.getstatus(DEVICE_ID)
|
|
|
|
if not status:
|
|
print(f"❌ Aucune réponse de l'API Cloud pour {DEVICE_NAME}")
|
|
return
|
|
|
|
try:
|
|
print(f"📊 Réponse brute: {json.dumps(status, indent=2)}")
|
|
except Exception as e:
|
|
print(f"⚠️ Erreur lors de l'affichage de la réponse: {e}")
|
|
|
|
# Envoyer la commande pour ouvrir le volet
|
|
commands = {
|
|
"commands": [
|
|
{"code": SWITCH_CODE, "value": "open"}, # Utiliser "open" pour ouvrir
|
|
# Vous pouvez également essayer "ouvrir" si cela est supporté
|
|
]
|
|
}
|
|
|
|
print(f"📤 Envoi de la commande: {json.dumps(commands, indent=2)}")
|
|
response = cloud.sendcommand(DEVICE_ID, commands)
|
|
print(f"📥 Réponse reçue: {json.dumps(response, indent=2) if response else 'Aucune réponse'}")
|
|
|
|
if response is not None and response.get("success"):
|
|
print(f"✅ {DEVICE_NAME} est maintenant ouvert")
|
|
else:
|
|
error_msg = response.get("msg", "Erreur inconnue") if response else "Pas de réponse"
|
|
print(f"❌ Échec pour {DEVICE_NAME}: {error_msg}")
|
|
|
|
if __name__ == "__main__":
|
|
main() |