API tuya developper

Bonjour à tous,

Je suis nouveau dans le domaine de la domotique et j’aurais quelques questions à ce sujet. Voici les équipements que je possède :

3 prises connectées Tuya
1 compteur d’énergie (prise ampèremétrique) Tuya
1 capteur de présence Tuya
1 passerelle domotique Zigbee de Lidl

1 compte Tuya Smart contenant tous mes équipements
1 compte Tuya Développeur

Mon projet consiste à créer des scripts pour allumer ou éteindre certains éléments en fonction de ma consommation électrique. J’ai entendu parler de l’utilisation de l’API Tuya à cet effet. Est-ce bien la bonne approche ? Parfois, j’entends aussi parler de MQTT. Si quelqu’un a des informations sur la manière de procéder et sur le parametrage ,
je serais reconnaissant .

J’ai essayé d’utiliser l’API développeur Tuya, mais je rencontre des difficultés pour récupérer le token nécessaire à l’exécution de requêtes !
Si quelqu’un peut m’orienter ou me fournir des conseils merci !
voici le script php !

<?php
$secret = 'ma secret';
$clientId = ' mon clientId';
$message = $clientId . time()*1000;
$sign = strtoupper(hash_hmac("sha256", $message, $secret));
$url = "https://openapi.tuyaeu.com";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
    "sign_method: HMAC-SHA256",
    "client_id: " . $clientId,
    "sign: " . $sign,
    "t: " . time()*1000
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
echo $resp;
?>

Merci beaucoup pour votre aide!

Bonsoir

Si tu as un compte développeur c’est sur tuya iot ?
Je pense que le token doit être sur ton compte tuya iot.
(Il me semble avoir vu cela quelque part)

J’espère ne pas faire fausse route.

Pour le script, je peux rien pour toi. :pensive:

Il existe l’intégration tuya : Tuya - Home Assistant

En plus, elle a été mise à jour récemment, en théorie tu n’a plus besoin de compte tuya iot pour que ça fonctionne.

Il existe également l’intégration local tuya (via HACS) si tu souhaites te passer du cloud et pouvoir tout gérer en local : GitHub - rospogrigio/localtuya: local handling for Tuya devices

1 « J'aime »

Salut à tous,

Merci pour vos réponses qui vont sûrement simplifier les choses.
A super ça du coup si je passe avec home assistant il y a le plugin tuya qui permet de communiquer facilement avec ses devise ?
Ça communique en api mais en interne ?
Dans homme assistant ensuite je peux écrire du script pour pouvoir ensuite communiquer avec une autre api pour transmettre les résultats ? Merci :grin:

Oui, les intégrations se chargent de la partie API à ta place :slight_smile:
Mais du coup, installer home assistant juste pour ça est peut être un peu overkill…

C’est quoi ton but exact, et tu as HA actuellement ?

Oui je vois , après j’ai un mini pc actuellement a la maison alors pourquoi pas si c’est beaucoup plus simple !

En gros, mon objectif est de récupérer les informations de ma production solaire à l’aide de mon compteur d’énergie tuya, puis d’utiliser ces données pour allumer ou éteindre des cartes graphiques fonctionnant sous Hive OS.

C’est possible d’écrire un script dans Home Assistant pour envoyer des requêtes API vers Hive OS en fonction de ma production ?

Merci pour les réponses

Je ne connais pas du tout Hive OS.

Mais depuis HA, tu peux parfaitement passer des commandes REST depuis une automatisation (un script qui se déclenche selon certains paramètres) : RESTful Command - Home Assistant

Effectivement il y a une intégration Tuya native qui, depuis la dernière mise à jour, ne nécessite plus de compte Développeur.
Il suffit de flasher un QR Code depuis son application Tuya sur mobile cela « lie » HA avec le compte Tuya Smart.

Ensuite tu récupères les devices dans HA et tu peux récupérer des états etc pour les utiliser sur des automatisations.
Cela passe par le cloud Tuya du coup pour les caméras il y a du lag. En revanche pour le reste ça fonctionne plutôt bien !

D’accord, super !

Donc, je peux même avec l’API REST créer un point d’entrée pour récupérer depuis l’extérieur des informations ? Supposons que je veuille créer un site web et depuis ce site web j’envoie une requête GET pour avoir l’information de ma production solaire ( qui est obtenu vue home assistant et tuya ) et l’afficher sur le site web. C’est possible ?

Dans quelle partie de Home Assistant faut-il écrire les scripts ? Et c’est en YAML, c’est bien ça ?

Merci pour l’aide :grin::muscle:

Non, l’intégration RESTful ne te permettra pas d’ouvrir une porte dans HA. C’est lui qui va consulter, par l’inverse.
Si tu as besoin de parser un site, tu as aussi l’intégration scrape : Scrape - Home Assistant

En fait, tout ne va être qu’automatisation (et oui, ça s’écrit en yaml).
une automatisation, c’est (en très gros) :

  • un trigger
  • d’éventuelles conditions
  • une / des actions à exécuter

Par contre, tu peux déclencher des automatisations dans Home assistant via des WebHook : Automation Trigger - Home Assistant

1 « J'aime »

D’accord je vois bon du coup j’ai du boulot mine de rien :joy:
C’est a quel endroit que l’on écrie les scripts et que l’on demande a se qu’il soit exécuté ?

Merci en tout cas

Paramètres → automatisations et scènes → automatisations

Mais tu devrais jeter un œil aux concepts d’abord avant de te lancer : Understanding automations - Home Assistant

1 « J'aime »

D’accord je vois
Dans mon cas si je veux faire une scène sur mon device ( compteur d’énergie ) qui s’exécute toutes les 5 minutes , pour pouvoir check la production et faire une requête grâce à l’API rest
Tu me dirais de sélectionner quel type de trigger ?
Et en suite dans le scénario je mets mon script qui lui va regarder la production actuel et en fonction faire une requête vers lapi hiver os pour allumer tel carte ! C’est ça ?

Tu peux parfaitement avoir un trigger basé sur le temps, qui se déclenche toutes les X minutes (je ne suis pas à la maison, je n’ai pas accès à mes codes sous la main)

donc en trigger : exécutes toi toutes les 5 min
et en action : fait un appel REST

1 « J'aime »

re
Du coup, je suis sur Home Assistant. Je n’ai pas trouvé pour le timer. J’arrive à déclencher le script à des heures précises, mais pas à le lancer en boucle toutes les x minutes. Si jamais tu as le bout de code qui va bien, ce serait cool. Merci.

- id: 'xxx'
  alias: 1minute
  description: ''
  trigger:
    - platform: time_pattern
      minutes: '/01'
  condition:
    - condition: template
      value_template: '{{ 1 == 1 }}'
  action:
    - service: persistent_notification.create
      data:
        message: "Alert"
        title: "Test"

C’est bon pour le minuteur, désolé.
Par contre, pour le moment, Tuya ne remonte pas correctement les informations de mon compteur d’énergie il remonte la consommation totale , et non la consommation actuelle !
je peux modifier ca ?
Il y a deux versions de Tuya sur Home Assistant, la locale et la cloud, c’est bien ça ?
Tu me conseilles de partir sur laquelle ?

merci

Pour déclencher un script toutes les 5 minutes, tu peux juste mettre ça :

description: ""
mode: single
trigger:
  - platform: time_pattern
    minutes: /5

En ce qui concerne la meilleure intégration tuya, je ne saurai pas te répondre, je me suis débarrassé de tous mes périphériques tuya ^^

Et pour ta consommation, idem, je n’ai jamais joué avec, mais j’ai déjà vu d’autres sujets qui en parlaient.

N’hésite pas à faire une recherche, et si le besoin s’en fait sentir, à créer un nouveau sujet dédié pour chacune de tes problématiques :slight_smile: ça évite les sujets spagettis :wink: