Demande d'aide Récupération météo json comme variable
#11
(11-03-2020, 04:51 AM)sud-domotique-expert a écrit :
(11-02-2020, 10:35 PM)mschone a écrit : Bonsoir, je souhaiterais aller une étape plus loin et utiliser les données comme variables dans un automate. J'ai vu qu'il fallait utiliser Double au lieu de string, mais aucun succès je n'arrive à avoir que "temperature" et même avec le paramètre string, pourquoi ? Pourriez-vous m'aider pas à pas ? Je voudrais par exemple récupérer la température max pour dans 3 jours. 
Un grand merci d'avance, le reste fonctionne parfaitement bien avec Design studio et je peux afficher comme je veux. Un grand merci pour tout le travail effectué, c'est top. Je n'y connaissait rien en json et j'ai pu récupérer les données météo en très peu de temps.
Bonne soirée
Martin

pour cela tu as les données dans l'équipement météo concept tempmax_j3, si tu veux utiliser directement cette variable dans un automate pour un autre équipement , tu dois passer par un stockage via une variable générale qui va d'abord récupérer dans ton automate cette valeur dans la variable string ou numérique (tostr) et ensuite tu utilises la variable générale via une commande qui va affecter la valeur de la variable générale dans l'équipement en question

dans l'automate tu as var_tempmax_j3 déclarée en string, tu affectes tempmax_j3 à var_tempmax_j3
dans l'équipement ou tu veux utiliser la données tu as la donnée mon_equip_tempmax_j3
et la commande recup_tempmax_j3: mon_equip_tempmax_j3 = {temp_tempmax_j3}
dans l'automate tu exécutes la commande recup_tempmax_j3  ou la tu as temp_tempmax_j3 = var_tempmax_j3
enfin tu pourras utiliser mon_equip_tempmax_j3 comme tu veux

Merci beaucoup de tenter de m'aider. J'avance d'un pas. Je n'avais pas mis la variable en string mais en numérique (je croyais récupérer la température, soit un chiffre). J'arrive maintenant à récupérer une donnée dans ma variable.

Par contre j'ai plusieurs variables à disposition, mais qui correspondent à la température actuelle, l'heure, la date, cityname etc. Mais aucune variable de prévision, ni de tempmax_j3. En fait, j'ai les mêmes que celles déclarées dans l'équipement météo concept (ce qui semble logique). J'a bien tenté de rajouter la variable tempmax_j3 dans l'équipement, mais cela ne fonctionne pas. Que faut-il faire pour avoir les autre variables pour les prochaines jours (tempmax etc.) ?

Bonne soirée, Martin
Répondre
#12
(11-04-2020, 09:10 PM)mschone a écrit :
(11-03-2020, 04:51 AM)sud-domotique-expert a écrit : pour cela tu as les données dans l'équipement météo concept tempmax_j3, si tu veux utiliser directement cette variable dans un automate pour un autre équipement , tu dois passer par un stockage via une variable générale qui va d'abord récupérer dans ton automate cette valeur dans la variable string ou numérique (tostr) et ensuite tu utilises la variable générale via une commande qui va affecter la valeur de la variable générale dans l'équipement en question

dans l'automate tu as var_tempmax_j3 déclarée en string, tu affectes tempmax_j3 à var_tempmax_j3
dans l'équipement ou tu veux utiliser la données tu as la donnée mon_equip_tempmax_j3
et la commande recup_tempmax_j3: mon_equip_tempmax_j3 = {temp_tempmax_j3}
dans l'automate tu exécutes la commande recup_tempmax_j3  ou la tu as temp_tempmax_j3 = var_tempmax_j3
enfin tu pourras utiliser mon_equip_tempmax_j3 comme tu veux

Merci beaucoup de tenter de m'aider. J'avance d'un pas. Je n'avais pas mis la variable en string mais en numérique (je croyais récupérer la température, soit un chiffre). J'arrive maintenant à récupérer une donnée dans ma variable.

Par contre j'ai plusieurs variables à disposition, mais qui correspondent à la température actuelle, l'heure, la date, cityname etc. Mais aucune variable de prévision, ni de tempmax_j3. En fait, j'ai les mêmes que celles déclarées dans l'équipement météo concept (ce qui semble logique). J'a bien tenté de rajouter la variable tempmax_j3 dans l'équipement, mais cela ne fonctionne pas. Que faut-il faire pour avoir les autre variables pour les prochaines jours (tempmax etc.) ?

Bonne soirée, Martin

si tu as suivi mon tuto et mis à jour avec la dernière version (ou créée les variables à la main), tu dois avoir cette variable dispo, sinon c'est que tu n'es pas à jour.
Répondre
#13
(11-06-2020, 03:12 AM)sud-domotique-expert a écrit :
(11-04-2020, 09:10 PM)mschone a écrit : Merci beaucoup de tenter de m'aider. J'avance d'un pas. Je n'avais pas mis la variable en string mais en numérique (je croyais récupérer la température, soit un chiffre). J'arrive maintenant à récupérer une donnée dans ma variable.

