Plugin Husqvarna avec affichage de la carte sur le Widget

Bonjour à tous,

Je travailles depuis quelques semaines à l’amélioration du plugin Husqvarna afin de profiter au mieux de la position GPS du robot remontée par l’API actuelle de ce plugin.
(Pour ceux qui ont la chance d’avoir une version connectée et GPS de ces machines : version X)

Voici à quoi ressemble le widget dans sa version actuelle:

Le plugin reste globalement compatible de la version de référence, car j’ai conservé les infos et commandes existantes.

J’avais déjà présenté cette version du plugin dans un post précédent, mais je me suis dit qu’il pourrait être intéressant de faire un sujet dédié.

Les fonctions ajoutées au plugin actuel sont:

  • L’ajout de la position courante GPS du robot et des 50 dernières positions pour l’affichage sur une carte dans le widget.
  • La gestion d’une planification du robot sur un rythme hebdomadaire, avec 2 plages horaires quotidiennes, et la possibilité de sélectionner une zone active du robot par commande Jeedom (pour ceux qui ont comme moi mis en place 2 zones de tontes avec commutation par relais)
  • La possibilité d’interrompre et de reprendre la planification en fonction de la météo, par couplage avec le plugin « Vigilence Météo / pluie à 1 h ».
  • La mise en place d’une page « panel » qui permet:
    • D’afficher sur une carte les positions du robot dans le temps. Cela permet de visualiser si le robot couvre uniformément l’espace à tondre.
    • D’afficher la configuration actuelle du robot (juste pour information pour le moment)

Voici un aperçu de la page « panel »:

Et un aperçu des 2 pages de configuration de l’équipement:

Pour ceux qui seraient intéressés pour l’essayer, j’ai créé un repository sur Github:

2 « J'aime »

Super, je viens de l’installer c’est tres cool de voir la tondeuse se deplacer

Sur Github j’ai forké une branche dans laquelle j’ai incorpore les modifications que j’avais deja apportées au code initial :

Bug fixes :

  • retourne les timestamps storedTimestamp et nextStartTimestamp en format local.
    l’un est code sur 13 chiffres, l’autre sur 10, l’un est en GMT, l’autre en local time.
    le fixe harmonise et retourne un format local time pour les 2, en se basant sur la time zone de Jeedom, donc devrait fonctionner dans n’importe quelle time zone
  • supprime le formatage forcé des widgets de la tuile a chaque refresh ou sauvegarde.
    j’utilise des widgets personnalises, a chaque refresh ils étaient remplacés par les widgets par défaut.

Améliorations

  • rajout de l’unité a chaque commande, utile pour l’unité (%) de charge de la batterie

Par ailleurs, j’ai aussi modifie le template « cmd.info.string.maps_husqvarna.html » que tu fournis pour l’adapter au nouveau standard. il se rafraîchit a chaque minute maintenant

https://github.com/t0urista/plugin_husqvarna

Merci pour ton boulot et ton partage

Content de voir que cela fonctionne chez toi également.
Et merci pour le « pull request ». J’ai fait ta proposition de mise à jour.
(Et j’en profite pour me former sur Github: je n’y suis pas encore familier)
La fonction de mise à jour périodique de la position du robot sur le widget est intéressante.
Je voulais la faire mais je ne savais pas trop comment m’y prendre.
Par contre, elle ne fonctionne pas chez moi.

J’ai l’impression que les commandes « _options.valueDate » et « _options.collectDate » ne sont pas appliquées.

Tu aurais une idée ?
Tu es sur quelle version du core jeedom ?

je l’ai corrigee depuis lors sur Github, erreur de frappe

class="…" au lieu de classe="…"

Super: ça marche.
Merci

1 « J'aime »

Bonjour,
Super de faire évoluer ce plugin. J’ai installé mais des petits pb de config surement de ma part. J’ai bien mis la carte dans ressources et les coordonnées gps des points haut et bas de la carte. Et voila ce que ça m’affiche sur le dashboard. J’ai mis les coordonnées sous la forme 48.8911056,-1.8997922222222222 bon ou pas bon ?

1 « J'aime »

Je me répond tout seul, je pensais que les % 80 et 120 étaient mis par défaut, mais non il fallait les retaper dans les champs prévu.
Ca marche maintenant, désolé du dérangement, d’un autre coté si j’ai fais l’erreur c’est qu’elle est possible :slight_smile:

Bonjour rennais35000,

C’est vrai que ce n’est sans doute pas assez clair. Je vais détailler un peu ces paramètres.
Dans une dernière version en cours que je n’ai pas encore livrée, j’ai ajouté un 3eme facteur pour la taille sur le widget en version mobile.
En ce qui concerne les paramètres « Météo cmd » et « planification cmd », j’ai utilisé le widget IconAction pour avoir les boutons comme sur le début du sujet. (avec les paramètres comme ci-dessous). Du coup, il faut passer les infos « planification » et « météo » en mode invisible dans les paramètres des commandes.

Tu utilises un widget particulier pour ton champ « commande » en liste: je le trouve sympa ?
Ou alors c’est un thème particulier ?

