À propos du protocole home connect : Bosch, Siemens, Neff, Gaggenau

Je n’ai jamais eu ce message.
Dans le doute je vais mettre à jour à partir du market et tester.
EDIT (j’écris trop de message le forum ne me laisse plus en écrire de nouveaux donc j’édite celui-là
Bon j’ai supprimé le plugin et réinstallé la version béta à partir du market.
J’ai dû aller éditer mon application sur le site Home Connect car la Redirect URI avait changé côté Jeedom à cause de l’apiKey qui avait changé (sauf qu’en fait je crois que ce n’est vraiment nécessaire que pour le mode appareils réels pas pour le mode démo mais dans le doute …)
Ensuite j’ai fait une synchro et à priori je ne vois pas de problème mais c’est vrai que les appareil démo ont beaucoup moins de programmes, d’options et de réglages que les vrais.
Je pense qu’il me faut le log d’une synchro d’un vrai appareil pour avancer.

désolé pour la qualité des logs ; nous ne sommes pas tous developpeurs et je suis pas à l’aise sur mon iMac à la maison

j’avais bien supprimé avant de synchro

je trouve où la log de la synchronisation ?log home connect.txt (26,2 Ko)

je viens de supprimer et de lancer la synchro

c’est passé, je retrouve bien toutes les commandes

  • Je pense que c’est le serveur Home Connect qui était dans les choux, pas mon plugin.
  • Pour les logs je comprends mais c’est le forum qui n’est pas terrible: quand on essaie de copier un message très long çà scrolle dans tous les sens et c’est dur d’avoir l’intégralité.
    Là avec le lien pour télécharger c’est top. merci beaucoup.
  • Le log de la synchronisation est au milieu du log du plugin (il faut être en debug)
    Il commence par une ligne avec Fonction homeappliances()
    et se termine par une ligne Fin de la fonction homeappliances()
    Je suis bien d’accord que ce n’est pas terrible niveau convivialité je vais mettre
    Début de synchronisation et Fin de synchronisation ce sera mieux :smile:
  • Je viens de réussir à faire marcher la commande Arrêter et çà arrête bien l’appareil tout net (à confirmer avec un appareil réel). Tout simplement la condition d’un if était le contraire de ce qu’elle aurait dû être et la commande ne faisait rien.
  • Pour la hotte il faudrait voir s’il y a des lignes lors de la synchro en debug qui contienne Appliance Program et si oui me dire ce qu’il y a dans cette ligne

Désolé de traiter plusieurs sujets dans le même message mais le forum trouve que j’écris trop de messages et me dit de laisser de la place aux autres

Tu n’as pas à t’excuser @vedrine
Tu fais un boulot de ouf !!!
Je teste lancement demain soir

Je ne trouve aucune trace de « suppression » ou de « succès » dans tout le plugin ???
Normalement à la fin d’une synchronisation le message qui apparait en vert est
Synchronisation réussie
Et pendant la synchro on a un message en orange pour chaque nouvel appareil trouvé
Par contre il y a bien un message « Suppression effectuée » quelque part mais normalement vous ne devriez pas le voir car il ne devrait apparaître que quand on supprime tous les appareils.

:rofl:
Attention à ne pas trop éditer les messages non plus. La punition est un bannissement pour 9 heures.
Expérience vécue.
@Alexandre Quelle est la limite de modification de posts ?
C’est mieux que les 24h d’Home Connect (Expérience vécue aussi) et ça permet d’aller dormir.

Bon ce matin j’ai travaillé sur le truc suivant :
Quand on change de programme il faut ajuster les options qui correspondent à ce programme.
Prenons un exemple clair
Pour une machine à café suivant qu’on choisit le programme espresso, latte macchiato ou café, les contenances en ml min et max ne sont pas les mêmes (et il faut aussi changer le pas (step) car on peut se faire un Espresso de 45 ml mais pas un Espresso Macchiato de 45 ml, c’est 40 ou 50 pas 45 à cause du step 10.
Cette page liste les valeurs.
Dans la prochaine version tout ceci est mis à jour au changement de programme (sélectionné ou actif suivant le type d’appareil) et croyez moi ce n’était pas évident à coder !
C’est aussi pour cela que j’ai à nouveau mis le widget button pour certaines commandes lorsqu’il y avait un step car le widget defaut ne permet pas d’avoir un step

Dans le but de préparer le terrain pour le deamon qui va récupérer les événements envoyés par le serveur, je vais changer le fonctionnement pour les token (jetons)
Je vais créer un cron qui toutes les minutes va vérifier si le token est expiré et si nécessaire va le renouveler. C’est aussi cette fonction qui a s’occuper d’arrêter le deamon et le relancer en lui transmettant le nouveau token.
Pas grand chose à faire de votre côté normalement pour l’utilisateur c’est transparent sauf si la fonction n’arrive pas à récupérer un token et dans ce cas je vais faire afficher une alerte lui demandant de se reconnecter.
Mais à cette occasion je me demandais si c’était bien nécessaire de conserver le cron15 qui rafraîchit l’état des appareils?

  • De toute façon cette fonction est provisoire, elle n’aura plus aucun rôle quand on récupérera les événements venus du serveur.
  • Une mise à jour tous les quart d’heure ce n’est pas très utile
  • pendant la phase de test le bouton rafraîchir sur la tuile du dashboard suffit largement et il est plus efficace
  • les actions consomment maintenant beaucoup plus de requêtes et donc si on joue avec les commandes pour tester, si on laisse le cron15 on va très vite « consommer » notre capital de 1000 requêtes par jour.
  • J’ai peut-être oublié des emplacements dans le code mais je fais en principe une mise à jour après chaque action.

Tout cela à mon avis milite pour la suppression du cron15 qui chez moi est désactivé depuis des jours mais j’attends vos remarques avant de le faire.

Salut,

Je post un peu vite fait, je n’ai pas pu lire tout le topic.
Juste merci pour le dev :slight_smile: les lampes qui sont de la hotte vont peut être enfin pouvoir être synchro avec les couleurs des ampoules hue de la cuisine :grin:

J’ai un sèche linge, une hotte avec lumières, une plaque et un four et serais content d’aider à tester si besoin.

Aucun souci pour moi, le cron15 est désactivé depuis un moment.

Vu ce matin à la conf bien technique GfK
Quand je vois l’explosion des ventes en
2019 sur le gros et petit electro ménager connecte, @vedrine, tu vas avoir plein de testeurs prochainement :slight_smile:

Bonjour à tous. Quelques nouvelles.

  • J’ai poussé une mise à jour sur le market toujours en beta. Pas grand chose de neuf
  • Je me suis rendu compte qu’utiliser les traductions en français envoyées par le site Home Connect avait un gros inconvénient: c’est incompatible avec le système de traduction de Jeedom (c’est un peu difficile à expliquer techniquement pourquoi) donc pour ces termes là il serait impossible aux traducteurs de proposer des traductions en anglais, allemand, espagnol, … comme on le fait pour tous les plugins Jeedom et pour Jeedom lui-même.
    Pour moi ce serait vraiment un inconvénient majeur car j’espère bien que mon plugin aura une diffusion mondiale :smile:(et me rapportera beaucoup de sous … Ah zut non je l’ai mis gratuit :smile: ). Donc je n’utilise plus les traductions en français du site Home Connect, je traduit tout dans une fonction interne à mon plugin (qui est compatible avec le système de traduction Jeedom). Si vous voyez passer des termes en anglais signalez-les moi que je les ajoute au fur et à mesure. Et si çà vous intéresse d’avoir une version en langue étrangère du plugin lisez la doc Jeedom à ce sujet et allez sur le site Transifex pour traduire les chaines du plugin. Merci à celui qui a déjà commencé pour l’anglais.
  • Je suis absent de mon domicile le week-end prochain et une bonne partie de la semaine prochaine donc le développement va marquer le pas pendant cette période
  • Une personne de ma famille a des ennuis de santé sérieux donc cela risque aussi de ralentir le rythme du développement
  • J’ai avancé sur le démon, mes dépendances s’installent, le démon démarre et s’arrête quand je le veux. J’arrive à lui passer la liste des appareils et le token et j’arrive à récupérer les messages qu’il me renvoie. Reste à faire la partie la plus importante et la plus dure: celle où le démon se connecte au site Home Connect, demande pour chaque appareil qu’on lui envoie les événements et les traite quand ils arrivent.

Bon tests.
Jean-Michel

Hello,

Cependant, via IFTTT, j’ai une notification via Jeedom quand les niveaux sont bas. Je pense que c’est jouable via le plugin d’@vedrine.
De même, j’arrive via IFTTT à éteindre ma machine.

Mathieu

Bonjour à tous
Tout çà : niveaux de lessive et d’assouplissant, alerte niveaux bas, avancement du programme (et bien d’autres choses) remontera lorsque le démon sera fini et que le plugin recevra les événements du serveur. Patience :smile:

@vedrine, prends soin de toi et de tes proches

dernière beta installée

j’ai viré ma machine à laver et je relance synchro

j’ai de nouveau le message d’erreur

Cette action ne peut pas être exécutée pour cet appareil Request cannot be performed in the current operation state

voici la log en debug

[2020-02-07 16:55:47] homeconnect.DEBUG: Fonction syncHomeConnect() [] []
[2020-02-07 16:55:47] homeconnect.DEBUG: ---------- Début de synchronisation ---------- [] []
[2020-02-07 16:55:48] homeconnect.DEBUG: La requête GET : /api/homeappliances a réussi code = 200 résultat = { « data »: { « homeappliances »: [{ « name »: « Lave-linge », « brand »: « Bosch », « vib »: « WAWH2660FF », « connected »: true, « type »: « Washer », « enumber »: « WAWH2660FF/09 », « haId »: « BOSCH-WAWH2660FF-68A40E0215A3 » }] } } [] []
[2020-02-07 16:55:48] homeconnect.DEBUG: Fonction loadCmdFromConf(Washer) [] []
[2020-02-07 16:55:50] homeconnect.DEBUG: La requête GET : /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/programs a réussi code = 200 résultat = { « data »: { « programs »: [{ « key »: « LaundryCare.Washer.Program.Cotton », « name »: « Coton », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.EasyCare », « name »: « Synthétiques », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.Mix », « name »: « Mix rapide », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.DelicatesSilk », « name »: « Délicat/Soie », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.Wool », « name »: « Laine », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.Sensitive », « name »: « Allergie Plus », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.ShirtsBlouses », « name »: « Chemises », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.DarkWash », « name »: « Couleurs sombres », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.Auto30 », « name »: « Auto 30° », « constraints »: { « execution »: « selectandstart », « available »: true } }, { « key »: « LaundryCare.Washer.Program.Auto60 », « name »: « Auto intensif 60° », « constraints »: { « execution »: « selectandstart », « available »: true } }] } } [] []
[2020-02-07 16:55:51] homeconnect.DEBUG: La requête GET : /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/programs/available/LaundryCare.Washer.Program.Cotton a retourné un code d’erreur 409 résultat = { « error »: { « key »: « SDK.Error.WrongOperationState », « description »: « Request cannot be performed in the current operation state » } } [] []

@Sebastien_Potin Allume la machine et refait une synchronisation.

Pourtant d’après son log la machine est connectée puisque je vois

“connected”: true

Je ne comprends pas ce qui se passe
la requête avec /api/homeappliances est OK celle avec /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/programs est Ok aussi et en plus tous les programmes ont bien

 “available”: true

mais dès que le plugin interroge poura avoir les détails d’un programme comme /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/programs/available/LaundryCare.Washer.Program.Cotton on a une erreur 409
D’après la doc cela signifirait que son lave linge ne donne les options d’un programme que si l’état est DelayedStart, Run, Pause ou ActionRequired.
Mais alors comment je fais pour créer les commandes options ?
Il faut que je cherche une solution mais comme je part demain ce sera sans doute à mon retour en fin de semaine prochaine.
Quand j’ai testé sur les simulateurs je n’ai pas du tout constaté çà.
SVP quand vous collez des logs dans vos messages sur le forum utilisez le bouton
barre
Car là je m’arrache les yeux à déchiffrer
Ou alors si vous avez le badge nécessaire vous pouvez attacher une pièce jointe

Synchronisation OK cette fois, toutes les commandes sont bien crées

Il ne faut pas qu’un programme soit en cours quand on lance la synchro selon moi

Je teste ça demain