Page 1 sur 9

[TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 09 avr. 2018, 13:09
par fle
Image

Bonjour,

Comme une vidéo vaut mieux qu'un long discours voici le tuto vidéo youtube https://www.youtube.com/watch?v=eGybClNWgSI.

Prochainement la version manuscrite...

En attendant voici le teasing :
Je me suis très largement inspiré des travaux et de la description de l'API Bosch indego disponibles ici sur github https://github.com/zazaz-de/iot-device- ... ROTOCOL.md.

Pré-requis : avoir la version connectée du robot et avoir installé les plugins script, widget et virtuel dans jeedom.

Les principes
- J’ai mis à disposition sur le market jeedom les scripts php suivants qui s'occupent de dialoguer avec l'api rest bosch.
- indego.php : script principal contenant tous les appels API
- indego_auth.php : script gérant l'authentification à lancer une fois pour obtenir le contextId (qui sera stocké dans un fichier json)
- indego_getState.php : script enregistrant les états du robot dans un fichier json
- indego_doAction.php script exécutant les actions pause, tonte et retour station
/!\ Ces scripts sont en v1 et mériteraient une v2 voir d’être encapsulés dans un plugin pour une meilleure gestion des codes retours du webservice et pour éviter de rentrer en dur les identifiants de connexion à l'API dans la classe php. Mais bon la saison des tontes démarrant je trouvais intéressant de vous partager mes travaux dès maintenant…

- Utilisation du widget Sky-progressBar pour l'avancement de la tonte en %
- Utilisation du widget que j’ai mis à disposition pour changer l'image du robot en fonction de son état (une image tonte, une image en charge sur station et une image en attente sur station)
-Création d'un virtuel qui affiche les données et les deux widgets

Le rendu final ça ressemble à ça :
Image

Have fun !

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 10 avr. 2018, 21:20
par amerzone89
bonsoir, je possède une 1200 connect, ça marche aussi pour ce modèle ?

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 12 avr. 2018, 10:09
par pontaeri
Super,
je me renseigne en ce moment pour l'achat d'un robot tondeuse et je me demande si le Bosch indego fonctionne bien avec le système logicut si sur le terrain il y a une balançoire et un trampoline ?
Merci

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 12 avr. 2018, 11:26
par fle
@amerzone89 il n'y a pas de raison ça devrait fonctionner dans la mesure ou à ce jour il n'y a qu'une seule api bosch de disponible.
Je suis preneur de ton retour d'expérience.

@pontaeri c'est bleffant sur la régularité des lignes et surtout lorsqu'il retourne sur son doc pour se charger il revient exactement où il s'était arrêté. Je vais prochainement diffuser une vidéo test sous youtube.
J'ai longtemps cherché un robot tondeuse abordable et franchement un robot intelligent et connecté à bon prix il n'y en a pas 50... Moi je l'ai payé 699€ avec une bonne promo et une extension de garantie comprise, je n'ai pas hésité longtemps...

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 12 avr. 2018, 11:39
par pontaeri
Merci de ta réponse,
Effectivement pas évident de trouver un robot connecté et abordable.
Pour l'instant j'hésite entre le Bosch Indego 400 et un Worx Landroid M, ce qui me fait peur avec l'Indego c'est les 3 arbres que j'ai sur le terrain , la balançoire et surtout le trampoline! est ce qu'il va bien savoir gérer tout ça ?

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 12 avr. 2018, 13:38
par fle
Chez moi j'ai 3 arbres, deux sont délimités par le fil de périmètre car j'ai des ronds de gravier au pied. Concernant le 3 ème le robot tond au plus près.

Pour info le robot alterne le sens des coupes à chaque tontes, chez moi il tond en ligne droite ou en diagonale ce qui fait que la pelouse est toujours nif !

En revanche, ce qu'il faut savoir sur le indego 350 et 400 c'est que pour des raisons de protection les lames ne tondent pas jusqu'au bord de la coque du robot, cela a pour effet de laisser une bande de 10 cm non tondue le long des murs. En même temps même avec mon ancienne tondeuse à pousser j'avais ce problème sur quelques centimètres et terminai au rotofil.
Côté terrasse et parterre de fleurs je n'ai pas ce problème puisqu'il roule un peu au-delà de mes pavés de séparation donc la tonte est parfaite.

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 12 avr. 2018, 17:03
par pontaeri
Ok merci pour le retour,
pour les arbres ça ne m’inquiète pas trop, c'est surtout pour le trampoline avec les pieds assez large que ca m’inquiète,

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 10 mai 2018, 21:04
par mike67
Bonjour

Je suis très interessé par ce pluggin car j'envisage l'achat d'un robot Bosch Indego connect.

Par contre je n'arrive pas à le retrouver sur le market ?

Merci pour votre aide

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 10 mai 2018, 22:09
par GuillaumeDieppe
Il n'y a pas encore de plugin, il s'agit de scripts à installer

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 11 mai 2018, 01:01
par GuillaumeDieppe
Excellent tuto vidéo que je viens de suivre à la lettre, ça fonctionne parfaitement bien.
Malgré que les commandes soient bien exécutées sur le terrain, j'ai quand même ce type de message d'alerte lorsque je lance la commande "tondre" :

Code : Tout sélectionner

2018-05-11 00:49:09	script	Erreur exécution de la commande [Jardin][WilsonActions][mow] : Echec de la requête HTTP : http://192.168.0.171/plugins/script/core/ressources/indego_doAction.php?cmd=mow cURL error : Operation timed out after 2001 milliseconds with 0 bytes received	

2018-05-11 00:49:09	virtual	Erreur exécution de la commande [Jardin][Indego][Tondre] : Echec de la requête HTTP : http://192.168.0.171/plugins/script/core/ressources/indego_doAction.php?cmd=mow cURL error : Operation timed out after 2001 milliseconds with 0 bytes received
Aussi, depuis la mise à jour Jeedom, l'affichage du widget ne se met plus à jour

Excellent travail en tout cas, merci !

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 11 mai 2018, 10:06
par GuillaumeDieppe
Petite évolution qui pourrait être envisagée pour la suite : intégrer les messages d'alerte ?

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 15 mai 2018, 14:47
par fle
@mike67 : ce n'est pas un plugin, pour le moment il se matérialise par des scipts php et un widget. J'ai mis la procédure d'installation dans la vidéo.

@GuillaumeDieppe : pour le message d'erreur ça fait quelque temps que je n'ai pas lancé d'action de tondre depuis jeedom, je vais regarder cela dans les jours à venir. Quand je vois le temps que met l'action tondre à s’exécuter sur l'application smartphone (le sablier tourne largement plus de 10s) il se peut que jeedom tombe en timeout si celui-ci est configuré à 2s il n'aurait ainsi pas le temps de recevoir la réponse du serveur bosch comme quoi l'exécution est OK ou KO. Je regarde ça.
Pour l’évolution les méthodes sont disponibles de mémoire, récupérer les messages devrait être facile, par contre c'est la mise en forme sur le virtuel qui risque d'être plus compliqué. J'essayerai de regarder à l'occasion.

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 15 mai 2018, 15:03
par GuillaumeDieppe
fle a écrit :
15 mai 2018, 14:47
@GuillaumeDieppe : pour le message d'erreur ça fait quelque temps que je n'ai pas lancé d'action de tondre depuis jeedom, je vais regarder cela dans les jours à venir. Quand je vois le temps que met l'action tondre à s’exécuter sur l'application smartphone (le sablier tourne largement plus de 10s) il se peut que jeedom tombe en timeout si celui-ci est configuré à 2s il n'aurait ainsi pas le temps de recevoir la réponse du serveur bosch comme quoi l'exécution est OK ou KO. Je regarde ça.
Pour l’évolution les méthodes sont disponibles de mémoire, récupérer les messages devrait être facile, par contre c'est la mise en forme sur le virtuel qui risque d'être plus compliqué. J'essayerai de regarder à l'occasion.
En fait tu as rendu WAF la tonte, ma femme trouvant l'application insupportable ! :lol:
Effectivement si je lance la tonte via l'application, le robot ne se réveille jamais avant 30 secondes facile...

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 15 mai 2018, 15:31
par GuillaumeDieppe
Question d'incompétent en programmation : ce serait compliqué de pouvoir intégrer la carte du terrain sur la tuile Jeedom ? Ainsi voir la progression de la tonte comme dans l'appli ?

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 15 mai 2018, 15:46
par romanais
Merci pour ton partage !
Je n'ai pas de robot-tondeuse mais j'ai pu découvrir un peu ce monde comme ça !
Je garde tout ça en tête :)

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 15 mai 2018, 16:37
par GuillaumeDieppe
Je reviens sur ce que j'ai dit, depuis la mise à jour Jeedom 3.2.2 le widget ne s'actualise plus seul, il faut faire F5 pour que l'affichage se mette à jour...
J'ai tenté de bidouiller le widget sans succès :

