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 :P

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 :D

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 :lol:

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