Bonjour à tous,
Après une semaine de tests je reviens pour confirmer que tout marche très bien tant qu’effectivement un chat est toujours affecté à la gamelle. J’ai donc laissé le médaillon fourni avec l’appareil et que je n’utilise pas affecté comme un chat pour pouvoir supprimer et réaffecter mon vrai chat.
Pour ce qui est du programme, je l’ai étoffé avec beaucoup d’alertes textes, des calculs etc … Le voici et je vous donne des explications sur le principe :
Déjà il faut garder le 1er scénario que j’ai détaillé dans le post 5, où je compare les dates de repas chaque minute pour obtenir une variable de « nouveau repas » qui me déclenche donc ce scénario là. Je le déclenche également tous les jours à 7h00 et 19h00.
En premier des cases actions non utilisées pour forcer des valeurs en cas de test.
J’ai décidé que la portion du matin serait donnée à partir de 7h00 et celle du soir à partir de 19h00. Donc déjà le scénario démarre par regarder quelle heure il est.
A 7h00 j’ai une variable « COMPENSATION_MATIN » qui correspond à la portion du matin - la différence entre ce qui a été mangé la veille au soir et la portion normalement programmée. Le fait de n’avoir la quantité mangée qu’à la fin du repas fait que pour 30g de ration le chat peut en manger 35g, j’ai donc fait le choix de lui retirer ces 5g de trop à la prochaine ration. A l’inverse si il ne mange pas tout il pourra en avoir plus le soir.
Ensuite je l’attribue à la gamelle pour que celle-ci puisse s’ouvrir.
Je fais la même chose à 19h00 en compensant avec la ration mangée le matin si jamais il y a eu un écart.
Je calcule la quantité mangée en additionnant les retours de poids des bols *(-1) pour une valeur positive.
Si la valeur en retour est supérieure à 0.2g (parfois le chat ouvre la gamelle sans y manger et je reçois des repas de 0.05g), alors je rajoute ça à la variable de quantité quotidienne et puis je regarde en fonction de la plage horaire si le total est supérieur ou égal à sa ration. Si non, je m’informe de la quantité mangée, si oui, je retire le chat de la gamelle. Il vient de terminer son repas jusqu’à 19h00 ou 7h00 du matin selon.
L’écart du soir est égal à la quantité mangée sur la journée, - la ration du matin - la ration du soir. Si il devait manger 2x35g et qu’il en a mangé 75g sur la journée, la variable est égale à 5.
J’ai fait le choix de lire les valeurs de « portion » de la gamelle pour modifier les calculs, j’aurai pu utiliser un virtuel Jeedom et c’est surement ce que je ferais à l’avenir.
Autre sujet là dessus, il reste un petit point à perfectionner qui est ma façon de détecter les nouveaux repas.
Admettons que si un chat mange à 19h00m02s, il va falloir 58s pour que le scénario se remette en route et déclenche le calcul. Ensuite ce même scénario doit se remettre en route pour faire redescendre la variable à 0, donc un repas peut se faire toutes les 2 minutes grand maximum et en 1m01s si les planètes sont bien alignées.
Sauf que j’ai déjà eu le cas où un chat mange, se fait perturber par un autre chat, s’éloigne assez pour que la gamelle se referme, et y revient quelques instants plus tard. Là je ne vais récupérer que l’information du premier repas via mes scénarios.
Est-ce que quelqu’un a une idée pour faire mieux que ma technique, ou @vedrine penses-tu qu’il soit possible de remonter une info de « nouveau repas » ?