[RESOLU] Problème d'interface avec MEROSS Mss310

Posez ici vos questions d'utilisation, de configuration de Domoticz, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramètrage Concernant le Raspberry ou les scripts de toute nature des forums spécifiques sont ouverts
Répondre
Ph.A
Messages : 3
Enregistré le : 09 sept. 2020, 18:23

[RESOLU] Problème d'interface avec MEROSS Mss310

Message par Ph.A »

Bonjour
Je viens d’acheter des prises Meross MSS310 et j’aimerais les interfacer avec Domoticz. J’ai donc parcouru les différents forums sur le sujet, mais hélas, les explications qui sont données sont tellement succinctes qu’à aucun moment je ne suis parvenu à mes fins.
- J’ai essayé de les interfacer avec IFTTT, mais sans succès, car aucune doc n’explique clairement la marche à suivre. Comment créer l’applet et comment l’interfacer dans Domoticz.
- J’ai essayé le script édité par Mangoose, https://github.com/mangoose002/Meross2D ... stallation mais une fois installé, je fais quoi ? Je ne trouve aucune trace des prises.
- J’ai donc essayé l’autre solution proposée par clément99 en python3.7 https://www.domoticz.com/forum/viewtopic.php?t=25007 mais encore une fois, le néant.
Si quelqu’un a réussi une de ces solutions, se serait sympa de faire un vrai tuto détaillé qui je suis sûr servirait à ceux qui comme moi galère sur des explications trop succinctes et incomplètes.
D’avance merci
Modifié en dernier par Ph.A le 20 sept. 2020, 09:30, modifié 1 fois.

Ph.A
Messages : 3
Enregistré le : 09 sept. 2020, 18:23

Re: Problème d'interface avec MEROSS Mss310

Message par Ph.A »

Ne voyant malheureusement aucune réponse, j’ai un peu creusé la situation. Comme je l’ai dit, ne maitrisant pas IFTTT, j’ai laissé de coté.
D’après la version de Clément77, j’ai fait une procédure qui fonctionne très bien sous un prompt Raspbian fraichement installé mais qui hélas ne voulait pas fonctionner sous domoticz. Je pouvais allumer ou éteindre la prise de mon choix (sur les trois) mais uniquement sous le prompt de la Raspbian sous la forme ‘python3 meross.py 3 on’ par exemple pour allumer la prise N°3 et non sous domoticz
J’ai trouvé la solution :) et je vous en fait part. Lorsque Domoticz s’exécute, il utilise son propre environnement et non celui de ‘moi’. Pour remédier au problème il faut simplement indiquer à Domoticz d’utiliser momentanément l’environnement de ‘moi’ pour s’exécuter. De plus cette solution évite l'erreur 256 que j'avais (voir le script plus bas meross.sh).

Voici un petit tuto de ce que j'ai fait pour utiliser mes prises Meross Mss310 et qui je l'espère pourra vous aider :

Matériel : Rpi3 – HD externe sur laquelle se trouve la partition ‘/’ – ‘/boot’ uniquement sur sdcard - Raspbian buster lite du 20.08.20 et Domoticz v2020 . L’installation de Domoticz s’est faite à l’aide de l’instruction 'curl -sSL install.domoticz.com | sudo bash'
Attention, si vous n'utiliser pas l'utilisateur pi mais un autre, il faut redonner les droits moi :moi au dossier domoticz qui avait les valeurs 1000 :1000 via la commande sudo chown -R moi:moi /home/moi/domoticz

Je me suis servi de ces deux adresses https://github.com/albertogeniola/MerossIot et https://albertogeniola.github.io/MerossIot/ pour avoir plus de détail.

sudo apt update
sudo apt install -y python3.7
sudo apt-get install build-essential python3-dev libffi-dev
sudo apt install -y python3-gribapi
sudo apt install -y python3-eccodes
sudo apt install -y python3-distutils
curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py --user

on vérifie que /home/moi/.local/bin se trouve dans la variable PATH avec la commande
echo $PATH
Si elle n'est pas présente :
nano .profile
export PATH=$HOME/.local/bin:$PATH
source ~/.profile

pip install meross_iot==0.4.0.2

Création du script (dans ce script, j’ai remplacé mes identifiants et mot de passe par XXX)
nano /home/moi/domoticz/scripts/meross.py

#!/usr/bin/python3
import asyncio
import os
import sys
import time
from meross_iot.http_api import MerossHttpClient
from meross_iot.manager import MerossManager
EMAIL = "xxx"
PASSWORD = "xxx"
async def main():
http_api_client = await MerossHttpClient.async_from_user_password(email=EMAIL$
manager = MerossManager(http_client=http_api_client)
await manager.async_init()
await manager.async_device_discovery()
plugs = manager.find_devices(device_type="mss310")
x=(sys.argv[1])
y=(sys.argv[2])
if x == "3":
dev = plugs[0]
elif x == "1":
dev = plugs[1]
elif x == "0":
dev = plugs[2]
if y == "on":
await dev.async_turn_on(channel=0)
else:
await dev.async_turn_off(channel=0)
manager.close()
await http_api_client.async_logout()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()

Je donne les droits +x au script
chmod + /home/moi/domoticz/scripts/meross.py

Création du script sh qui va bien
nano /home/moi/domoticz/scripts/meross.sh
#!/bin/bash
sudo -H -u moi /usr/bin/python3 /home/philou/domoticz/scripts/meross.py $1 $2

Je lui donne les droits +x via un chmod +x /home/moi/domoticz/scripts/meross.sh
Et là, plus de problème avec l’erreur 256

Lancement de domoticz puis création du bouton
1 Configuration – Matériel – on choisit Dummy puis on lui donne un nom Meross01 par exemple et on clic sur ajouter
2 un clic sur créer un capteur virtuel
3 On indique un nom explicite et on choisit Interrupteur. Une fois valider on peut se rendre dans Interrupteurs

On va donc le paramétrer via son bouton modifier
script://meross.sh 3 on
script://meross.sh 3 off

Et là, tout fonctionne parfaitement. je n'ai plus non plus l'erreur 256 et ceci grâce au script sh qui redirige l'environnement utilisateur.

Répondre