MAJ Tempo EDF
Re: MAJ Tempo EDF
Bonsoir salinois,
Il n'y a pas de widget HP-HC, j'ai 1 icône HP et HC pour chaque couleur. Bleu HP, Bleu HC, etc
Si tu ne veux pas gérer cela il suffit de renseigner dans le script la même icone pour le HP et le HC pour chaque couleur. Pas nécessaire pour le gris.
Bonne soirée.
Il n'y a pas de widget HP-HC, j'ai 1 icône HP et HC pour chaque couleur. Bleu HP, Bleu HC, etc
Si tu ne veux pas gérer cela il suffit de renseigner dans le script la même icone pour le HP et le HC pour chaque couleur. Pas nécessaire pour le gris.
Bonne soirée.
Re: MAJ Tempo EDF
Bonjour,
OK merci Alain78;
j'ai supprimé le widget HP-HC, et je vais modifier mes icônes perso pour faire mieux apparaitre le HC et HP.
a+
salinois
OK merci Alain78;
j'ai supprimé le widget HP-HC, et je vais modifier mes icônes perso pour faire mieux apparaitre le HC et HP.
a+
salinois
Re: MAJ Tempo EDF
Bonjour,
Déjà merci pour ce fil, mais franchement, je suis vraiment un noob, car je n'arrive pas à faire fonctionner ce nouveau script, j'utilisais un ancien, mais qui ne fonctionne plus différente URL que je comprends.
Merci à Salinois qui avait commencé un tuto pour les nuls, mais qui ne fonctionne pas non plus.
Du coup, c'est vrai que c'est difficile à suivre, il y a des scripts dans tous les sens, avec des liens pour aller là, de certaines modifs par-ci par-là, c'est vrai que c'est compliqué.
De ce que je comprends, j'ai créé 3 scripts dzVents dans domoticz en y recopiant ce que j'ai trouvé sur ce fil :
Nommé : Tempo_Script RTE_TEST
Nommé : Tempo_HP-HC_TEST
Nommé : Tempo_Widget_TEST
Créé des devices dummy :
Créé des variables :
Au niveau des timers, j'ai utilisé ce code :
Pour lancer le script toutes les minutes afin de voir le résultat, configurer en Debug mais ça ne fonctionne pas et si je regarde l'URL du script, j'ai une erreur "404"

