Recherche DEV pour un nouveau plugin LG SMART

ajout des équipements automatique pour jeedom, on interroge le LG account (avec une méthode ls) qui donne la liste des équipements connectés.
en fait l’inclusion doit se faire avec l’appli proprio LG, on ne communique pas directement avec les objects connectés mais uniquement avec le cloud LG via leur portail.
pull request si tu veux :wink: pour tester, l’idéal ça serait de mocker le truc, je vais y réfléchir. sinon trouver un volontaire qui a un objet LG (c’est ce que j’ai fait je n’ai pas non plus de matériel chez moi)

hello

j’ai une machine a laver LG connectée, je veux bien donner un coup de main :slight_smile:

j’ai toujours mon frigo :slight_smile:
tu as toujours l’accès dessus normalement

Bonjour à tous,

De mon côté j’ai 4 splits connectés LG, je peux évidemment ouvrir un accès ou tester des choses également si besoin.

A dispo avec plaisir si nécessaire.

Bonjour,

On arrive dans la dernière ligne droite :slight_smile: et j’aurais besoin de votre aide! Pour commencer, qui est intéressé et pour quel matériel ?
J’ai déjà @Nemeraud pour un frigo, j’ai commencé la dessus
@6co tu a 4 appareils ? split c’est des clim réversible je suppose ?
Qui d’autre ?
Quelle version de jeedom vous utilisez ?
Avez-vous la possibilité de tester jeedom sur une VM, machine virtuelle, ou 2e jeedom ? à priori il n’y a pas de risque, je développe depuis le début sur mon jeedom de la maison et j’ai jamais rien cassé je vous rassure :wink:

Voici un début de doc (pour l’install manuelle et l’authentification / configuration du plugin), si ça marche vous verrez vos objets sous la forme d’un simple icône pour l’instant.

@Foulek57 ou tout autre dev connaisseur :slight_smile:
La dernière étape consiste à générer les commandes (action ou info) pour chaque type d’objet et je veux bien de l’aide sur ce sujet. Pour l’exemple du frigo voici les infos Json que l’on récupère de LG, la 2e partie devrait nous permettre de générer les commandes d’une manière dynamique pour tout appareil, enfin j’espère.

Le but est de générer un json qui soit Jeedom compatible, pour donner à la méthode eqLogic->import qui génère automatiquement les commandes (c’est la méthode du plugin z-wave)

1 « J'aime »

Je regarde ca lundi, merci

Bonjojur @pifou,

C’est pour piloter une clim réversible en effet. Je vais m’empresser de tester tout cela. J’en profite pour te remercier une nouvelle fois pour le temps passé.

Je suis en V3.3.49.

Je teste et je te redis :slightly_smiling_face:

je suis partant pour tester avec une machine a laver !

j’ai un jeedom en machine virtuelle et je peux tester sur une autre si besoin
je suis sur la derniére version

J’ai normalement suivi tout le process correctement mais j’obtiens une erreur 500 lorsque je tente de saisir le pays et la langue.

Bonjour à tous.

@pifou, voici quelques retours de mes tests, n’hésite pas si c’est pas claire :wink:

Installation OK
Activation OK

Bouton : REFRESH TOKEN, GATEWAY, PING, DOWNLOAD = 500 : Internal Server Error

[Mon May 11 14:38:53.762819 2020] [:error] [pid 2136] [client 192.168.1.82:50456] PHP Parse error: syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE) in /var/www/html/plugins/lgthinq/core/class/lgthinq.class.php on line 43, referer: http://192.168.1.15/index.php?v=d&p=plugin&id=lgthinq

EDIT j’ai corrigé ca : lgthinq.class.php ligne 43
private const RESOURCES_PATH = « /…/…/resources/devices/ »;

