Bonjour,
Pour ceux qui on besoin pour utiliser leurs appareils Meross (ceux compatible) dans le super plugin WifilightV2 et qui n’ont pas IOS pour récupérer les Credentials Meross comme dans la doc, voici comment faire dans Jeedom avec un script.
Méthode
Il faut avec le plugin Script, créer un nouveau script et ajouter une commande script
- Donner un nom à la commande:
Info
- Passer le type en
autre
- Cliquer sur l’icône
pour créer un nouveau fichier script
- Nommer le fichier script:
Meross.py
ça devrait donner ça:
Cliquer ensuite sur pour éditer le fichier script et faire un copier / coller de ceci:
import base64
import hashlib
import string
import random
import requests
import time
def rand_gen(size, chars=string.ascii_lowercase + string.digits):
return str(''.join(random.choice(chars) for _ in range(size)))
def msg_id(unix_time):
concat_string = '{}{}'.format(rand_gen(16), unix_time)
final_md5 = hashlib.md5(concat_string.encode('utf-8')).hexdigest()
return str(final_md5)
def get_unix_time():
current_time = int(time.time())
return current_time
def get_key(username, password, uts):
nonce = rand_gen
unix_time = uts
param = '{{"email":"{}","password":"{}"}}'.format(username, password)
encoded_param = base64.standard_b64encode(param.encode('utf8'))
concat_sign = '{}{}{}{}'.format('23x17ahWarFH6w29', unix_time, nonce, encoded_param.decode("utf-8"))
sign = hashlib.md5(concat_sign.encode('utf-8')).hexdigest()
headers = {
'content-type': 'application/x-www-form-urlencoded',
}
data = {
'params': encoded_param,
'sign': sign,
'timestamp': unix_time,
'nonce': nonce
}
response = requests.post('https://iot.meross.com/v1/Auth/login', headers=headers, data=data)
key = response.json()['data']['key']
userid = response.json()['data']['userid']
token = response.json()['data']['token']
return str(key), str(userid), str(token)
def signing_key(message_id, key, uts):
concat_string = '{}{}{}'.format(message_id, key, uts)
final_md5 = hashlib.md5(concat_string.encode('utf-8')).hexdigest()
return str(final_md5)
def login(username, password):
current = get_unix_time()
message_id = msg_id(current)
key, userid, token = get_key(username, password, current)
sign = signing_key(message_id,key, current)
#print("{} {}".format("userId:", userid))
#print("{} {}".format("key:", key))
#print("{} {}".format("token:", token))
print("{} {}".format("Jeton:", sign))
print("{} {}".format("Identifiant:", message_id))
print("{} {}".format("timestamp:", current))
#ONLY MODIFY THIS
login("Mail", "Mot_de_passe")
Tout à la fin du code du script, remplacer Mail
et Mot_de_passe
par l’adresse mail et le mot de passe du compte Meross.
Attention à bien conserver les " " et sauvegarder le fichier.
Passer le script en Actif et faire Sauvegarder.
Si le copier/coller du code et le remplacement de l’adresse mail et le mot de passe sont correct, il ne devrait pas il y avoir d’erreur à la sauvegarde du script.
Maintenant cliquer sur pour obtenir les informations.
Recopier les informations dans le plugin WifilightV2 et ça devrait être bon