Lelas

Hello,
Merci pour la réponse et les modifs, j’adore mon Gaston qui tond sans me fatiguer :+1:
Pour le champ commende, je n’ai rien fait de particulier, je pense que ça doit être les modifs de t0urista
Bien cordialement

Bonjour,

j’ai le même problème que Rennais35000, pas de belle carte sur mon dashboard, mais une succession de chiffres, j’ai bien retapé les % dans les facteurs de taille, mais sans effet.

Une idée?

Merci pour le super boulot que vous avez fait.

Bonjour Etnalta,

La série de chiffre dans le widget est normale dans un premier temps.
Il est intéressant d’ailleurs de regarder cette série de chiffre.
S’il n’y a que des 0, c’est qu’il y a un problème soit sur les coordonnées GPS de la carte, soit dans la configuration des ratios.
Si la série de chiffres contient des valeurs entières entre 0 et 500, c’est que les calculs de passent à priori correctement. (la série de chiffre est une liste de point sur la carte, en coordonnées pixels)

Un exemple pour moi de cette série de chiffre:
(500,492/94,213/116,233/106,210/155,306/175,371/172,355/203,361/143,282/91,202/88,199/79,189/84,210/77,174/53,150/105,123/90,139/68,150/83,121/84,110/60,121/64,155/83,115/60,120/57,156/133,125/124,99/45,118/87,148/104,106/83,114/44,125/45,128/64,151/117,237/176,334/171,361/167,350/146,284/151,290/122,276/199,342/231,367/227,364/225,364/176,363/194,363/177,345/199,345/197,349/217,344/)
Les 2 premiers sont la taille de l’image, les 50 suivants les 50 dernières positions du robot.

Ensuite, il faut appliquer le type d’affichage « Maps_husqvarna » sur la commande « Position GPS »


C’est le widget qui permet d’afficher la carte.
Ce widget est disponible dans le dossier ressource du plugin: il faut le copier dans le dossier
« \data\customTemplates\dashboard » de jeedom

Je vais prendre le temps dans la journée d’ajouter sur ce post le détail pour la mise en place de ce plugin, car c’est vrai qu’il y a peu d’explication pour le moment.

Lelas

Merci de ces explications complémentaires, j’ai fait et miracle, la carte est apparue.
C’est génial.

Il doit encore y avoir plein de ressources dans ce plugin, et effectivement, quelques explications supplémentaires seront bienvenues.

merci encore.

Bonjour @lelas

Si le widget avait été mis dans core/template/dashboard, il n’y aurait pas besoin de le copier.
Il serait sélectionnable dans la liste comme NomPlugin/Maps_husqvarna.
A la création de la commande, vous pouvez également l’affecter automatiquement.

$cmd->setTemplate('dashboard', 'IdPlugin::Maps_husqvarna');

Bonjour @jpty,
Merci pour ce conseil. Je vais l’appliquer sur ma prochaine release.
Je voulais creuser ce point justement, car la recopie ne me paraissait pas être la meilleure solution.

Bonjour à tous,

J’ai ajouté une documentation sur Github, pour l’installation et le détail de l’utilisation.
(Dans la section readme)

N’hésitez pas à me faire vos retours sur ce post, pour ce qui n’est pas clair.
Ou si vous avez des idées d’amélioration.

J’ai livré une version 1.1 aujourd’hui.
(Ajout de la documentation, finalisation de la planification, et simplification de l’installation)

Lelas

Bonjour @lelas
une demande supplémentaire, est-ce qu’il est possible de pouvoir récupérer sous forme de commande les dernières coordonnées X,Y
Je voudrais pouvoir déclencher certaines actions quand le robot est dans une zone donnée.
Merci d’avance

Bonjour @Etnalta,

Il n’y a pas de difficulté particulière pour ajouter ce que tu demandes.
Je te propose une info supplémentaire, qui contiendra la dernière position du robot, en pixel sur l’image.
Sous la forme d’une chaine de caractère (type string) qui contiendra par exemple « 125,37 » (X,Y)
Les coordonnées seront exprimées par rapport à la taille de l’image donnée en référence (maison.png)

Il te faudra séparer X et Y pour faire des comparaisons par rapport à la définition d’une zone sur l’image.
Cela te convient ?

Attention toutefois, comme tu l’as surement vu sur l’image du widget, la position retournée par le GPS n’est pas très précise. Il faudra le prendre en compte.

Lelas

Salut, on l’installe comment ton plugin? Je ne le vois pas dans le market

Bonjour @jeedombox,

Ce plugin n’est pas dans le market.
Pour l’installer, il faut aller sur mon espace Github (lien en début du sujet), et suivre la méthode d’installation proposée dans la documentation. (section README.md)

Bonsoir @lelas

Je pense que ça peut suffire, c’est suffisant en précision, et de toute façon il faut anticiper la latence (il y a a minima le cycle de 1mn de collecte de données).

Je pense que j’aurai ensuite des questions sur la manipulation des chaines de caractères, comme ça j’ai du mal à voir comment on sépare X de Y, mais cela sera l’occasion d’apprendre.

Merci.