et maitenant, il me remet l’erreur : Erreur sur la fonction deamon_start du plugin : Class ‹ WideqManager › not found`

le fichier est bien présent, mais le W n’est pas en majuscule dans le nom du fichier, merci LINUX :slight_smile:

j’ai mis le W en majuscule dans l’arbo

Maintenant le demon se créé, mais il n’arrive pas à le lancer

mais le GATEWAY me donne :

error : Echec de la requête http : http://127.0.0.1:5025/gateway/FR/fr-FR Curl error : Failed to connect to 127.0.0.1 port 5025: Connection refused

le REFRESH TOKEN :

[Mon May 11 14:54:28.911713 2020] [:error] [pid 18372] [client 192.168.1.82:50577] PHP Fatal error: Uncaught Error: Call to undefined method lgthinq::initToken() in /var/www/html/plugins/lgthinq/core/ajax/lgthinq.ajax.php:66 Stack trace: #0 {main} thrown in /var/www/html/plugins/lgthinq/core/ajax/lgthinq.ajax.php on line 66, referer: http://192.168.1.15/index.php?v=d&p=plugin&id=lgthinq

et en effet dans lgthinq.ajax.php, il y a un appel à une fonction

$result = lgthinq::initToken($auth);

mais dans le lgthinq.class.php

public static function initToken( $_auth = false){

il faut enlever l’espace : public static function initToken($_auth = false){

Mais je retombe sur l’erreur

[Tue May 12 11:55:07.060574 2020] [:error] [pid 31248] [client 192.168.1.82:54916] PHP Parse error: syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE) in /var/www/html/plugins/lgthinq/core/class/lgthinq.class.php on line 43, referer: http://192.168.1.15/index.php?v=d&p=plugin&id=lgthin

j’ai passé le « private const » en « const »

maintenant j’ai cette erreur :

error : Echec de la requête http : http://127.0.0.1:5025/gateway/FR/fr-FR Curl error : Failed to connect to 127.0.0.1 port 5025: Connection refused

le demon ne veut pas se lancer


[2020-05-12 14:09:10][DEBUG] : etat server wideq:[]
[2020-05-12 14:09:12][DEBUG] : call auth with param ({"jeedom_token":"xxxxx","action":"refreshToken","auth":"https:\/\/fr.m.lgaccount.com\/login\/iabClose?access_token=xxxxx&refresh_token=xxxx&oauth2_backend_url=https:\/\/gb.lgeapi.com\/"})

[2020-05-12 14:09:26][DEBUG] : LgAuthUrl non modifié=https://fr.m.lgaccount.com/login/iabClose?access_token=xxxxxx&refresh_token=xxxx&oauth2_backend_url=https://gb.lgeapi.com/
[2020-05-12 14:09:26][DEBUG] : etat server wideq:[]
[2020-05-12 14:09:26][DEBUG] : etat server wideq:[]
[2020-05-12 14:09:26][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2020-05-12 14:09:26][DEBUG] : etat server wideq:[]
[2020-05-12 14:09:26][DEBUG] : etat server wideq:[]
[2020-05-12 14:09:27][DEBUG] : server wideq successfully stoped! 	1) /var/www/html/core/ajax/plugin.ajax.php(114): plugin->deamon_start('1') 	2) /var/www/html/core/class/plugin.class.php(793): lgthinq::deamon_start() 	3) /var/www/html/plugins/lgthinq/core/class/lgthinq.class.php(194): WideqManager::daemon_start(true) 	4) /var/www/html/plugins/lgthinq/core/class/WideqManager.class.php(94): WideqManager::daemon_stop()
[2020-05-12 14:09:27][DEBUG] : etat server wideq:[]
[2020-05-12 14:09:27][DEBUG] : start server wideq: 1 ___ {"state":"nok","port":5025,"launchable":"ok"} 	1) /var/www/html/core/ajax/plugin.ajax.php(114): plugin->deamon_start('1') 	2) /var/www/html/core/class/plugin.class.php(793): lgthinq::deamon_start() 	3) /var/www/html/plugins/lgthinq/core/class/lgthinq.class.php(194): WideqManager::daemon_start(true)
[2020-05-12 14:09:27][INFO] : Lancement démon LgThinq : sudo /usr/bin/python3 /var/www/html/plugins/lgthinq/core/class/../../3rparty/wideq/wideqServer.py --port 5025 -v  >> /var/www/html/core/class/../../log/lgthinq_srv 2>&1 &
[2020-05-12 14:09:29][DEBUG] : etat server wideq:[]
[2020-05-12 14:09:29][DEBUG] : etat server wideq:[]

mais j’ai toujours pas de token dans la conf

nouvelle erreur :

Traceback (most recent call last):
File "/var/www/html/plugins/lgthinq/core/class/../../3rparty/wideq/wideqServer.py", line 13, in <module>
from flask import Flask, json, jsonify, request
ImportError: No module named 'flask'

Il n’y a pas flask sur ma debian (Jeedom SMART)

il faut installer flask ? c’est obligatoire ?

Merci pour ton retour ! je vais reporter tes modifs sur le code, certaines peut etre à cause d’une version php différente, …
aussi oui il faut installer flask, c’est une dépendance python qui s’installe avec pip. une simple commande du genre:
pip install flask
fera l’affaire :slight_smile: du coup, faut que je l’ajoute dans les dépendances. Pour l’instant il n’y a pas encore de gestion des dépendances… Faut que je l’ajoute aussi.

En tout cas, je vois que tu es un utilisateur averti, je vais te confier la génération du fichier de configuration json pour ton frigo :wink:

Salut, ok je vais l’installer Flask

Pour le json, a voir, utilisateur averti mais pas expert :slight_smile:

j’ai eu ca

jeedom@jeedom:~$ sudo pip install flask
[sudo] Mot de passe de jeedom : 
Requirement already satisfied: flask in /usr/local/lib/python2.7/dist-packages
Requirement already satisfied: itsdangerous>=0.21 in /usr/local/lib/python2.7/dist-packages (from flask)
Requirement already satisfied: Jinja2>=2.4 in /usr/lib/python2.7/dist-packages (from flask)
Requirement already satisfied: Werkzeug>=0.7 in /usr/local/lib/python2.7/dist-packages (from flask)
Requirement already satisfied: click>=2.0 in /usr/local/lib/python2.7/dist-packages (from flask)
Requirement already satisfied: MarkupSafe in /usr/lib/python2.7/dist-packages (from Jinja2>=2.4->flask)

tout est déjà installé ?

mais toujours la même erreur, :frowning:

ha, non pas de reboot, mais

sudo pip install flask

sans le sudo, tu l’installe pour toi seulement, le script exécuté par (apache, jeedom, en tout cas un autre user que toi) ne peut pas le voir. avec sudo l’install est pour tout le monde.
Aussi:

sudo pip install wideq

Pour l’instant la lib wideq est copiée manuellement dans mon plugin, mais comme elle est dispo via pip install, je l’incluerais dans le script d’installation des dépendances que je n’ai pas encore fait :slight_smile:

j’ai bien lancé l’install flask avec le sudo

Traceback (most recent call last):
File "/var/www/html/plugins/lgthinq/core/class/../../3rparty/wideq/wideqServer.py", line 13, in <module>
from flask import Flask, json, jsonify, request
ImportError: No module named 'flask'

pour wideq, il rale

Collecting wideq
  Could not find a version that satisfies the requirement wideq (from versions:                                                                                                                                )
No matching distribution found for wideq

ha c’est un problème ça ne marchera pas alors… tu a quelle version de python ? Pour wideq il faut la v3.6

python --version
python3 --version

chez moi j’ai 2 version, python = v2.7.16 et python3 = 3.7.3

sur la smart c’est le 3.5.3

ha, dans ce cas on va avoir un problème, tu es sur debian 9 je suppose (debian stretch) ?
Je ferais des tests sur cette version, moi je suis sur debian 10 qui vient par défaut avec python 3.7

oui en effet, smart sous stretch et pas vraiment le droit de monter de version
pour python je sais pas si la 3.6 est compatible avec cette version de debian

Bonjour à tous

Des nouvelles ?

On touche au but, ce serait dommage d’'être bloqué par un soucis de version :wink: