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.
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
Oui c’est vrai oublié de ma part.
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
// 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]);
roooo le vilain … mon exemple est tout prêt depuis 1h, j’attendais juste le nouveau sujet pour poster !
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 !
à 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
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…
+1, aligned
Ah voui d’accord, merci je vais transformer 2/3 scénarios
@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é
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
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)