Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

Cet été j'ai acheté un ventilateur de plafond "CREATE Windcalm" avec lumière intégrée. Silencieux et élégant.

https://www.create-store.com/fr/2401-acheter-ventilateurs-de-plafond

image.png.591e3cc155bcb5bed78e0c27b783b0b0.png


J'ai choisi la version avec le contrôleur wifi ce qui me permet de le contrôleur depuis une application en plus de la télécommande
Mon objectif était de controler ce ventilateur via l'application Yubii Home (Fibaro) qui pilote actuellement mon HC3

Ce ventilateur utilise le protocole Tuya. A coup de test en python avec tinytuya, d'un peu de reverse-engineering et de chatgpt pour convertir le code python en LUA, j'ai pu obtenir le code LUA compatible HC3 pour créer 2 quickapps qui me permettent de : 

1. Controler la lumière (avec un device type binary switch) :  on/off et changer de la couleur de la led
2. Controler le ventilateur (avec un device type binary switch) : on/off, réglage de la vitesse, on/off du beeper


Je partage ces deux fichiers LUA si ca intéresse quelqu'un

Les scripts attachés nécessitent 3 variables : DEVICE_IP, DEVICE_PORT, LOCAL_KEY (pas facile a obtenir mais je peux expliquer si qq est interessé)

J’espère que ce pourra aider qq qui veut mettre en place cette intégration

Marc

Tuya_Wind_Calm_Fan.lua Tuya_Wind_Calm_Light.lua

  • Like 2
Posté(e) (modifié)

bonjour, je possède deux appareils create avec l'option wifi, ce sont des wind clear studio et rattan mais je pense que ça doit fonctionner aussi ?

comment récupére-t-on les infos à positionner dans les variables ?

aurais-tu les fichiers fqa directement ? 

merci

Modifié par didierthomas49@gmail.com
Posté(e)

1. app smartlife
si le ventilateur est enregistré sur l'app create, le supprimer car l'app create ne permet pas se linker avec le portail tuya et cela est necessaire pour recuperer la local key
installer l'app "smartlife" + s'enregistrer avec un compte google
pour s'appairer, il faut remettre le ventilo en mode pairing, c'est un peu penible:
    -dans mes souvenirs : allumer, 10sec apres eteindre puis rallumer, laisser appuyer bouton telecommande 1h pour le mettre en mode discover
    -une recherche sur internet donne une autre procedure:
    Étape 1 : Préparer le ventilateur en mode appairage
    1. Coupez l'alimentation du ventilateur (via l'interrupteur mural ou le disjoncteur général) pendant environ 10 secondes.
    2. Rallumez l'alimentation.
    3. Immédiatement (dans les premières secondes), appuyez simultanément sur les boutons « 1h » et « 2h » (ou parfois « 1h » seul ou « 1+4 » selon les versions) de la télécommande pendant 5 à 10 secondes.
    4. Vous devriez entendre un long bip ou des bips consécutifs indiquant que le module Wi-Fi est bien en mode appairage.
    (Note : Si le ventilateur était déjà associé à l'application Create Home, pensez à le supprimer ou le dissocier de cette application au préalable).

 

suivre le wizard pour appairer le ventilo, verifier qu'il est pilotable par l'application smartlife

 


2. recuperer l'adresse IP 
se connecter sur votre router et regarder quelle IP a été attribuée par le DHCP
chez moi le nom du ventilo est "lwip0"
l'adresse MAC commence par 00:33:7a (qui correspond a un device de "Tuya Smart Inc.")

Si vous n'y arrivez pas, on peut la trouver dans l'etape 4

 

 

3. python+tinytuyaAPI
sur un PC sur le meme reseau wifi que le ventilo
installer python : https://www.python.org/downloads/windows/
    install now+add to PATH

ouvrir une session powershell (ou cmd) :

PS C:\WINDOWS\system32> python --version
Python 3.13.15
PS C:\WINDOWS\system32> pip --version
pip 26.2.1 from C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip (python 3.13)

 

install la lib tinytuya :
 

python -m pip install tinytuya

 

 

4. discover du Device ID
depuis le PC :

PS C:\WINDOWS\system32> python -m tinytuya scan

TinyTuya (Tuya device scanner) [1.20.0]

Scanning on UDP ports 6666 and 6667 and 7000 for devices for 18 seconds...

New Broadcast from App at 192.168.100.75 - {'from': 'app', 'ip': '192.168.100.75'}
Unknown v3.5 Device   Product ID = xxxxxxxxxxxxxxxxxx [Valid Broadcast]:
    Address = 192.168.100.123   Device ID = <------DEVICE ID------>   (len:22)  Local Key =   Version = 3.5  Type = default, MAC =
    No Stats for 192.168.100.123: DEVICE KEY required to poll for status
Scan completed in 18.0603 seconds

Scan Complete!  Found 1 devices.
Broadcasted: 1
Versions: 3.5: 1
Unknown Devices: 1


Pas de local key mais noter la valeur de <------DEVICE ID------>

Confirmer l'adresse IP decouverte par le scan : 192.168.100.123   dans cet exemple

Note : afin que l'IP ne change pas tout le temps, il faut la fixer comme une entrée statique dans votre DHCP sur votre routeur

 


5. tuya portal
Aller sur TuyaIOT platform :  https://iot.tuya.com/   + s'enregistrer avec un compte google (le meme que pour l'app smartlife)

 

Aller dans 
Cloud > Project Management > Create Cloud project
    Project Name : WindCalm
    Industry     : Smart Home
    Development : Smart Home
    Data Center  : Central Europe  (ne surtout pas choisir western europe sinon ca ne marchera pas!)
    Select API service : ALL

 

Bien noter Access ID/Client ID <------ACCESS ID------>
et Access Secret/Client Secret   <------ACCESS SECRET------>
car ils ne seront plus visibles après

 

 

Linker le device dans le portail :

    Device > Link App account > Add app account > Tuya app account authorization

 

Dans l'App Smartlife > Profil > (en haut a droite, [-]
    "Confirmer la connexion"

 

Sur portail tuya : "Automatic Link Recommended"


Verifier que le device est enregistré et visible dans l'onglet "Devices" sur le portail Tuya

 

 

 

6. pour recuperer la "Local key"

!!!! la local key change a chaque fois que le ventilo est appairé ou ré-appairé avec une app !!!

 

Dans le wizard suivant  il va falloir utiliser les codes API dans l'etape précédente et le <------DEVICE ID------> dans l'etape de discover

 

PS C:\temp\tuya> python -m tinytuya wizard
TinyTuya Setup Wizard [1.20.0]


    Enter API Key from tuya.com: <------ACCESS ID------>
    Enter API Secret from tuya.com: <------ACCESS SECRET------>
    Enter any Device ID currently registered in Tuya App (used to pull full list) or 'scan' to scan for one: <------DEVICE ID------>

      Region List
        cn      China Data Center (alias: AY)
        us      US - Western America Data Center (alias: AZ)
        us-e    US - Eastern America Data Center (alias: UE)
        eu      Central Europe Data Center
        eu-w    Western Europe Data Center (alias: WE)
        in      India Data Center
        sg      Singapore Data Center

    Enter Your Region (Options: cn, us, us-e, eu, eu-w, in, or sg): eu

>> Configuration Data Saved to tinytuya.json
{
    "apiKey": "<------ACCESS ID------>",
    "apiSecret": "<------ACCESS SECRET------>",
    "apiRegion": "eu",
    "apiDeviceID": "<------DEVICE ID------>"
}

Download DP Name mappings? (Y/n): y


Device Listing

[
    {
        "name": "ceiling fan/Light v2",
        "id": "xxxxxxxxxxxxxxxxxxxxxx",
        "key": "<------LOCAL_KEY------>",   <---------------- c'est la fameuse key qu'on cherche
(....)

>> Saving list to devices.json
    1 registered devices saved

>> Saving raw TuyaPlatform response to tuya-raw.json

Poll local devices? (Y/n): y

Scanning local network for Tuya devices...
    1 local devices discovered

Polling local devices...
    [ceiling fan/Light v2     ] 192.168.100.123    - [Off] - DPS: {'20': False, '23': 0, '60': False, '62': 4, '63': 'forward', '64': 0, '66': True}

>> Saving device snapshot data to snapshot.json


>> Saving IP addresses to devices.json
    1 device IP addresses found

Done.


la ligne "DPS: {'20': False, '23': 0, '60': False, '62': 4, '63': 'forward', '64': 0, '66': True}"  prouve que l'on peut recuperer les valeurs 


Vous avez desormais les 3 variables necessaires pour les scripts :
DEVICE_IP
DEVICE_PORT est toujours le même : 6668
LOCAL_KEY

Je ne dis pas que c'est la seule methode ou la plus simple mais pour moi elle a marché 

Vous trouverez surement d'autres procédure en tapant "how to get tuya local key" dans google. exemple : 

image.thumb.png.1c68996263fa67773687bcec280d8baa.png


J'espère que ca vous aura aidé
Marc

  • Like 1
×
×
  • Créer...