pour ceux qui seraient intéressés de récupérer les infos dans le cloud Samsung SmartThings.
Un script très (très très) simple de connexion au cloud, "traduit" de:
https://easydomoticz.com/forum/viewtopic.php?p=100258
- Code : Tout sélectionner
<?php
// appel de eedomus http://localhost/script/SmartThings_Washer.php&API=[VAR1]&wmDevice=[VAR2]
//$API = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx'
//$wmDevice = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
$API = getArg('API');
$wmDevice = getArg('wmDevice');
$header = array(
"Accept: application/json",
"Authorization: Bearer ".$API
);
$url ="https://api.smartthings.com/v1/devices/".$wmDevice."/status";
$http_result = httpQuery($url, 'GET', '','', $header);
echo $http_result;
//doit etre transformé en xml dans les paramètres expert du device créé.
?>
Pour l'explication:
il vous faut créer une clé API chez https://account.smartthings.com/tokens et générer un Personal Token (API dans le code ci-dessus)
Puis aller sur https://graph-eu01-euwest1.api.smartthi ... evice/list et récupérer le numéro de l'appareil que vous souhaitez interroger (code dans l'URL en ayant cliquer sur votre appareil) (wmDevice dans le code).
Ensuite sur Eedomus, créer un capteur http et en VAR1 recopier le numéro de votre token (API) et en VAR2 votre numéro d'appareil (wmDevice) et assurez vous de cocher "Convertir le JSON en XML" dans les paramètres Expert du périphérique.
En n'ayant qu'un lave linge Samsung, je n'ai pu testé que sur quelques paramètres.
Quelques xpath utiles:
- Code : Tout sélectionner
concat('Etat: ',//machineState/value,' / ',//washerJobState/value)
qui donne des trucs du genre:
Etat: run / wash
Etat: run / rinse
Etat: stop / none
- Code : Tout sélectionner
concat('heure de fin: ',(substring(//completionTime/value,12,2) +2),substring(//completionTime/value,14,6))
qui donne l'heure du fin du programme en cours (pas trouvé comment convertir une date/time UTC en UTC+2, donc c'est "sale", ça prend l'heure ajoute +2 et prend le reste de l'heure (et ça devra être modifié quand on sera en heure d'hiver
![Rieur :lol:](./images/smilies/icon_lol.gif)
Quelques capteurs:
- capteur http "Etat de la machine à laver" avec une fréquence de requête de 30 min (+ un bouton et script pour déclencher la mise à jour manuellement)
- capteur http "Heure de fin de programme" avec une fréquence de requête à 0 min (voir les règles).
J'ai aussi créé des règles autour de cela:
- si l'Etat de la machine à laver devient maintenant "Etat: stop / non" alors notification "Lessive finie !"
- si l'Etat de la machine à laver n'est pas "Etat: stop / non" alors mettre à jour les autres capteurs de la machine (comme Heure de fin de programme) + mettre à jour "Etat de la machine à laver", règle se redéclenchant toutes les 5 min.
Bien que testé seulement sur une machine à laver Samsung, normalement cela devrait permettre d'interroger n'importe quel périphérique enregistré dans le cloud Samsung SmartThings.
Si cela peut aider quelqu'un...
++
F.