Mauvaise correspondance entre attributs Smartthings et Home Assistant

Bonjour à tous :wave:

Mon problème

J’ai intégré mes climatiseurs Samsung avec Smartthings dans Home Assistant.
Les valeurs de l’attribut hvac_modes proposées par Home Assistant ne correspondent pas aux valeurs proposées par l’application Smartthings et par le service set_hvac_mode.

Les valeurs proposées dans outils de développement/ETATS : hvac_modes: dry, cool, heat_cool et off.
Les valeurs proposées par le service set_hvac_mode : Off, Auto, Cool, Dry, Fan Only, Heat/Cool et Heat.
Les valeurs proposées par Smartthings : Refroidissement, Séchage, Auto, Chauffage et Ventilation.

Mon principal problème est que l’option chauffage (Heat) n’est pas disponible.
Est-ce un problème avec l’intégration Smartthings de Home Assistant ?

Merci de m’aider

Ma configuration


## System Information

version | core-2022.10.5
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.10.5
os_name | Linux
os_version | 5.15.72
arch | x86_64
timezone | Europe/Paris
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

GitHub API | ok
-- | --
GitHub Content | ok
GitHub Web | ok
GitHub API Calls Remaining | 5000
Installed Version | 1.28.2
Stage | running
Available Repositories | 1123
Downloaded Repositories | 9

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 9.2
-- | --
update_channel | stable
supervisor_version | supervisor-2022.10.0
agent_version | 1.4.1
docker_version | 20.10.17
disk_total | 30.8 GB
disk_used | 6.2 GB
healthy | true
supported | true
board | ova
supervisor_api | ok
version_api | ok
installed_addons | Duck DNS (1.15.0), File editor (5.4.1), Samba share (10.0.0), Terminal & SSH (9.6.1), ESPHome (2022.10.0), AppDaemon (0.9.3), Studio Code Server (5.4.0)

</details>

<details><summary>Dashboards</summary>

dashboards | 2
-- | --
resources | 5
views | 8
mode | storage

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | 12 octobre 2022 à 01:04
-- | --
current_recorder_run | 21 octobre 2022 à 14:29
estimated_db_size | 48.67 MiB
database_engine | sqlite
database_version | 3.38.5

</details>

<details><summary>Sonoff</summary>

version | 3.3.1 (b20e33c)
-- | --
cloud_online | 1 / 1
local_online | 1 / 1

</details>

J’ai les 3 clim Samsung smartthings dans HA et je n’ai pas ce souci, j’ai bien heat dans la liste. De quel modèle s’agit-il ?

Merci pour ton retour.
Voila les modèles de mes 3 clim Samsung :
2 x AR12HSFSAW
1 x AR07HSFSAW

Ces articles sont dans la gamme Triangle AR5000 wifi

Est-il passible d’avoir le résultat de la commande suivante :

curl -H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN" https://api.smartthings.com/v1/devices/YOUR_DEVICE_ID/status

En remplaçant le token et le device_id

On verra tout de suite les modes supporté par l’API sur ce type de clim

Je n’ai pas de retour à cette commande :
curl -H « Authorization: Bearer f0…83 » https://api.smartthings.com/v1/devices/9b.......b6/status

J’ai essayé de creuser un peu plus le problème. En suivant la documentation des développeurs Smartthings, avec l’application postman, j’ai fait un GET sur https://api.smartthings.com/v1/devices/9b2e21ba55093e8f64b16fc684613db6
en ajoutant mon token dans « Bearer Token ».
Je n’obtiens aucune donnée mais un status 403 Forbidden!

Hum bizarre. Le token est bien utilisé ? 403 forbidden voudrait dire que l’authentification n’est pas valide

Je vais refaire l’intégration Smatthings avec un nouveau token pour confirmer.

Avec un nouveau token le problème reste identique (modes hvac manquants et réponse Forbidden).
Je me suis livré à quelques tests avec Postman.
Si je modifie le token, la réponse n’est plus « 403 Forbidden » mais « 401 Unauthorized ». Ce qui voudrait dire que le bon token est bien accepté!
Si je supprime un caractère au device_id, j’obtiens le status « 400 Bad Request » avec le message « The request is malformed ». Donc le bon device_id semble correct!
Le problème demeure : que signifie ce Forbidden?

