pluginSurepetcare et Jeedom 4.4

Bonjour à tous,
Je voudrais savoir s’il y a des utilisateurs du plugin SurePetCare qui sont en Jeedom 4.4.
Si oui, avez-vous constaté des problèmes ?
Ce qui m’inquiète un peu c’est que ce plugin utilise un Widget custom pour les animaux (c’est mon seul plugin dans ce cas) et je ne sais pas s’il est compatible 4.4 ou pas et comme je suis en plein changement de NUC pour mes VM Jeedom je ne peux pas dans l’immédiat faire une VM de test 4.4 pour vérifier moi-même.
Cela m’a ammené à réfléchir, et je crois que je vais essayer de me reposer entièrement sur les Widget du core pour mes plugins Jeedom car cela simplifie grandement le travail lors des upgrades.
Pour ce faire je vais introduire quelques changements en essayant de perturber le moins possible les utilisateurs existants.
Pour le plugin SurepetCare le premier changement va être d’introduire 3 nouvelles commandes (type action, sous type other) pour les animaux (çà, çà va, çà ne devrait impacter personne) : une pour fixer la position d’un animal à l’extérieur, une pour fixer la position à l’intérieur et une pour inverser la position. Pour le moment je ne vais pas supprimer la commande existante de type liste pour que vos scénarios existants ne soient pas perturbés. Plus tard quand tout le monde aura eu le temps de modifier ses scénarios, je la supprimerai.
Cela me permettra d’utiliser un Widget core pour les deux boutons du template
inside-location
C’était une bétise de ma part d’avoir fait une commande Liste, ce n’était pas du tout dans la logique de Jeedom.
Il me restera à trouver une solution pour l’image de l’animal … je cherche mais j’ai du mal j’ai demandé l’aide des autres développeurs mais pour le moment je n’ai pas de réponse.

Hello,

J’utilise ton Plugin, oui il y a juste quelques ajustement à faire, j’ai vu aussi ton notre poste :slight_smile: pour la modification du widget

Je modifie mes plugins aussi au passage pour passer en full JS :slight_smile: quand j’aurais fini je regarderais ton plugin

Cordialement

Hello @shun84 ,
Merci beaucoup,
J’ai migré ma prod en 4.4.2 sans aucun souci. Cela m’a permis de commencer à faire des modifications pour ne plus avoir de template autre que ceux du core.
Voici ce que j’ai fait :

  • Création d’une commande info string qui contient le tag HTML de l’image de l’animal, ce n’est pas très propre d’utiliser le widget defaut du core pour lui passer un tag HTML mais çà marche. Si tu vois une meilleure solution ?
  • Création de 2 commandes action defaut « Interieur On » et « Interieur Off » (obligé de prendre des noms qui marchent avec la fonction core normalizeName !) et utilisation du widget core cmd.action.other.tmplimg pour obtenir sur le widget les petites images Maison et Nuage.

Le résultat en 4.4 n’est pas trop moche et pour moi plus de widget à maintenir !
surepetcare
Quand tu as le temps dis moi les modifications à faire ou fait un PR.

1 « J'aime »

aucun soucis avec le pluging en stable mais j’ai juste une chatiere et un chat lol

Salut
de mon côté les icônes qui avaient disparu (maison et nuage) sont revenues et tout fonctionne « au poil » (de chat :wink:)
merci pour le suivi du plugin !!

Hello @Nicoca-ine,
merci beaucoup.
N’hésite pas à signaler les problèmes et a suggérer des améliorations.

Bonjour à tous,
Un petit retour sur un problème que je rencontre suite à la maj liée à la V4_4.

La commande « Autoriser » d’un équipement de type chatière retourne une erreur serveur 422 (quelque soit le paramètre donné, « Tout », « Rien », « Entrée » ou « Sortie ») :

J’ai vu que @vedrine vous parliez d’une modif’ probable de commande à venir, mais uniquement sur le type « Animal » si j’ai bien compris. A moins de n’avoir pas compris, il y a peut être une manip à faire pour se « ré-aligner » pour pouvoir utiliser les commandes à jours (et pas obsolète).

Voilà les logs en mode debug :

Je reste à dispo si vous avez besoin de plus d’info ou de log.
Merci d’avance !

