Erreur sur envoi de commande pour réfrigérateur

Bonjour à tous,

Déjà, merci aux développeurs pour ce plugin Home-Connect qui m’est fort utile pour l’intégration de mon réfrigérateur/congélateur dans Jeedom!

J’ai bien toutes les informations qui remontent (porte, température des 3 compartiments, état de fonctionnement) mais je ne peux pas envoyer de commande.
Je ne suis pas très fort en programmation, mais en regardant le log debug, je m’interroge sur la syntaxe dans l’url appelé:

[2020-05-03 16:00:50][DEBUG] : Fonction execute()
[2020-05-03 16:00:50][DEBUG] : logicalId : PUT::Refrigeration.FridgeFreezer.Setting.SetpointTemperatureRefrigerator
[2020-05-03 16:00:50][DEBUG] : Options : Array ( [slider] => 4.5 [utid] => 1588514440537 )
[2020-05-03 16:00:50][DEBUG] : | Commande générique
[2020-05-03 16:00:50][DEBUG] : Paramètres de la requête pour exécuter la commande :
[2020-05-03 16:00:50][DEBUG] : Method : PUT
[2020-05-03 16:00:50][DEBUG] : Url : /api/homeappliances/SIEMENS-KG56FPI40-XXXXXXXXX//settings/Refrigeration.FridgeFreezer.Setting.SetpointTemperatureRefrigerator
[2020-05-03 16:00:50][DEBUG] : Payload : {« data »:{« key »:« Refrigeration.FridgeFreezer.Setting.SetpointTemperatureRefrigerator »,« value »:« 4 »,« unit »:« \u00b0C »}}
[2020-05-03 16:00:50][DEBUG] : La requête PUT : /api/homeappliances/SIEMENS-KG56FPI40-XXXXXXXXX//settings/Refrigeration.FridgeFreezer.Setting.SetpointTemperatureRefrigerator a retourné un code d’erreur 404 résultat = {« error »:{« key »:« 404 »,« description »:« The requested resource could not be found. »}}
[2020-05-03 16:00:50][ERROR] : Erreur exécution de la commande [Cuisine][Frigo][Réfrigérateur] : Cette ressource n’est pas disponible

Ais-je raison si il ne faudrait pas enlever un / juste avant « settings » sur cette url ?

/api/homeappliances/SIEMENS-KG56FPI40-XXXXXXXXX//settings/Refrigeration.FridgeFreezer.Setting.SetpointTemperatureRefrigerator

Si c’est bien le cas, comment dois-je modifier le code du plugin pour rectifier ?

Bonjour @altoinou désolé j’avais loupé ce post. Oui l’url n’est pas correcte. Il faut que je regarde pourquoi. Le code à cet endroit est compliqué car il dépend du type d’appareil et je n’avais pas eu d’écho pour le type réfrigérateur/congélateur.
A première vue je dirais que ce n’est pas un slash en trop c’est un truc qui manque à cet endroit entre les deux / mais je peux me tromper.
Je regarde.

Tu es tout excusé vu le gros travail déjà accompli !
Si besoin de testeur je suis là ! :wink:

Et bien figure toi que c’est toi qui avait raison : il y avait un / en trop pour les commandes action de type settings (réglages) et alors là je me suis demandé pourquoi je ne l’avais pas remarqué et pourquoi personne ne l’avais signalé, l’explication est simple : il n’y a de commande action settings que pour les tables de cuisson (mais ne marchent pas pour des raisons de sécurité) les aspirateurs robot (mais aucun n’est en vente) les machines à café (mais je ne crois pas avoir de testeurs) les lave vaisselle les plus chers (mais c’est uniquement la commande pour l’éclairage et quelqu’un l’avais signalé mais sans explication et je n’avais pas compris pourquoi çà ne marchait pas et mon lave vaisselle n’a ps d’éclairage donc impossible de tester) et les réfrigérateurs/congélateurs/caves à vin (mais tu es le premier testeur) donc çà explique que ce bug soit passé inaperçu.
Ceci dit c’est le genre de bug qui une fois signalé est facile à corriger. Je vais publier ce soir ou demain une nouvelle version et tu me dira si çà marche.

Cool!
Que de bonnes nouvelles!
Je surveille la nouvelle version sur le market et te tiendrais informé du résultat des que possible.
Bonne soirée, et merci encore pour ta spontanéité !
:+1:

