Transmettre la position à traccar

Bonjour,

Je ne trouve pas l’info ou j’ai du mal à la chercher.

Je ne sais pas si c’est possible, j’ai un serveur traccar à part sur un autre PC.

Est il possible que dès que le plugins JC reçoit une position du téléphone qu’il envoie une requête HTTP au serveur traccar afin de lui donner la position ?

Envoyer une position manuellement à traccar je sais faire :
http://demo.traccar.org:5055/?id=123456&lat={0}&lon={1}

Le probleme c’est que je ne sais absolument pas comment récupérer la position que reçoit JC et l’intégrer à l’url.

Je le faisais avant, avec MacroDroid , mais avec les dernières version de android et les limitations du GPS je voulais voir si ça fonctionnait mieux avec JC, parce que JC déclenche le GPS uniquement si ça bouge, pour fonctionner avec MacroDroid je suis obligé de laisser le gps en route en permanence.

Merci

salut,

pour moi pas grand chose à faire côté JC :slight_smile:

tu changes de position, l’app envoie une info au plugin pour mettre à jour une commande sur ton équipement JC → l’info est donc dispo dans cette commande !

il te suffit d’utiliser un scénario par la suite :
déclencheur :

  • cmd position de l’équipement

action :

  • découper la commande position pour séparer la longitude de latitude
  • puis appel de ton url traccar avec les 2 infos
1 « J'aime »

Je parlais bien du plugin quand je disais JC oui.

Oui la position est bien dans le plugin.

Mais tu viens de m’aiguiller (voir même donné la solution) sur quoi partir je vais fouiner merci =)

moi aussi :slight_smile:
mais donc tout le reste est du « standard » jeedom, d’où ma remarque

1 « J'aime »

tu mets en solution, donc ca fonctionne ?

Je sais pas, je vais chercher justement.

Pour moi une piste est la solution pour que j’essaie maintenant de le faire.

Mais je vois pas pourquoi ça ne marcherait pas. C’est finalement du basique de jeedom comme tu l’as dis

en complément :

et avant ca, faire via bloc code un explode sur ta commande position pour séparer longitude de latitude

Yop Yop,

Concernant le scénario, je te mets celui que j’utilise afin d’exploiter les infos de JC (au passage merci @tomitomas)

bloc code

$tags = $scenario->getTags();
$gps = $tags['#gps#'];
$gps = explode(",", $gps);

$tags['#lat#'] = $gps[0];
$tags['#lon#'] = $gps[1];
$tags['#alt#'] = $gps[2];

$scenario->setTags($tags);

Il permet de récupérer la commande position de JC et de la découper afin de l’exploiter

De là je renvoi les infos dans un virtuel et je les reformes afin d’obtenir la position…
Ce virtuel faisait un push vers une commande traccar…

Si ça peut aider !!
Meilleurs vœux…

1 « J'aime »

Merci.

Avec plusieurs post sur le forum je suis arrivé à ça oui .

Le hic je but depuis 2h sur la requête http , elle ne doit pas envoyer correctement les paramètres ou je loupe un truc.

je dois oublier des ’ ou un truc du genre non ?

je le fais dans un script en http :
http://***:5055/?id=&lat=#[Localisation][test][latitude]#&lon=#[Localisation][test][longitude]#

Ou dans le code :

$req = 'curl -i "http://****5055/?id=****&lat=$#[Localisation][test][latitude]#&lon=$#[Localisation][test][longitude]#"';
$output = shell_exec($req);

Je reçois bien quelque chose sur traccar mais ça semble pas complet contrairement à si je tape l’url dans un navigateur.

Dans mon virtuel les coordonées sont bien justes.

pourtant dans le lien que je te donnais plus haut, il y avait un bel exemple avec le plugin script :slight_smile:

sinon en code :

$gpsValues = cmd::byString('#[maison][mon equJC][Position]#')->execCmd();
$gpsArr = explode(",", $gpsValues);

$lat = $gpsArr[0];
$lon = $gpsArr[1];

$req = 'curl -i "http://****5055/?id=****&lat='.$lat.'&lon='.$lon;
$output = shell_exec($req);

1 « J'aime »

Tout fonctionne maintenant merci.

Mais j’avais un autre problème sur traccar même qui reçoit mal les données en curl quand le geocoding est activé en même temps.

Merci

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.