bonjour,
je cherche a suivre un collisimo avec domoticz.
j'ai vu que la poste a créer un api pour suivre les colis(https://developer.laposte.fr/products/suivi/latest), j'ai tester ça marche nickel mais le seul problème est comment faire remonter les infos a domoticz.
avec un script vous me direz !
mais j'y connait rien en script.
merci d'avance.
suivi colissimo avec domoticz ?
suivi colissimo avec domoticz ?
le domotiseur fou
!!!
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: suivi colissimo avec domoticz ?
Il faut que tu t'appuie sur ce qui existe déjà dans les autres script, par exemple le script waze qui récupère les infos de trajet quand tu veux rentrer chez toi ou aller au domicile.
En gros il faut que tu créés un device texte, et que tu le mette a jour de temps en temps en appelant l'url de ton api, en parsant la réponse (en gros trier les informations retournées) et après tu n'as plus qu'a mettre les infos dans le device texte..
Si je me base sur le retour d'UN seul colis:
Il faudrait que le code soit corrigé, agrementé de la fonction d'ajout dans le device text et testé. Mais deja si tu pars d'une base comme celle la tu peux peut etre arriver a quelque chose (sauf si vraiment tu n'y connais rien en script.
Apres tout depends de quelle informations tu veux et ou tu veux les mettres.
Si tu veux que j'aille plus loin faudra que tu attendes ce soir mais en attendant je pense que d'autre m'aurons corrigés.
En gros il faut que tu créés un device texte, et que tu le mette a jour de temps en temps en appelant l'url de ton api, en parsant la réponse (en gros trier les informations retournées) et après tu n'as plus qu'a mettre les infos dans le device texte..
Si je me base sur le retour d'UN seul colis:
De tête cela pourrait donner:{
"code": "1111111111111",
"date": "06/09/2016",
"status": "PRIS_EN_CHARGE",
"message": "Envoi pris en charge par Chronopost chez l'expéditeur",
"link": "http://www.chronopost.fr/expedier/input ... 1111111111",
"type": "Chronopost"
}
Code : Tout sélectionner
commandarray{}
--Condition de lancement. Ici toutes les x minutes
local m = os.date('%M')
local x = 15
if (m % x == 0) then
-- Parametre du script
local colis = "numéro du colis"
local apiKey = "numéro de la clef API de la poste"
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
--Fonction de recuperation des informations
function colissimo(colis,apiKey)
-- Appel a l'url
local url = 'curl -u "https://api.laposte.fr/suivi/v1/'..colis..'" '
.. '-H "Content-Type: application/json; charset=utf-8" '
.. '-H "X-Okapi-Key: '..apiKey'" '
-- Mise en variable du retour parsé
local handle = assert(io.popen(url))
local result = handle:read("*a")
handle:close()
output = json:decode(result)
return output
end
-- Si le code est egale au numéro de colis alors je met les informations voulu dans un device
if colissimo(coli, apiKey).code == colis then
local status = output.status
local message = output.message
--mettre les infos dans un device
--[[ Par exemple: Si aucun device texte egale a "La Poste"..colis existe alors
le créer
Ensuite inserer les information status et message dans le device texte egale a "La Poste"..colis
mais ca je ne sais pas le faire de tete]]
-- Sinon si le code est egale a
elseif output.code == "RESOURCE_NOT_FOUND" then
print('Erreur: Aucun produit ne correspond à votre recherche')
-- Sinon si le code est egale a
elseif output.code == "BAD_REQUEST" then
print('Erreur: Mauvais format pour le numéro de code')
end
return commandarray{}Apres tout depends de quelle informations tu veux et ou tu veux les mettres.
Si tu veux que j'aille plus loin faudra que tu attendes ce soir mais en attendant je pense que d'autre m'aurons corrigés.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Re: suivi colissimo avec domoticz ?
merci c'est une bonne baselandaisbenj a écrit :Il faut que tu t'appuie sur ce qui existe déjà dans les autres script, par exemple le script waze qui récupère les infos de trajet quand tu veux rentrer chez toi ou aller au domicile.
En gros il faut que tu créés un device texte, et que tu le mette a jour de temps en temps en appelant l'url de ton api, en parsant la réponse (en gros trier les informations retournées) et après tu n'as plus qu'a mettre les infos dans le device texte..
Si je me base sur le retour d'UN seul colis:
De tête cela pourrait donner:{
"code": "1111111111111",
"date": "06/09/2016",
"status": "PRIS_EN_CHARGE",
"message": "Envoi pris en charge par Chronopost chez l'expéditeur",
"link": "http://www.chronopost.fr/expedier/input ... 1111111111",
"type": "Chronopost"
}Il faudrait que le code soit corrigé, agrementé de la fonction d'ajout dans le device text et testé. Mais deja si tu pars d'une base comme celle la tu peux peut etre arriver a quelque chose (sauf si vraiment tu n'y connais rien en script.Code : Tout sélectionner
commandarray{} --Condition de lancement. Ici toutes les x minutes local m = os.date('%M') local x = 15 if (m % x == 0) then -- Parametre du script local colis = "numéro du colis" local apiKey = "numéro de la clef API de la poste" json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() --Fonction de recuperation des informations function colissimo(colis,apiKey) -- Appel a l'url local url = 'curl -u "https://api.laposte.fr/suivi/v1/'..colis..'" ' .. '-H "Content-Type: application/json; charset=utf-8" ' .. '-H "X-Okapi-Key: '..apiKey'" ' -- Mise en variable du retour parsé local handle = assert(io.popen(url)) local result = handle:read("*a") handle:close() output = json:decode(result) return output end -- Si le code est egale au numéro de colis alors je met les informations voulu dans un device if colissimo(coli, apiKey).code == colis then local status = output.status local message = output.message --mettre les infos dans un device --[[ Par exemple: Si aucun device texte egale a "La Poste"..colis existe alors le créer Ensuite inserer les information status et message dans le device texte egale a "La Poste"..colis mais ca je ne sais pas le faire de tete]] -- Sinon si le code est egale a elseif output.code == "RESOURCE_NOT_FOUND" then print('Erreur: Aucun produit ne correspond à votre recherche') -- Sinon si le code est egale a elseif output.code == "BAD_REQUEST" then print('Erreur: Mauvais format pour le numéro de code') end return commandarray{}
Apres tout depends de quelle informations tu veux et ou tu veux les mettres.
Si tu veux que j'aille plus loin faudra que tu attendes ce soir mais en attendant je pense que d'autre m'aurons corrigés.
le domotiseur fou
!!!
Re: suivi colissimo avec domoticz ?
Bonjour à tous les développeurs
Je viens de développer une interface en php de connexion aux systèmes de suivi proposés par pour avoir un suivi détaillé des expéditions :
- Chronopost,
- Colissimo,
- Autre numéros de suivi de La Poste.
Le principe est simple : je propose un formulaire dans lequel les utilisateurs entrent le numéro de colis dont ils veulent suivre l'expédition.
- 1 - Je teste ce numéro de suivi avec le webservice de Chronopost,
- 2 - S'il ne trouve rien, je teste alors ce numéro de suivi avec le webservice de Colissimo,
- 3 - S'il ne trouve rien, je teste alors ce numéro avec le webservice de suivi de La Poste.
- 4 - S'il ne trouve toujours rien, alors j'affiche le message "Ce numéro de suivi n'est pas reconnu"
On peut tester le fonctionnement à l'adresse suivante :
https://www.oliquide.com/page-tracking- ... nopost.php
En bas de la page, vous pouvez cliquer sur le lien "Espace développeur" pour accéder au code php que j'ai développé, ou-bien aller directement à la page suivante :
https://www.oliquide.com/page-developpe ... nopost.php
Le code proposé utilise du html standard, vous pouvez donc le réutiliser tel quel, ou-bien 'décorer la page' comme vous le souhaitez.
J'ai passé un peu de temps à développer tout ça, j'espère que vous en gagnerez en le réutilisant.
Bon développement
Jean-Marc
Je viens de développer une interface en php de connexion aux systèmes de suivi proposés par pour avoir un suivi détaillé des expéditions :
- Chronopost,
- Colissimo,
- Autre numéros de suivi de La Poste.
Le principe est simple : je propose un formulaire dans lequel les utilisateurs entrent le numéro de colis dont ils veulent suivre l'expédition.
- 1 - Je teste ce numéro de suivi avec le webservice de Chronopost,
- 2 - S'il ne trouve rien, je teste alors ce numéro de suivi avec le webservice de Colissimo,
- 3 - S'il ne trouve rien, je teste alors ce numéro avec le webservice de suivi de La Poste.
- 4 - S'il ne trouve toujours rien, alors j'affiche le message "Ce numéro de suivi n'est pas reconnu"
On peut tester le fonctionnement à l'adresse suivante :
https://www.oliquide.com/page-tracking- ... nopost.php
En bas de la page, vous pouvez cliquer sur le lien "Espace développeur" pour accéder au code php que j'ai développé, ou-bien aller directement à la page suivante :
https://www.oliquide.com/page-developpe ... nopost.php
Le code proposé utilise du html standard, vous pouvez donc le réutiliser tel quel, ou-bien 'décorer la page' comme vous le souhaitez.
J'ai passé un peu de temps à développer tout ça, j'espère que vous en gagnerez en le réutilisant.
Bon développement
Jean-Marc