Bonjour @Dreaky ,
Etes- vous sur la beta ou sur la stable ? Quel est votre modèle de chatière ?
En beta j’ai commencé à revoir le code d’exécution des comandes action qui était devenu très confus au fur et à mesure des versions quand j’ai ajouté des commandes. C’est possible que j’ai cassé quelque chose en modifiant le code.
Et au passage j’ai vu que la commande qui donnait la liste des animaux interdits de sortir pour la petite chatière était cassée et je l’ai corrigée.
En fait à cause de la 4.4 et comme je trouve de plus en plus difficile de maintenir les widgets, j’ai fait des modifs sur plusieurs commandes des animaux.

  • Animal (type info sous type string) donne l’url de l’image de l’animal et j’ai fait un widget petimage qui va avec
  • Interieur On (type action sous type autre) qui fixe la position de l’animal à l’intérieur et est utilisée avec un widget core (donc pour moi plus rien à faire sauf fournir l’image de la maison verte c’était le but recherché !)
  • Interieur Off (type action sous type autre) qui fixe la position de l’animal à l’extérieur et va avec la précédente mais avec cette fois l’image du petit nuage orange
  • Position (type info sous type binaire) Indique si l’animal est à l’extérieur ou à l’intérieur (0 = extérieur, 1 = intérieur). Cette commande n’est pas nouvelle mais ce qui change c’est que maintenant c’est la commande info associée aux 2 commandes action précédentes.
  • Inverser la position (type action sous type autre) inverse la position de l’animal intérieur ↔ extérieur, je ne sais pas si elle sera d’une quelconque utilité mais du temps que j’y étais je l’ai créée :smiley: en tout cas elle n’est pas utilisée par le widget.

Ces changements veulent dire que la commande action liste Fixer la position est maintenant déclarée obsolète, je ne l’ai pas supprimée pour ne pas perturber ceux qui l’utilisent par exemple dans leurs scénarios, mais elle pourra être supprimée dans une future version donc il faut penser à migrer vers les nouvelles commandes.

C’est un peu technique mais en fait maintenant çà fonctionne vraiment comme les autres plugins Jeedom et pas avec le fonctionnement bizarre que j’avais imaginé dans les versions précédentes. Le bonus c’est que çà devrait être beaucoup plus solide dans les changements de versions Jeedom à venir.
Mais je ne pense pas avoir fait de changements dans la gestion des équipements en particulier des chatières (à part fixer la commande Animaux interdits de sortir qui ne fonctionnait plus) donc je vais regarder ce problème de la commande Autoriser.
En tout cas merci pour le signalement. N’hésitez pas à faire un message si vous trouvez d’autres problèmes.

Il y avait bien un bug en beta. En voulant nettoyer le code d’exécution des commandes j’avais introduit un bug sur certaines.
En plus quand au cours de ce travail j’avais constaté que la commande « Animaux interdits de sortir » avait un problème et que je l’ai corrigée, j’avais reporté ma correction sur la stable en reportant aussi le problème sur la stable ! Grosse erreur, car on ne doit jamais faire çà avec la version stable : si on constate un problème on teste en béta mais on ne se précipite pas pour aligner la stable. Sinon la stable n’est plus très stable !
Je suis désolé j’espère que çà n’a pas trop géné les utilisateurs.
En tout cas je viens de mettre sur le market des versions béta et stable corrigées.
Signalez tout problème.

Bonjour,
Merci pour votre retour rapide et complet, et désolé de ma réponse tardive.

Même si vous avez déjà poussé une maj je réponds quand même aux interrogations :

Etes- vous sur la beta ou sur la stable ? Quel est votre modèle de chatière ?

Plugin en stable et modèle de la chatière : Sureflap chatière connect (le petit modèle).

J’ai mis à jour avec votre dernière version poussée, et cela fonctionne de nouveau !! Merci beaucoup pour le correctif.
Voici les logs debug avec le retour api réussi :

[2024-05-01 15:13:35] DEBUG  : Execute command whith parameters : {"locking":"2"}
[2024-05-01 15:13:42] DEBUG  : Request result {"data":{"curfew":[],"locking":2,"fast_polling":true},"results":[{"request_id":"8bec8289-8f6b-4073-a6e8-f32abc3b750d","response_id":"8bec8289-8f6b-4073-a6e8-f32abc3b750d","status":0,"status_id":0,"requested_at":"2024-05-01T13:13:35.4130355+00:00","committed_at":"2024-05-01T13:13:42.2262775+00:00"}]}
[2024-05-01 15:13:42] DEBUG  : Request code result 200
[2024-05-01 15:13:42] DEBUG  : Request result {"data":{"id":xxxx,"parent_device_id":xxxx,"product_id":6,"household_id":xxxx,"index":0,"name":"Chatière","serial_number":"xxxxx","mac_address":"xxxxx","version":6122,"updated_at":"2024-05-01T13:12:37+00:00","pairing_at":"2023-09-05T17:00:13+00:00","last_new_event_at":"2024-05-01T13:12:36+00:00","control":{"curfew":[],"locking":2,"fast_polling":true},"status":{"battery":5.196,"learn_mode":false,"locking":{"mode":2},"signal":{"device_rssi":-83,"hub_rssi":-75},"version":{"device":{"hardware":"11","firmware":"335.422"}},"online":true}}}
[2024-05-01 15:13:42] DEBUG  : Request code result 200

