Apirateur jet bot+

Bonjour a tous,

Je suis débutant sur jeedom, je viens d’installer le plugin smartthings pour intégrer mon aspirateur robot samsung jet bot+ à jeedom. Cependant je fait face a deux problèmes, j’ai bien réussi à récupérer mon aspirateur dans jeedom mais lorsque j’active la case widget équipement il ne s’affiche pas correctement dans mon dashboard (photo ci-jointe).


Deuxièmement, j’ai trouvé quelques commandes de bases (nettoyage auto, retour station) mais je n’arrive pas a commander l’aspirateur pour nettoyer uniquement certaines pièces, c’est tout ou rien. Je précise que j’ai déjà créé une carte sur l’application smartthing IOS avec différentes pièces délimitées.

Merci par avance pour vos réponses.

Bonjour.

Es-tu sur la beta ou la stable du plugin ?
Peux-tu envoyer les infos développeur depuis le plugin :


« Récupérer mes infos » puis « Transmettre anonymement ».

Ainsi que les logs lors des différents essais de commandes.

Bonjour,
Désolé de cette réponse tardive, j’avais un peu abandonné jeedom suite à un changement de domicile. Je suis reparti de zéro, toujours le même problème avec mon aspirateur, j’ai essayé la version stable et la version bêta mais rien ne change.
Je vous joint les infos je ne sais pas ou trouver les logs mais les seules commandes qui fonctionnent sont le nettoyage en automatique (je ne peux pas sélectionner une seule pièce) et le retour à la station. Il y a plein de commande dont je n’ai pas l’utilité j’aimerai juste pouvoir sélectionner certaines pièces pour pouvoir faire des scénarios. Exemple: lorsque je quitte mon domicile lancer l’aspiration de la cuisine et du salon.

Par avances, merci pour vos réponses.

Infos.txt (16,7 Ko)

Bonjour.

Toutes les commandes sont créées par défaut, en fonction des capacités fournies par l’API. TU peux les cacher sur le widget par défaut.

Il faut absolument les logs en debug quand tu envoies chacun des commandes.
Pour que je puisse voir la réponse que donne l’API.
Sans ça, je peux pas savoir si c’est le plugin, l’API ou l’appareil qui les refuse.

Je vais regarder pour l’affichage du widget quand j’aurai un moment.

Bonjour,

Je vous joins une capture des commandes qui m’intéressent. J’arrive à lancer l’aspirateur en sélectionnant nettoyage dans la commande mouvement et aussi quand je sélectionne auto dans la commande changer le nettoyage. En revanche dans la commande changer le nettoyage quand je sélectionne Carte rien ne se passe, je vous joins les logs lorsque j’ai lancé cette commande. je ne comprend pas non plus ou lui renseigner les pièces que j’aimerai nettoyer. J’ai aussi une commande info ou il y a la liste des pièces :
[{« id »:« 1 »,« name »:« Living room »},{« id »:« 2 »,« name »:« Study room »},{« id »:« 3 »,« name »:"Chambre de b\u00e9b\u00e9 "},{« id »:« 4 »,« name »:« Hallway »},{« id »:« 5 »,« name »:« Bathroom »},{« id »:« 6 »,« name »:« Bedroom »},{« id »:« 7 »,« name »:« Kitchen »}]


smartthings.txt (25,5 Ko)

J’espère avoir été clair, je suis novice dans jeedom.
Merci

[2023-08-23 15:50:57][DEBUG] : sendRequest - URL : https://api.smartthings.com/v1/devices/f8326cd2-051b-6255-bb31-e6d2eee91c0a/commands METHODE : POST
[2023-08-23 15:50:58][DEBUG] : execute CmdType select Payload : {"commands":[{"component":"main","capability":"samsungce.robotCleanerCleaningMode","command":"setCleaningMode","arguments":["patternMap"]}]} Résultat de la commande : {"results":[{"id":"f761b4ec-d51c-4e99-a8d9-9d358e110260","status":"ACCEPTED"}]}

La commande est acceptée, donc le problème n’est pas côté plugin.
Il est possible que la commande ne soit pas compatible/prise en compte/accessible par l’API.

Nouvelle commande, faut que je fasse une passe sur les nouvelles commandes pour inclure les actions également. (en cours)

J’ai poussé les ajouts de capacités/traductions…

Après la mise à jour, il faut :

  • soit supprimer les commandes qui ont des noms non traduits, puis cliquer sur « Recréer les commandes » « Sans recréer… »,
  • soit cliquer sur « Recréer les commandes » « En recréant… »

Avec les nouvelles commandes, j’ai vu passer « Ajouter une réservation », « Définir un programme », en commande action-message.
Il faut regarder dans la modification de la commande le schéma de la commande à envoyer :

Valeurs possibles : Array
(
    [0] => Array
        (
            [name] => enabled
            [optional] => 
            [schema] => Array
                (
                    [type] => boolean
                )

        )

    [1] => Array
        (
            [name] => areaIds
            [optional] => 
            [schema] => Array
                (
                    [type] => array
                    [items] => Array
                        (
                            [type] => string
                        )

                )

        )

    [2] => Array
        (
            [name] => dayOfWeek
            [optional] => 
            [schema] => Array
                (
                    [type] => array
                    [items] => Array
                        (
                            [type] => string
                            [enum] => Array
                                (
                                    [0] => Sun
                                    [1] => Mon
                                    [2] => Tue
                                    [3] => Wed
                                    [4] => Thu
                                    [5] => Fri
                                    [6] => Sat
                                )

                        )

                )

        )

    [3] => Array
        (
            [name] => startTime
            [optional] => 
            [schema] => Array
                (
                    [type] => string
                    [pattern] => ^([01]\d|2[0-3]):[0-5]\d$
                )

        )

    [4] => Array
        (
            [name] => originator
            [optional] => 
            [schema] => Array
                (
                    [type] => string
                )

        )

    [5] => Array
        (
            [name] => mapId
            [optional] => 1
            [schema] => Array
                (
                    [type] => string
                )

        )

)

