Page 1 sur 3
Récupérer les vacance scolaire
Publié : 30 janv. 2015, 15:14
par atlantis007
je voudrai avoir de l aide pour un script qui récupéré les vacances scolaire est qui passe un inter a 1
j ai vue ça avec api domogeek
http://api.domogeek.fr/schoolholiday/C/now je ne sais pas comment faire le script
merci pour votre aide

Re: Récupéré les vacance scolaire
Publié : 30 janv. 2015, 15:55
par hobbe
J'utilise l'API Domogeek dans la
Vigilance météo.
Je pense que c'est une bonne base pour un interrupteur vacances scolaires. La réponse est encore plus simple à traiter : True/False.
je regarderai ce soir.
Re: Récupéré les vacance scolaire
Publié : 30 janv. 2015, 15:57
par atlantis007
ok je te remercie

Re: Récupéré les vacance scolaire
Publié : 30 janv. 2015, 21:45
par hobbe
Et voilà un script qui utilise l'API DomoGeek "vacances scolaires" pour mettre à jour 3 interrupteurs "Zone A", "Zone B" et "Zone C".
Le mettre dans
domoticz/scripts/lua/script_time_vacances.lua.
Il est réglé pour se déclencher à 0:02 tous les jours.
Code : Tout sélectionner
-- domoticz/scripts/lua/script_time_vacances.lua
-- School Holiday Status Request from Domogeek API
-- http://api.domogeek.fr/static/doc/index.html#api-Domogeek-GetSchoolHoliday
-- Prerequis: 3 switch On/Off: "Zone A", "Zone B", "Zone C"
-- Path to curl
-- Windows: curl = 'C:\\bin\\curl.exe'
curl = "curl"
-- Devices (Switch On/Off on virtual hardware)
switchA = "Zone A"
switchB = "Zone B"
switchC = "Zone C"
-- Function to get result of HTTP request
function os.capture(cmd, raw)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if raw then return s end
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
return s
end
-- Function to update a switch
function updateZoneSwitch(zone, switch)
local cmd = curl .. " http://api.domogeek.fr/schoolholiday/" .. zone .. "/now"
local vac = os.capture(cmd, true)
print("¤¤¤ School Holiday Status: " .. cmd .. ": " .. vac)
if (vac == "False") then
if (otherdevices[switch] == "On") then
commandArray[switch] = "Off";
end
else
if (otherdevices[switch] == "Off") then
commandArray[switch] = "On";
end
end
end
commandArray = {}
time = os.date("*t")
-- Trigger at 0:02 every day
if (time.min == 2 and time.hour == 0) then
-- Zone A
updateZoneSwitch("A", switchA)
-- Zone B
updateZoneSwitch("B", switchB)
-- Zone C
updateZoneSwitch("C", switchC)
end
return commandArray
Re: Récupéré les vacance scolaire
Publié : 30 janv. 2015, 22:24
par atlantis007
le script marche super bien rien a dire t es un as

Re: Récupéré les vacance scolaire
Publié : 05 févr. 2015, 16:05
par atlantis007
j ai un souci avec le script il ne me récupère pas info vacance tous les jour juste le jour ou on le met en place
Re: Récupérer les vacances scolaires
Publié : 05 févr. 2015, 18:14
par patrice
Bonjour
En effet mais si tu demandes une date precise dedans il te renvoie si c'est vacance ou pas
curl
http://api.domogeek.fr/holidayall/B/25-02-2014
Te renvoie vrai ou faux si le 25/02 est vacances
ou
curl
http://api.domogeek.fr/holiday/25-12-2014
Sinon toute la doc est la
http://api.domogeek.fr/static/doc/
Re: Récupéré les vacance scolaire
Publié : 05 févr. 2015, 22:46
par hobbe
atlantis007 a écrit :j ai un souci avec le script il ne me récupère pas info vacance tous les jour juste le jour ou on le met en place
Normalement, tous les jours à 0:02, il fait l'appel à l'API:
http://api.domogeek.fr/schoolholiday/A/now
Et il met à jour l'interrupteur "Zone A".
Puis zone B et zone C.
Vérifie dans les logs de Domoticz.
Code : Tout sélectionner
2015-02-05 00:02:00 LUA: ¤¤¤ School Holiday Status: C:\bin\curl.exe http://api.domogeek.fr/schoolholiday/A/now: False
2015-02-05 00:02:00 LUA: ¤¤¤ School Holiday Status: C:\bin\curl.exe http://api.domogeek.fr/schoolholiday/B/now: False
2015-02-05 00:02:01 LUA: ¤¤¤ School Holiday Status: C:\bin\curl.exe http://api.domogeek.fr/schoolholiday/C/now: False
Re: Récupéré les vacance scolaire
Publié : 05 févr. 2015, 23:11
par hobbe
Et puis on verra samedi matin pour la zone A

Re: Récupéré les vacance scolaire
Publié : 08 févr. 2015, 11:05
par atlantis007
moi ca marche pas il voie pas la zone a en vacance
quand on met le script il marche une seul foix