[TUTO] Lire niveau de batterie de vos Gigaset G-Tag

Bonjour à tous,

Pour ceux qui veulent faire remonter l’information de batterie de vos trackers Gigaset G-tag, j’ai enfin réussi à faire un petit script pour ça et ça fonctionne plutôt pas mal chez moi au bout de deux jours d’utilisation :slight_smile:
Du coup je vous le partage avec un petit tuto basique.
Vous pouvez le recopier et modifier à votre guise bien sûr.


0-a) Connexion en SSH :
Il faut tout d’abord savoir comment établir une connexion SSH sur votre machine Jeedom, donc soit vous savez faire, soit vous suivez un des multiples tuto qui se trouvent partout sur le net.
En voici un en exemple pour une connexion sur un Raspberry PI : Connectez vous en SSH à votre Raspberry Pi pour la contrôller depuis votre ordinateur
Nota : sous Windows 10, rien besoin d’installer du tout :

  • vous lancer une fenêtre de lignes de commande DOS (appuyez sur +, puis taper « cmd » et validez),
  • dans la fenêtre de commandes, vous tapez « ssh root@192.168.0.100 » (en remplaçant bien sûr l’adresse par celle de votre Jeedom et éventuellement le profil « root » par ce que vous avez paramétré chez vous)
  • et il ne vous reste qu’à saisir votre mot de passe, celui qui correspond au profil indiqué juste après le « ssh » précédent.

Sous Linux, rien à installer non plus, vous ouvrez une fenêtre « Terminal » et vous lancez les mêmes commandes que pour Windows 10.

0-b) Connexion via clavier/écran :
Alternative : vous connectez un clavier et un écran sur votre machine Jeedom et vous n’avez alors qu’à saisir directement les commandes en local.


1) Virtuel :

  • Créez un virtuel dans Jeedom
  • Ajoutez le nombre voulu de lignes, avec le type ‹ information › et ‹ numérique ›
  • Notez les numéros des ID

2) Script :

  • Allez dans un répertoire à choisir (par exemple /home/root/ : commande SSH = « cd /home/root »)
  • Créez un fichier pour recevoir le contenu du script : commande SSH = « nano gtag.sh » (nom à choisir comme bon vous semble)
  • Collez dedans le contenu dudit script d’interrogation (cf. PJ) (attention à bien rester en UTF-8)
  • Modifiez :
    • l’adresse IP de Jeedom et la clé API des Virtuel (variable « v_jeedom »)
    • l’ID de chaque ligne de virtuel à requêter (variable « v_jeedom »)
    • le port « hci0 » ou « hci1 » de votre clé Bluetooth ou module interne (variable « v_retour »)
    • l’adresse MAC de chaque appareil Bluetooth BLE à interroger (variable « v_mac »)
    • recopiez le bloc d’appel d’un appareil autant de fois que vous en avez en modifiant les variables pour chacun
  • enregistrez-le
  • passez-le en exécutable : commande SSH = « chmod +x gtag.sh »

3) Programmation :

  • Éditez votre cron (par exemple, commande SSH = « nano /etc/crontab »)
  • Ajoutez-y une ligne du style « 0 * * * * root /home/root/gtag.sh »
  • Sauvegardez

4) Et pour finir :

  • Aller se chercher une limonade bien fraîche
  • et deux Pepitos !

Ben oui, c’est terminé :grin:

Toutes les heures, le script va maintenant tenter d’interroger vos G-Tags, puis va envoyer les niveaux de batteries dans vos virtuels Jeedom.

Un mot sur la consommation de batterie :
Il est inutile d’augmenter la fréquence de rafraîchissement, le niveau de batterie ne bouge pas tant à ce point-là. De plus cela ne ferait que leur en faire consommer encore plus.
D’ailleurs je vous conseille même de baisser la fréquence (une fois par jour ? par semaine ?) si vous voyez que l’interrogation se fait bien et remonte l’information à chaque fois.

Nota : il est possible que ça fonctionne également avec les Nut, ou du moins avec certains modèles. Je n’ai pas cherché l’uuid ni le handle de l’info de batteries pour eux, mais il suffit de modifier ce numéro dans le script pour que ça marche virtuellement avec n’importe quel appareil BLE :wink:
Par contre, oubliez la lecture sur les chinoiseries de détecteurs de présence à deux balles, l’info n’est absolument pas fiable du tout. J’en avais acheté pour tester et ils sont repartis le jour même !

v1.0 : g-tag (forum Jeedom)_v1.0.sh (1,7 Ko)
v1.1 : g-tag (forum Jeedom)_v1.1.sh (2,8 Ko)
v1.2 : g-tag (forum Jeedom)_v1.2.sh (2,9 Ko)
v1.6 : g-tag (forum Jeedom)_v1.6.sh (3,0 Ko)

PS : suite à une modif en Jeedom v4.jesaispluscombien il faut modifier la commande envoyée par le script comme suit (télécharger le script v1.2 ou suivant qui est mis à jour pour ça) :

v_jeedom="http://aaa.bbb.ccc.ddd/core/api/jeeApi.php?plugin=virtual&type=event&apikey=XXXXXXXXXXXXXXXXX&id=XXXX&value="

3 « J'aime »

J’ai des gigaset Keeper ça fonctionne aussi ?

