Page 3 sur 3
Re: Récupérer les vacance scolaire
Publié : 20 oct. 2016, 13:43
par vil1driver
Voila comment vérifier,
CALENDRIER DES VACANCES DE L’ANNÉE SCOLAIRE 2016-2017 :
Vacances de la Toussaint : fin des cours mercredi 19 octobre 2016 après la classe, reprise des cours jeudi 3 novembre 2016.
http://domogeek.entropialux.com/schoolh ... 20-10-2016
http://domogeek.entropialux.com/schoolh ... 21-10-2016
Donc un jour de retard
http://domogeek.entropialux.com/schoolh ... /3-11-2016
http://domogeek.entropialux.com/schoolh ... /2-11-2016
La c'est bon
Idem pour Noël.
Domage donc, utiliser tomorrow ne va pas être la solution
Contact le pour qu'il rectifie car son api semble exclure le premier et dernier jour de la période.
Il serait préférable des les inclure et d'avancer d'une journée la fin de période qui contient actuellement le jour de reprise des cours..
Re: Récupérer les vacance scolaire
Publié : 20 oct. 2016, 13:53
par lcano
A priori L'API est décalée d'une journée... Également pour le dernier jour... donc tout va bien

Re: Récupérer les vacance scolaire
Publié : 20 oct. 2016, 13:55
par vil1driver
Tu as lu de travers

Re: Récupérer les vacance scolaire
Publié : 20 oct. 2016, 13:59
par lcano
Désolé je n'avais pas vu tes tests
Re: Récupérer les vacance scolaire
Publié : 20 oct. 2016, 14:12
par gawel3164
Bien vu vil1driver. Vais essayer de le contacter.
Re: Récupérer les vacance scolaire
Publié : 20 oct. 2016, 16:08
par gawel3164
En attendant, j'ai bricolé ça, en laissant tomorrow. Je pense que ça devrait marcher pour le dernier jour des vacances:
Code : Tout sélectionner
if (vac == "False") then
if (otherdevices[switch] == "On" and time.min == 59 and time.hour == 23 ) then
commandArray[switch] = "Off";
end
else
if (otherdevices[switch] == "Off") then
commandArray[switch] = "On";
end
end
end
Re: Récupérer les vacance scolaire
Publié : 20 oct. 2016, 16:35
par vil1driver
Pas bête d'attendre la fin de la journée

Re: Récupérer les vacance scolaire
Publié : 02 mars 2018, 22:26
par lmet
Bonsoir,
J'essaie le script sans succès, dans les log j'ai :

- Sans titre 5.jpg (33.64 Kio) Consulté 7407 fois
Une piste ?
D'avance merci.
[Edit] J'ai retiré la ligne :
J'avais un problème de nommage du switch zone C, cela fonctionne maintenant.
@hobbe Merci pour le partage.
Re: Récupérer les vacance scolaire
Publié : 04 mars 2018, 17:42
par lmet
Bonsoir,
J'ai préféré ce script car plus simple (pas de Xml à parser) grâce à l'utilisation de l'API
Domogeek mise à disposition par Guiguiabloc.
Reste la pérennité liée à la disponibilité du serveur utilisé. Si cette API vous est utile il y a la case
"PayPal" ça aide l'auteur et devrait être une action naturelle.
Je vous propose une mise à jour du script de
hobbe légèrement modifié :
° Ne nécessite pas de créer 3 interrupteurs (un seul suffit).
° Script traduit.
° Utilise le serveur réel
http://domogeek.entropialux.com/ qui n'existait pas à l'époque.
Nb : Pas testé sous Windows, histoire de "curl" à voir.
Code : Tout sélectionner
-- Script de type "Time" : Renseigne un ou des switch(s) virtuel(s) sur les vacances scolaires
-- Utilise "School Holiday Status" de l'API Domogeek
-- D'après le script de hobbe --> https://easydomoticz.com/forum/viewtopic.php?f=8&t=234#p1468
-- Doc : http://api.domogeek.fr/static/doc/index.html#api-Domogeek-GetSchoolHoliday
-- Prérequis: de 1 à 3 switch(s) vituel(s) On/Off: "Zone A", "Zone B", "Zone C"
----------------------- Variables à éditer --------------------------
local zoneA = false -- Si true --> J'ai créé un switch nommé "Zone A"
local zoneB = false -- Si true --> J'ai créé un switch nommé "Zone B"
local zoneC = true -- Si true --> J'ai créé un switch nommé "Zone C"
-------------------------- Fin édition ------------------------------
-- Fonction renvoyant le résultat d'une requète HTTP
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
-- Fonction de mise à jour du (des) switch(s) virtuel(s)
function updateZoneSwitch(zone, switch)
local cmd = "curl http://domogeek.entropialux.com/schoolholiday/" .. zone .. "/now"
local vac = os.capture(cmd, true)
if (vac == "False") then
commandArray[switch] = 'Off'
elseif (vac ~= "False") then
commandArray[switch] = 'On'
end
end
commandArray = {}
time = os.date("*t")
-- Déclenchement tous les jours à 0:02
if (time.min == 2 and time.hour == 0) then
-- Zone A
if zoneA == true then updateZoneSwitch("A", "Zone A") end
-- Zone B
if zoneB == true then updateZoneSwitch("B", "Zone B") end
-- Zone C
if zoneC == true then updateZoneSwitch("C", "Zone C") end
end
return commandArray
Je débute, merci de votre indulgence.