Par contre j'ai plusieurs variables à disposition, mais qui correspondent à la température actuelle, l'heure, la date, cityname etc. Mais aucune variable de prévision, ni de tempmax_j3. En fait, j'ai les mêmes que celles déclarées dans l'équipement météo concept (ce qui semble logique). J'a bien tenté de rajouter la variable tempmax_j3 dans l'équipement, mais cela ne fonctionne pas. Que faut-il faire pour avoir les autre variables pour les prochaines jours (tempmax etc.) ?

Bonne soirée, Martin

si tu as suivi mon tuto et mis à jour avec la dernière version (ou créée les variables à la main), tu dois avoir cette variable dispo, sinon c'est que tu n'es pas à jour.

Bonsoir, j'ai enfin  compris où était le bug. J'ai commencé avec le tuto de Florent avec Prévision-météo.ch, puis je me suis laissé emporter par la multitude de tes réponses et n'ai pas réalisé que météoconcept n'avait rien à voir. Comme je cherche la météo pour la Suisse je souhaiterais rester sur previson-meteo.ch. Pourrais-tu me dire comment trouver les variables adéquate pour la prévision de la température. Je n'y connais rien en json, est-ce que le fichier que j'importe comporte un code qui fait que la variable va chercher une donnée spécifique dans le fichier json ? Comment puis-je le modifier ? J'aimerais bien comprendre le principe pour être autonome et pouvoir récupérer n'importe quelle variable dans les données que fourni meteo-concept.ch.

J'ai aussi écris à Florent, mais je ne sais pas s'il lit les réponses à son post de 2016... Un grand merci encore une fois si tu veux bien éclairer ma lanterne. Stp le plus basiquement possible :-)

Bonne soirée

Martin
Répondre
#14
(11-09-2020, 10:21 PM)mschone a écrit :
(11-06-2020, 03:12 AM)sud-domotique-expert a écrit : si tu as suivi mon tuto et mis à jour avec la dernière version (ou créée les variables à la main), tu dois avoir cette variable dispo, sinon c'est que tu n'es pas à jour.

Bonsoir, j'ai enfin  compris où était le bug. J'ai commencé avec le tuto de Florent avec Prévision-météo.ch, puis je me suis laissé emporter par la multitude de tes réponses et n'ai pas réalisé que météoconcept n'avait rien à voir. Comme je cherche la météo pour la Suisse je souhaiterais rester sur previson-meteo.ch. Pourrais-tu me dire comment trouver les variables adéquate pour la prévision de la température. Je n'y connais rien en json, est-ce que le fichier que j'importe comporte un code qui fait que la variable va chercher une donnée spécifique dans le fichier json ? Comment puis-je le modifier ? J'aimerais bien comprendre le principe pour être autonome et pouvoir récupérer n'importe quelle variable dans les données que fourni meteo-concept.ch.

J'ai aussi écris à Florent, mais je ne sais pas s'il lit les réponses à son post de 2016... Un grand merci encore une fois si tu veux bien éclairer ma lanterne. Stp le plus basiquement possible :-)

Bonne soirée

Martin

je ne suis pas rentré dans le code de cette météo donc je ne pourrais pas faire grand chose pour toi , désolé , j'espère que florent pourra t'aider.
Répondre
#15
Une aide pour guider:
tu vas dans le connecteur http et une fois conecté à ton API, tu clique sur icone tournevis cle:
Tu dois voir ton code json défiler à chaque lecture:
puis dans ton code tu demande à afficher la trame du json.


var retour = trame; //lit la trame "status" du fichier Json

puis tu recherche un terme comme ici: batteryPercent qui sde met dans la variable p, puis tu recherche le terme que tu veux dans ta ligne json, et tu demande la chainr de caractéres voulue en donnant la position du 1er caractère voulu, par à la 1ere lettre de "batteryPercent" jusqu'au dernier caractère voulu.
Sans experience ty tatonne un peu, mais ca marche. Ci dessous tu as une partie d'un code

//cherche le % de charge de la batterie
var p = retour.indexOf('"batteryPercent"');
if (p != -1)
{
var cherche = retour.substr(p+18);
p = cherche.indexOf(',');
var BatteryPercent = cherche.substring(0,p);
ldprint(BatteryPercent);
}
//cherche le mode
var p = retour.indexOf('"operatingMode"');
if (p != -1)
{
var cherche = retour.substr(p+18);
p = cherche.indexOf('"');
var operatingMode = cherche.substring(0,p);
ldprint(operatingMode);
}
//cherche le status de la tondeuse
var p = retour.indexOf('"mowerStatus"');
if (p != -1)
{
var cherche = retour.substr(p+16);
p = cherche.indexOf('"');
var mowerStatus = cherche.substring(0,p);
}
Répondre
#16
(11-10-2020, 01:36 AM)Jlr a écrit : Une aide pour guider:
tu vas dans le connecteur http et une fois conecté à ton API, tu clique sur icone tournevis cle:
Tu dois voir ton code json défiler à chaque lecture:
puis dans ton code tu demande à afficher la trame du json.


var retour = trame; //lit la trame "status" du fichier Json

