Coordonnées GPS et altitude

Afin de ne pas surcharger un autre sujet parlant du nouveau format des coordonnées GPS du plugin et à la demande de @tomitomas, j’ouvre ce nouveau petit sujet.
Comment scinder les coordonnées GPS du plugin afin d’exploiter la longitude et la latitude et l’altitude.

1 « J'aime »

Quel est le format reçu ?
si par exemple tu réceptionne Lat,lon,alt
tu peut dans un bloc de scénario utiliser
$gps="48,2.5,103";
$gps = explode(",", $gps);

$gps[0] sera alors la Lat 48
$gps[1] sera alors la lon 2.5
$gps[2] sera alors l’altitude 103

1 « J'aime »

Oui c’est vrai oublié de ma part. :pensive:

Le format reçu est lat,lon,alt

parfait l’exemple conviens il de suffit d’enrobé l’exemple avec quelques tag !

je créé un virtuel avec 3 commandes infos
image

// commande info de mon équiqement Jeedom Connect  (qui sera aussi le déclencheur de mon scénario)
$coordonneesComplete = cmd::byString('#[Aucun][JC test][Position]#')->execCmd();

// on découpe les coord gps grâce à la virgule
$coordonneesUnitaire = explode(',', $coordonneesComplete);

// on met à jour les infos du virtuel qui accueille les 3 infos GPS séparemment :
cmd::byString('#[Aucun][Position JC][latitude]#')->event($coordonneesUnitaire[0]);
cmd::byString('#[Aucun][Position JC][longitude ]#')->event($coordonneesUnitaire[1]);
cmd::byString('#[Aucun][Position JC][altitude]#')->event($coordonneesUnitaire[2]);

2 « J'aime »

roooo le vilain … mon exemple est tout prêt depuis 1h, j’attendais juste le nouveau sujet pour poster ! :slight_smile: :slight_smile:

Faut utiliser des tag si tu met
[Aucun][JC test][Position] direct dans un bloc

et que le nom de l’objet change tu est bon pour refaire le block …

pas faux ! :+1:

à la place de
cmd::byString
on peut les remplacer par des
cmd::byId

et en mettant les ID des équipements/commandes correspondantes

même combat !

@olive @tomitomas d’accord pour séparer les trois infos mais pour garder lat,lon et ne soustraire que alt.
Je présume que l’on « explose » que l’on « concatène » la lat,lon

Je veux bien voir ce que tu veux dire @olive car indépendamment de ce sujet j’utilise des choses du genre dans certains bout de code et du coup ça m’intéresse :pray:

nop, tu peux changer le nom de tes équipements/commandes, ca n’aura pas d’impact sur le code bloc puisque les ID restent inchangés.

après si tu supprimes carrément les commandes alors oui …

encore plus simple , comme ça tu as toutes les options possibles pour « plus tard »

tu te créés une autre commade info : qui concate les 2 commandes de ton virtuel (avec la virgule en séparateur)

nb : contraire au screenshot, je mettrais plutôt les commandes en info/autre plutot que info/numérique

Oui là je suis un peu bécasso… pas les yeux en face des trous.
En plus, je l.ai déjà fait sur d’autre virtuel… :man_facepalming:

Voilà Mr Bison

@tomitomas oui mais la on cherche pas les ID …

4 « J'aime »

+1, aligned :wink:

Ah voui d’accord, merci je vais transformer 2/3 scénarios :+1:

@tomitomas @olive merci pour les bouts de code, et les solutions que vous apportez, je vasi pouvoir « m’amuser » et aussi tenter d’autre chose en code…
@Bison merci à toi aussi.

@olive je viens de tester ton code, j’ai une erreur dans le log
syntaxe error, unexpected ‘$’

Je comprend le message d’erreur mais je vois pas trop où elle est…

@olive j’ai trouvé :grinning::grinning:

Tu donnes :
$tags[‘#lat#’] = gps$[0];
$tags[‘#lon#’] = gps$[1];
$tags[‘#alt#’] = gps$[2];

J’ai modifié comme ça
$tags[‘#lat#’] = $gps0];
$tags[‘#lon#’] = $gps[1];
$tags[‘#alt#’] = $gps[2];

Et ça fonctionne, j’ai compris ton code :joy::joy::joy:

Sinon sérieusement, je veux utiliser plusieurs tags pour différents appareils, c’est mieux de faire un scénario par appareil ou un scénario multi-appareil (avec plusieurs tag différent)

1 « J'aime »