Par contre je viens de me rendre compte qu’il y a un problème similaire sur la commande « Autoriser animal » (idem avec « Interdir animal ») sur la chatière, retour code erreur 422, dont voici les logs :

[2024-05-01 15:21:28] DEBUG  : execute url=https://app.api.surehub.io/api/device/114xxxx/control
[2024-05-01 15:21:28] DEBUG  : actionValue : 3
[2024-05-01 15:21:28] DEBUG  : commande profile url=https://app.api.surehub.io/api/device/xxxx/tag/xxxx
[2024-05-01 15:21:28] DEBUG  : Execute command whith parameters : []
[2024-05-01 15:21:28] DEBUG  : Request result {"success":false,"error":{"$":["The JSON value could not be converted to Api.App.Resources.Device.DeviceTag.UpdateDeviceTagResource. Path: $ | LineNumber: 0 | BytePositionInLine: 1."]}}
[2024-05-01 15:21:28] DEBUG  : Request code result 422
[2024-05-01 15:21:28] DEBUG  : Request failed url = https://app.api.surehub.io/api/device/114xxxx/tag/80xxxx methode = PUT payload = [] code = 422 result = {"success":false,"error":{"$":["The JSON value could not be converted to Api.App.Resources.Device.DeviceTag.UpdateDeviceTagResource. Path: $ | LineNumber: 0 | BytePositionInLine: 1."]}}
[2024-05-01 15:21:28] ERROR  : Erreur exécution de la commande [Cuisine][Chatière][Interdire animal] : Le serveur a retourné une erreur code : 422

Je reste à dispo si besoin de plus d’info
merci d’avance

Oops, çà c’est tout moi ! Il manquait exactement la même ligne à un autre endroit pour ces deux commandes. Facile à corriger mais j’aurais dû mieux tester après ma première correction. Je viens de pousser des versions béta et stable corrigées sur le market.
Merci pour avoir signalé le problème et désolé d’être aussi brouillon.

C’est mieux, mais il persiste un problème : la commande « Autoriser/Interdire » sur un animal fonctionne, mais lorsqu’on sélectionne « Aucun » en paramètre, on récupère une erreur 404 :

[2024-05-01 18:58:50] DEBUG  : execute url=https://app.api.surehub.io/api/device/114xxxx/control
[2024-05-01 18:58:50] DEBUG  : actionValue : 3
[2024-05-01 18:58:50] DEBUG  : commande profile url=https://app.api.surehub.io/api/device/11xxxx/tag/0
[2024-05-01 18:58:50] DEBUG  : Execute command whith parameters : {"profile":3}
[2024-05-01 18:58:51] DEBUG  : Request result {"success":false,"error":{"error":["Not found."]}}
[2024-05-01 18:58:51] DEBUG  : Request code result 404
[2024-05-01 18:58:51] DEBUG  : Request failed url = https://app.api.surehub.io/api/device/11xxxx/tag/0 methode = PUT payload = {"profile":3} code = 404 result = {"success":false,"error":{"error":["Not found."]}}
[2024-05-01 18:58:51] ERROR  : Erreur exécution de la commande [Cuisine][Chatière][Interdire animal] : Le serveur a retourné une erreur code : 404

Je ne comprends pas je n’ai pas de choix Aucun et je ne vois pas en regardant le code d’où il pourrait venir, cette liste de choix est construite lors de la synchro d’après la liste des animaux donc il doit y avoir un truc particulier dans ton installation.
EDIT : Je viens de comprendre, tu voulais dire dans un scénario, et là ce n’est pas mon code c’est le core de Jeedom qui rajoute la ligne « Aucun » même si dans ce cas particulier çà n’a aucun sens, donc malheureusement je ne peux pas l’éviter mais je peux mettre un test pour que la commande ne parte pas vers le serveur de Sure Petcare. Ceci dit le scénario en question sera toujours cassé.

En fait je vais faire comme pour les commandes Fixer heure de verrouillage/ de déverrouillage quand on ne rentre pas d’heure : je vais lever une exception comme çà l’utilisateur verra le problème dans le centre de message.

Oui exact c’est bien en utilisant un scenario.

OK donc j’ai poussé sur Github une version qui dans ce cas lève une exception lors de l’exécution du scnénario ce qui arrête l’exécution de la commande (donc rien n’est envoyé au serveur) et qui alerte l’utilisateur par un message pour qu’il sache que sa commande est incorrecte.

1 « J'aime »

Bien récupéré la nouvelle version, et je vois bien le nouveau comportement décrit :

Merci encore pour ta rapidité de prise en compte :slight_smile: