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

J’ai mis à jour ta dernière version du plugin : il semble y avoir une régression.

Quand je lance la synchro : j’ai à l’écran ce message d’erreur, les 2 équipements dans mon cas sont néanmoins créés

[Aucun][Four][Consigne température] Le sous-type de la commande ne peut pas être vide :homeconnectCmd Object ( [id:protected] => [logicalId:protected] => PUT::Cooking.Oven.Option.SetpointTemperature [generic_type:protected] => [eqType:protected] => [name:protected] => Consigne température [order:protected] => [type:protected] => action [subType:protected] => [eqLogic_id:protected] => 1321 [isHistorized:protected] => 0 [unite:protected] => [configuration:protected] => Array ( [request] => programs/selected/options [key] => Cooking.Oven.Option.SetpointTemperature ) [template:protected] => [display:protected] => Array ( [generic_type] => DONT ) [value:protected] => 55402 [isVisible:protected] => 1 [alert:protected] => [_collectDate:protected] => [_valueDate:protected] => [_eqLogic:protected] => homeconnect Object ( [id:protected] => 1321 [name:protected] => Four [logicalId:protected] => NEFF-B58VT68H0-68A40E327003 [generic_type:protected] => [object_id:protected] => [eqType_name:protected] => homeconnect [eqReal_id:protected] => [isVisible:protected] => 1 [isEnable:protected] => 1 [configuration:protected] => {"haid":"NEFF-B58VT68H0-68A40E327003","vib":"B58VT68H0","brand":"Neff","type":"Oven","createtime":"2020-01-29 20:36:41","applyType":"Oven","updatetime":"2020-01-29 20:36:41"} [timeout:protected] => [category:protected] => [] [display:protected] => {"showObjectNameOnview":1,"showObjectNameOndview":1,"showObjectNameOnmview":1,"height":"auto","width":"auto","layout::dashboard::table::parameters":{"center":1,"styletd":"padding:3px;"},"layout::mobile::table::parameters":{"center":1,"styletd":"padding:3px;"}} [order:protected] => 9999 [comment:protected] => [tags:protected] => [_debug:protected] => [_object:protected] => [_needRefreshWidget:protected] => [_timeoutUpdated:protected] => [_batteryUpdated:protected] => [_changed:protected] => ) [_needRefreshWidget:protected] => 1 [_needRefreshAlert:protected] => [_changed:protected] => 1 )

Oops désolé je ne savais plus qui avait un four mais je savais qu’il y avait quelqu’un
Je regarde pour le sous type.

Pour mon four virtuel je n’ai pas cette erreur mais je fais tourner une version qui a des changements par rapport à celle du market.
Quand la prochaine version sera disponible, supprime juste le four, fais une synchro et envoie moi le log en debug.

Voila j’ai mis à jour la version du market

Je viens de rentrer et d’installer dernière bêta

Mon lave linge remonte bien dans jeedom

Par contre seules les info de statut sont OK (connectée, démarrage distance, contrôle distance, hublot…)

Pas de remontée niveau lessive et assouplissant

Pas réussi à lancer la machine via jeedom

@vedrine, encore bravo, dis moi s’il te faut quelque chose

il récupère pourtant bien les infostexte en gras