Aucune idée, faut essayer :slight_smile: Mais c’est très probable que ça marche direct oui.
Tu ne peux rien casser de toute façon :wink:
Mets des dièses (hashtag) devant les lignes « wget » et vois ce que ça donne à l’écran (j’ai fait expres de laisser le retour écran en guise de contrôle).
Sinon, il faut chercher le handle ou uuid de la commande de batterie de tes Keeper.

1 « J'aime »

Bonsoir,
Super de pouvoir mettre à jour les Gigaset G-TAG …
Comment peut on utiliser le CRON directement ? Merci

Ce n’est pas fait pour ca, c’est dédié à Jeedom ce cron-là.
Il faut faire comme j’ai mis dans mon tuto si tu ne sais pas faire des cron utilisateurs :wink:

Salut @LMQT,
as tu essayé d’intégrer les gigaset dans blea (créer le device)?
sinon, pour quelle raison tu ne l’avais pas fait car j’essaye d’y intégrer un module bluetooth triones.
Merci d’avance de tes réponses.
Cdt

Bonsoir,
J’ai édité le fichier /etc/crontab avec la dernière ligne :

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
0 *	* * *	root	/home/pi/GTAG.sh

Et j’ai crée le virtuel:

mais pas de remonté de la batterie avec les éléments dans le fichier GTAG.sh

Manque t il qque chose?
Merci

@johndoe2011
as tu bien changer les droits du fichier ?

@mnpg
Oui…c’est bon ca remonte :slight_smile:

@mnpg : oui c’est ce que j’ai fait, je les ai bien qui remontent en guise de présence, mais le plugin BLEA ne lit pas l’info de batterie.

Hello

en cours de test sur un nut 2

la valeur affiché est 128 ??

As tu essaye de modifier le device cote blea pour y ajouter la partie batterie?
Je viens de te relire, tes gigaset remontent en tant que devices inconnus, c’est ca?
Si c’est le cas, oublies ma 1ere question.

1 « J'aime »

@mnpg : non pas du tout, ils remontent bien comme il faut. Mais le plugin BLEA ne récupère plus les infos de batterie depuis une des versions sorties dans l’été 2019, hors ça m’est indispensable puisqu’ils servent d’activateur pour mon alarme de maison.

@Mikael : est-ce que les Nut2 renvoient bien leur info de batterie ? Car je crois me souvenir avoir lu dans mes recherche qu’un des 3 modèles n’avait pas cette remontée d’information. Il faut regarder dans l’application officielle.
Si ça remonte bien et que tu ne trouves pas le handle (ou uuid) qui va bien, je tâcherai de chercher de mon côté semaine prochaine.

Hello

effectivement les Nuts 2 ne remonte pas l’info batterie

je regarderais dans l’apps officiel pour voir si elle remonte l’info

Bon, c’est pas terrible…;j’avais mis :
00 12 * * * root /home/pi/GTAG.sh
et ca ne remonte pas :frowning:
Dans le virtuel, que faut il mettre pour « valeur » dans le virtuel ? Pour moi c’était vide…
Dans /etc/crontab, la synthaxe est assez differente entre ceux déjà présent et la ligne rajoutée ( 00 12 * * * root /home/pi/GTAG.sh ) Est ce OK ?
Un peu d’aide serait super :slight_smile:

@johndoe2011,
En positionnant 0 12 * * *,
Tu remontes l’info tous les jours a midi

La syntaxe utilise par @LMQT est de remonter l’info toutes les heures (12h, 13h, 14h etc…)

Merci pour ta réponse rapide :slight_smile:
Meme en mettant 0 12 * * * /home/pi/GTAG.sh
c’est pareil …
Faut il mettre qque choe dans « valeur » ?

Avant toute planification via crontab, teste le en lançant l’executable directement.
Tape ./GTAG.sh

Autre chose, verifies que l’URL de jeedom appele par le script fonctionne, voir s’il n’y a pas de restriction d’acces cote jeedom

As tu bien modifié le fichier GTAG.sh pour prendre en compte tes 2 GTAG?

comme expliqué dans le post de @LMQT, tu dois créer une entrée par matériel

ayant 2 devices, tu dois avoir 2 fois ces lignes dans le script GTAG.sh :

unset v_erreur; unset v_retour; v_mac="AA:BB:CC:DD:EE:FF"
v_jeedom="http://xxx.xxx.xxx.xxx/core/api/jeeApi.php?apikey=XXXXXXXXXXXXXXXXXX&type=virtual&id=XXXX&value="
f_requete

opération à faire pour chacun de GTAG :

  • dupliques autant de fois les 3 lignes de code ci-dessus et pour chacun de ce bloc (correspondant à un device), faire les opérations suivantes :
  • remplaces la valeur v_mac par l’adresse MAC de ton GTAG.
  • remplaces l’ip jeedom xxx.xxx.xxx.xxx par ton IP
  • remplaces la clé API par la tienne.
  • remplaces l’ID du virtuel par celui correspondant au GTAG intérrogé (celui correspondant à l’adresse MAC).

Enfin, afin que ta gestion des GTAG se fasse pleinement dans jeedom, pourquoi ne pas passer par le plugin script pour faire ta planification (il le fais très bien) plutôt que cela soit dans crontab.
Pour moi, l’avantage de faire cela est que ça reste dans jeedom, que tu peux l’executer via une planification de type crontab ou l’exécuter à la volée, mais également lors d’une restauration, 1- celui-ci est archivé avec le backup jeedom (a condition qu’il soit dans le dossier des scripts du plugin script), 2- tu retrouves après restauration le bon fonctionnement de ton script sans avoir à retourner dans le crontab pour le modifier.