=>

[
  "enabled": true,
  "areaIds": "",
  "dayOfWeek": "",
  "startTime":"",
  "originator":"",
  "mapId":""
]

Tu peux t’aider en regardant la capability en question (samsungce.robotCleanerPetCleaningSchedule)

J’ai corrigé le widget qui déconnait (problème d’accent sur une commande)

Bonjour,

J’ai effectué la mise à jour du plugin, il y a toujours un problème au niveau du widget. Il fonctionne une fois lorsque le plugin est juste installé, mais une fois qu’une commande est passée
il ne s’affiche plus correctement et impossible de passer d’autres commandes.
Concernant mon deuxième problème j’ai recréé toutes les commandes, j’ai bien trouvé la commande « Définir un programme ». Lorsque je l’exécute j’ai une fenêtre de dialogue qui apparait (capture ci jointe),


donc si j’ai bien compris je la remplir avec ceci:
[
« enabled »: true,
« areaIds »: «  »,
« dayOfWeek »: «  »,
« startTime »:«  »,
« originator »:«  »,
« mapId »:«  »
]
Pouvez vous m’aider à remplir celle-ci ? Je sais pas quoi lui mettre comme info dans start time et dans originator. Pour le reste si j’ai bien compris, dans areaIds je doit mettre l’ID des pièces que je souhaite nettoyer, ce dont je ne suis pas sur c’est la façon de l’écrire.
Ensuite lorsque j’ai envoyé cette commande dois-je en effectuer une autre commande pour lancer le nettoyage ou l’aspirateur se met en marche directement ?

Je vous remercie encore pour votre aide.

C’est ça.
C’est une commande complexe, non géré comme les autres commandes, donc faut tout faire manuellement en lisant les caractéristiques demandées pour chaque clé :

Une fois envoyée, faut vérifier les logs qu’elle est bien prise en compte, sinon regarder l’erreur et adapter.

[
« enabled »: true,
« areaIds »: «  », [areaId1,areaId2,areaId3]
« dayOfWeek »: «  », Sun/Mon/Tue/Wed/Thu/Fri/Sat
« startTime »:«  », 10:45
« originator »:«  », ???
« mapId »:«  »
]

Ça, ça doit juste être le programme.
J’ai vu passer la commande enable/disable et l’état.
donc faudra envoyer la commande activer ensuite.

Tu peux voir les commandes de cette capacité et comment je les ai traduites, pour t’aider à les identifier :

"samsungce.robotCleanerPetCleaningSchedule" : {
  "dayOfWeek" : {
        "value" : null
    },
  "mapId" : {
  "value" : null
  },
  "areaIds" : {
  "value" : null
  },
  "startTime" : {
  "value" : null
  },
  "originator" : {
  "value" : null
  },
  "obsoleted" : {
    "value" : true,
    "timestamp" : "2023-06-14T00:26:14.006Z"
  },
    "enabled" : {
    "value" : null
  }

En revanche, j’ai peur que ce ne soit pas fonctionnel car obsolète d’après tes infos brutes.

J’ai réessayé la commande « Définir un programme » mais celle-ci ne marche toujours pas, j’ai un message d’erreur dans les logs lorsque je passe cette commande. Même via l’application IOS peut créer des scénarios qu’avec le nettoyage automatique (toute la maison). Pour les nettoyage pièce par pièce cela ne peut être fait uniquement avec la programmation horaires. Donc aucun intérêt de passer par Jeedom pour faire une programmation horaire. Ou alors je défini un nettoyage automatique lorsque je quitte mon domicile, l’intérêt était de ne pas lancé le nettoyage lorsque je reste à la maison, contrairement au nettoyage programmé qui se lance à heure fixe peux importe ma présence ou non.

En tout cas merci encore pour votre aide !!

Après si tu as la commande pour démarrer le nettoyage, tu crées un scénario et tu lui mets en programmation tous les jours à XX:XX et tu mets la commande action en question.

Oui j’ai fait un scénario qui dit que quand je suis absent de mon domicile le nettoyage démarre, mais il fera toute la maison. En revanche, j’aimerai ajouter au scénario que si la maison a déjà été nettoyé aujourd’hui qu’il ne recommence pas, car si je quitte la maison deux fois dans la journée je ne veux pas que le nettoyage s’effectue deux fois.
De plus, je gère la présence grâce au ping de mon iPhone, savez-vous s’il est possible d’empêcher les déconnexion quand il est en veille.

Ah oui, pas très fiable, tout ça.
Il y a d’autres méthodes (arp via scan_ip, par ex)

Il me semble que c’est lié à l’économie de batterie.

Bon j’ai trouvé une solution pour effectuer un seul nettoyage par jour, je la met ici pour les éventuelles personnes qui pourraient se poser la même question. J’ai crée un virtuel qui comptabilise le nombre de nettoyage et se remet à zéro via un scénario programmé à chaque fin de journée. Dans mon scénario de nettoyage qui se lance au changement d’état de ma présence, je commence par un test de la valeur de mon virtuel nombre de nettoyage ainsi que ma présence. Si les conditions sont réunis le nettoyage se lance ainsi qu’une action qui ajoute 1 au nombre de nettoyage. Ensuite si je quitte mon domicile à nouveau le nettoyage ne se relance pas étant donné que la valeur du nombre de nettoyage est supérieur à 0.

Tu peux faire pareil avec une variable ou un tag dans le scénario.