[2020-01-29 21:19:44] homeconnect.DEBUG: │ mise à jour status : OperationState - Valeur :Prêt [] []
[2020-01-29 21:19:44] homeconnect.DEBUG: │ status : Array ( [key] => BSH.Common.Status.RemoteControlStartAllowed [value] => 1 [name] => Démarrage à distance ) [] []
[2020-01-29 21:19:44] homeconnect.DEBUG: │ mise à jour status : RemoteControlStartAllowed - Valeur :1 [] []
[2020-01-29 21:19:44] homeconnect.DEBUG: │ status : Array ( [key] => BSH.Common.Status.RemoteControlActive [value] => 1 [name] => Contrôle à distance ) [] []
[2020-01-29 21:19:44] homeconnect.DEBUG: │ mise à jour status : RemoteControlActive - Valeur :1 [] []
[2020-01-29 21:19:44] homeconnect.DEBUG: │ MAJ des réglages BOSCH-WAWH2660FF-68A40E0215A3 [] []
[2020-01-29 21:19:44] homeconnect.DEBUG: │ Réponse : { « data »: { « settings »: [{ « key »: « BSH.Common.Setting.PowerState », « value »: « BSH.Common.EnumType.PowerState.On », « name »: « Statut de puissance », « displayvalue »: « Activé » }] } } [] []
[2020-01-29 21:19:44] homeconnect.DEBUG: │ setting : Array ( [key] => BSH.Common.Setting.PowerState [value] => BSH.Common.EnumType.PowerState.On [name] => Statut de puissance [displayvalue] => Activé ) [] []
[2020-01-29 21:19:44] homeconnect.DEBUG: │ Mise à jour setting : PowerState - Valeur :Activé [] []
[2020-01-29 21:19:52] homeconnect.DEBUG: | Lancement du programme sélectionné [] []
[2020-01-29 21:19:52] homeconnect.DEBUG: | Url : /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/programs/selected [] []
[2020-01-29 21:19:54] homeconnect.DEBUG: | Server response : { « data »: { « key »: « LaundryCare.Washer.Program.Cotton », « options »: [{ « key »: « BSH.Common.Option.FinishInRelative », « value »: 8400, « unit »: « seconds », « name »: « Fin différée » }, { « key »: « LaundryCare.Washer.Option.Temperature », « value »: « LaundryCare.Washer.EnumType.Temperature.GC60 », « name »: « Température », « displayvalue »: « 60°C » }, { « key »: « LaundryCare.Washer.Option.SpinSpeed », « value »: « LaundryCare.Washer.EnumType.SpinSpeed.RPM1600 », « name »: « Vitesse d’essorage », « displayvalue »: "1600 tr/min." }, { « key »: « LaundryCare.Washer.Option.IDos1DosingLevel », « value »: « LaundryCare.Washer.EnumType.IDosingLevel.Strong », « name »: « Dosage i-Dos de détergent », « displayvalue »: « Fort » }, { « key »: « LaundryCare.Washer.Option.IDos2DosingLevel », « value »: « LaundryCare.Washer.EnumType.IDosingLevel.Light », « name »: « i-DOS: dosage de lessive liquide ou d’adoucissant », « displayvalue »: « Faible » }, { « key »: « LaundryCare.Washer.Option.Prewash », « value »: false, « name »: « Prélavage » }, { « key »: « LaundryCare.Washer.Option.RinsePlus1 », « value »: false, « name »: « Rinçage plus » }, { « key »: « LaundryCare.Common.Option.VarioPerfect », « value »: « LaundryCare.Common.EnumType.VarioPerfect.Off », « name »: « VarioPerfect », « displayvalue »: « Désactivé » }], « name »: « Coton » } } [] []
[2020-01-29 21:22:33] homeconnect.DEBUG: Lancement de : /var/www/html/core/class/…/…/core/php/jeePlugin.php plugin_id=homeconnect function=pre_update callInstallFunction=1 [] []
[2020-01-29 21:22:35] homeconnect.INFO: Début d’activation du plugin [] []
[2020-01-29 21:22:36] homeconnect.INFO: Info sur le démon : Array ( [launchable_message] => [launchable] => nok [state] => nok [log] => nok [auto] => 0 ) [] []
[2020-01-29 21:22:36] homeconnect.DEBUG: Lancement de : /var/www/html/core/class/…/…/core/php/jeePlugin.php plugin_id=homeconnect function=update callInstallFunction=1 [] []
[2020-01-29 21:28:28] homeconnect.DEBUG: | Lancement du programme sélectionné [] []
[2020-01-29 21:28:28] homeconnect.DEBUG: | Pas de programme dans la réponse [] []

après une synchro, c’est nickel

si je change programme via jeedom, ça remonte bien sur la machine

par contre j’arrive pas encore à lancer le programme

[2020-01-29 21:40:55] homeconnect.DEBUG: | Url : /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/programs/selected/options [] []
[2020-01-29 21:40:56] homeconnect.DEBUG: | Server response : {« error »:{« key »:« 400 »,« description »:« The request content was malformed:
Object is missing required member ‹ options › »}} [] []
[2020-01-29 21:40:57] homeconnect.DEBUG: | Payload : {« data »:{« key »:« LaundryCare.Washer.Option.Temperature »,« value »:« LaundryCare.Washer.EnumType.Temperature.GC60 »}} [] []
[2020-01-29 21:40:57] homeconnect.DEBUG: | Url : /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/programs/selected/options [] []
[2020-01-29 21:40:58] homeconnect.DEBUG: | Server response : {« error »:{« key »:« 400 »,« description »:« The request content was malformed:
Object is missing required member ‹ options › »}} [] []
[2020-01-29 21:40:59] homeconnect.DEBUG: | Payload : {« data »:{« key »:« LaundryCare.Washer.Program.Wool »}} [] []
[2020-01-29 21:40:59] homeconnect.DEBUG: | Url : /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/programs/selected [] []
[2020-01-29 21:41:03] homeconnect.DEBUG: | Lancement du programme sélectionné [] []
[2020-01-29 21:41:03] homeconnect.DEBUG: | Pas de programme dans la réponse [] []
[2020-01-29 21:41:05] homeconnect.DEBUG: | Server response : [] []

Hello @Sebastien_Potin
Un grand merci pour les logs c’est tout à fait ce qu’il me faut pour avancer.
Un exemple : pour la lessive et l’assouplissant je pensais que çà marchait mais comme je ne travaille qu’avec un lave linge simulé faute d’un vrai et que sur le simulateur beaucoup de fonctionnalités manquent dont les niveaux de lessive et d’assouplissant, je ne peux pas tester.
Une simple confirmation : ton lave linge est ce qu’ils appellent i-Dos ? c’est bien çà ?
Je vais analyser tes logs
Pour le lancement qui ne se fait pas je pense que je vois le problème, je dois réfléchir à la meilleure solution.
Pour information: je me suis rendu compte hier que lors de l’exécution d’une commande je ne vérifiais pas le token du serveur Home Connect (et donc je ne le rafraîchissait pas s’il était expiré) . Chez moi vu le nombre de synchro que je fais cela ne m’avait jamais gêné mais dans une utilisation réelle çà peut le devenir.
Ce sera corrigé dans la prochaine version.

Salut @vedrine

C’est bien un idos

Tu dois pouvoir récupérer % lessive et % assouplissant restant (info dispo sous home connect)

Salut @Sebastien_Potin,
OK je vais regarder pourquoi çà ne remonte pas.
J’ai trouvé plusieurs bugs dans les commandes action.
Je viens de publier une nouvelle version avec mes corrections et au cas où ces commandes ne marchent toujours pas j’ai ajouté des logs en debug qui devrait me permettre de trouver pourquoi.

Hello,
rennais35000 à une plaque induction BOSCH-PXV875DV1E

23

Hello @rennais35000
c’est noté. Comme tu le sais pour les plaques de cuisson on pourra monitorer mais pas contrôler. Home Connect dit que c’est pour des raisons de sécurité.

Bon il y a du mieux mais ce n’est pas parfait
Sur la copie d’écran ci-dessous j’ai sélectionné un programme coton, un essorage à 800 tr/min et une température 60°C puis j’ai cliqué sur lancer et ensuite la petite icône rafraichir dans la barre de titre pour mettre à jour mon widget puisque mon cron est désactivé et que de toute façon je n’allais pas attendre 15 minutes !


Au chapitre des choses positives on voit que Programme en cours, Statut de fonctionnement et en vert Vitesse d’essorage se sont bien mis à jour mais pas Essorage en rouge dans mon menu select (idem pour la température). Je cherche la cause de ce bug.
Je vais attendre que mon lavage virtuel soit fini pour voir comment se présente le widget.
Donc attention prudence si vous testez le plugin avec vos appareils réels çà « peut » réellement agir sur eux … ou pas :smile:

Je suis un peu dégouté ; Darty vient de m’avertir que la livraison du lave-vaisselle était retardée au 15 février.
Enfin çà me donnera le temps de debugger ce plugin.
Et surtout de regarder cette histoire de deamon.

1 « J'aime »

J’ai fait la dernière mise à jour du plugin et rebelote avec mon four lors d’une synchro
j’ai cette erreur; cela ressemble à celle de la dernière fois

[Aucun][Four][Consigne température] Le sous-type de la commande ne peut pas être vide :homeconnectCmd Object ( [id:protected] => [logicalId:protected] => PUT::Cooking.Oven.Option.SetpointTemperature [generic_type:protected] => [eqType:protected] => [name:protected] => Consigne température [order:protected] => [type:protected] => action [subType:protected] => [eqLogic_id:protected] => 1324 [isHistorized:protected] => 0 [unite:protected] => [configuration:protected] => Array ( [request] => programs/selected/options/Cooking.Oven.Option.SetpointTemperature [key] => Cooking.Oven.Option.SetpointTemperature [category] => Option ) [template:protected] => [display:protected] => Array ( [generic_type] => DONT ) [value:protected] => 55520 [isVisible:protected] => 1 [alert:protected] => [_collectDate:protected] => [_valueDate:protected] => [_eqLogic:protected] => homeconnect Object ( [id:protected] => 1324 [name:protected] => Four [logicalId:protected] => NEFF-B58VT68H0-68A40E327003 [generic_type:protected] => [object_id:protected] => [eqType_name:protected] => homeconnect [eqReal_id:protected] => [isVisible:protected] => 1 [isEnable:protected] => 1 [configuration:protected] => {"haid":"NEFF-B58VT68H0-68A40E327003","vib":"B58VT68H0","brand":"Neff","type":"Oven","createtime":"2020-01-31 17:23:47","applyType":"Oven","updatetime":"2020-01-31 17:23:47"} [timeout:protected] => [category:protected] => [] [display:protected] => {"showObjectNameOnview":1,"showObjectNameOndview":1,"showObjectNameOnmview":1,"height":"auto","width":"auto","layout::dashboard::table::parameters":{"center":1,"styletd":"padding:3px;"},"layout::mobile::table::parameters":{"center":1,"styletd":"padding:3px;"}} [order:protected] => 9999 [comment:protected] => [tags:protected] => [_debug:protected] => [_object:protected] => [_needRefreshWidget:protected] => [_timeoutUpdated:protected] => [_batteryUpdated:protected] => [_changed:protected] => ) [_needRefreshWidget:protected] => 1 [_needRefreshAlert:protected] => [_changed:protected] => 1 )