J’ai testé aujourd’hui et ça progresse, mais cela ne fonctionne pas encore…

Voici les logs :

[2020-05-12 11:28:52][DEBUG] : Fonction execute()
[2020-05-12 11:28:52][DEBUG] : logicalId : PUT::Refrigeration.Common.Setting.ChillerCommon.SetpointTemperature
[2020-05-12 11:28:52][DEBUG] : Options : Array ( [slider] => 1 [utid] => 1589275718270 )
[2020-05-12 11:28:52][DEBUG] : | Commande générique
[2020-05-12 11:28:52][DEBUG] : Paramètres de la requête pour exécuter la commande :
[2020-05-12 11:28:52][DEBUG] : Method : PUT
[2020-05-12 11:28:52][DEBUG] : Url : /api/homeappliances/SIEMENS-KG56FPI40-XXXXXXXXXXXX/settings/Refrigeration.Common.Setting.ChillerCommon.SetpointTemperature
[2020-05-12 11:28:52][DEBUG] : Payload : {« data »:{« key »:« Refrigeration.Common.Setting.ChillerCommon.SetpointTemperature »,« value »:« 1 »,« unit »:« \u00b0C »}}
[2020-05-12 11:28:52][DEBUG] : La requête PUT : /api/homeappliances/SIEMENS-KG56FPI40-XXXXXXXXXXXX/settings/Refrigeration.Common.Setting.ChillerCommon.SetpointTemperature a retourné un code d’erreur 409 résultat = { « error »: { « key »: « SDK.Error.InvalidSettingValue », « description »: « Key Refrigeration.Common.Setting.ChillerCommon.SetpointTemperature has unexpected type or value 1 » } }
[2020-05-12 11:28:53][ERROR] : Erreur exécution de la commande [Cuisine][Réfrigérateur congélateur][Consigne température] : Cette action ne peut pas être exécutée pour cet appareil Key Refrigeration.Common.Setting.ChillerCommon.SetpointTemperature has unexpected type or value 1
[2020-05-12 11:29:00][DEBUG] : Fonction execute()
[2020-05-12 11:29:00][DEBUG] : logicalId : PUT::Refrigeration.FridgeFreezer.Setting.SetpointTemperatureFreezer
[2020-05-12 11:29:00][DEBUG] : Options : Array ( [slider] => -17 [utid] => 1589275718270 )
[2020-05-12 11:29:00][DEBUG] : | Commande générique
[2020-05-12 11:29:00][DEBUG] : Paramètres de la requête pour exécuter la commande :
[2020-05-12 11:29:00][DEBUG] : Method : PUT
[2020-05-12 11:29:00][DEBUG] : Url : /api/homeappliances/SIEMENS-KG56FPI40-XXXXXXXXXXXX/settings/Refrigeration.FridgeFreezer.Setting.SetpointTemperatureFreezer
[2020-05-12 11:29:00][DEBUG] : Payload : {« data »:{« key »:« Refrigeration.FridgeFreezer.Setting.SetpointTemperatureFreezer »,« value »:« -17 »,« unit »:« \u00b0C »}}
[2020-05-12 11:29:01][DEBUG] : La requête PUT : /api/homeappliances/SIEMENS-KG56FPI40-XXXXXXXXXXXX/settings/Refrigeration.FridgeFreezer.Setting.SetpointTemperatureFreezer a retourné un code d’erreur 409 résultat = { « error »: { « key »: « SDK.Error.InvalidSettingValue », « description »: « Key Refrigeration.FridgeFreezer.Setting.SetpointTemperatureFreezer has unexpected type or value -17 » } }
[2020-05-12 11:29:01][ERROR] : Erreur exécution de la commande [Cuisine][Réfrigérateur congélateur][SetpointTemperatureFreezer] : Cette action ne peut pas être exécutée pour cet appareil Key Refrigeration.FridgeFreezer.Setting.SetpointTemperatureFreezer has unexpected type or value -17
[2020-05-12 11:30:32][DEBUG] : Fonction execute()

Le réglage de la température demande d’envoyer une valeur qui ne correspond pas actuellement.
Il en est de même pour les « modes ».

Il y aurait-t-il dans l’API une description des valeurs exactes à envoyer par commandes ?