Code : Tout sélectionner

<div class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="numeric" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
<!-- A decommenter pour l'affichage du nom
		<span class='cmdName' style="font-weight: bold;">#name#</span><br>
-->   
  <center>    
    	<span class="action" id="imgIsIndegoMowing#id#"></span>
     	 <p id="newSpan#id#" >Statut Indego : </p>
   </center>
</div>   
   <script>
      jeedom.cmd.update['#id#'] = function(_options){
        $('.cmd[data-cmd_id=#id#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
      if('#state#' >= 257 && '#state#' <= 262){
         if('#state#' == 257){
         	$('#imgIsIndegoMowing#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.numeric.BoschIndegoState 2/OnDockStationCharging.gif" width="280" height="200"/>');
           	$("#newSpan#id#").append("<span>En charge.</span>");
         }else{
            $('#imgIsIndegoMowing#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.numeric.BoschIndegoState 2/OnDockStation.gif" width="280" height="200"/>');
         	$("#newSpan#id#").append("<span>Sur station.</span>");
         }
      }else{
         	$('#imgIsIndegoMowing#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.numeric.BoschIndegoState 2/Mowing.gif" width="280" height="200"/>');
        	$("#newSpan#id#").append("<span>Tonte.</span>");
      }
	jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
   </script>
Quelqu'un sait où j'ai fait une erreur ?

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 15 mai 2018, 17:16
par fle
@GuillaumeDieppe as tu vérifié que ton scénario de rafraichissement du widget tournait bien ? Quand tu vas dessus il indique la dernière et la prochaine exécution.
Concernant la map j'ai le code mais lors de mes essais je tombais systématiquement en timeout et n'arrivais donc pas à télécharger l'image... Il faut que je trouve du temps pour me remettre dessus...

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 15 mai 2018, 22:52
par fle
Effectivement j'ai de manière occasionnelle lors de tests ce soir des timeouts dans logs lors de l'exécution d'une commande mow, returntodock ou pause (qui ne bloquent pas les actions).
J'ai rajouté une ligne de code dans le fichier indego.php (curl_setopt($ch, CURLOPT_TIMEOUT,30);) avant le curl_exec, ça semble mieux mais comme je n'ai pas reproduit l'anomalie beaucoup de fois je ne peux pas encore garantir que ma ligne corrige le problème définitivement. J'attends des tests sur plusieurs jours pour diffuser une nouvelle version.

J'ai également avancé sur la récupération de la carte ça marche ! il me reste à gérer l'affichage de la carte dans un widget j'essaye de m'y pencher quand j'aurais un peu plus de temps...

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 16 mai 2018, 09:19
par GuillaumeDieppe
Pour le widget il s'agit en fait d'un souci lié à la dernière mise à jour Jeedom (3.2.2), cela concerne tous les "anciens" widget qu'il faut refaire intégralement (dixit loic ici). Si tu veux reproduire le souci, lances la tonte, puis quelques secondes après, cliques sur retour à la base mais ne rafraîchis pas ton dashboard ou design entre ces deux étapes.

Re: [TUTO] Intégrer le robot tondeuse bosch indego dans jeedom

Publié : 21 mai 2018, 13:47
par fle
GuillaumeDieppe a écrit :
15 mai 2018, 15:31
Question d'incompétent en programmation : ce serait compliqué de pouvoir intégrer la carte du terrain sur la tuile Jeedom ? Ainsi voir la progression de la tonte comme dans l'appli ?
Hello, Done ! ça donne ça :
Image

Pi j'ai le modèle 350 donc j'ai la carte mais pas l'avancement de la tonte sur la carte, je pense que pour les autres méthodes cela affiche la carte avec l'état de tonte...
J'attends quelques jours de tests avant de publier mes sources.