J’ai dû casser quelque chose. Je regarde.

Voici des logs pour mettre en pause le lave vaisselle : je croyais que cette fonction pouvait fonctionner mais apparemment elle n’est pas supportée

[2020-02-01 16:17:13][DEBUG] : Fonction execute()
[2020-02-01 16:17:13][DEBUG] : logicalId : PUT::BSH.Common.Command.PauseProgram
[2020-02-01 16:17:13][DEBUG] : | Options : Array (     [utid] => 1580570171397 )
[2020-02-01 16:17:13][DEBUG] : | Commande générique
[2020-02-01 16:17:13][DEBUG] : Paramètres de la requête pour exécuter la commande :
[2020-02-01 16:17:13][DEBUG] : Payload : {"data":{"key":"BSH.Common.Command.PauseProgram","value":"1"}}
[2020-02-01 16:17:13][DEBUG] : Url : /api/homeappliances/BOSCH-SMS68TW16E-68A40E047D41/commands/BSH.Common.Command.PauseProgram
[2020-02-01 16:17:13][DEBUG] : Réponse du serveur : {   "error": {     "key": "SDK.Error.UnsupportedCommand",     "description": "command: BSH.Common.Command.PauseProgram not supported "   } }

Merci, je vais quand même vérifier que je n’ai pas fais d’erreur dans Url et Payload mais d’après cette page
https://developer.home-connect.com/docs/commands/pause_program
c’est moi qui me suis trompé : lave linge oui mais lave vaisselle non donc j’ai dû mélanger ou faire un copier-coller malencontreux
Mais cela me montre un léger problème : dans le Payload on devrait avoir

"value":true

et pas

"value":"1"

Pas sûr que pour le serveur Home Connect ce soit la même chose donc je vais corriger.

Dans la prochaine version j’ai corrigé les problèmes signalé par @jpty : si on est connecté par l’accès interne on a un beau bandeau rouge d’erreur et aussi il n’y a plus qu’un bouton que je change par javascript.

bonjour @vedrine, le niveau de lessive et adoucissant commencent à remonter ; par contre toujours pas moyen de lancer ou stopper un programme

[2020-02-02 10:15:10] homeconnect.DEBUG: Mise à jour setting : PowerState - Valeur :Activé [] []
[2020-02-02 10:15:10] homeconnect.DEBUG: Fin de la fonction updateAppliances() [] []
[2020-02-02 10:16:06] homeconnect.DEBUG: Fonction execute() [] []
[2020-02-02 10:16:06] homeconnect.DEBUG: logicalId : PUT::BSH.Common.Command.PauseProgram [] []
[2020-02-02 10:16:06] homeconnect.DEBUG: | Options : Array (     [utid] => 1580555679683 )  [] []
[2020-02-02 10:16:06] homeconnect.DEBUG: | Commande générique [] []
[2020-02-02 10:16:06] homeconnect.DEBUG: Paramètres de la requête pour exécuter la commande : [] []
[2020-02-02 10:16:06] homeconnect.DEBUG: Payload : {"data":{"key":"BSH.Common.Command.PauseProgram","value":"1"}} [] []
[2020-02-02 10:16:06] homeconnect.DEBUG: Url : /api/homeappliances/BOSCH-WAWH2660FF-68A40E0215A3/commands/BSH.Common.Command.PauseProgram [] []
[2020-02-02 10:16:06] homeconnect.DEBUG: Réponse du serveur : {   "error": {     "key": "SDK.Error.InvalidCommandValue",     "description": "Key BSH.Common.Command.PauseProgram has unexpected type or value 1"   } } [] []