Récupérer paramètres Tuya pour Local_Tuya

Mon problème

Bonjour,

quand je me connecte sur iot.tuya.com, si je fais un Get Device Detail, si je me connecte sur le datacenter China, j’ai :

Request URL
curl --request GET "https://openapi.tuyacn.com/v1.0/devices/switch.prise_bibliotheque_switch_1" --header "sign_method: HMAC-SHA256" --header "client_id: wkxe3tdrbfxxxxxxn39k" --header "t: 164883xxxxxx5" --header "mode: cors" --header "Content-Type: application/json" --header "sign: 5D21BC432EEED951E7EXXXX5A87655A35FC5AC686E4BA7891XXXXD06D26F4C32" --header "access_token: INVALID_TOKEN"

{
  "code": 2007,
  "msg": "your ip(188.126.94.52) cross-region access is not allowed",
  "success": false,
  "t": 16488xxxx3269,
  "tid": "9093c961b1ed11ec85e8deeXXXXXX5a9"
}

par contre, si je met Western Europe, j’ai:

{
  "code": 1106,
  "msg": "permission deny",
  "success": false,
  "t": 16488xxxx5790,
  "tid": "27a384d6b1f011ec91ac66XXXXXX1755"
}

Le device_id, c’est bien l’ID de l’entité (au niveau de HA) ? switch.prise_bibliotheque_switch_1 dans mon cas, ce qui correspond au nom : Prise Bibliotheque Switch 1

parceque quand j’appuie sur le bouton Zigbee correspondant, j’ai bien mon device wifi tuya qui s’allume… mais je voudrais avoir un peu plus de vitesse de réponse et me passer du site web de tuya…

Ma configuration


System Health

version core-2022.3.8
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.9
os_name Linux
os_version 5.10.92-v8
arch aarch64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4994
Installed Version 1.24.0
Stage running
Available Repositories 1080
Downloaded Repositories 2
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 7.5
update_channel stable
supervisor_version supervisor-2022.03.5
docker_version 20.10.9
disk_total 237.7 GB
disk_used 8.1 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Mosquitto broker (6.0.1), Samba share (9.5.1), Zigbee2mqtt (1.24.0-1), Home Assistant Google Drive Backup (0.106.2), Terminal & SSH (9.3.0), Node-RED (11.1.1), Studio Code Server (4.2.0), Log Viewer (0.13.0)
Lovelace
dashboards 2
resources 0
views 6
mode storage
___

Salut,

Il y a une histoire de serveurs et de région :
Il faut que le compte et l’appli sur le téléphone soient dans la même région que le compte iot tuya

Ca avance.
en fait, je me suis planté avec le device_id c’est un chiffre qui n’est dispo que sur son compte IoT Tuya, au niveau du projet qu’on a créé.

pour avoir les infos sur un device cloud, on va sur
Api explorer
IoT Core
General Device Management
General Device Management
Get Device Information
On saisi le device_id et on envoie la requete.

Ca donne:

Request URL
curl  --request GET "https://openapi.tuyaeu.com/v1.1/iot-03/devices/82134464a4e57cxxxx" --header "sign_method: HMAC-SHA256" --header "client_id: wkxe3tdrbf9a21xxxxxx" --header "t: 164909246xxxx" --header "mode: cors" --header "Content-Type: application/json" --header "sign: 92EF27FE252513756D7D0F2B6B5554B2BCF09C92A246093DFD949C3CD1xxxxxx" --header "access_token: 834ed0bbb35f54379441fc4ab1xxxxxx" 

ce qui doit répondre

Response
{
  "code": 2007,
  "msg": "your ip(88.108.88.88) cross-region access is not allowed",
  "success": false,
  "t": 164909256xxxx,
  "tid": "eb6e32fdb43a11ec85e9dee277xxxxxx"
}

ou

Response
{
  "result": {
    "active_time": 1648305505,
    "category": "kg",
    "category_name": "Switch",
    "create_time": 1647284687,
    "gateway_id": "",
    "icon": "smart/icon/1511353484_0.png",
    "id": "82134464a4e57cxxxxxx",
    "ip": "88.108.88.88",
    "lat": "48.8375",
    "local_key": "b081490402xxxxxx",
    "lon": "2.2437",
    "model": "科信嘉联KS-501",
    "name": "Bibliotheque",
    "online": true,
    "owner_id": "52474849",
    "product_id": "zY4uzKMEbqxxxxxx",
    "product_name": "KS-501",
    "sub": false,
    "time_zone": "+01:00",
    "update_time": 1648305530,
    "uuid": "82134464a4e57cxxxxxx"
  },
  "success": true,
  "t": 164909246xxxx,
  "tid": "ac0793bdb43a11ec86c64e8aebxxxxxx"
}

quand on est sur le bon datacenter.

il ne reste plus qu’à récupérer le local_key pour le mettre dans le local_tuya et ne plus passer par le web. :checkered_flag: :checkered_flag: :checkered_flag: :checkered_flag:

1 « J'aime »

et les infos sur le device_id c’est là:

Ils ont complètement revu l’interface depuis 15 jours… c’est plus bô, mais on n’y perd ses petits…