Une petite question pour m’aider dans mes recherches. J’ai obtenu les device_id par Home Assistant. Comment les obtient-on par le compte SmartThings/Samsung ?

Il faut se connecter à https://my.smartthings.com puis cliquer sur la clim. La s’affiche l’ID sur la gauche. Il est aussi dans l’URL après /device/

Un obstacle vient d’être franchi ! Les device_id récupérés sur l’interface SmartThings fonctionnent. Ceux affichés dans Home Assistant sont différents.
Mais mon problème sur les modes de fonctionnement est lui toujours présent. Voici le résultat sur le status d’une climatisation :

{
    "components": {
        "main": {
            "refresh": {},
            "custom.thermostatSetpointControl": {
                "minimumSetpoint": {
                    "value": 16,
                    "timestamp": "2022-07-18T17:12:09.740Z"
                },
                "maximumSetpoint": {
                    "value": 30,
                    "timestamp": "2022-07-18T17:12:09.740Z"
                }
            },
            "airConditionerMode": {
                "supportedAcModes": {
                    "value": [
                        "cool",
                        "dry",
                        "wind",
                        "auto"
                    ],
                    "timestamp": "2022-07-18T17:12:09.782Z"
                },
                "airConditionerMode": {
                    "value": "heat",
                    "timestamp": "2022-11-04T09:51:24.773Z"
                }
            },
            "execute": {
                "data": {
                    "value": null
                }
            },
            "airQualitySensor": {
                "airQuality": {
                    "value": null
                }
            },
            "switch": {
                "switch": {
                    "value": "off",
                    "timestamp": "2022-11-09T09:04:32.700Z"
                }
            },
            "ocf": {
                "st": {
                    "value": null
                },
                "mndt": {
                    "value": null
                },
                "mnfv": {
                    "value": null
                },
                "mnhw": {
                    "value": null
                },
                "di": {
                    "value": "C097276C-D242-0000-0000-000000000000",
                    "timestamp": "2022-07-18T17:12:09.866Z"
                },
                "mnsl": {
                    "value": null
                },
                "dmv": {
                    "value": "res.1.1.0,sh.1.1.0",
                    "timestamp": "2022-07-18T17:12:09.866Z"
                },
                "n": {
                    "value": "RAC 2",
                    "timestamp": "2022-07-18T17:12:09.866Z"
                },
                "mnmo": {
                    "value": "TP6X_RAC_16K|10175541|60010123001111000100000000000000",
                    "timestamp": "2022-07-18T17:12:09.866Z"
                },
                "vid": {
                    "value": "DA-AC-RAC-100001",
                    "timestamp": "2022-07-18T17:12:09.866Z"
                },
                "mnmn": {
                    "value": "Samsung Electronics",
                    "timestamp": "2022-07-18T17:12:09.866Z"
                },
                "mnml": {
                    "value": null
                },
                "mnpv": {
                    "value": null
                },
                "mnos": {
                    "value": null
                },
                "pi": {
                    "value": "shp",
                    "timestamp": "2022-07-18T17:12:09.866Z"
                },
                "icv": {
                    "value": "core.1.1.0",
                    "timestamp": "2022-07-18T17:12:09.866Z"
                }
            },
            "odorSensor": {
                "odorLevel": {
                    "value": null
                }
            },
            "airConditionerFanMode": {
                "fanMode": {
                    "value": "auto",
                    "timestamp": "2022-11-04T09:51:30.052Z"
                },
                "supportedAcFanModes": {
                    "value": [
                        "auto",
                        "low",
                        "medium",
                        "high",
                        "turbo"
                    ],
                    "timestamp": "2022-07-18T17:12:09.807Z"
                }
            },
            "samsungce.driverState": {
                "driverState": {
                    "value": null
                }
            },
            "custom.disabledCapabilities": {
                "disabledCapabilities": {
                    "value": [
                        "odorSensor"
                    ],
                    "timestamp": "2022-07-18T17:12:09.740Z"
                }
            },
            "samsungce.driverVersion": {
                "versionNumber": {
                    "value": 22090101,
                    "timestamp": "2022-09-26T09:32:18.936Z"
                }
            },
            "temperatureMeasurement": {
                "temperature": {
                    "value": 18,
                    "unit": "C",
                    "timestamp": "2022-11-11T02:58:27.891Z"
                }
            },
            "dustSensor": {
                "dustLevel": {
                    "value": null
                },
                "fineDustLevel": {
                    "value": null
                }
            },
            "thermostatCoolingSetpoint": {
                "coolingSetpoint": {
                    "value": 21,
                    "unit": "C",
                    "timestamp": "2022-11-04T09:41:33.678Z"
                }
            }
        }
    }
}

