Page 2 sur 4

Re: DzVents : Vacances scolaires par zone et académie

Publié : 11 janv. 2020, 23:44
par Mex31
alors, en general, ca ne ca marche pas comme ca.
je dirais qu'avec ce switch, stable/beta on opte pour une ligne de version, mais en aucun cas il n'y a de version stable ET beta pour un meme n°. donc la 4.10717 est stable et il n'y a pas de 4.10717 beta.
La dernière version beta est la 4.11605

Re: DzVents : Vacances scolaires par zone et académie

Publié : 11 janv. 2020, 23:52
par McFlyPartages
Mex31 a écrit : 11 janv. 2020, 23:44 alors, en general, ca ne ca marche pas comme ca.
je dirais qu'avec ce switch, stable/beta on opte pour une ligne de version, mais en aucun cas il n'y a de version stable ET beta pour un meme n°. donc la 4.10717 est stable et il n'y a pas de beta.
La dernière version beta est la 4.11605
Tout à fait.
Je suis en béta ( la signature n'est plus bonne) et la version de dzvents n'est pas la même en béta 2.5.3 et en stable 2.4.19.

Le changement de stable à béta ma résolu le problème comme dit plus haut.

Re: DzVents : Vacances scolaires par zone et académie

Publié : 25 janv. 2020, 09:29
par Mex31
Ca ne marche toujours pas pour moi. Toujours les mêmes messages d'erreur. Je désactive le script.

Re: DzVents : Vacances scolaires par zone et académie

Publié : 29 janv. 2020, 22:27
par papoo
est-ce le seul qui ne fonctionne pas ou as tu d'autres scripts non fonctionnels?

Re: DzVents : Vacances scolaires par zone et académie

Publié : 17 juil. 2020, 18:57
par balajol
Bonsoir,
A priori ce script n'est plus fonctionnel ?

Code : Tout sélectionner

2020-07-17 18:43:01.390 Status: dzVents: Info: Handling httpResponse-events for: "dataEducation_response"
2020-07-17 18:43:01.390 Status: dzVents: Info: Vacances Scolaires v2.02: ------ Start internal script: script_time_vac_scol_dz: HTTPResponse: "dataEducation_response"
2020-07-17 18:43:01.391 Status: dzVents: Debug: Vacances Scolaires v2.02: H0 : 0
2020-07-17 18:43:01.404 Status: dzVents: Debug: Vacances Scolaires v2.02: Processing device-adapter for Aujourd hui vacances scolaires: Switch device adapter
2020-07-17 18:43:01.405 Status: dzVents: Debug: Vacances Scolaires v2.02: Constructed timed-command: Off
2020-07-17 18:43:01.405 Status: dzVents: Debug: Vacances Scolaires v2.02: Device Aujourd hui vacances scolaires sur OFF
2020-07-17 18:43:01.405 Status: dzVents: Debug: Vacances Scolaires v2.02: H1 : 0
2020-07-17 18:43:01.405 Status: dzVents: Debug: Vacances Scolaires v2.02: Processing device-adapter for Demain vacances scolaires: Switch device adapter
2020-07-17 18:43:01.406 Status: dzVents: Debug: Vacances Scolaires v2.02: Constructed timed-command: Off
2020-07-17 18:43:01.406 Status: dzVents: Debug: Vacances Scolaires v2.02: Device Demain vacances scolaires sur OFF
2020-07-17 18:43:01.406 Status: dzVents: Info: Vacances Scolaires v2.02: ------ Finished script_time_vac_scol_dz
2020-07-17 18:43:01.406 Status: dzVents: Debug: Commands sent to Domoticz:
2020-07-17 18:43:01.406 Status: dzVents: Debug: 

Merci :oops:
cdt
Bertrand

Re: DzVents : Vacances scolaires par zone et académie

Publié : 17 juil. 2020, 23:40
par Jeff
Oui j'ai la même et je suis repassé sur l'ancien en lua, il semble marcher, je télécharge le fichier manuellement.

Re: DzVents : Vacances scolaires par zone et académie

Publié : 18 juil. 2020, 00:40
par balajol
Bonjour Jeff,
Merci de ton retour.
Je vais essayer celui en Lua.
Cdt
Bertrand

Re: DzVents : Vacances scolaires par zone et académie

Publié : 18 juil. 2020, 21:45
par papoo
la saisie des vacances de la saison 2020-2021 n'a pas pris en compte les vacances de cet été contrairement aux années précédentes. j'ai modifié mon script en conséquence (dispo sur le github en v2.03

Code : Tout sélectionner

--[[
/home/pi/domoticz/scripts/dzVents/scripts/vacancesScolaires.lua
author/auteur = papoo
update/mise à jour = 18/07/2020
création = 05/08/2017
https://pon.fr/dzvents-vacances-scolaires-par-zone-et-academie/
https://github.com/papo-o/dz_scripts/blob/master/dzVents/scripts/vacancesScolaires.lua
https://easydomoticz.com/forum/viewtopic.php?f=17&t=9126

V1.xx  : https://github.com/papo-o/domoticz_scripts/blob/master/Lua/script_time_vacances_scolaires.lua

Principe : récupérer via l'API  de data.education.gouv (https://data.education.gouv.fr/explore/dataset/fr-en-calendrier-scolaire/api/?disjunctive.description)
les informations de vacances scolaires pour une date, une zone et une academie

--]]
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------

local zone                  = 'A'                           -- Indiquer ici la zone (A, B ou C)
local location              = 'Limoges'                        -- Indiquer ici l'academie (https://fr.wikipedia.org/wiki/Acad%C3%A9mie_(%C3%A9ducation_en_France))
local holidayNow            = 'Vacances Scolaires'             -- Indiquer ici le nom du device vacances aujourd'hui de type switch nil si inutilisé
local holidayTomorrow       = 'Vacances Scolaires Demain'   -- Indiquer ici le nom du device vacances demain de type switch nil si inutilisé

--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------

local scriptName            = 'Vacances Scolaires'
local scriptVersion         = '2.03'
local response              = 'dataEducation_response'

return {
    active = true,
    on =        {       --timer           =   { 'at 00:11' },
                        -- timer           =   { "every minute" },
                        timer           =   { "every 2 hours" },
                        httpResponses   =   {  response } },

    logging =   {   level    =   domoticz.LOG_DEBUG,
                    -- level    =   domoticz.LOG_INFO,             -- Seulement un niveau peut être actif; commenter les autres
                    -- level    =   domoticz.LOG_ERROR,            -- Only one level can be active; comment others
                    -- level    =   domoticz.LOG_MODULE_EXEC_INFO,
                    marker  =   scriptName..' v'..scriptVersion },

    execute = function(dz, item)

        local _ , round = dz.utils._, dz.utils.round
        local H0, H1 = 0, 0
        local function logWrite(str,level)
            dz.log(tostring(str),level or dz.LOG_DEBUG)
        end

        local function date2timestamp(now)
            a, b, Y, M, D = string.find(now, "(%d+)-(%d+)-(%d+)")
            return os.time{year=Y, month=M, day=D, hour=00, minute=00}
        end

        local function schoolYear(dayOfYear)
            if tonumber(dayOfYear) > 244 then
                schoolYear = dz.time.year .. "-" ..(tonumber(dz.time.year) + 1)
            else
                schoolYear = (tonumber(dz.time.year) - 1) .. "-" ..dz.time.year
            end
            return schoolYear
        end

        local Timestamp = dz.time.dDate
        --local Timestamp = date2timestamp("2019-12-20") -- pour test (uniquement sur l'année en cours)
        local dayOfYear = tonumber(os.date("%j"))
        --logWrite('vacances scolaires '.. schoolYear(dayOfYear))


        if (item.isHTTPResponse and item.trigger == response) then
            if (not item.isJSON) then
                logWrite('Last http response was not what expected. Trigger: '..item.trigger,dz.LOG_ERROR)
            else

                local holidays          = {}
                local start_date         = {}
                local end_date            = {}
                holidays = item.json.records

                if holidays ~= nil then
                    for i, Result in ipairs( holidays ) do
                        start_date[i] = Result.fields.start_date
                        end_date[i] = Result.fields.end_date

                        -- vacances aujourd'hui
                        if (date2timestamp(start_date[i]) < Timestamp or date2timestamp(start_date[i]) == Timestamp) and (date2timestamp(end_date[i]) > Timestamp or date2timestamp(end_date[i]) == Timestamp) then
                            logWrite('date de début des vacances '.. tostring(start_date[i]))
                            logWrite('date de fin des vacances '.. tostring(end_date[i]))
                            H0 = 1
                        end
                        --vacances demain
                        if (date2timestamp(start_date[i]) < (Timestamp + 24*3600) or date2timestamp(start_date[i]) == (Timestamp + 24*3600)) and (date2timestamp(end_date[i]) > (Timestamp + 24*3600) or date2timestamp(end_date[i]) == (Timestamp + 24*3600)) then
                            logWrite('date de début des vacances '.. tostring(start_date[i]))
                            logWrite('date de fin des vacances '.. tostring(end_date[i]))
                            H1 = 1
                        end
                    end
                    logWrite('H0 : '..tostring(H0))
                    if holidayNow ~= nil then
                        if H0 == 1 then
                            dz.devices(holidayNow).switchOn().checkFirst()
                            logWrite('Device '..holidayNow..' sur ON')
                        else
                            dz.devices(holidayNow).switchOff().checkFirst()
                            logWrite('Device '..holidayNow..' sur OFF')
                        end
                    else
                        logWrite('pas de device pour les vacances du jour')
                    end

                    logWrite('H1 : '..tostring(H1))
                    if holidayTomorrow ~= nil then
                        if H1 == 1 then
                            dz.devices(holidayTomorrow).switchOn().checkFirst()
                            logWrite('Device '..holidayTomorrow..' sur ON')
                        else
                            dz.devices(holidayTomorrow).switchOff().checkFirst()
                            logWrite('Device '..holidayTomorrow..' sur OFF')
                        end
                    else
                        logWrite('pas de device pour les vacances de demain')
                    end
                end
            end

        else
            local schoolYear = schoolYear(dayOfYear)
            logWrite('vacances scolaires '.. schoolYear)
            -- local url = "https://data.education.gouv.fr/api/records/1.0/search/?dataset=fr-en-calendrier-scolaire&facet=start_date&facet=end_date&refine.zones=Zone+".. zone .."&rows=40&refine.annee_scolaire=".. schoolYear .."&refine.location=".. location
            local url = "https://data.education.gouv.fr/api/records/1.0/search/?dataset=fr-en-calendrier-scolaire&facet=start_date&facet=end_date&refine.zones=Zone+".. zone .."&rows=40&refine.annee_scolaire=".. schoolYear .."&refine.location=".. location.."&sort=-end_date&q=end_date%3E="..dz.time.rawDate
            dz.openURL({
                  url = url,
                        method = "GET",
                        callback = response})
        end
    end
}
)

Re: DzVents : Vacances scolaires par zone et académie

Publié : 18 juil. 2020, 22:06
par balajol
Bonsoir Papoo,
Merci :)
Cdt
Bertrand

Re: DzVents : Vacances scolaires par zone et académie

Publié : 19 juil. 2020, 21:58
par Jeff
Merci Papoo, je suis reparti sur ce script :D