Sinon les logs que j'ai :
Voila, je pense que l'url n'est pas la bonne déja et surement le script aussi.
Dans l'ancien script, je pouvais envoyer un email lors du changement de type de journée, on dirait que le script n'utilise plus cette fonction, lorsque que ça fonctionnera, je pense que je pourrais rajouter la ligne quelque part mais pour ça il faut que ce soit un peu plus clair dans ma tete et surtout savoir ou trouver les infos à un seul endroit
Merci.
Déjà merci pour ce fil, mais franchement, je suis vraiment un noob, car je n'arrive pas à faire fonctionner ce nouveau script, j'utilisais un ancien, mais qui ne fonctionne plus différente URL que je comprends.
Merci à Salinois qui avait commencé un tuto pour les nuls, mais qui ne fonctionne pas non plus.
Du coup, c'est vrai que c'est difficile à suivre, il y a des scripts dans tous les sens, avec des liens pour aller là, de certaines modifs par-ci par-là, c'est vrai que c'est compliqué.
De ce que je comprends, j'ai créé 3 scripts dzVents dans domoticz en y recopiant ce que j'ai trouvé sur ce fil :
Nommé : Tempo_Script RTE_TEST
Code : Tout sélectionner
--[[Récupération des informations TEMPO de RTE. Couleurs Bleu, Blanc ou Rouge
Couleur du jour, et nombre de jours restants pour chaque couleur(BLEU, BLANC et ROUGE).
Inspiré du script de "Lost" ici https://easydomoticz.com/forum/viewtopic.php?p=122000#p122000 version de septembre 2024.
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
]]--
local urlTempoJoursRTE = 'https://www.services-rte.com/cms/open_data/v1/tempo?season=' --- Nombre de jours restant pour chaque color
local scriptName = 'script_time_Tempo_Couleur_RTE'
local scriptVersion = '1.1'
local tempoCount = {blue=0, white=0, red=0}
local coloursFR = {BLUE = "BLEU", WHITE = "BLANC", UNDEFINED = "NON_DEFINI"}
local tempoColor = {J="GRIS", J1="GRIS"} -- Couleur tempo sur jour J et J+1
local tempoDay = {J="NON_DEFINI", J1="NON_DEFINI"} -- Jour Tempo J et J+1
local tempoSeason = nil
local nbrTempoRouge = 22 -- Nombre de jours Tempo ROUGE dans l'année.
local nbrTempoBlanc = 43 -- Nombre de jours Tempo BLANC dans l'année.
local nbrTempoBleu = 300 -- Nombre de jours Tempo BLEU dans l'année.
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
return {
on = {
--timer = { ' at 06:40', 'at 10:00-22:00 at *:40' },
timer = { 'every minute' }, -- pour test
system = { 'start' }, -- Pour execution en cas d'arret de plusieurs jours.
httpResponses = { scriptName } -- doit correspondre au "callback" passé par l'url à traiter.
},
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(domoticz, item)
local nowDate = domoticz.time -- Recupération heure du traitement.
local TEMPOJ = domoticz.variables('TempoJ') -- Variable Couleur TEMPO du jour.
local TEMPOJ1 = domoticz.variables('TempoJ1') -- Variable Couleur TEMPO lu lendemain.
local DateTempoJ = domoticz.time.dateToDate(domoticz.time.rawDateTime,'yyyy-mm-dd hh:MM:ss','yyyy-mm-dd') -- Date du jour TEMPOJ
local DateTempoJ1 = domoticz.time.dateToDate(domoticz.time.addDays(1).rawDateTime,'yyyy-mm-dd hh:MM:ss','yyyy-mm-dd') -- Date du jour TEMPOJ1
-- Si traitement déjà réalisé et validé après 10h30.
if (TEMPOJ1.value ~= "GRIS" and nowDate.hour > 10 and TEMPOJ1.lastUpdate.hoursAgo < 12) then -- Test si le traitement apres 10h30 (validation RTE) est passé pour sortir.
return
elseif TEMPOJ1.value == "GRIS" and nowDate.hour > 20 then -- Test si aucune valeur récupérée durant la journée et alerte par email.
domoticz.notify("Alerte Tempo","Alerte pas de mise à jour de la couleur TEMPO pour demain", domoticz.PRIORITY_NORMAL)
end
-- Récupération saison tempo (démarrage au 1 er Septembre) pour url RTE.
if (nowDate.month >= 1) and (nowDate.month <= 8) then
tempoSeason=tostring(nowDate.year - 1)..'-'..tostring(nowDate.year)
else
tempoSeason=tostring(nowDate.year)..'-'..tostring(nowDate.year + 1)
end
domoticz.log("La saison tempo est: "..tempoSeason,domoticz.LOG_DEBUG)
urlTempoJoursRTE = urlTempoJoursRTE..tempoSeason -- Mise à jour de l'url avec la saison Tempo.
domoticz.log("Url de récuperation des jours Tempo est: "..urlTempoJoursRTE,domoticz.LOG_DEBUG)
if item.isTimer or item.isSystemEvent then
domoticz.openURL({
url = urlTempoJoursRTE,
method = 'GET',
headers = {["User-Agent"]= "Wget/1.20.3 (linux-gnu)",["Content-Type"]="application/json"},
callback = scriptName, -- voir la reponse "httpResponses" à la suite.
})
elseif (item.isHTTPResponse) and (item.ok) then -- Traitement de la reponse à l'url chez RTE.
if (item.isJSON) then
local tempoSeasonData = domoticz.utils.fromJSON(item.data)
domoticz.log(tempoSeasonData, domoticz.LOG_DEBUG)
for k,v in pairs(tempoSeasonData.values) do
-- Calcul du nombre de jours par couleur depuis le deput de la saison
if v == "BLUE" then tempoCount.blue = tempoCount.blue + 1
elseif v == "WHITE" then tempoCount.white = tempoCount.white + 1
elseif v == "RED" then tempoCount.red = tempoCount.red + 1
end
-- Get J/J1 colors
if k == DateTempoJ then tempoColor.J = v -- Récupération de la coucleur tempo du jour.
elseif k == DateTempoJ1 then tempoColor.J1 = v -- Récupération de la coucleur tempo du lendemain.
end
end
end
tempoCount.blue = nbrTempoBleu - tempoCount.blue -- nombre de jours BLEU restant pour la saison Tempo.
tempoCount.white = nbrTempoBlanc - tempoCount.white -- nombre de jours BLANC restant pour la saison Tempo.
tempoCount.red = nbrTempoRouge - tempoCount.red -- nombre de jours ROUGE restant pour la saison Tempo.
tempoDay = {J = coloursFR[tempoColor.J], J1=coloursFR[tempoColor.J1]} --Couleur des jours TEMPOJ et TEMPOJ1
--- Update variables pour TEMPO RTE
domoticz.variables('Tempo_J_Blanc').set(tempoCount.white)
domoticz.variables('Tempo_J_Rouge').set(tempoCount.red)
domoticz.variables('Tempo_J_Bleu').set(tempoCount.blue)
domoticz.variables('TempoJ').set(tempoDay.J)
domoticz.variables('TempoJ1').set(tempoDay.J1)
domoticz.log("Nombre de jours bleu restant: "..tempoCount.blue, domoticz.LOG_DEBUG)
domoticz.log("Nombre de jours blanc restant: "..tempoCount.white, domoticz.LOG_DEBUG)
domoticz.log("Nombre de jours rouge restant: "..tempoCount.red, domoticz.LOG_DEBUG)
domoticz.log("Couleur Tempo du jour: "..tempoDay.J, domoticz.LOG_DEBUG)
domoticz.log("Couleur Tempo de demain: "..tempoDay.J1, domoticz.LOG_DEBUG)
else
domoticz.log('Réponse KO : '..item.statusText, domoticz.LOG_FORCE)
end
end
}Code : Tout sélectionner
--------------------------------------------
-- Changement des jours et HP - HC à 22h et 6h.
--------------------------------------------
local scriptName = 'script_time_Tempo_HP-HC'
local scriptVersion = '1.0'
return {
on = {
--timer = { 'at 05:55', 'at 22:07' },
timer = { 'every minute' }, -- pour test
system = { 'start' },
},
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(domoticz, item)
local DateTempoJ = domoticz.time.dateToDate(domoticz.time.rawDateTime,'yyyy-mm-dd hh:MM:ss','yyyy-mm-dd')
local Heure = domoticz.time.dateToDate(domoticz.time.rawDateTime,'yyyy-mm-dd hh:MM:ss','hh')
local TEMPOJ = domoticz.variables('TempoJ') -- Variable Couleur TEMPO du jour.
local TEMPOJ1 = domoticz.variables('TempoJ1') -- Variable Couleur TEMPO de demain.
local TEMPOH = domoticz.variables('Tempo_HP-HC') -- Variable HP-HC TEMPO.
if item.isTimer then
if Heure == "05" then -- Passage HP + changement de couleur TEMPO
TEMPOH.set("HP") -- Heure pleine
if TEMPOJ1.value == "ROUGE" then -- Aujourd'hui jour ROUGE
message = 'Aujourd\'hui : '..DateTempoJ..' La couleur TEMPO est: ROUGE'
domoticz.notify("Alerte TEMPO jour ROUGE", message, domoticz.PRIORITY_EMERGENCY)
domoticz.variables('Color_Luxy').set("Rouge-Flash")
end
TEMPOJ.set(TEMPOJ1.value) -- passage de la couleur tempo avec celle de demain
TEMPOJ1.set("GRIS") -- Mise à indéterminée pour la couleur du lendemain
elseif Heure == "22" then -- Passage HC
TEMPOH.set("HC") -- Heure creuse
end
elseif item.isSystemEvent then
if (tonumber(Heure) >= 6 and tonumber(Heure) < 22) then
TEMPOH.set("HP") -- Heure pleine
else
TEMPOH.set("HC") -- Heure creuse
end
end
end
} Code : Tout sélectionner
--[[ gestion des Icons sur les Widgets en fonction de leurs status
Couleur pour tempo:
- GRIS ........... 110
- Rouge .......... 107
- Blanc .......... 101
- Bleu .......... 104
- ROUGE HP ....... 109
- Rouge HC ....... 108
- Blanc HP ....... 103
- Blanc HC ....... 102
- Bleu HP ....... 106
- Bleu HC ....... 105
Tempo: 300 Jours Bleus (Tout au long de l’année) - 43 jours blancs (Tout au long de l’année, hors dimanche) - 22 jours rouges (Du 1er novembre au 31 mars, hors week-end et jours fériés).
--]]
local scriptName = 'script_device_Change_Icone_Widget'
local scriptVersion = ' 1.0'
local NbrJBleu = 300 -- Tout au long de l’année
local NbrJBlanc = 43 -- Tout au long de l’année, hors dimanche
local NbrJRouge = 22 -- Du 1er novembre au 31 mars, hors week-end et jours fériés
return {
on = {
variables = { 'TempoJ', -- Couleur Tempo du jour.
'TempoJ1', -- Couleurl Tempo du lendemain.
'Tempo_HP-HC' },
},
logging = { -- La section de journalisation facultative vous permet de remplacer le paramètre de journalisation globale de dzVents.
-- comme défini dans Configuration> Paramètres> Autre> Système d'événements> Niveau de journalisation dzVents.
-- Cela peut être pratique lorsque vous voulez que ce script ait une journalisation de débogage étendue pendant que le reste de votre script s'exécute en mode silencieux.
level = domoticz.LOG_DEBUG, -- domoticz.LOG_INFO, domoticz.LOG_MODULE_EXEC_INFO, domoticz.LOG_DEBUG or domoticz.LOG_ERROR, domoticz.LOG_FORCE,
marker = scriptName..' v'..scriptVersion
},
execute = function(domoticz, item)
local function logWrite(str,level)
domoticz.log(tostring(str),level or domoticz.LOG_DEBUG)
end
local function text_color(text,color) -- Fonction pour écriture du texte en fonction de la couleur TEMPO.
if color == "ROUGE" then text = '<FONT COLOR=#FF0000>' .. text .. '</FONT>' end
if color == "BLEU" then text = '<FONT COLOR=#0000FF>' .. text .. '</FONT>' end
if color == "GRIS" then text = '<FONT COLOR=#708090>' .. text .. '</FONT>' end
if color == "BLANC" then text = '<FONT COLOR=#000000>' .. text .. '</FONT>' end
return text
end
-- Variables et devices pour traitement des jours Tempo.
local TEMPOJ = domoticz.devices('Couleur Tempo Aujourd\'hui')
local TEMPOJ1 = domoticz.devices('Couleur Tempo Demain')
local TEMPOH = domoticz.variables('Tempo_HP-HC') -- Variable HP-HC TEMPO.
if item.isVariable then
-------------------------
-- Icones pour TEMPO J --
-------------------------
if item.name == "TempoJ" then
local icons = 110
if item.value == "ROUGE" then
if TEMPOH.value == "HP" then
icons = 109
else
icons = 108
end
NbrJ = NbrJRouge
mode = item.value..'-'..TEMPOH.value
NbJours = domoticz.variables('Tempo_J_Rouge').value
elseif item.value == "BLANC" then
if TEMPOH.value == "HP" then
icons = 103
else
icons = 102
end
NbrJ = NbrJBlanc
mode = item.value..'-'..TEMPOH.value
NbJours = domoticz.variables('Tempo_J_Blanc').value
elseif item.value == "BLEU" then
if TEMPOH.value == "HP" then
icons = 106
else
icons = 105
end
NbrJ = NbrJBleu
mode = item.value..'-'..TEMPOH.value
NbJours = domoticz.variables('Tempo_J_Bleu').value
else
icons = 110
mode = "GRIS"
end
if mode == "GRIS" then --- Couleur Indéfinie
texte = text_color('Pas de données communiquées. ',mode)
else
texte = text_color('Nbr de jours restants: '..NbJours..'/'..NbrJ..'<br>'..'Couleur TEMPO Aujourd\'hui: '..item.value,item.value)
end
TEMPOJ.updateText(texte)
TEMPOJ.setIcon(tonumber(icons))
----------------------
-- Icones pour TEMPO J + 1 --
----------------------
elseif item.name == "TempoJ1" then
local icons = 110
if item.value == "ROUGE" then
icons = 107
NbrJ = NbrJRouge
mode = item.value
NbJours = domoticz.variables('Tempo_J_Rouge').value
elseif item.value == "BLANC" then
icons = 101
NbrJ = NbrJBlanc
mode = item.value
NbJours = domoticz.variables('Tempo_J_Blanc').value
elseif item.value == "BLEU" then
icons = 104
NbrJ = NbrJBleu
mode = item.value
NbJours = domoticz.variables('Tempo_J_Bleu').value
else
icons = 110
mode = "GRIS"
end
if mode == "GRIS" then --- Couleur Indéfinie
texte = text_color('Pas de données communiquées. ',mode)
else
texte = text_color('Nbr de jours restants: '..NbJours..'/'..NbrJ..'<br>'..'Couleur TEMPO demain: '..item.value,item.value)
end
TEMPOJ1.updateText(texte)
TEMPOJ1.setIcon(tonumber(icons))
end
end
end
}Code : Tout sélectionner
Couleur Tempo Aujourd'hui et Couleur Tempo DemainCode : Tout sélectionner
Tempo_HP-HC Entier
Tempo_J_Blanc Entier
Tempo_J_Bleu Entier
Tempo_J_Rouge Entier
TempoJ Chaine
TempoJ1 ChaineCode : Tout sélectionner
timer = { 'every minute' }, -- pour testAlain78 parle d'une version 1.1 que je n'ai pas trouvé
Sinon les logs que j'ai :
Code : Tout sélectionner
2024-11-20 13:19:28.085 Status: dzVents: Write file: /opt/domoticz/userdata/scripts/dzVents/generated_scripts/Tempo_HP-HC_TEST.lua
2024-11-20 13:19:28.085 Status: dzVents: Write file: /opt/domoticz/userdata/scripts/dzVents/generated_scripts/Tempo_Script RTE_TEST.lua
2024-11-20 13:19:28.085 Status: dzVents: Write file: /opt/domoticz/userdata/scripts/dzVents/generated_scripts/Tempo_Widget_TEST.lua
2024-11-20 13:20:02.124 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:20:02.125 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:20:02.126 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:20:02.126 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:21:02.327 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:21:02.329 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:21:02.329 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:21:02.330 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:22:02.107 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:22:02.108 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:22:02.108 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:22:02.109 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:23:02.098 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:23:02.100 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:23:02.101 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:23:02.101 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:24:02.089 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:24:02.090 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:24:02.090 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:24:02.090 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:25:00.339 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:25:00.340 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:25:00.341 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:25:00.341 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:26:02.108 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:26:02.111 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:26:02.111 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:26:02.112 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:27:02.109 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:27:02.111 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:27:02.112 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:27:02.112 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:28:02.084 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:28:02.086 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:28:02.086 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:28:02.086 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:29:02.127 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:29:02.129 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:29:02.129 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:29:02.130 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:30:02.470 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:30:02.471 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:30:02.471 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:30:02.472 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:31:02.106 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:31:02.107 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:31:02.107 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:31:02.107 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:32:02.102 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:32:02.103 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:32:02.104 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:32:02.104 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:33:02.119 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:33:02.120 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:33:02.120 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:33:02.121 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:34:02.169 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:34:02.170 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:34:02.170 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:34:02.170 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:35:02.116 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:35:02.118 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:35:02.118 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:35:02.119 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script RTE_TEST
2024-11-20 13:36:02.150 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Start internal script: Tempo_HP-HC_TEST:, trigger: "every minute"
2024-11-20 13:36:02.151 Status: dzVents: Info: script_time_Tempo_HP-HC v1.0: ------ Finished Tempo_HP-HC_TEST
2024-11-20 13:36:02.151 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Start internal script: Tempo_Script RTE_TEST:, trigger: "every minute"
2024-11-20 13:36:02.152 Status: dzVents: Info: script_time_Tempo_Couleur_RTE v1.1: ------ Finished Tempo_Script Dans l'ancien script, je pouvais envoyer un email lors du changement de type de journée, on dirait que le script n'utilise plus cette fonction, lorsque que ça fonctionnera, je pense que je pourrais rajouter la ligne quelque part mais pour ça il faut que ce soit un peu plus clair dans ma tete et surtout savoir ou trouver les infos à un seul endroit
Merci.
Re: MAJ Tempo EDF
Bonjour Sebastiii,
Le script 1.1 est ici: viewtopic.php?p=122438#p122438
c'est le script principal qui a été mis à jours. C'est mentionné au début du script.
Si tu regardes tes logs, tu as bien la version 1.1 qui apparait.
Pour les tests l'exécution toute les minutes est complétement inutile. Les mises à jours des widgets ce font sur un changement d'état d'une variable.
Ce sont tes variables qu'il faut regarder si elles sont à jours et l'heure de la dernière modification.
Et pour l'url si tu avais regardé le script tu aurais pu voir :
Aujourd'hui tempoSeason =2024-2025
Regarde un peu le script avant de faire du copier/coller, cela te permettra de l'adapter à ton besoin et comprendre le fonctionnement de celui-ci
Cordialement
Alain
Le script 1.1 est ici: viewtopic.php?p=122438#p122438
c'est le script principal qui a été mis à jours. C'est mentionné au début du script.
Si tu regardes tes logs, tu as bien la version 1.1 qui apparait.
Pour les tests l'exécution toute les minutes est complétement inutile. Les mises à jours des widgets ce font sur un changement d'état d'une variable.
Ce sont tes variables qu'il faut regarder si elles sont à jours et l'heure de la dernière modification.
Et pour l'url si tu avais regardé le script tu aurais pu voir :
Code : Tout sélectionner
urlTempoJoursRTE = urlTempoJoursRTE..tempoSeasonRegarde un peu le script avant de faire du copier/coller, cela te permettra de l'adapter à ton besoin et comprendre le fonctionnement de celui-ci
Cordialement
Alain
Re: MAJ Tempo EDF
Ca permet au moins de vérifier, en tout début de saison, que l'API fonctionne.Keros a écrit : 12 nov. 2024, 12:36 A mon avis, il n'est pas nécessaire de suivre le nombre de jours bleu restant. Les étés se finiront toujours en bleu et il ne faut pas oublié que les années ont 365 ou 366 jours > c'est le nombre de jours bleu qui s'adapte![]()
Re: MAJ Tempo EDF
Salut,
A partir de quelle heure la couleur du lendemain est-elle disponible ?
@+
A partir de quelle heure la couleur du lendemain est-elle disponible ?
@+
Re: MAJ Tempo EDF
Bonjour,
L'heure est publiée à 6h30 mais la valeur officielle est à 10h30.
C'est pris en compte dans le script.
Cordialement
Alain
L'heure est publiée à 6h30 mais la valeur officielle est à 10h30.
C'est pris en compte dans le script.
Cordialement
Alain
Re: MAJ Tempo EDF
Moi qui la prenais à 16h30 !
Je modifie ça tout de suite.
Merci !
Je modifie ça tout de suite.
Merci !
Re: MAJ Tempo EDF
Merci pour ton explication.
J'ai donc crée le script lua avec le contenu et j'ai ajouté les variables dans la partie user.
Comment intégrer les widgets ensuite ?
Je ne fais jamais de LUA, en règle générale je fais tout en shell script.
Les 2 widgets que tu montres ensuite m'iraient parfaitement.
Merci pour ton aide.
J'ai donc crée le script lua avec le contenu et j'ai ajouté les variables dans la partie user.
Comment intégrer les widgets ensuite ?
Je ne fais jamais de LUA, en règle générale je fais tout en shell script.
Les 2 widgets que tu montres ensuite m'iraient parfaitement.
Merci pour ton aide.
Alain78 a écrit : 15 oct. 2024, 08:14 Bonjour,
J'utilise depuis plusieurs année l'API officielle de RTE pour les jours Tempo, mais depuis l’arrêt des infos sur le site EDF pour récupérer le nombre de jours Tempo restant, je ne peux plus traiter ces jours Tempo. J'ai pu voir le dernier script de @lost qui m'a poussé à le rependre et à le modifier pour avoir un seul script qui gère l'ensemble. je vous le partage pour ceux qui sont intéressés.
Merci à @lost pour ces idées et certaines méthodes que je n'utilise pas.
1ere étape créer les variables suivantes si non existantes:
Variables pour script Temp RTE.jpg
Le script (Version 1.1): normalement les commentaires devraient suffire.
Je vous laisse intégrer les informations dans les widgets de votre choix.Code : Tout sélectionner
--[[Récupération des informations TEMPO de RTE. Couleurs Bleu, Blanc ou Rouge Couleur du jour, et nombre de jours restants pour chaque couleur(BLEU, BLANC et ROUGE). Inspiré du script de "Lost" ici https://easydomoticz.com/forum/viewtopic.php?p=122000#p122000 version de septembre 2024. -------------------------------------------- ------------ Variables à éditer ------------ -------------------------------------------- ]]-- local urlTempoJoursRTE = 'https://www.services-rte.com/cms/open_data/v1/tempo?season=' --- Nombre de jours restant pour chaque color local scriptName = 'script_time_Tempo_Couleur_RTE' local scriptVersion = '1.1' local tempoCount = {blue=0, white=0, red=0} local coloursFR = {BLUE = "BLEU", WHITE = "BLANC", UNDEFINED = "NON_DEFINI"} local tempoColor = {J="GRIS", J1="GRIS"} -- Couleur tempo sur jour J et J+1 local tempoDay = {J="NON_DEFINI", J1="NON_DEFINI"} -- Jour Tempo J et J+1 local tempoSeason = nil local nbrTempoRouge = 22 -- Nombre de jours Tempo ROUGE dans l'année. local nbrTempoBlanc = 43 -- Nombre de jours Tempo BLANC dans l'année. local nbrTempoBleu = 300 -- Nombre de jours Tempo BLEU dans l'année. -------------------------------------------- ----------- Fin variables à éditer --------- -------------------------------------------- return { on = { timer = { ' at 06:40', 'at 10:00-22:00 at *:40' }, system = { 'start' }, -- Pour execution en cas d'arret de plusieurs jours. httpResponses = { scriptName } -- doit correspondre au "callback" passé par l'url à traiter. }, 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(domoticz, item) local nowDate = domoticz.time -- Recupération heure du traitement. local TEMPOJ = domoticz.variables('TempoJ') -- Variable Couleur TEMPO du jour. local TEMPOJ1 = domoticz.variables('TempoJ1') -- Variable Couleur TEMPO lu lendemain. local DateTempoJ = domoticz.time.dateToDate(domoticz.time.rawDateTime,'yyyy-mm-dd hh:MM:ss','yyyy-mm-dd') -- Date du jour TEMPOJ local DateTempoJ1 = domoticz.time.dateToDate(domoticz.time.addDays(1).rawDateTime,'yyyy-mm-dd hh:MM:ss','yyyy-mm-dd') -- Date du jour TEMPOJ1 -- Si traitement déjà réalisé et validé après 10h30. if (TEMPOJ1.value ~= "GRIS" and nowDate.hour > 10 and TEMPOJ1.lastUpdate.hoursAgo < 12) then -- Test si le traitement apres 10h30 (validation RTE) est passé pour sortir. return elseif TEMPOJ1.value == "GRIS" and nowDate.hour > 20 then -- Test si aucune valeur récupérée durant la journée et alerte par email. domoticz.notify("Alerte Tempo","Alerte pas de mise à jour de la couleur TEMPO pour demain", domoticz.PRIORITY_NORMAL) end -- Récupération saison tempo (démarrage au 1 er Septembre) pour url RTE. if (nowDate.month >= 1) and (nowDate.month <= 8) then tempoSeason=tostring(nowDate.year - 1)..'-'..tostring(nowDate.year) else tempoSeason=tostring(nowDate.year)..'-'..tostring(nowDate.year + 1) end domoticz.log("La saison tempo est: "..tempoSeason,domoticz.LOG_DEBUG) urlTempoJoursRTE = urlTempoJoursRTE..tempoSeason -- Mise à jour de l'url avec la saison Tempo. domoticz.log("Url de récuperation des jours Tempo est: "..urlTempoJoursRTE,domoticz.LOG_DEBUG) if item.isTimer or item.isSystemEvent then domoticz.openURL({ url = urlTempoJoursRTE, method = 'GET', headers = {["User-Agent"]= "Wget/1.20.3 (linux-gnu)",["Content-Type"]="application/json"}, callback = scriptName, -- voir la reponse "httpResponses" à la suite. }) elseif (item.isHTTPResponse) and (item.ok) then -- Traitement de la reponse à l'url chez RTE. if (item.isJSON) then local tempoSeasonData = domoticz.utils.fromJSON(item.data) domoticz.log(tempoSeasonData, domoticz.LOG_DEBUG) for k,v in pairs(tempoSeasonData.values) do -- Calcul du nombre de jours par couleur depuis le deput de la saison if v == "BLUE" then tempoCount.blue = tempoCount.blue + 1 elseif v == "WHITE" then tempoCount.white = tempoCount.white + 1 elseif v == "RED" then tempoCount.red = tempoCount.red + 1 end -- Get J/J1 colors if k == DateTempoJ then tempoColor.J = v -- Récupération de la coucleur tempo du jour. elseif k == DateTempoJ1 then tempoColor.J1 = v -- Récupération de la coucleur tempo du lendemain. end end end tempoCount.blue = nbrTempoBleu - tempoCount.blue -- nombre de jours BLEU restant pour la saison Tempo. tempoCount.white = nbrTempoBlanc - tempoCount.white -- nombre de jours BLANC restant pour la saison Tempo. tempoCount.red = nbrTempoRouge - tempoCount.red -- nombre de jours ROUGE restant pour la saison Tempo. tempoDay = {J = coloursFR[tempoColor.J], J1=coloursFR[tempoColor.J1]} --Couleur des jours TEMPOJ et TEMPOJ1 --- Update variables pour TEMPO RTE domoticz.variables('Tempo_J_Blanc').set(tempoCount.white) domoticz.variables('Tempo_J_Rouge').set(tempoCount.red) domoticz.variables('Tempo_J_Bleu').set(tempoCount.blue) domoticz.variables('TempoJ').set(tempoDay.J) domoticz.variables('TempoJ1').set(tempoDay.J1) domoticz.log("Nombre de jours bleu restant: "..tempoCount.blue, domoticz.LOG_DEBUG) domoticz.log("Nombre de jours blanc restant: "..tempoCount.white, domoticz.LOG_DEBUG) domoticz.log("Nombre de jours rouge restant: "..tempoCount.red, domoticz.LOG_DEBUG) domoticz.log("Couleur Tempo du jour: "..tempoDay.J, domoticz.LOG_DEBUG) domoticz.log("Couleur Tempo de demain: "..tempoDay.J1, domoticz.LOG_DEBUG) else domoticz.log('Réponse KO : '..item.statusText, domoticz.LOG_FORCE) end end }
J'utilise un script dédié pour toutes les modifications de widgets
Exemples de Widgets:
Widget Tempo.jpg
Bonne journée.
Synology DS920+ avec VM Debian 12, Aeon Labs Z-Stick Gen5, Aeon Zwave et devices zwaves , Teleinfo USB, devices Zigbee, batterie Marstek Venus E, Shelly Pro 3EM...
Re: MAJ Tempo EDF
Bonjour Alain,Alain78 a écrit : 20 nov. 2024, 14:08 Bonjour Sebastiii,
Le script 1.1 est ici: viewtopic.php?p=122438#p122438
c'est le script principal qui a été mis à jours. C'est mentionné au début du script.
Si tu regardes tes logs, tu as bien la version 1.1 qui apparait.
Merci, effectivement, je n'avais pas fait gaffe à la version, enfin maintenant que tu me mets le doigt dessus, j'avais bien vu 1.1 mais je n'ai pas capté, un comble, car là, c'est plutôt compréhensible quand même
Merci aussi, ce que je veux faire c'est l'interrogation du site toutes les minutes et voir si les variables se remplissent et ce n'est pas le cas, je dois encore louper un truc dans le script pour la compréhension.Pour les tests l'exécution toute les minutes est complétement inutile. Les mises à jours des widgets ce font sur un changement d'état d'une variable.
Ok, et effectivement, si je change à la mano dans les variables, le script essaye de remplir un device que je n'ai effectivement pas créé, car la dernière fois, ça fait des lustres et donc il faut créer des capteurs virtuels en mode TEXT apparemment.Ce sont tes variables qu'il faut regarder si elles sont à jours et l'heure de la dernière modification.
Effectivement avec le 2024-2025, on obtient un résultat avec pas mal d'info via un navigateur, maintenant pourquoi lorsque j'exécute le script régulièrement, il ne vient pas récupérer les infos ?Et pour l'url si tu avais regardé le script tu aurais pu voir :Aujourd'hui tempoSeason =2024-2025Code : Tout sélectionner
urlTempoJoursRTE = urlTempoJoursRTE..tempoSeason
Oui, je le regarde et je vais le regarder de nouveau, il faudrait attacher un débugueur en exécutant le code ligne par ligne pour comprendre ce qu'il se passe, car là, en le regardant, tout n'est pas clair pour moi, mais c'est logique, je ne connais pas le langage, enfin heureusement que tu commentes, mais tu vois, j'ai encore du mal.Regarde un peu le script avant de faire du copier/coller, cela te permettra de l'adapter à ton besoin et comprendre le fonctionnement de celui-ci
Encore merci pour ta disponibilité