Pour rappel, l’application SmartThings propose les 5 modes suivants :
Refroidissement (Cool), Séchage (Dry), Ventilateur (Wind), Chauffage (Heat), Auto

L’api SmartThings propose uniquement 4 modes (pas le mode Heat). Ce qui pose déjà problème.

L’api Home Assistant propose elle aussi 4 modes mais différents:
cool, dry, off, heat_cool

Effectivement il y a un mode manquant dans le retour de la Clim au niveau de supportedAcMode or la librairie python se base la dessus pour la liste des modes je pense.
Peut être contacter le support smartthings ?

J’ai eu une longue correspondance avec le support SmartThings. Sa conclusion est que l’api nécessite une correction. Malheureusement, le support joint est situé aux US. Il m’a donc été conseillé de joindre le support français. Celui-ci n’a pas répondu.

Voici les 2 derniers messages du support US:

Priyanka Dora (SmartThings) 
Aug 24, 2023, 8:09 AM MST 
Hi Philippe,
Thank you for writing back to us.
We request you to give us sometime and we'll write back to you with an update.
We appreciate your time and patience.
Meanwhile, if you have any queries please feel free to write back to us. We're happy to help!
Thanks!
Regards,
Dora Priyanka
Samsung SmartThings Support

Priyanka Dora (SmartThings) 
Aug 28, 2023, 4:02 PM MST 
Hi Philippe,
We reviewed your account and see the location is France.
We wanted to inform you that you have reached US SmartThings Support Team and we can only support the US region. Since the supported devices and models vary by region we are unable to assist for your region. You will need to contact the support team of your region.
We request you to report your issue through the SmartThings app to get to your shard SmartThings Support team and they will assist you.
Please follow these steps in your SmartThings new app to report a ticket to your region:
•	On the Home screen tap on Menu > Contact us.
•	Tap "Report a problem"
•	Accept the permissions for creating a log file I* n the next page, tap on the "Contact us/Error reports"
We appreciate your time and patience and we apologize for any inconvenience caused.
We are the US support team and hence, we are only able to support and address queries related to US devices. If your location is US, then let us know so that we can further assist you.
Thanks!
Regards,
Dora Priyanka
Samsung SmartThings Support.

Et le dernier message du support français :

Bonjour Philippe LEBORGNE, 
 
Merci d’avoir contacté le Service Client des produits électroménagers Samsung.
Votre conseiller vous apportera une réponse dans un délai maximal de 2 jours ouvrés.
 
A bientôt, L’équipe Samsung
Ce mail est généré automatiquement, merci de ne pas y répondre.

On Sun, 01 Oct 2023 at 02:48 PM <phil.leborgne@gmail.com> wrote:
Bonjour, L'échange que j'ai eu avec la communauté SmartThings a révélé une faille dans l'API de mes climatiseurs. Peut-être pourriez vous me donner un contact avec le service développement de cette API ? Comme vous pouvez le constater dans le fichier joint, l'application SmartThings permet les 5 modes: Auto, Refroidissement, Séchage, Ventilateur et Chauffage. l'API offerte aux développeurs ne prévoit que les 4 modes: cool, dry, wind et auto. Bien cordialement, Philippe Leborgne 

Finalement, j’utilise l’intégration SmartThings partiellement, c’est à dire, la mise sous tension et la température.