puis tu recherche un terme comme ici: batteryPercent qui sde met dans la variable p, puis tu recherche le terme que tu veux dans ta ligne json, et tu demande la chainr de caractéres voulue en donnant la position du 1er caractère voulu, par à la 1ere lettre de "batteryPercent" jusqu'au dernier caractère voulu.
Sans experience ty tatonne un peu, mais ca marche. Ci dessous tu as une partie d'un code

//cherche le % de charge de la batterie
var p = retour.indexOf('"batteryPercent"');
if (p != -1)
{
var cherche = retour.substr(p+18);
p = cherche.indexOf(',');
var BatteryPercent = cherche.substring(0,p);
ldprint(BatteryPercent);
}
//cherche le mode
var p = retour.indexOf('"operatingMode"');
if (p != -1)
{
var cherche = retour.substr(p+18);
p = cherche.indexOf('"');
var operatingMode = cherche.substring(0,p);
ldprint(operatingMode);
}
//cherche le status de la tondeuse
var p = retour.indexOf('"mowerStatus"');
if (p != -1)
{
var cherche = retour.substr(p+16);
p = cherche.indexOf('"');
var mowerStatus = cherche.substring(0,p);
}
Merci beaucoup, j'ai bien trouvé la clef, cela ouvre une page Listener dans Lifedomus, j'y vois toutes les données. Mais où puis-je accéder au code pour le modifier, avec quel programme ? Car dans le listener je ne peux rien écrire. Si je suis dans le code je pourrais m'inspirer des variables déjà existantes et certainement en rajouter d'autres par analogie. Encore merci pour ton aide.

Martin
Répondre
#17
J'ai ramé un peu pour retrouver mes anciennes programmations. Tu dois avoir sur le forum des explications plus claires, mais le principe c'est de crée un fichier .js avec un éditeur de texte comme Notepads ++, puis tu importes ce fichier .js dans le connecteur http voulu. puis dans un équipement correspondant avec ce connecteur http, tu mets une commande GET
Je ne retrouve pas mon tutoriel complet désolé
Répondre
#18
(11-10-2020, 09:24 PM)mschone a écrit : Merci beaucoup, j'ai bien trouvé la clef, cela ouvre une page Listener dans Lifedomus, j'y vois toutes les données. Mais où puis-je accéder au code pour le modifier, avec quel programme ? Car dans le listener je ne peux rien écrire. Si je suis dans le code je pourrais m'inspirer des variables déjà existantes et certainement en rajouter d'autres par analogie. Encore merci pour ton aide.

Martin

pour faire ce que tu veux c'est assez simple :
dans le connecteur tu as en bas 2 flèches montée/descente, une des 2 permet d'exporter le code .js utilisé par le connecteur, l'autre permet de l'importer (ça c'est quand tu as fait les modifications et que tu veux les appliquer - sans oublier de faire enregistrer une fois l'import réalisé).
ensuite tu édites ton code avec un éditeur, j'utilises Notepad++ et tu importes le nouveau code.
Répondre
#19
(11-11-2020, 07:32 AM)sud-domotique-expert a écrit :
(11-10-2020, 09:24 PM)mschone a écrit : Merci beaucoup, j'ai bien trouvé la clef, cela ouvre une page Listener dans Lifedomus, j'y vois toutes les données. Mais où puis-je accéder au code pour le modifier, avec quel programme ? Car dans le listener je ne peux rien écrire. Si je suis dans le code je pourrais m'inspirer des variables déjà existantes et certainement en rajouter d'autres par analogie. Encore merci pour ton aide.

Martin

pour faire ce que tu veux c'est assez simple :
dans le connecteur tu as en bas 2 flèches montée/descente, une des 2 permet d'exporter le code .js utilisé par le connecteur, l'autre permet de l'importer (ça c'est quand tu as fait les modifications et que tu veux les appliquer - sans oublier de faire enregistrer une fois l'import réalisé).
ensuite tu édites ton code avec un éditeur, j'utilises Notepad++ et tu importes le nouveau code.
Excellent ! Je n'y comprenais rien jusqu'à présent, car le fichier que j'avais importé de Florent est avec une extension en .ldc, impossible à ouvrir avec un éditeur de texte. Et j'ai toujours tenté d'exporter depuis l'équipement et non le connecteur et je n'avais donc pas l'export en json. J'ai donc pu modifier le fichier et récupérer une autre donnée du flux et surtout le transformer en variable: Eureka !!

Un grand merci pour ton aide. Belle soirée


Martin
Répondre
#20
(11-11-2020, 12:54 AM)Jlr a écrit : J'ai ramé un peu pour retrouver mes anciennes programmations. Tu dois avoir sur le forum des explications plus claires, mais le principe c'est de crée un fichier .js avec un éditeur de texte comme Notepads ++, puis tu importes ce fichier .js dans le connecteur http voulu. puis dans un équipement correspondant avec ce connecteur http, tu mets une commande GET
Je ne retrouve pas mon tutoriel complet désolé

Pas de souci. Le fichier de base était un autre tuto et j'ai pu l'exporter grâce aux conseils de sud-domotique ci-dessous. A moi maintenant de déchiffrer et de rajouter des variables.
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)