[DzVents] Vacances scolaires par zone et académie

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Mex31
Messages : 6
Inscription : 07 janv. 2020, 21:47

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

Message 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
Domoticz 4.10717 - Pi 4 (à quand le boot sur Usb? :roll: )
Clé zwave.me - 5 qubino fil pilote - pont hue
À venir : zigate ou conbee (?Vos avis?) cherche de bons capteurs thermiques pas trop chers DS1820 probablement
McFlyPartages
Messages : 28
Inscription : 28 nov. 2019, 20:50
Localisation : Finistere
Contact :

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

Message 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.
Domoticz Bêta v4.11670
Xiaomi, Sonoff, Blitzwolf, Harmony, Broadlink, Amazon, Ikea, Yeelight, Roborock, Aqara, Nut, Zigate, RfLink, MySensors, ESPEasy, Etc

Site Web : https://mcflypartages.fr
Chaine YouTube : https://youtube.com/mcflypartages
Mex31
Messages : 6
Inscription : 07 janv. 2020, 21:47

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

Message par Mex31 »

Ca ne marche toujours pas pour moi. Toujours les mêmes messages d'erreur. Je désactive le script.
Domoticz 4.10717 - Pi 4 (à quand le boot sur Usb? :roll: )
Clé zwave.me - 5 qubino fil pilote - pont hue
À venir : zigate ou conbee (?Vos avis?) cherche de bons capteurs thermiques pas trop chers DS1820 probablement
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

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

Message par papoo »

est-ce le seul qui ne fonctionne pas ou as tu d'autres scripts non fonctionnels?
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

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

Message 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
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

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

Message 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.
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

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

Message par balajol »

Bonjour Jeff,
Merci de ton retour.
Je vais essayer celui en Lua.
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

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

Message 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
}
)
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

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

Message par balajol »

Bonsoir Papoo,
Merci :)
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

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

Message par Jeff »

Merci Papoo, je suis reparti sur ce script :D
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
Répondre